diff --git a/.vitepress/components/ListItem.vue b/.vitepress/components/ListItem.vue
index 4a8b2fbe..95a47d53 100644
--- a/.vitepress/components/ListItem.vue
+++ b/.vitepress/components/ListItem.vue
@@ -63,3 +63,8 @@ onMounted(async () => {
+
diff --git a/.vitepress/config.ts b/.vitepress/config.ts
index 8ecda97d..ed360a45 100644
--- a/.vitepress/config.ts
+++ b/.vitepress/config.ts
@@ -123,7 +123,7 @@ export default withPwa(
text: '高级 API',
items: [
{
- text: 'Node API',
+ text: 'Vitest Node API',
link: '/advanced/api',
},
{
@@ -135,9 +135,13 @@ export default withPwa(
link: '/advanced/metadata',
},
{
- text: 'Extending default reporters',
+ text: 'Extending Reporters',
link: '/advanced/reporters',
},
+ {
+ text: 'Custom Pool',
+ link: '/advanced/pool',
+ },
],
},
],
diff --git a/.vitepress/contributors.ts b/.vitepress/contributors.ts
index 9e6314fb..8347d788 100644
--- a/.vitepress/contributors.ts
+++ b/.vitepress/contributors.ts
@@ -72,7 +72,7 @@ const plainTeamMembers: CoreTeam[] = [
discord: 'https://chat.antfu.me',
youtube: 'antfu',
sponsor: 'https://github.com/sponsors/antfu',
- title: '狂热的开源者,在 NuxtLabs 工作',
+ title: '狂热的开源者,工作于',
org: 'NuxtLabs',
orgLink: 'https://nuxtlabs.com/',
desc: 'Vite 和 Vue 的核心团队成员',
@@ -81,8 +81,8 @@ const plainTeamMembers: CoreTeam[] = [
avatar: contributorsAvatars.AriPerkkio,
name: 'Ari Perkkiö',
github: 'AriPerkkio',
- title: '全栈开发人员, 在 Cloudamite 工作',
- desc: 'Vitest 团队成员',
+ title: '全栈开发人员, 工作于',
+ desc: 'Vitest 核心团队成员',
org: 'Cloudamite',
orgLink: 'https://cloudamite.com/',
},
@@ -93,7 +93,7 @@ const plainTeamMembers: CoreTeam[] = [
mastodon: 'https://elk.zone/m.webtoo.ls/@patak',
twitter: 'patak_dev',
sponsor: 'https://github.com/sponsors/patak-dev',
- title: '二当家,在 StackBlitz 工作',
+ title: '二当家,工作于',
org: 'StackBlitz',
orgLink: 'https://stackblitz.com/',
desc: 'Vite 和 Vue 的核心团队成员',
@@ -107,6 +107,14 @@ const plainTeamMembers: CoreTeam[] = [
title: '全栈和安卓开发者',
desc: 'Vite 的狂热追随者',
},
+ {
+ avatar: contributorsAvatars.Dunqing,
+ name: 'Dunqing',
+ github: 'Dunqing',
+ twitter: '@Dunqingg',
+ title: '热衷于开源贡献者',
+ desc: 'Vitest 和 UnoCSS 团队成员',
+ },
{
avatar: contributorsAvatars.Aslemammad,
name: 'Mohammad Bagher',
@@ -132,7 +140,7 @@ const plainTeamMembers: CoreTeam[] = [
mastodon: 'https://elk.zone/hachyderm.io/@zx',
twitter: 'zxch3n',
title: '全栈开发人员',
- desc: '创建协作工具',
+ desc: '开发 CRDT 和本地优先软件',
},
{
avatar: contributorsAvatars.poyoho,
diff --git a/.vitepress/scripts/fetch-avatars.ts b/.vitepress/scripts/fetch-avatars.ts
index 267a7688..e4c0e1f6 100644
--- a/.vitepress/scripts/fetch-avatars.ts
+++ b/.vitepress/scripts/fetch-avatars.ts
@@ -1,15 +1,13 @@
import { existsSync, promises as fsp } from 'node:fs'
import { fileURLToPath } from 'node:url'
import { dirname, join, resolve } from 'pathe'
+import { teamMembers } from '../contributors'
const docsDir = resolve(dirname(fileURLToPath(import.meta.url)), '../..')
-const pathContributors = resolve(docsDir, '.vitepress/contributor-names.json')
const dirAvatars = resolve(docsDir, 'public/user-avatars/')
const dirSponsors = resolve(docsDir, 'public/sponsors/')
-let contributors: string[] = []
-
async function download(url: string, fileName: string) {
if (existsSync(fileName))
return
@@ -25,9 +23,8 @@ async function download(url: string, fileName: string) {
async function fetchAvatars() {
if (!existsSync(dirAvatars))
await fsp.mkdir(dirAvatars, { recursive: true })
- contributors = JSON.parse(await fsp.readFile(pathContributors, { encoding: 'utf-8' }))
- await Promise.all(contributors.map(name => download(`https://github.com/${name}.png?size=100`, join(dirAvatars, `${name}.png`))))
+ await Promise.all(teamMembers.map(c => c.github).map(name => download(`https://github.com/${name}.png?size=100`, join(dirAvatars, `${name}.png`))))
}
async function fetchSponsors() {
diff --git a/.vitepress/style/main.css b/.vitepress/style/main.css
index b76a1c0f..7b57691c 100644
--- a/.vitepress/style/main.css
+++ b/.vitepress/style/main.css
@@ -8,28 +8,6 @@ html:not(.dark) [img-dark] {
/* Overrides */
-.vp-doc ul.features-list {
- padding: 0;
-}
-.vp-doc ul.features-list li {
- list-style: none;
- display: flex;
- gap: 0.4rem;
- margin: 0;
-}
-.vp-doc ul.features-list li div:first-of-type {
- position: relative;
-}
-.vp-doc ul.features-list li div:first-of-type div {
- position: absolute;
-}
-.vp-doc ul.features-list li div:first-of-type div.flip {
- transform: rotateY(90deg);
-}
-.vp-doc ul.features-list li div:first-of-type div div {
- position: unset;
-}
-
.sp .sp-link.link:hover,
.sp .sp-link.link:focus {
background-color: var(--vitest-c-sponsor-hover) !important;
diff --git a/advanced/pool.md b/advanced/pool.md
new file mode 100644
index 00000000..08e84501
--- /dev/null
+++ b/advanced/pool.md
@@ -0,0 +1,90 @@
+# Custom Pool
+
+::: warning
+这是高级 API。如果你只需要运行测试,你可能不需要这个。它主要被库的作者使用。
+:::
+
+Vitest 在默认情况下以多种方式运行测试:
+
+- `threads` 使用 `node:worker_threads` 运行测试(通过新的 worker 上下文提供隔离)
+- `forks` 使用 `node:child_process` 运行测试(通过新的 `child_process.fork` 进程提供隔离)
+- `vmThreads` 使用 `node:worker_threads` 运行测试(但是通过 `vm` 模块而不是新的 worker 上下文提供隔离)
+- `browser` 使用浏览器提供程序运行测试
+- `typescript` 在测试中运行类型检查
+
+你可以通过指定文件路径来提供自己的池:
+
+```ts
+export default defineConfig({
+ test: {
+ // 默认情况下,将使用自定义池运行每个文件
+ pool: './my-custom-pool.ts',
+ // 可以使用 `poolOptions` 对象提供选项
+ poolOptions: {
+ myCustomPool: {
+ customProperty: true,
+ },
+ },
+ // 还可以为文件子集指定池
+ poolMatchGlobs: [
+ ['**/*.custom.test.ts', './my-custom-pool.ts'],
+ ],
+ },
+})
+```
+
+## API
+
+在 `pool` 选项中指定的文件应该导出一个函数(可以是异步的),该函数接受 `Vitest` 接口作为其第一个选项。这个函数需要返回一个与 `ProcessPool` 接口匹配的对象:
+
+```ts
+import { ProcessPool, WorkspaceProject } from 'vitest/node'
+
+export interface ProcessPool {
+ name: string
+ runTests: (files: [project: WorkspaceProject, testFile: string][], invalidates?: string[]) => Promise
+ close?: () => Promise
+}
+```
+
+这个函数只会被调用一次(除非服务器配置被更新),通常最好在这个函数内初始化测试所需的一切,并在调用 `runTests` 时重复使用它。
+
+Vitest 在安排运行新测试时调用 `runTest`。如果 `files` 为空,将不会调用它。第一个参数是一个元组数组:第一个元素是对工作区项目的引用,第二个元素是测试文件的绝对路径。在调用 `runTests` 之前,文件将使用 [`sequencer`](/config/#sequence.sequencer) 进行排序。可能(但不太可能)会有相同的文件出现两次,但它们将始终属于不同的项目 - 这是通过 [`vitest.workspace.ts`](/guide/workspace) 配置实现的。
+
+Vitest 会等到 `runTests` 执行完毕后才结束运行(即只有在 `runTests` 解决后才会触发 [`onFinished`](/guide/reporters))。
+
+如果你正在使用自定义池,需要自行提供测试文件及其结果 - 可以参考 [`vitest.state`](https://github.com/vitest-dev/vitest/blob/feat/custom-pool/packages/vitest/src/node/state.ts)(最重要的是 `collectFiles` 和 `updateTasks`)。Vitest 使用 `@vitest/runner` 包中的 `startTests` 函数来执行这些操作。
+
+要在不同进程之间进行通信,可以使用 `vitest/node` 中的 `createMethodsRPC` 创建方法对象,并使用你喜欢的任何通信形式。例如,要使用 `birpc` 的 websockets,可以编写类似以下的内容:
+
+```ts
+import { createBirpc } from 'birpc'
+import { parse, stringify } from 'flatted'
+import { WorkspaceProject, createMethodsRPC } from 'vitest/node'
+
+function createRpc(project: WorkspaceProject, wss: WebSocketServer) {
+ return createBirpc(
+ createMethodsRPC(project),
+ {
+ post: msg => wss.send(msg),
+ on: fn => wss.on('message', fn),
+ serialize: stringify,
+ deserialize: parse,
+ },
+ )
+}
+```
+
+为了确保收集每个测试,您可以调用 `ctx.state.collectFiles` 并将其交给 Vitest 报告器:
+
+```ts
+async function runTests(project: WorkspaceProject, tests: string[]) {
+ // ... 运行测试,放入 `files` 和 `tasks` 中
+ const methods = createMethodsRPC(project)
+ await methods.onCollected(files)
+ // 大多数报告都依赖于在 `onTaskUpdate` 中更新结果
+ await methods.onTaskUpdate(tasks)
+}
+```
+
+可以在 [pool/custom-pool.ts](https://github.com/vitest-dev/vitest/blob/feat/custom-pool/test/run/pool-custom-fixtures/pool/custom-pool.ts). 中看到一个简单的示例。
diff --git a/advanced/reporters.md b/advanced/reporters.md
index 3bc513c6..44ed9fab 100644
--- a/advanced/reporters.md
+++ b/advanced/reporters.md
@@ -1,8 +1,8 @@
-# 扩展默认报告器
+# 扩展默认报告器 (Extending Reporters)
你可以从 `vitest/reporters` 导入报告器并扩展它们以创建您的自定义报告器。
-## 扩展内置报告器
+## 扩展内置报告器 (Extending Built-in Reporters)
一般来说,你不需要从头开始创建报告器。`vitest` 附带了几个可以扩展的默认报告程序。
@@ -56,7 +56,7 @@ export default defineConfig({
})
```
-## 导出报告器
+## 导出报告器 (Exported Reporters)
`vitest` 附带了一些[内置报告器](/guide/reporters),你可以开箱即用。
diff --git a/guide/mocking.md b/guide/mocking.md
index 11c4bec9..3d5c76e4 100644
--- a/guide/mocking.md
+++ b/guide/mocking.md
@@ -278,7 +278,7 @@ Mock Service Worker (MSW) 通过拦截测试发出的请求进行工作,允许
```js
import { afterAll, afterEach, beforeAll } from 'vitest'
import { setupServer } from 'msw/node'
-import { HttpResponse, graphql, rest } from 'msw'
+import { HttpResponse, graphql, http } from 'msw'
const posts = [
{
diff --git a/package.json b/package.json
index ae745daf..679b97f0 100644
--- a/package.json
+++ b/package.json
@@ -46,7 +46,7 @@
"unplugin-vue-components": "^0.25.2",
"vite": "^5.0.0-beta.15",
"vite-plugin-pwa": "^0.16.7",
- "vitepress": "^1.0.0-rc.25",
+ "vitepress": "^1.0.0-rc.27",
"workbox-window": "^7.0.0"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 52ee0e31..281e7554 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -89,8 +89,8 @@ devDependencies:
specifier: ^0.16.7
version: 0.16.7(vite@5.0.0-beta.18)(workbox-build@7.0.0)(workbox-window@7.0.0)
vitepress:
- specifier: ^1.0.0-rc.25
- version: 1.0.0-rc.25(@algolia/client-search@4.20.0)(@types/node@18.15.11)(postcss@8.4.31)(search-insights@2.6.0)(typescript@5.0.4)
+ specifier: ^1.0.0-rc.27
+ version: 1.0.0-rc.28(@algolia/client-search@4.20.0)(@types/node@18.15.11)(postcss@8.4.31)(search-insights@2.6.0)(typescript@5.0.4)
workbox-window:
specifier: ^7.0.0
version: 7.0.0
@@ -2336,8 +2336,8 @@ packages:
resolution: {integrity: sha512-hPpIeeHb/2UuCw06kSNAOVWgehBLXEo0/fUs0mw3W2qhqX89PI2yvok83MnuctYGCPrabGIoi0fFso4DQ+sNUQ==}
dev: true
- /@types/markdown-it@13.0.5:
- resolution: {integrity: sha512-QhJP7hkq3FCrFNx0szMNCT/79CXfcEgUIA3jc5GBfeXqoKsk3R8JZm2wRXJ2DiyjbPE4VMFOSDemLFcUTZmHEQ==}
+ /@types/markdown-it@13.0.6:
+ resolution: {integrity: sha512-0VqpvusJn1/lwRegCxcHVdmLfF+wIsprsKMC9xW8UPcTxhFcQtoN/fBU1zMe8pH7D/RuueMh2CaBaNv+GrLqTw==}
dependencies:
'@types/linkify-it': 3.0.4
'@types/mdurl': 1.0.4
@@ -2379,10 +2379,6 @@ packages:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
dev: true
- /@types/web-bluetooth@0.0.18:
- resolution: {integrity: sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==}
- dev: true
-
/@types/web-bluetooth@0.0.20:
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
@@ -2746,26 +2742,26 @@ packages:
vite-plugin-pwa: 0.16.7(vite@5.0.0-beta.18)(workbox-build@7.0.0)(workbox-window@7.0.0)
dev: true
- /@vitejs/plugin-vue@4.3.1(vite@4.5.0)(vue@3.3.8):
- resolution: {integrity: sha512-tUBEtWcF7wFtII7ayNiLNDTCE1X1afySEo+XNVMNkFXaThENyCowIEX095QqbJZGTgoOcSVDJGlnde2NG4jtbQ==}
+ /@vitejs/plugin-vue@4.4.0(vite@5.0.0-beta.18)(vue@3.3.7):
+ resolution: {integrity: sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
- vite: 4.5.0(@types/node@18.15.11)
- vue: 3.3.8(typescript@5.0.4)
+ vite: 5.0.0-beta.18(@types/node@18.15.11)
+ vue: 3.3.7(typescript@5.0.4)
dev: true
- /@vitejs/plugin-vue@4.4.0(vite@5.0.0-beta.18)(vue@3.3.7):
- resolution: {integrity: sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==}
+ /@vitejs/plugin-vue@4.5.0(vite@5.0.0)(vue@3.3.8):
+ resolution: {integrity: sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
- vite: ^4.0.0
+ vite: ^4.0.0 || ^5.0.0
vue: ^3.2.25
dependencies:
- vite: 5.0.0-beta.18(@types/node@18.15.11)
- vue: 3.3.7(typescript@5.0.4)
+ vite: 5.0.0(@types/node@18.15.11)
+ vue: 3.3.8(typescript@5.0.4)
dev: true
/@vue/compiler-core@3.3.7:
@@ -2928,18 +2924,6 @@ packages:
resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==}
dev: true
- /@vueuse/core@10.5.0(vue@3.3.8):
- resolution: {integrity: sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==}
- dependencies:
- '@types/web-bluetooth': 0.0.18
- '@vueuse/metadata': 10.5.0
- '@vueuse/shared': 10.5.0(vue@3.3.8)
- vue-demi: 0.14.6(vue@3.3.8)
- transitivePeerDependencies:
- - '@vue/composition-api'
- - vue
- dev: true
-
/@vueuse/core@10.6.0(vue@3.3.7):
resolution: {integrity: sha512-+Yee+g9+9BEbvkyGdn4Bf4yZx9EfocAytpV2ZlrlP7xcz+qznLmZIDqDroTvc5vtMkWZicisgEv8dt3+jL+HQg==}
dependencies:
@@ -2952,20 +2936,20 @@ packages:
- vue
dev: false
- /@vueuse/core@10.6.0(vue@3.3.8):
- resolution: {integrity: sha512-+Yee+g9+9BEbvkyGdn4Bf4yZx9EfocAytpV2ZlrlP7xcz+qznLmZIDqDroTvc5vtMkWZicisgEv8dt3+jL+HQg==}
+ /@vueuse/core@10.6.1(vue@3.3.8):
+ resolution: {integrity: sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==}
dependencies:
'@types/web-bluetooth': 0.0.20
- '@vueuse/metadata': 10.6.0
- '@vueuse/shared': 10.6.0(vue@3.3.8)
+ '@vueuse/metadata': 10.6.1
+ '@vueuse/shared': 10.6.1(vue@3.3.8)
vue-demi: 0.14.6(vue@3.3.8)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: true
- /@vueuse/integrations@10.5.0(focus-trap@7.5.4)(vue@3.3.8):
- resolution: {integrity: sha512-fm5sXLCK0Ww3rRnzqnCQRmfjDURaI4xMsx+T+cec0ngQqHx/JgUtm8G0vRjwtonIeTBsH1Q8L3SucE+7K7upJQ==}
+ /@vueuse/integrations@10.6.1(focus-trap@7.5.4)(vue@3.3.8):
+ resolution: {integrity: sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA==}
peerDependencies:
async-validator: '*'
axios: '*'
@@ -3005,8 +2989,8 @@ packages:
universal-cookie:
optional: true
dependencies:
- '@vueuse/core': 10.5.0(vue@3.3.8)
- '@vueuse/shared': 10.5.0(vue@3.3.8)
+ '@vueuse/core': 10.6.1(vue@3.3.8)
+ '@vueuse/shared': 10.6.1(vue@3.3.8)
focus-trap: 7.5.4
vue-demi: 0.14.6(vue@3.3.8)
transitivePeerDependencies:
@@ -3014,20 +2998,12 @@ packages:
- vue
dev: true
- /@vueuse/metadata@10.5.0:
- resolution: {integrity: sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==}
- dev: true
-
/@vueuse/metadata@10.6.0:
resolution: {integrity: sha512-mzKHkHoiK6xVz01VzQjM2l6ofUanEaofgEGPgDHcAzlvOTccPRTIdEuzneOUTYxgfm1vkDikS6rtrEw/NYlaTQ==}
+ dev: false
- /@vueuse/shared@10.5.0(vue@3.3.8):
- resolution: {integrity: sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==}
- dependencies:
- vue-demi: 0.14.6(vue@3.3.8)
- transitivePeerDependencies:
- - '@vue/composition-api'
- - vue
+ /@vueuse/metadata@10.6.1:
+ resolution: {integrity: sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==}
dev: true
/@vueuse/shared@10.6.0(vue@3.3.7):
@@ -3039,8 +3015,8 @@ packages:
- vue
dev: false
- /@vueuse/shared@10.6.0(vue@3.3.8):
- resolution: {integrity: sha512-0t4MVE18sO+/4Gh0jfeOXBTjKeV4606N9kIrDOLPjFl8Rwnlodn+QC5A4LfJuysK7aOsTMjF3KnzNeueaI0xlQ==}
+ /@vueuse/shared@10.6.1(vue@3.3.8):
+ resolution: {integrity: sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==}
dependencies:
vue-demi: 0.14.6(vue@3.3.8)
transitivePeerDependencies:
@@ -5397,8 +5373,8 @@ packages:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: true
- /minisearch@6.1.0:
- resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==}
+ /minisearch@6.2.0:
+ resolution: {integrity: sha512-BECkorDF1TY2rGKt9XHdSeP9TP29yUbrAaCh/C03wpyf1vx3uYcP/+8XlMcpTkgoU0rBVnHMAOaP83Rc9Tm+TQ==}
dev: true
/mkdirp-classic@0.5.3:
@@ -6013,14 +5989,6 @@ packages:
fsevents: 2.3.3
dev: true
- /rollup@3.29.4:
- resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
- engines: {node: '>=14.18.0', npm: '>=8.0.0'}
- hasBin: true
- optionalDependencies:
- fsevents: 2.3.3
- dev: true
-
/rollup@4.4.0:
resolution: {integrity: sha512-3L67ubCc1Qm49wUodsQ72FM6JmJ9M37d63rGPjxbcKrzNJrwFipl+lDNHeWd6BId09S6Tb9KiBgYKbWhIuqVyg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -6873,12 +6841,12 @@ packages:
- supports-color
dev: true
- /vite@4.5.0(@types/node@18.15.11):
- resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
- engines: {node: ^14.18.0 || >=16.0.0}
+ /vite@5.0.0(@types/node@18.15.11):
+ resolution: {integrity: sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==}
+ engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
- '@types/node': '>= 14'
+ '@types/node': ^18.0.0 || >=20.0.0
less: '*'
lightningcss: ^1.21.0
sass: '*'
@@ -6902,9 +6870,9 @@ packages:
optional: true
dependencies:
'@types/node': 18.15.11
- esbuild: 0.18.20
+ esbuild: 0.19.5
postcss: 8.4.31
- rollup: 3.29.4
+ rollup: 4.4.0
optionalDependencies:
fsevents: 2.3.3
dev: true
@@ -6945,8 +6913,8 @@ packages:
fsevents: 2.3.3
dev: true
- /vitepress@1.0.0-rc.25(@algolia/client-search@4.20.0)(@types/node@18.15.11)(postcss@8.4.31)(search-insights@2.6.0)(typescript@5.0.4):
- resolution: {integrity: sha512-1dqWiHNThNrVZ08ixmfEDBEH+764KOgnev9oXga/x6cN++Vb9pnuu8p3K6DQP+KZrYcG+WiX7jxal0iSNpAWuQ==}
+ /vitepress@1.0.0-rc.28(@algolia/client-search@4.20.0)(@types/node@18.15.11)(postcss@8.4.31)(search-insights@2.6.0)(typescript@5.0.4):
+ resolution: {integrity: sha512-cB0DNhX1jgmyZxPSrH5E+YpgpSlLuDL4ec9UjeqTe/Si1+MEvIJRgifB0RjGfojKa+gkSo97nLO6WN+iFgtgXQ==}
hasBin: true
peerDependencies:
markdown-it-mathjax3: ^4.3.2
@@ -6959,17 +6927,18 @@ packages:
dependencies:
'@docsearch/css': 3.5.2
'@docsearch/js': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.6.0)
- '@types/markdown-it': 13.0.5
- '@vitejs/plugin-vue': 4.3.1(vite@4.5.0)(vue@3.3.8)
+ '@types/markdown-it': 13.0.6
+ '@vitejs/plugin-vue': 4.5.0(vite@5.0.0)(vue@3.3.8)
'@vue/devtools-api': 6.5.1
- '@vueuse/core': 10.6.0(vue@3.3.8)
- '@vueuse/integrations': 10.5.0(focus-trap@7.5.4)(vue@3.3.8)
+ '@vueuse/core': 10.6.1(vue@3.3.8)
+ '@vueuse/integrations': 10.6.1(focus-trap@7.5.4)(vue@3.3.8)
focus-trap: 7.5.4
mark.js: 8.11.1
- minisearch: 6.1.0
+ minisearch: 6.2.0
+ mrmime: 1.0.1
postcss: 8.4.31
shiki: 0.14.5
- vite: 4.5.0(@types/node@18.15.11)
+ vite: 5.0.0(@types/node@18.15.11)
vue: 3.3.8(typescript@5.0.4)
transitivePeerDependencies:
- '@algolia/client-search'