diff --git a/.github/contributing.md b/.github/contributing.md index 9cbd4e62..24a4a745 100644 --- a/.github/contributing.md +++ b/.github/contributing.md @@ -30,6 +30,8 @@ After cloning the repo, run: ```sh # install the dependencies of the project $ pnpm install +# setup git hooks +$ pnpm simple-git-hooks ``` ### Setup VitePress Dev Environment diff --git a/.prettierignore b/.prettierignore index 9b706e19..e5ac2d3d 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,3 +5,4 @@ pnpm-lock.yaml cache template temp +!CHANGELOG.md diff --git a/__tests__/e2e/package.json b/__tests__/e2e/package.json index 0aea6117..e2870fc5 100644 --- a/__tests__/e2e/package.json +++ b/__tests__/e2e/package.json @@ -1,6 +1,12 @@ { + "name": "tests-e2e", "private": true, "type": "module", + "scripts": { + "test": "vitest run", + "watch": "DEBUG=1 vitest", + "site": "vitepress" + }, "devDependencies": { "vitepress": "workspace:*" } diff --git a/__tests__/e2e/vitest.config.ts b/__tests__/e2e/vitest.config.ts index d94a39b9..04aa9475 100644 --- a/__tests__/e2e/vitest.config.ts +++ b/__tests__/e2e/vitest.config.ts @@ -5,7 +5,7 @@ const timeout = 60_000 export default defineConfig({ test: { setupFiles: ['vitestSetup.ts'], - globalSetup: ['__tests__/e2e/vitestGlobalSetup.ts'], + globalSetup: ['vitestGlobalSetup.ts'], testTimeout: timeout, hookTimeout: timeout, teardownTimeout: timeout, diff --git a/__tests__/e2e/vitestGlobalSetup.ts b/__tests__/e2e/vitestGlobalSetup.ts index 0ee9455f..97eb114c 100644 --- a/__tests__/e2e/vitestGlobalSetup.ts +++ b/__tests__/e2e/vitestGlobalSetup.ts @@ -7,7 +7,7 @@ import type { Server } from 'net' let browserServer: BrowserServer let server: ViteDevServer | Server -const root = '__tests__/e2e' +const root = '.' export async function setup() { browserServer = await chromium.launchServer({ diff --git a/__tests__/init/init.test.ts b/__tests__/init/init.test.ts index a05bd820..c6202a88 100644 --- a/__tests__/init/init.test.ts +++ b/__tests__/init/init.test.ts @@ -1,57 +1,50 @@ -import { chromium, type Browser, type Page } from 'playwright-chromium' -import { fileURLToPath } from 'url' -import path from 'path' import fs from 'fs-extra' -import { - scaffold, - build, - createServer, - serve, - ScaffoldThemeType, - type ScaffoldOptions -} from 'vitepress' -import type { ViteDevServer } from 'vite' -import type { Server } from 'net' import getPort from 'get-port' +import { chromium } from 'playwright-chromium' +import { fileURLToPath, URL } from 'url' +import { createServer, scaffold, ScaffoldThemeType } from 'vitepress' -let browser: Browser -let page: Page +const root = fileURLToPath(new URL('./.temp', import.meta.url)) -beforeAll(async () => { - browser = await chromium.connect(process.env['WS_ENDPOINT']!) - page = await browser.newPage() +const browser = await chromium.launch({ + headless: !process.env.DEBUG, + args: process.env.CI + ? ['--no-sandbox', '--disable-setuid-sandbox'] + : undefined }) +const page = await browser.newPage() + +const themes = [ + ScaffoldThemeType.Default, + ScaffoldThemeType.DefaultCustom, + ScaffoldThemeType.Custom +] +const usingTs = [false, true] +const variations = themes.flatMap((theme) => + usingTs.map( + (useTs) => [`${theme}${useTs ? ' + ts' : ''}`, { theme, useTs }] as const + ) +) + afterAll(async () => { await page.close() await browser.close() }) -const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), 'temp') - -async function testVariation(options: ScaffoldOptions) { - fs.removeSync(root) - scaffold({ - ...options, - root - }) +test.each(variations)('init %s', async (_, { theme, useTs }) => { + await fs.remove(root) + scaffold({ root, theme, useTs, injectNpmScripts: false }) - let server: ViteDevServer | Server const port = await getPort() + const server = await createServer(root, { port }) + await server.listen() async function goto(path: string) { await page.goto(`http://localhost:${port}${path}`) await page.waitForSelector('#app div') } - if (process.env['VITE_TEST_BUILD']) { - await build(root) - server = (await serve({ root, port })).server - } else { - server = await createServer(root, { port }) - await server!.listen() - } - try { await goto('/') expect(await page.textContent('h1')).toMatch('My Awesome Project') @@ -66,33 +59,10 @@ async function testVariation(options: ScaffoldOptions) { await page.click('a[href="/api-examples.html"]') await page.waitForSelector('pre code') expect(await page.textContent('h1')).toMatch('Runtime API Examples') - } finally { - fs.removeSync(root) - if ('ws' in server) { - await server.close() - } else { - await new Promise((resolve, reject) => { - server.close((error) => (error ? reject(error) : resolve())) - }) - } - } -} -const themes = [ - ScaffoldThemeType.Default, - ScaffoldThemeType.DefaultCustom, - ScaffoldThemeType.Custom -] -const usingTs = [false, true] - -for (const theme of themes) { - for (const useTs of usingTs) { - test(`${theme}${useTs ? ` + TypeScript` : ``}`, () => - testVariation({ - root: '.', - theme, - useTs, - injectNpmScripts: false - })) + // teardown + } finally { + await fs.remove(root) + await server.close() } -} +}) diff --git a/__tests__/init/package.json b/__tests__/init/package.json index 0aea6117..a3f14021 100644 --- a/__tests__/init/package.json +++ b/__tests__/init/package.json @@ -1,6 +1,11 @@ { + "name": "tests-init", "private": true, "type": "module", + "scripts": { + "test": "vitest run", + "watch": "DEBUG=1 vitest" + }, "devDependencies": { "vitepress": "workspace:*" } diff --git a/__tests__/init/vitest.config.ts b/__tests__/init/vitest.config.ts index 789ba16d..abd62c34 100644 --- a/__tests__/init/vitest.config.ts +++ b/__tests__/init/vitest.config.ts @@ -1,20 +1,9 @@ -import { dirname, resolve } from 'path' -import { fileURLToPath } from 'url' import { defineConfig } from 'vitest/config' -const dir = dirname(fileURLToPath(import.meta.url)) - const timeout = 60_000 export default defineConfig({ - resolve: { - alias: { - node: resolve(dir, '../../src/node') - } - }, test: { - watchExclude: ['**/node_modules/**', '**/temp/**'], - globalSetup: ['__tests__/init/vitestGlobalSetup.ts'], testTimeout: timeout, hookTimeout: timeout, teardownTimeout: timeout, diff --git a/__tests__/init/vitestGlobalSetup.ts b/__tests__/init/vitestGlobalSetup.ts deleted file mode 100644 index 3f2c2508..00000000 --- a/__tests__/init/vitestGlobalSetup.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { chromium, type BrowserServer } from 'playwright-chromium' - -let browserServer: BrowserServer - -export async function setup() { - browserServer = await chromium.launchServer({ - headless: !process.env.DEBUG, - args: process.env.CI - ? ['--no-sandbox', '--disable-setuid-sandbox'] - : undefined - }) - process.env['WS_ENDPOINT'] = browserServer.wsEndpoint() -} - -export async function teardown() { - await browserServer.close() -} diff --git a/docs/package.json b/docs/package.json index 0aea6117..35ff39d9 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,12 @@ { + "name": "docs", "private": true, "type": "module", + "scripts": { + "dev": "vitepress", + "build": "vitepress build", + "preview": "vitepress preview" + }, "devDependencies": { "vitepress": "workspace:*" } diff --git a/netlify.toml b/netlify.toml index 8ebbb56e..c1ae33d3 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,4 +3,4 @@ [build] publish = "docs/.vitepress/dist" - command = "pnpm docs-build" + command = "pnpm docs:build" diff --git a/package.json b/package.json index a5e930b1..7be2ffbd 100644 --- a/package.json +++ b/package.json @@ -55,37 +55,38 @@ "url": "https://github.com/vuejs/vitepress/issues" }, "scripts": { - "dev": "rimraf dist && run-s dev-shared dev-start", - "dev-start": "run-p dev-client dev-node dev-watch", - "dev-client": "tsc --sourcemap -w -p src/client", - "dev-node": "DEV=true pnpm build-node -w", - "dev-shared": "node scripts/copyShared", - "dev-watch": "node scripts/watchAndCopy", - "build": "run-s build-prepare build-client build-node", - "build-prepare": "rimraf dist && node scripts/copyShared", - "build-client": "vue-tsc --noEmit -p src/client && tsc -p src/client && node scripts/copyClient", - "build-node": "tsc -p src/node --noEmit && rollup --config rollup.config.ts --configPlugin esbuild", + "dev": "rimraf dist && run-s dev:shared dev:start", + "dev:start": "run-p dev:client dev:node dev:watch", + "dev:client": "tsc --sourcemap -w -p src/client", + "dev:node": "DEV=true pnpm build:node -w", + "dev:shared": "node scripts/copyShared", + "dev:watch": "node scripts/watchAndCopy", + "build": "run-s build:prepare build:client build:node", + "build:prepare": "rimraf dist && node scripts/copyShared", + "build:client": "vue-tsc --noEmit -p src/client && tsc -p src/client && node scripts/copyClient", + "build:node": "tsc -p src/node --noEmit && rollup --config rollup.config.ts --configPlugin esbuild", + "test": "run-p --aggregate-output test:unit test:e2e test:init", + "test:unit": "vitest run -r __tests__/unit", + "test:unit:watch": "vitest -r __tests__/unit", + "test:e2e": "run-s test:e2e-dev test:e2e-build", + "test:e2e:site": "pnpm -F=tests-e2e site", + "test:e2e-dev": "pnpm -F=tests-e2e test", + "test:e2e-dev:watch": "pnpm -F=tests-e2e watch", + "test:e2e-build": "VITE_TEST_BUILD=1 pnpm test:e2e-dev", + "test:e2e-build:watch": "VITE_TEST_BUILD=1 pnpm test:e2e-dev:watch", + "test:init": "pnpm -F=tests-init test", + "test:init:watch": "pnpm -F=tests-init watch", + "docs": "run-p dev docs:dev", + "docs:dev": "wait-on -d 100 dist/node/cli.js && pnpm -F=docs dev", + "docs:debug": "NODE_OPTIONS='--inspect-brk' pnpm docs:dev", + "docs:build": "run-s build docs:build:only", + "docs:build:only": "pnpm -F=docs build", + "docs:preview": "pnpm -F=docs preview", "format": "prettier --check --write .", - "format-fail": "prettier --check .", - "check": "run-s format-fail build test", - "test": "pnpm test-unit", - "test-unit": "vitest run -r __tests__/unit", - "test-e2e": "vitest run -r __tests__/e2e", - "test-e2e-build": "VITE_TEST_BUILD=1 pnpm test-e2e", - "test-init": "vitest run -r __tests__/init", - "test-init-build": "VITE_TEST_BUILD=1 pnpm test-init", - "debug-e2e": "DEBUG=1 vitest -r __tests__/e2e", - "debug-e2e-build": "VITE_TEST_BUILD=1 pnpm debug-e2e", - "unit-dev": "vitest -r __tests__/unit", - "e2e-dev": "wait-on -d 100 dist/node/cli.js && node ./bin/vitepress dev __tests__/e2e", + "format:fail": "prettier --check .", + "check": "run-s format:fail build test", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", - "release": "node scripts/release.js", - "docs": "run-p dev docs-dev", - "docs-dev": "wait-on -d 100 dist/node/cli.js && node ./bin/vitepress dev docs", - "docs-debug": "node --inspect-brk ./bin/vitepress dev docs", - "docs-build": "run-s build docs-build-only", - "docs-build-only": "node ./bin/vitepress build docs", - "docs-preview": "node ./bin/vitepress preview docs" + "release": "node scripts/release.js" }, "dependencies": { "@docsearch/css": "^3.5.1", @@ -99,7 +100,7 @@ "mark.js": "8.11.1", "minisearch": "^6.1.0", "shiki": "^0.14.2", - "vite": "^4.3.9", + "vite": "4.4.0-beta.2", "vue": "^3.3.4" }, "devDependencies": { @@ -136,7 +137,7 @@ "conventional-changelog-cli": "^2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", - "esbuild": "^0.18.5", + "esbuild": "^0.18.7", "escape-html": "^1.0.3", "execa": "^7.1.1", "fast-glob": "^3.2.12", @@ -168,14 +169,14 @@ "rollup": "^3.25.1", "rollup-plugin-dts": "^5.3.0", "rollup-plugin-esbuild": "^5.0.0", - "semver": "^7.5.2", + "semver": "^7.5.3", "shiki-processor": "^0.1.3", "simple-git-hooks": "^2.8.1", "sirv": "^2.0.3", "supports-color": "^9.3.1", "typescript": "^5.1.3", "vitest": "^0.32.2", - "vue-tsc": "^1.8.0", + "vue-tsc": "^1.8.1", "wait-on": "^7.0.1" }, "simple-git-hooks": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b872f0ab..c89d191e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,10 +13,10 @@ importers: version: 3.5.1 '@docsearch/js': specifier: ^3.5.1 - version: 3.5.1(@algolia/client-search@4.17.2)(search-insights@2.6.0) + version: 3.5.1(@algolia/client-search@4.18.0)(search-insights@2.6.0) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.2.3(vite@4.3.9)(vue@3.3.4) + version: 4.2.3(vite@4.4.0-beta.2)(vue@3.3.4) '@vue/devtools-api': specifier: ^6.5.0 version: 6.5.0 @@ -42,8 +42,8 @@ importers: specifier: ^0.14.2 version: 0.14.2 vite: - specifier: ^4.3.9 - version: 4.3.9(@types/node@20.3.1) + specifier: 4.4.0-beta.2 + version: 4.4.0-beta.2(@types/node@20.3.1) vue: specifier: ^3.3.4 version: 3.3.4 @@ -148,8 +148,8 @@ importers: specifier: ^4.3.4 version: 4.3.4(supports-color@9.3.1) esbuild: - specifier: ^0.18.5 - version: 0.18.5 + specifier: ^0.18.7 + version: 0.18.7 escape-html: specifier: ^1.0.3 version: 1.0.3 @@ -242,10 +242,10 @@ importers: version: 5.3.0(rollup@3.25.1)(typescript@5.1.3) rollup-plugin-esbuild: specifier: ^5.0.0 - version: 5.0.0(esbuild@0.18.5)(rollup@3.25.1)(supports-color@9.3.1) + version: 5.0.0(esbuild@0.18.7)(rollup@3.25.1)(supports-color@9.3.1) semver: - specifier: ^7.5.2 - version: 7.5.2 + specifier: ^7.5.3 + version: 7.5.3 shiki-processor: specifier: ^0.1.3 version: 0.1.3(shiki@0.14.2) @@ -265,8 +265,8 @@ importers: specifier: ^0.32.2 version: 0.32.2(supports-color@9.3.1) vue-tsc: - specifier: ^1.8.0 - version: 1.8.0(typescript@5.1.3) + specifier: ^1.8.1 + version: 1.8.1(typescript@5.1.3) wait-on: specifier: ^7.0.1 version: 7.0.1(debug@4.3.4) @@ -291,138 +291,138 @@ importers: packages: - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2)(search-insights@2.6.0): + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0)(search-insights@2.6.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2)(search-insights@2.6.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0)(search-insights@2.6.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights dev: false - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2)(search-insights@2.6.0): + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0)(search-insights@2.6.0): resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0) search-insights: 2.6.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch dev: false - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2): + /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0): resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2) - '@algolia/client-search': 4.17.2 - algoliasearch: 4.17.2 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0) + '@algolia/client-search': 4.18.0 + algoliasearch: 4.18.0 dev: false - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2): + /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0): resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/client-search': 4.17.2 - algoliasearch: 4.17.2 + '@algolia/client-search': 4.18.0 + algoliasearch: 4.18.0 dev: false - /@algolia/cache-browser-local-storage@4.17.2: - resolution: {integrity: sha512-ZkVN7K/JE+qMQbpR6h3gQOGR6yCJpmucSBCmH5YDxnrYbp2CbrVCu0Nr+FGVoWzMJNznj1waShkfQ9awERulLw==} + /@algolia/cache-browser-local-storage@4.18.0: + resolution: {integrity: sha512-rUAs49NLlO8LVLgGzM4cLkw8NJLKguQLgvFmBEe3DyzlinoqxzQMHfKZs6TSq4LZfw/z8qHvRo8NcTAAUJQLcw==} dependencies: - '@algolia/cache-common': 4.17.2 + '@algolia/cache-common': 4.18.0 dev: false - /@algolia/cache-common@4.17.2: - resolution: {integrity: sha512-fojbhYIS8ovfYs6hwZpy1O4mBfVRxNgAaZRqsdVQd54hU4MxYDYFCxagYX28lOBz7btcDHld6BMoWXvjzkx6iQ==} + /@algolia/cache-common@4.18.0: + resolution: {integrity: sha512-BmxsicMR4doGbeEXQu8yqiGmiyvpNvejYJtQ7rvzttEAMxOPoWEHrWyzBQw4x7LrBY9pMrgv4ZlUaF8PGzewHg==} dev: false - /@algolia/cache-in-memory@4.17.2: - resolution: {integrity: sha512-UYQcMzPurNi+cPYkuPemTZkjKAjdgAS1hagC5irujKbrYnN4yscK4TkOI5tX+O8/KegtJt3kOK07OIrJ2QDAAw==} + /@algolia/cache-in-memory@4.18.0: + resolution: {integrity: sha512-evD4dA1nd5HbFdufBxLqlJoob7E2ozlqJZuV3YlirNx5Na4q1LckIuzjNYZs2ddLzuTc/Xd5O3Ibf7OwPskHxw==} dependencies: - '@algolia/cache-common': 4.17.2 + '@algolia/cache-common': 4.18.0 dev: false - /@algolia/client-account@4.17.2: - resolution: {integrity: sha512-doSk89pBPDpDyKJSHFADIGa2XSGrBCj3QwPvqtRJXDADpN+OjW+eTR8r4hEs/7X4GGfjfAOAES8JgDx+fZntYw==} + /@algolia/client-account@4.18.0: + resolution: {integrity: sha512-XsDnlROr3+Z1yjxBJjUMfMazi1V155kVdte6496atvBgOEtwCzTs3A+qdhfsAnGUvaYfBrBkL0ThnhMIBCGcew==} dependencies: - '@algolia/client-common': 4.17.2 - '@algolia/client-search': 4.17.2 - '@algolia/transporter': 4.17.2 + '@algolia/client-common': 4.18.0 + '@algolia/client-search': 4.18.0 + '@algolia/transporter': 4.18.0 dev: false - /@algolia/client-analytics@4.17.2: - resolution: {integrity: sha512-V+DcXbOtD/hKwAR3qGQrtlrJ3q2f9OKfx843q744o4m3xHv5ueCAvGXB1znPsdaUrVDNAImcgEgqwI9x7EJbDw==} + /@algolia/client-analytics@4.18.0: + resolution: {integrity: sha512-chEUSN4ReqU7uRQ1C8kDm0EiPE+eJeAXiWcBwLhEynfNuTfawN9P93rSZktj7gmExz0C8XmkbBU19IQ05wCNrQ==} dependencies: - '@algolia/client-common': 4.17.2 - '@algolia/client-search': 4.17.2 - '@algolia/requester-common': 4.17.2 - '@algolia/transporter': 4.17.2 + '@algolia/client-common': 4.18.0 + '@algolia/client-search': 4.18.0 + '@algolia/requester-common': 4.18.0 + '@algolia/transporter': 4.18.0 dev: false - /@algolia/client-common@4.17.2: - resolution: {integrity: sha512-gKBUnjxi0ukJYIJxVREYGt1Dmj1B3RBYbfGWi0dIPp1BC1VvQm+BOuNwsIwmq/x3MPO+sGuK978eKiP3tZDvag==} + /@algolia/client-common@4.18.0: + resolution: {integrity: sha512-7N+soJFP4wn8tjTr3MSUT/U+4xVXbz4jmeRfWfVAzdAbxLAQbHa0o/POSdTvQ8/02DjCLelloZ1bb4ZFVKg7Wg==} dependencies: - '@algolia/requester-common': 4.17.2 - '@algolia/transporter': 4.17.2 + '@algolia/requester-common': 4.18.0 + '@algolia/transporter': 4.18.0 dev: false - /@algolia/client-personalization@4.17.2: - resolution: {integrity: sha512-wc4UgOWxSYWz5wpuelNmlt895jA9twjZWM2ms17Ws8qCvBHF7OVGdMGgbysPB8790YnfvvDnSsWOv3CEj26Eow==} + /@algolia/client-personalization@4.18.0: + resolution: {integrity: sha512-+PeCjODbxtamHcPl+couXMeHEefpUpr7IHftj4Y4Nia1hj8gGq4VlIcqhToAw8YjLeCTfOR7r7xtj3pJcYdP8A==} dependencies: - '@algolia/client-common': 4.17.2 - '@algolia/requester-common': 4.17.2 - '@algolia/transporter': 4.17.2 + '@algolia/client-common': 4.18.0 + '@algolia/requester-common': 4.18.0 + '@algolia/transporter': 4.18.0 dev: false - /@algolia/client-search@4.17.2: - resolution: {integrity: sha512-FUjIs+gRe0upJC++uVs4sdxMw15JxfkT86Gr/kqVwi9kcqaZhXntSbW/Fw959bIYXczjmeVQsilYvBWW4YvSZA==} + /@algolia/client-search@4.18.0: + resolution: {integrity: sha512-F9xzQXTjm6UuZtnsLIew6KSraXQ0AzS/Ee+OD+mQbtcA/K1sg89tqb8TkwjtiYZ0oij13u3EapB3gPZwm+1Y6g==} dependencies: - '@algolia/client-common': 4.17.2 - '@algolia/requester-common': 4.17.2 - '@algolia/transporter': 4.17.2 + '@algolia/client-common': 4.18.0 + '@algolia/requester-common': 4.18.0 + '@algolia/transporter': 4.18.0 dev: false - /@algolia/logger-common@4.17.2: - resolution: {integrity: sha512-EfXuweUE+1HiSMsQidaDWA5Lv4NnStYIlh7PO5pLkI+sdhbMX0e5AO5nUAMIFM1VkEANes70RA8fzhP6OqCqQQ==} + /@algolia/logger-common@4.18.0: + resolution: {integrity: sha512-46etYgSlkoKepkMSyaoriSn2JDgcrpc/nkOgou/lm0y17GuMl9oYZxwKKTSviLKI5Irk9nSKGwnBTQYwXOYdRg==} dev: false - /@algolia/logger-console@4.17.2: - resolution: {integrity: sha512-JuG8HGVlJ+l/UEDK4h2Y8q/IEmRjQz1J0aS9tf6GPNbGYiSvMr1DDdZ+hqV3bb1XE6wU8Ypex56HisWMSpnG0A==} + /@algolia/logger-console@4.18.0: + resolution: {integrity: sha512-3P3VUYMl9CyJbi/UU1uUNlf6Z8N2ltW3Oqhq/nR7vH0CjWv32YROq3iGWGxB2xt3aXobdUPXs6P0tHSKRmNA6g==} dependencies: - '@algolia/logger-common': 4.17.2 + '@algolia/logger-common': 4.18.0 dev: false - /@algolia/requester-browser-xhr@4.17.2: - resolution: {integrity: sha512-FKI2lYWwksALfRt2OETFmGb5+P7WVc4py2Ai3H7k8FSfTLwVvs9WVVmtlx6oANQ8RFEK4B85h8DQJTJ29TDfmA==} + /@algolia/requester-browser-xhr@4.18.0: + resolution: {integrity: sha512-/AcWHOBub2U4TE/bPi4Gz1XfuLK6/7dj4HJG+Z2SfQoS1RjNLshZclU3OoKIkFp8D2NC7+BNsPvr9cPLyW8nyQ==} dependencies: - '@algolia/requester-common': 4.17.2 + '@algolia/requester-common': 4.18.0 dev: false - /@algolia/requester-common@4.17.2: - resolution: {integrity: sha512-Rfim23ztAhYpE9qm+KCfCRo+YLJCjiiTG+IpDdzUjMpYPhUtirQT0A35YEd/gKn86YNyydxS9w8iRSjwKh+L0A==} + /@algolia/requester-common@4.18.0: + resolution: {integrity: sha512-xlT8R1qYNRBCi1IYLsx7uhftzdfsLPDGudeQs+xvYB4sQ3ya7+ppolB/8m/a4F2gCkEO6oxpp5AGemM7kD27jA==} dev: false - /@algolia/requester-node-http@4.17.2: - resolution: {integrity: sha512-E0b0kyCDMvUIhQmDNd/mH4fsKJdEEX6PkMKrYJjzm6moo+rP22tqpq4Rfe7DZD8OB6/LsDD3zs3Kvd+L+M5wwQ==} + /@algolia/requester-node-http@4.18.0: + resolution: {integrity: sha512-TGfwj9aeTVgOUhn5XrqBhwUhUUDnGIKlI0kCBMdR58XfXcfdwomka+CPIgThRbfYw04oQr31A6/95ZH2QVJ9UQ==} dependencies: - '@algolia/requester-common': 4.17.2 + '@algolia/requester-common': 4.18.0 dev: false - /@algolia/transporter@4.17.2: - resolution: {integrity: sha512-m8pXlz5OnNzjD1rcw+duCN4jG4yEzkJBsvKYMoN22Oq6rQwy1AY5muZ+IQUs4dL+A364CYkRMLRWhvXpCZ1x+g==} + /@algolia/transporter@4.18.0: + resolution: {integrity: sha512-xbw3YRUGtXQNG1geYFEDDuFLZt4Z8YNKbamHPkzr3rWc6qp4/BqEeXcI2u/P/oMq2yxtXgMxrCxOPA8lyIe5jw==} dependencies: - '@algolia/cache-common': 4.17.2 - '@algolia/logger-common': 4.17.2 - '@algolia/requester-common': 4.17.2 + '@algolia/cache-common': 4.18.0 + '@algolia/logger-common': 4.18.0 + '@algolia/requester-common': 4.18.0 dev: false /@babel/code-frame@7.22.5: @@ -485,10 +485,10 @@ packages: resolution: {integrity: sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==} dev: false - /@docsearch/js@3.5.1(@algolia/client-search@4.17.2)(search-insights@2.6.0): + /@docsearch/js@3.5.1(@algolia/client-search@4.18.0)(search-insights@2.6.0): resolution: {integrity: sha512-EXi8de5njxgP6TV3N9ytnGRLG9zmBNTEZjR4VzwPcpPLbZxxTLG2gaFyJyKiFVQxHW/DPlMrDJA3qoRRGEkgZw==} dependencies: - '@docsearch/react': 3.5.1(@algolia/client-search@4.17.2)(search-insights@2.6.0) + '@docsearch/react': 3.5.1(@algolia/client-search@4.18.0)(search-insights@2.6.0) preact: 10.15.1 transitivePeerDependencies: - '@algolia/client-search' @@ -498,7 +498,7 @@ packages: - search-insights dev: false - /@docsearch/react@3.5.1(@algolia/client-search@4.17.2)(search-insights@2.6.0): + /@docsearch/react@3.5.1(@algolia/client-search@4.18.0)(search-insights@2.6.0): resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -512,10 +512,10 @@ packages: react-dom: optional: true dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2)(search-insights@2.6.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.17.2)(algoliasearch@4.17.2) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0)(search-insights@2.6.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.18.0)(algoliasearch@4.18.0) '@docsearch/css': 3.5.1 - algoliasearch: 4.17.2 + algoliasearch: 4.18.0 transitivePeerDependencies: - '@algolia/client-search' - search-insights @@ -527,15 +527,15 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-arm64@0.18.5: - resolution: {integrity: sha512-410IPUj7ZOxZ2dwK0B7o7Nibu7YEyaLBvYOfYBpuA1TpY0fOkDM5r4bwn+hT8Uma06DBI4RnYNN09fn55PYInQ==} + /@esbuild/android-arm64@0.18.7: + resolution: {integrity: sha512-o0VVztxJPkfDYbaU1tA1G1iwKiBh6Zt3bX5OdHDoITMFdRg+Mgdt3nHXMEtNlIjYA/Xn6hmlOYDHjJfQUduPuw==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm@0.17.19: @@ -544,15 +544,15 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-arm@0.18.5: - resolution: {integrity: sha512-+8GXQzuASxGg/rb47Z5zJe3vjOfL7RRce/DILuk6kbB/8HO0p3CPo72CbR349P2K8YP1h5NvNqU+2GDRbNJylw==} + /@esbuild/android-arm@0.18.7: + resolution: {integrity: sha512-nDQ7AC5WVKOqxaip/E5YbaRgnilBMsoGKjoGLCeCOYNePaBCBDwJsLfa2fn3FEtktiLaAF990W592avsHjJ/Vg==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-x64@0.17.19: @@ -561,15 +561,15 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-x64@0.18.5: - resolution: {integrity: sha512-+fdfceCYwcz9OReheSWYOGaAAt03n0BnG5/UW9tyGyo15PjSOF14ylxfjvz+0atDx0S/RxyezMsH/mbnWhnC8w==} + /@esbuild/android-x64@0.18.7: + resolution: {integrity: sha512-ga8Dtpb01GorCi1dk3jEwDk3AK/3F+cR5P+//Tl0ERL2K2pK/J1f3t8hcJ+RRt3UYBV/uTL9GEnx7touX0KRPQ==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/darwin-arm64@0.17.19: @@ -578,15 +578,15 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true - /@esbuild/darwin-arm64@0.18.5: - resolution: {integrity: sha512-L7noeTaus5xEtgd5J7u/lGrZfSiYkvZb0gOD7rvKTuuWbdGM4bunz5DUFsWBbEIlloslpOO5PDy4Hnd6mZT20A==} + /@esbuild/darwin-arm64@0.18.7: + resolution: {integrity: sha512-FVDOdfgyGOOISpd0b+UtA6YNbu5+RzZu7kDztjVsA/iZhGnyxbCR/vZ+B2j5yxbMZ9j3iz5uFiHIq1sl6nrZ0Q==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-x64@0.17.19: @@ -595,15 +595,15 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true - /@esbuild/darwin-x64@0.18.5: - resolution: {integrity: sha512-eA39B8SxbxRdSSILD4AsePzvJiVao6ZaYrcTOJqg89jnnMEGR/EAh+ehV7E4GOx4WXQoWeJRP1P9JQSzIrROeg==} + /@esbuild/darwin-x64@0.18.7: + resolution: {integrity: sha512-w7aeD1UjDFXqyrZQLBIPYGmLR+gJsl+7QSwmSz+nVrCZOB7cyWEkIjCF8s4inUD3ja3WtKUIqzX5S4qDnU5q7Q==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-arm64@0.17.19: @@ -612,15 +612,15 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true - /@esbuild/freebsd-arm64@0.18.5: - resolution: {integrity: sha512-Eg1UnkTZHfsphgcy1Wj/McNModSO/F+kqtWqvtvEZc9BAgvdwxAt11BESgBczU+Gti0G2dLvHs0Sfb3gavwhGg==} + /@esbuild/freebsd-arm64@0.18.7: + resolution: {integrity: sha512-wKyySDdoKVOPn9eDci/b3eP3EJVAVXC3b2CiaHphhCKfh4n5pWLwj7Ue96anK1HnpcZ0Uti8Sw9xq3Im0earHA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-x64@0.17.19: @@ -629,15 +629,15 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true - /@esbuild/freebsd-x64@0.18.5: - resolution: {integrity: sha512-GNTMSJ55gl7Tf5VUqVRkMJhRGzH6vI9vFBfZCj4Zjm7RgfXCWxLnTyjMgZZKT8pOzW40KD2KlrGbqwnnJWyGWw==} + /@esbuild/freebsd-x64@0.18.7: + resolution: {integrity: sha512-rbfjbgSvzWRjQMKIntogK1d2oIAiA/ZVayXfK1WjcIIMQYLg74sAoT8CZBj30+bwn13YR0t6lgIxA1mJaS2Lhw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm64@0.17.19: @@ -646,15 +646,15 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-arm64@0.18.5: - resolution: {integrity: sha512-r08LmhqyPRj6FtuNPBTu8BliKh6h+oNEhMkWmmR/aWs4DWjDOivyDfLGznPdgtSThL23fk1QgSBUEbuCIzjA2A==} + /@esbuild/linux-arm64@0.18.7: + resolution: {integrity: sha512-cwfxKYroaD5BZ42NsfxdVU1issD2NxcuJHlCNsN5LtWq+kZMpwmIVDCJxKlgLIG7zH/4yq8lTuZJurxq058GsA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm@0.17.19: @@ -663,15 +663,15 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-arm@0.18.5: - resolution: {integrity: sha512-6R+vEIyfEvp+gOWKSc+m6hdnhWKQYzicqONQYiDGT6qepc6OGsLEZcyFwoz6BvFx5j233CBWMcJ69eXFrwXw9A==} + /@esbuild/linux-arm@0.18.7: + resolution: {integrity: sha512-GpUBqqJnQ+7qdb7NqKNVj7TgD2JnLrEdzPtatPow77Me/EQ01GE1tHKZLePqhf5thdLDb5Se2Kcf4D9WTbSjmw==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ia32@0.17.19: @@ -680,15 +680,15 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-ia32@0.18.5: - resolution: {integrity: sha512-ph6M9iEMc6BHgv2XuIE8qeQrQCH+2l116c8L9ysmmXYwpNXa3E7JNIu/O7hI0I9qDvh1P19AGbIh+/y0GAZijA==} + /@esbuild/linux-ia32@0.18.7: + resolution: {integrity: sha512-SsvsGStwbArBcB/XNh+2MvUtgOLp0CR6Hn1PBWcdApCuAaMibHCDyzHS06+u/YOD1UpeXFHJZphix61HeVMH/w==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64@0.17.19: @@ -697,15 +697,15 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-loong64@0.18.5: - resolution: {integrity: sha512-s6Nup5FMQ8R8OKJG2rSxtV40s8LRdfC73XGHGaFlGiC+2SeCyq4dl3MMfLdzLowYzyDjfc4GRrXWUNMX3kNxYA==} + /@esbuild/linux-loong64@0.18.7: + resolution: {integrity: sha512-WOqQ0eaWGE/e9vmbxFT2exbWuXxHuG8ld0fN7oX5f0v7W6oveUIF4DLJYVae93t1+Icv5R0NBo8wv/o4hEvxBQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-mips64el@0.17.19: @@ -714,15 +714,15 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-mips64el@0.18.5: - resolution: {integrity: sha512-DxW4nNDIGbivZxnJD01C5PlwKPpin8YgSwWtToCy4w4lNigT7Iaf5A+wcPT2laibdgbcgPKpPOXUg6RFGTt8xA==} + /@esbuild/linux-mips64el@0.18.7: + resolution: {integrity: sha512-/dKQ3OLr2Tmj0kuf4ZJioD+qnADUEJSBaiuDbk8v5602HnNNBSGHPrEB6S8PSb8y8jWsX9MMnxqk5KpLTf86OQ==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ppc64@0.17.19: @@ -731,15 +731,15 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-ppc64@0.18.5: - resolution: {integrity: sha512-BksOs2uYTafS+u75QiN4RoLbEMNjE192adJCBalncI3E2PWyR2i1kEs9rEghHK7pw0SD0uWgV9otRmV7G5b2lQ==} + /@esbuild/linux-ppc64@0.18.7: + resolution: {integrity: sha512-x/k1+daIqiGJt0Yhr5llFJ/zkRg1XAqcS2ntAYzS3pHogO8oIyc+LjsINgVyFCeFMFUZ9Ae9W5z2Ib05bMum3g==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-riscv64@0.17.19: @@ -748,15 +748,15 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-riscv64@0.18.5: - resolution: {integrity: sha512-mGv8BOJXsV7bZyjyMdeDs55CDXZ5vrY3oKa58DNRz2vPn54dREyj4BhhyWuqSuzSURJhFg7pM/1fI2vnAHGkHw==} + /@esbuild/linux-riscv64@0.18.7: + resolution: {integrity: sha512-LegTDzK9gL/sTkiZUGYLigTISwppZJvQL3MRmFgXgHrj3IzdWkPgMwEtOItK3YiFzhBSSNyKA0mSKEg4UuK8JQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-s390x@0.17.19: @@ -765,15 +765,15 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-s390x@0.18.5: - resolution: {integrity: sha512-m4uIYyrl5znGnNHgiM/Zsw6I9Se513NqdTxeUxZ66/VDWbuUp8ACe1KOSpwF4NNxfYy6Q3W8beZsIdF4F85q8Q==} + /@esbuild/linux-s390x@0.18.7: + resolution: {integrity: sha512-fjBl45O8ivc3Nl14hdGpbHoVtdHnYGsLpwnlv2rNyb5NOsgY3Y8EhVe/fqR9ndHgO4eL68knKxkrRveEJq+v1g==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-x64@0.17.19: @@ -782,15 +782,15 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-x64@0.18.5: - resolution: {integrity: sha512-R1C7X30YjXmOZYOzx4dJ/QvRNfrkK/sDCFfcGNhlHFX6B/iodJdk81h7EhnKVUQy+3BaARxF7udd91iSSzMlbQ==} + /@esbuild/linux-x64@0.18.7: + resolution: {integrity: sha512-apYLJsg3wd3hW8nEt7H++8c8rTDvwXxX7h7YeI89g1RDPCT2QSXTO/xT1BCvFa/BFFoau+yvepQg2o5556FIWQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-x64@0.17.19: @@ -799,15 +799,15 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true - /@esbuild/netbsd-x64@0.18.5: - resolution: {integrity: sha512-MABnKzjMcXjO0NEYyexOhqjcrgM6dE8BXnm+lctm2x2aPpYg5iL0Ew3aABSTZyp9dS3Z4VzFu5PPoOYEw8akTQ==} + /@esbuild/netbsd-x64@0.18.7: + resolution: {integrity: sha512-f82sUnrzdoW4MiiCDn1G3RSsPH8+no+okDhkHgGTGa+5F5wZCyxdXxzR6ctsiimvyPn9FIu9Zs+MesVsBRwyTw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-x64@0.17.19: @@ -816,15 +816,15 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true - /@esbuild/openbsd-x64@0.18.5: - resolution: {integrity: sha512-aU7R0tLIUMaQuAgBjKrq02Z98rcY9Pxk76hynSqcGeld2C/ro1uBbS2i9rh7vdwBAY0rG08Og4wnDnlx5rU+fQ==} + /@esbuild/openbsd-x64@0.18.7: + resolution: {integrity: sha512-1TNDfpFYhIloHeqSRbJFjHFMYtTJWgqI2+S9uCLVCWrADLl5tCe8vQKDfkM7Afz/lZyqi6qEX/Eg2KA5S7FcNQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/sunos-x64@0.17.19: @@ -833,15 +833,15 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true - /@esbuild/sunos-x64@0.18.5: - resolution: {integrity: sha512-ngm3fVv2VxufI8zH/Phk0mYkgvFjFGnS+l7uxxd20mmeLTNI/8OXDJpNqTUbvzJh3tqhI/Gof0N2+5xJbqEaxA==} + /@esbuild/sunos-x64@0.18.7: + resolution: {integrity: sha512-lBhsHaM6EYCmzQCj+xeFev+dgqTgpSRqF7qXrxp5V4waFuidTBbWgqSXY5rsLRNLOyMMCh1cA+RqF8UL30oOJQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /@esbuild/win32-arm64@0.17.19: @@ -850,15 +850,15 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true - /@esbuild/win32-arm64@0.18.5: - resolution: {integrity: sha512-XqpS89+MGLzR8YtQQkBYsLCfAv1ySflMb+FEH99rOp6kOPv/ORO+ujEB5ICDBZZbvYqB75uFrNELo1BVEQbS3g==} + /@esbuild/win32-arm64@0.18.7: + resolution: {integrity: sha512-p9ipv7rPKitXAAeufg5BzmyYZHZtFfrLGUX15+AxpTQqSZDAZd2wIusaOW5oONTf8RB53ujIqQw7W0QnZMuiUw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-ia32@0.17.19: @@ -867,15 +867,15 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true - /@esbuild/win32-ia32@0.18.5: - resolution: {integrity: sha512-V3xj/nb9uie0I4mn1f8nPZSgHldtNJrqTKYjTyMPMBnHbMYF5Loz8ZHsp7+La8kI6NxIF1ClQ9XBV+G3RtSkww==} + /@esbuild/win32-ia32@0.18.7: + resolution: {integrity: sha512-WmNxuE+j1wUT2rK+e1Oakx3zobS1rPpQudPytGM4nxXEGv0gpXEvnZnrykRwriNFbGVCwFJoE4txayjW76LsCw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-x64@0.17.19: @@ -884,15 +884,15 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true - /@esbuild/win32-x64@0.18.5: - resolution: {integrity: sha512-gMxWvQeTQWDpa8ExPP41al+Ho7HyK24h7y41JdGKqE24KzXXQPxESUtrCoIES+HwF+OGq2smtibU9UvZ8WH3JQ==} + /@esbuild/win32-x64@0.18.7: + resolution: {integrity: sha512-6RENfAwwL6dxQk/V1PxO/ejYRiOUVUaHi99hP3Dso/38jfNKFzU6YSSR/haJGNV/2wAHIgBMROQodna0IejAuA==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@hapi/hoek@9.3.0: @@ -1197,7 +1197,7 @@ packages: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.35 '@types/qs': 6.9.7 - '@types/serve-static': 1.15.1 + '@types/serve-static': 1.15.2 dev: true /@types/fs-extra@11.0.1: @@ -1207,6 +1207,10 @@ packages: '@types/node': 20.3.1 dev: true + /@types/http-errors@2.0.1: + resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} + dev: true + /@types/jquery@3.5.16: resolution: {integrity: sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==} dependencies: @@ -1313,9 +1317,10 @@ packages: '@types/node': 20.3.1 dev: true - /@types/serve-static@1.15.1: - resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} + /@types/serve-static@1.15.2: + resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} dependencies: + '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 '@types/node': 20.3.1 dev: true @@ -1328,14 +1333,14 @@ packages: resolution: {integrity: sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==} dev: false - /@vitejs/plugin-vue@4.2.3(vite@4.3.9)(vue@3.3.4): + /@vitejs/plugin-vue@4.2.3(vite@4.4.0-beta.2)(vue@3.3.4): resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.9(@types/node@20.3.1) + vite: 4.4.0-beta.2(@types/node@20.3.1) vue: 3.3.4 dev: false @@ -1378,22 +1383,22 @@ packages: pretty-format: 27.5.1 dev: true - /@volar/language-core@1.7.6: - resolution: {integrity: sha512-r+82YGjae8ALzaX+TaESpeBOrp/H5MQnPYZLq4WKd8rsPrCAPbMwelwHLHhFpyjy66BK/cKreJAcvOc6YEwyFA==} + /@volar/language-core@1.7.8: + resolution: {integrity: sha512-TPklg4c2e/f1xB/MGZEiQc3AWG+dH64ZfBlYjFB8nNaWJt4Z4k+IHBhmaP52APG+5PHFerwiWI9oF002RrRTPA==} dependencies: - '@volar/source-map': 1.7.6 + '@volar/source-map': 1.7.8 dev: true - /@volar/source-map@1.7.6: - resolution: {integrity: sha512-6oGrgz+hg5GCzP8D2+ay7vOdIOA9/aXwpa22Wx5b6d4ZGwwosBqv7kVs8AyMh5zOSQpKhrImE1pfagpu+V+rBQ==} + /@volar/source-map@1.7.8: + resolution: {integrity: sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript@1.7.6: - resolution: {integrity: sha512-JkBRQe2GYSEgamW84tDk4XQ/7abQJw09czLQCgL1jfjndhaV4DuAet2I3pvQv41OjodVc59W0+E3hylrlNsgWA==} + /@volar/typescript@1.7.8: + resolution: {integrity: sha512-NDcI5ZQcdr8kgxzMQrhSSWIM8Tl0MbMFrkvJPTjfm2rdAQZPFT8zv3LrEW9Fqh0e9z2YbCry7jr4a/GShBqeDA==} dependencies: - '@volar/language-core': 1.7.6 + '@volar/language-core': 1.7.8 dev: true /@vue/compiler-core@3.3.4: @@ -1436,20 +1441,20 @@ packages: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} dev: false - /@vue/language-core@1.8.0(typescript@5.1.3): - resolution: {integrity: sha512-rOAtqIRyyZ6OQreAkFDbbDt7L5BwvzrdbWaBAoEZjr4ImPBV9cRDBHxlMBU0SBOAZxIUQdjOvQ0uAl9uZDer0w==} + /@vue/language-core@1.8.1(typescript@5.1.3): + resolution: {integrity: sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.7.6 - '@volar/source-map': 1.7.6 + '@volar/language-core': 1.7.8 + '@volar/source-map': 1.7.8 '@vue/compiler-dom': 3.3.4 '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 - minimatch: 9.0.1 + minimatch: 9.0.2 muggle-string: 0.3.1 typescript: 5.1.3 vue-template-compiler: 2.7.14 @@ -1498,11 +1503,11 @@ packages: /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - /@vue/typescript@1.8.0(typescript@5.1.3): - resolution: {integrity: sha512-swi0NM+dpZCldXkMGS8wCxvoiRgA0PJw0UQeSTA7PqB2/5LsOQ8pmxyqLPE6YsbEdn0XqI9a7QgKOmmElkaMOA==} + /@vue/typescript@1.8.1(typescript@5.1.3): + resolution: {integrity: sha512-nQpo55j/roie8heCfqyXHnyayqD5+p4/0fzfxH4ZuHf7NSBQS791PNv7ztp2CCOjnGAiaiCMdtC9rc6oriyPUg==} dependencies: - '@volar/typescript': 1.7.6 - '@vue/language-core': 1.8.0(typescript@5.1.3) + '@volar/typescript': 1.7.8 + '@vue/language-core': 1.8.1(typescript@5.1.3) transitivePeerDependencies: - typescript dev: true @@ -1621,23 +1626,23 @@ packages: indent-string: 4.0.0 dev: true - /algoliasearch@4.17.2: - resolution: {integrity: sha512-VFu43JJNYIW74awp7oeQcQsPcxOhd8psqBDTfyNO2Zt6L1NqnNMTVnaIdQ+8dtKqUDBqQZp0szPxECvX8CK2Fg==} - dependencies: - '@algolia/cache-browser-local-storage': 4.17.2 - '@algolia/cache-common': 4.17.2 - '@algolia/cache-in-memory': 4.17.2 - '@algolia/client-account': 4.17.2 - '@algolia/client-analytics': 4.17.2 - '@algolia/client-common': 4.17.2 - '@algolia/client-personalization': 4.17.2 - '@algolia/client-search': 4.17.2 - '@algolia/logger-common': 4.17.2 - '@algolia/logger-console': 4.17.2 - '@algolia/requester-browser-xhr': 4.17.2 - '@algolia/requester-common': 4.17.2 - '@algolia/requester-node-http': 4.17.2 - '@algolia/transporter': 4.17.2 + /algoliasearch@4.18.0: + resolution: {integrity: sha512-pCuVxC1SVcpc08ENH32T4sLKSyzoU7TkRIDBMwSLfIiW+fq4znOmWDkAygHZ6pRcO9I1UJdqlfgnV7TRj+MXrA==} + dependencies: + '@algolia/cache-browser-local-storage': 4.18.0 + '@algolia/cache-common': 4.18.0 + '@algolia/cache-in-memory': 4.18.0 + '@algolia/client-account': 4.18.0 + '@algolia/client-analytics': 4.18.0 + '@algolia/client-common': 4.18.0 + '@algolia/client-personalization': 4.18.0 + '@algolia/client-search': 4.18.0 + '@algolia/logger-common': 4.18.0 + '@algolia/logger-console': 4.18.0 + '@algolia/requester-browser-xhr': 4.18.0 + '@algolia/requester-common': 4.18.0 + '@algolia/requester-node-http': 4.18.0 + '@algolia/transporter': 4.18.0 dev: false /ansi-escapes@4.3.2: @@ -2020,7 +2025,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.5.2 + semver: 7.5.3 well-known-symbols: 2.0.0 dev: true @@ -2424,36 +2429,36 @@ packages: '@esbuild/win32-arm64': 0.17.19 '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 + dev: true - /esbuild@0.18.5: - resolution: {integrity: sha512-ztF1Z53Mc8ijEo1ZWFduHZXIqRWufo76JHm1ikvhGjIzO1mj84LdKXSGmRzahfgvWSwky48MkT+o5yUIkQtDPA==} + /esbuild@0.18.7: + resolution: {integrity: sha512-46V0EFvQ/urmruUCChD1e0SZJWM0Ulny5F+uf5QkBry97HfvgvZTnjpTrwmw0+CGRhqTh9zpFeB+W8WGIEXOAQ==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.5 - '@esbuild/android-arm64': 0.18.5 - '@esbuild/android-x64': 0.18.5 - '@esbuild/darwin-arm64': 0.18.5 - '@esbuild/darwin-x64': 0.18.5 - '@esbuild/freebsd-arm64': 0.18.5 - '@esbuild/freebsd-x64': 0.18.5 - '@esbuild/linux-arm': 0.18.5 - '@esbuild/linux-arm64': 0.18.5 - '@esbuild/linux-ia32': 0.18.5 - '@esbuild/linux-loong64': 0.18.5 - '@esbuild/linux-mips64el': 0.18.5 - '@esbuild/linux-ppc64': 0.18.5 - '@esbuild/linux-riscv64': 0.18.5 - '@esbuild/linux-s390x': 0.18.5 - '@esbuild/linux-x64': 0.18.5 - '@esbuild/netbsd-x64': 0.18.5 - '@esbuild/openbsd-x64': 0.18.5 - '@esbuild/sunos-x64': 0.18.5 - '@esbuild/win32-arm64': 0.18.5 - '@esbuild/win32-ia32': 0.18.5 - '@esbuild/win32-x64': 0.18.5 - dev: true + '@esbuild/android-arm': 0.18.7 + '@esbuild/android-arm64': 0.18.7 + '@esbuild/android-x64': 0.18.7 + '@esbuild/darwin-arm64': 0.18.7 + '@esbuild/darwin-x64': 0.18.7 + '@esbuild/freebsd-arm64': 0.18.7 + '@esbuild/freebsd-x64': 0.18.7 + '@esbuild/linux-arm': 0.18.7 + '@esbuild/linux-arm64': 0.18.7 + '@esbuild/linux-ia32': 0.18.7 + '@esbuild/linux-loong64': 0.18.7 + '@esbuild/linux-mips64el': 0.18.7 + '@esbuild/linux-ppc64': 0.18.7 + '@esbuild/linux-riscv64': 0.18.7 + '@esbuild/linux-s390x': 0.18.7 + '@esbuild/linux-x64': 0.18.7 + '@esbuild/netbsd-x64': 0.18.7 + '@esbuild/openbsd-x64': 0.18.7 + '@esbuild/sunos-x64': 0.18.7 + '@esbuild/win32-arm64': 0.18.7 + '@esbuild/win32-ia32': 0.18.7 + '@esbuild/win32-x64': 0.18.7 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -2724,14 +2729,14 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.2.7: - resolution: {integrity: sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA==} + /glob@10.3.0: + resolution: {integrity: sha512-AQ1/SB9HH0yCx1jXAT4vmCbTOPe5RQ+kCurjbel5xSCGhebumUv+GJZfa1rEqor3XIViqwSEmlkZCQD43RWrBg==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.2.1 - minimatch: 9.0.1 + minimatch: 9.0.2 minipass: 6.0.2 path-scurry: 1.9.2 dev: true @@ -3476,8 +3481,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.1: - resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + /minimatch@9.0.2: + resolution: {integrity: sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -3505,8 +3510,8 @@ packages: resolution: {integrity: sha512-PNxA/X8pWk+TiqPbsoIYH0GQ5Di7m6326/lwU/S4mlo4wGQddIcf/V//1f9TB0V4j59b57b+HZxt8h3iMROGvg==} dev: false - /mlly@1.3.0: - resolution: {integrity: sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==} + /mlly@1.4.0: + resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} dependencies: acorn: 8.9.0 pathe: 1.1.1 @@ -3575,7 +3580,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.12.1 - semver: 7.5.2 + semver: 7.5.3 validate-npm-package-license: 3.0.4 dev: true @@ -3845,7 +3850,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.3.0 + mlly: 1.4.0 pathe: 1.1.1 dev: true @@ -4064,7 +4069,7 @@ packages: engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.2.7 + glob: 10.3.0 dev: true /rollup-plugin-dts@5.3.0(rollup@3.25.1)(typescript@5.1.3): @@ -4081,7 +4086,7 @@ packages: '@babel/code-frame': 7.22.5 dev: true - /rollup-plugin-esbuild@5.0.0(esbuild@0.18.5)(rollup@3.25.1)(supports-color@9.3.1): + /rollup-plugin-esbuild@5.0.0(esbuild@0.18.7)(rollup@3.25.1)(supports-color@9.3.1): resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} peerDependencies: @@ -4091,7 +4096,7 @@ packages: '@rollup/pluginutils': 5.0.2(rollup@3.25.1) debug: 4.3.4(supports-color@9.3.1) es-module-lexer: 1.3.0 - esbuild: 0.18.5 + esbuild: 0.18.7 joycon: 3.1.1 jsonc-parser: 3.2.0 rollup: 3.25.1 @@ -4157,8 +4162,8 @@ packages: hasBin: true dev: true - /semver@7.5.2: - resolution: {integrity: sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==} + /semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -4658,7 +4663,7 @@ packages: dependencies: cac: 6.7.14 debug: 4.3.4(supports-color@9.3.1) - mlly: 1.3.0 + mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 vite: 4.3.9(@types/node@20.3.1) @@ -4703,6 +4708,43 @@ packages: rollup: 3.25.1 optionalDependencies: fsevents: 2.3.2 + dev: true + + /vite@4.4.0-beta.2(@types/node@20.3.1): + resolution: {integrity: sha512-wDISz2ET2q0QhmnKgkw9LGmjV3roie30ryb83b9r/UJ2JnXEXkaiCoWam5KzZning+7y5/W5XQ/VjHG5C50wtA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.3.1 + esbuild: 0.18.7 + postcss: 8.4.24 + rollup: 3.25.1 + optionalDependencies: + fsevents: 2.3.2 + dev: false /vitest@0.32.2(supports-color@9.3.1): resolution: {integrity: sha512-hU8GNNuQfwuQmqTLfiKcqEhZY72Zxb7nnN07koCUNmntNxbKQnVbeIS6sqUgR3eXSlbOpit8+/gr1KpqoMgWCQ==} @@ -4775,10 +4817,6 @@ packages: /vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - /vscode-uri@3.0.7: - resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} - dev: true - /vue-demi@0.14.5(vue@3.3.4): resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} engines: {node: '>=12'} @@ -4801,17 +4839,16 @@ packages: he: 1.2.0 dev: true - /vue-tsc@1.8.0(typescript@5.1.3): - resolution: {integrity: sha512-zRjRghohec71o+o3dzzqwFLtbKmJ1K1xRnq9ToHRdnHbBSZA2eUaTT1o+y4xOkBLZtW4cv7FkZE0FGCZfMrcBw==} + /vue-tsc@1.8.1(typescript@5.1.3): + resolution: {integrity: sha512-GxBQrcb0Qvyrj1uZqnTXQyWbXdNDRY2MTa+r7ESgjhf+WzBSdxZfkS3KD/C3WhKYG+aN8hf44Hp5Gqzb6PehAA==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.0(typescript@5.1.3) - '@vue/typescript': 1.8.0(typescript@5.1.3) - semver: 7.5.2 + '@vue/language-core': 1.8.1(typescript@5.1.3) + '@vue/typescript': 1.8.1(typescript@5.1.3) + semver: 7.5.3 typescript: 5.1.3 - vscode-uri: 3.0.7 dev: true /vue@3.3.4: diff --git a/src/node/plugin.ts b/src/node/plugin.ts index 5e823cb9..748f8b8e 100644 --- a/src/node/plugin.ts +++ b/src/node/plugin.ts @@ -133,7 +133,7 @@ export async function createVitePressPlugin( }, optimizeDeps: { // force include vue to avoid duplicated copies when linked + optimized - include: ['vue'], + include: ['vue', 'vitepress > @vue/devtools-api'], exclude: ['@docsearch/js', 'vitepress'] }, server: {