diff --git a/__tests__/e2e/.vitepress/config.ts b/__tests__/e2e/.vitepress/config.ts
index 84fc64f2..e4e503a6 100644
--- a/__tests__/e2e/.vitepress/config.ts
+++ b/__tests__/e2e/.vitepress/config.ts
@@ -86,6 +86,11 @@ const sidebar: DefaultTheme.Config['sidebar'] = {
export default defineConfig({
title: 'Example',
description: 'An example app using VitePress.',
+ markdown: {
+ image: {
+ lazyLoading: true
+ }
+ },
themeConfig: {
sidebar,
search: {
diff --git a/__tests__/e2e/markdown-extensions/index.md b/__tests__/e2e/markdown-extensions/index.md
index 36d6c028..47246c18 100644
--- a/__tests__/e2e/markdown-extensions/index.md
+++ b/__tests__/e2e/markdown-extensions/index.md
@@ -196,3 +196,7 @@ export default config
## Markdown File Inclusion with Range without End
+
+## Image Lazy Loading
+
+
\ No newline at end of file
diff --git a/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts b/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts
index 42a89891..23b8b1a0 100644
--- a/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts
+++ b/__tests__/e2e/markdown-extensions/markdown-extensions.test.ts
@@ -65,7 +65,7 @@ describe('Table of Contents', () => {
test('render toc', async () => {
const items = page.locator('#table-of-contents + nav ul li')
const count = await items.count()
- expect(count).toBe(35)
+ expect(count).toBe(36)
})
})
@@ -280,3 +280,10 @@ describe('Markdown File Inclusion', () => {
expect(await p.textContent()).not.toContain('title')
})
})
+
+describe('Image Lazy Loading', () => {
+ test('render loading="lazy" in the
tag', async () => {
+ const img = page.locator('#image-lazy-loading + p img')
+ expect(await img.getAttribute('loading')).toBe('lazy')
+ })
+})
diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md
index 8cd9d4ed..ef3cc0e8 100644
--- a/docs/guide/markdown.md
+++ b/docs/guide/markdown.md
@@ -847,6 +847,21 @@ $$ x = {-b \pm \sqrt{b^2-4ac} \over 2a} $$
| $\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} = \vec{\mathbf{0}}$ | curl of $\vec{\mathbf{E}}$ is proportional to the rate of change of $\vec{\mathbf{B}}$ |
| $\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} = \frac{4\pi}{c}\vec{\mathbf{j}} \nabla \cdot \vec{\mathbf{E}} = 4 \pi \rho$ | _wha?_ |
+## Image Lazy Loading
+
+You can enable lazy loading for each image added via markdown by setting `lazyLoading` to `true` in your config file:
+
+```js
+export default {
+ markdown: {
+ image: {
+ // image lazy loading is disabled by default
+ lazyLoading: true
+ }
+ }
+}
+```
+
## Advanced Configuration
VitePress uses [markdown-it](https://github.com/markdown-it/markdown-it) as the Markdown renderer. A lot of the extensions above are implemented via custom plugins. You can further customize the `markdown-it` instance using the `markdown` option in `.vitepress/config.js`:
diff --git a/docs/reference/default-theme-config.md b/docs/reference/default-theme-config.md
index 8402dc08..fb6d30b5 100644
--- a/docs/reference/default-theme-config.md
+++ b/docs/reference/default-theme-config.md
@@ -406,6 +406,20 @@ export interface DocFooter {
Can be used to customize the dark mode switch label. This label is only displayed in the mobile view.
+## lightModeSwitchTitle
+
+- Type: `string`
+- Default: `Switch to light theme`
+
+Can be used to customize the light mode switch title that appears on hovering.
+
+## darkModeSwitchTitle
+
+- Type: `string`
+- Default: `Switch to dark theme`
+
+Can be used to customize the dark mode switch title that appears on hovering.
+
## sidebarMenuLabel
- Type: `string`
diff --git a/docs/reference/site-config.md b/docs/reference/site-config.md
index b5e124d2..1cf9d726 100644
--- a/docs/reference/site-config.md
+++ b/docs/reference/site-config.md
@@ -24,6 +24,62 @@ export default {
}
```
+:::details Dynamic (Async) Config
+
+If you need to dynamically generate the config, you can also default export a function. For example:
+
+```ts
+import { defineConfig } from 'vitepress'
+
+export default async () => defineConfig({
+ const posts = await (await fetch('https://my-cms.com/blog-posts')).json()
+
+ return {
+ // app level config options
+ lang: 'en-US',
+ title: 'VitePress',
+ description: 'Vite & Vue powered static site generator.',
+
+ // theme level config options
+ themeConfig: {
+ sidebar: [
+ ...posts.map((post) => ({
+ text: post.name,
+ link: `/posts/${post.name}`
+ }))
+ ]
+ }
+ }
+})
+```
+
+You can also use top-level `await`. For example:
+
+```ts
+import { defineConfig } from 'vitepress'
+
+const posts = await (await fetch('https://my-cms.com/blog-posts')).json()
+
+export default defineConfig({
+ // app level config options
+ lang: 'en-US',
+ title: 'VitePress',
+ description: 'Vite & Vue powered static site generator.',
+
+ // theme level config options
+ themeConfig: {
+ sidebar: [
+ ...posts.map((post) => ({
+ text: post.name,
+ link: `/posts/${post.name}`
+ }))
+ ]
+ }
+})
+```
+
+:::
+
### Config Intellisense
Using the `defineConfig` helper will provide TypeScript-powered intellisense for config options. Assuming your IDE supports it, this should work in both JavaScript and TypeScript.
diff --git a/package.json b/package.json
index bfc8ec25..a812adf1 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "1.0.0-rc.33",
"description": "Vite & Vue powered static site generator",
"type": "module",
- "packageManager": "pnpm@8.12.1",
+ "packageManager": "pnpm@8.13.1",
"main": "dist/node/index.js",
"types": "types/index.d.ts",
"exports": {
@@ -93,18 +93,19 @@
"@docsearch/css": "^3.5.2",
"@docsearch/js": "^3.5.2",
"@types/markdown-it": "^13.0.7",
- "@vitejs/plugin-vue": "^5.0.0",
+ "@vitejs/plugin-vue": "^5.0.2",
"@vue/devtools-api": "^6.5.1",
- "@vueuse/core": "^10.7.0",
- "@vueuse/integrations": "^10.7.0",
+ "@vueuse/core": "^10.7.1",
+ "@vueuse/integrations": "^10.7.1",
"focus-trap": "^7.5.4",
"mark.js": "8.11.1",
"minisearch": "^6.3.0",
"mrmime": "^2.0.0",
- "shikiji": "^0.9.12",
- "shikiji-transformers": "^0.9.12",
+ "shikiji": "^0.9.15",
+ "shikiji-core": "^0.9.15",
+ "shikiji-transformers": "^0.9.15",
"vite": "^5.0.10",
- "vue": "^3.4.0-rc.2"
+ "vue": "^3.4.3"
},
"peerDependencies": {
"markdown-it-mathjax3": "^4.3.2",
@@ -144,16 +145,16 @@
"@types/markdown-it-emoji": "^2.0.4",
"@types/micromatch": "^4.0.6",
"@types/minimist": "^1.2.5",
- "@types/node": "^20.10.5",
+ "@types/node": "^20.10.6",
"@types/postcss-prefix-selector": "^1.16.3",
"@types/prompts": "^2.4.9",
- "@vue/shared": "^3.3.13",
+ "@vue/shared": "^3.4.3",
"chokidar": "^3.5.3",
"compression": "^1.7.4",
"conventional-changelog-cli": "^4.1.0",
"cross-spawn": "^7.0.3",
"debug": "^4.3.4",
- "esbuild": "^0.19.10",
+ "esbuild": "^0.19.11",
"escape-html": "^1.0.3",
"execa": "^8.0.1",
"fast-glob": "^3.3.2",
@@ -174,7 +175,7 @@
"nanoid": "^5.0.4",
"npm-run-all": "^4.1.5",
"ora": "^8.0.1",
- "p-map": "^7.0.0",
+ "p-map": "^7.0.1",
"path-to-regexp": "^6.2.1",
"picocolors": "^1.0.0",
"pkg-dir": "^8.0.0",
@@ -185,18 +186,17 @@
"prompts": "^2.4.2",
"punycode": "^2.3.1",
"rimraf": "^5.0.5",
- "rollup": "^4.9.1",
+ "rollup": "^4.9.2",
"rollup-plugin-dts": "^6.1.0",
"rollup-plugin-esbuild": "^6.1.0",
"semver": "^7.5.4",
- "shikiji-core": "^0.9.12",
"simple-git-hooks": "^2.9.0",
"sirv": "^2.0.4",
"sitemap": "^7.1.1",
"supports-color": "^9.4.0",
"typescript": "^5.3.3",
"vitest": "^1.1.0",
- "vue-tsc": "^1.8.26",
+ "vue-tsc": "^1.8.27",
"wait-on": "^7.2.0"
},
"simple-git-hooks": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ba4c0aaf..13c8f4d2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -21,17 +21,17 @@ importers:
specifier: ^13.0.7
version: 13.0.7
'@vitejs/plugin-vue':
- specifier: ^5.0.0
- version: 5.0.0(vite@5.0.10)(vue@3.4.0-rc.2)
+ specifier: ^5.0.2
+ version: 5.0.2(vite@5.0.10)(vue@3.4.3)
'@vue/devtools-api':
specifier: ^6.5.1
version: 6.5.1
'@vueuse/core':
- specifier: ^10.7.0
- version: 10.7.0(vue@3.4.0-rc.2)
+ specifier: ^10.7.1
+ version: 10.7.1(vue@3.4.3)
'@vueuse/integrations':
- specifier: ^10.7.0
- version: 10.7.0(focus-trap@7.5.4)(vue@3.4.0-rc.2)
+ specifier: ^10.7.1
+ version: 10.7.1(focus-trap@7.5.4)(vue@3.4.3)
focus-trap:
specifier: ^7.5.4
version: 7.5.4
@@ -45,17 +45,20 @@ importers:
specifier: ^2.0.0
version: 2.0.0
shikiji:
- specifier: ^0.9.12
- version: 0.9.12
+ specifier: ^0.9.15
+ version: 0.9.15
+ shikiji-core:
+ specifier: ^0.9.15
+ version: 0.9.15
shikiji-transformers:
- specifier: ^0.9.12
- version: 0.9.12
+ specifier: ^0.9.15
+ version: 0.9.15
vite:
specifier: ^5.0.10
- version: 5.0.10(@types/node@20.10.5)
+ version: 5.0.10(@types/node@20.10.6)
vue:
- specifier: ^3.4.0-rc.2
- version: 3.4.0-rc.2(typescript@5.3.3)
+ specifier: ^3.4.3
+ version: 3.4.3(typescript@5.3.3)
devDependencies:
'@clack/prompts':
specifier: ^0.7.0
@@ -83,19 +86,19 @@ importers:
version: 2.0.0
'@rollup/plugin-alias':
specifier: ^5.1.0
- version: 5.1.0(rollup@4.9.1)
+ version: 5.1.0(rollup@4.9.2)
'@rollup/plugin-commonjs':
specifier: ^25.0.7
- version: 25.0.7(rollup@4.9.1)
+ version: 25.0.7(rollup@4.9.2)
'@rollup/plugin-json':
specifier: ^6.1.0
- version: 6.1.0(rollup@4.9.1)
+ version: 6.1.0(rollup@4.9.2)
'@rollup/plugin-node-resolve':
specifier: ^15.2.3
- version: 15.2.3(rollup@4.9.1)
+ version: 15.2.3(rollup@4.9.2)
'@rollup/plugin-replace':
specifier: ^5.0.5
- version: 5.0.5(rollup@4.9.1)
+ version: 5.0.5(rollup@4.9.2)
'@types/compression':
specifier: ^1.7.5
version: 1.7.5
@@ -133,8 +136,8 @@ importers:
specifier: ^1.2.5
version: 1.2.5
'@types/node':
- specifier: ^20.10.5
- version: 20.10.5
+ specifier: ^20.10.6
+ version: 20.10.6
'@types/postcss-prefix-selector':
specifier: ^1.16.3
version: 1.16.3
@@ -142,8 +145,8 @@ importers:
specifier: ^2.4.9
version: 2.4.9
'@vue/shared':
- specifier: ^3.3.13
- version: 3.3.13
+ specifier: ^3.4.3
+ version: 3.4.3
chokidar:
specifier: ^3.5.3
version: 3.5.3
@@ -160,8 +163,8 @@ importers:
specifier: ^4.3.4
version: 4.3.4(supports-color@9.4.0)
esbuild:
- specifier: ^0.19.10
- version: 0.19.10
+ specifier: ^0.19.11
+ version: 0.19.11
escape-html:
specifier: ^1.0.3
version: 1.0.3
@@ -223,8 +226,8 @@ importers:
specifier: ^8.0.1
version: 8.0.1
p-map:
- specifier: ^7.0.0
- version: 7.0.0
+ specifier: ^7.0.1
+ version: 7.0.1
path-to-regexp:
specifier: ^6.2.1
version: 6.2.1
@@ -256,20 +259,17 @@ importers:
specifier: ^5.0.5
version: 5.0.5
rollup:
- specifier: ^4.9.1
- version: 4.9.1
+ specifier: ^4.9.2
+ version: 4.9.2
rollup-plugin-dts:
specifier: ^6.1.0
- version: 6.1.0(rollup@4.9.1)(typescript@5.3.3)
+ version: 6.1.0(rollup@4.9.2)(typescript@5.3.3)
rollup-plugin-esbuild:
specifier: ^6.1.0
- version: 6.1.0(esbuild@0.19.10)(rollup@4.9.1)(supports-color@9.4.0)
+ version: 6.1.0(esbuild@0.19.11)(rollup@4.9.2)(supports-color@9.4.0)
semver:
specifier: ^7.5.4
version: 7.5.4
- shikiji-core:
- specifier: ^0.9.12
- version: 0.9.12
simple-git-hooks:
specifier: ^2.9.0
version: 2.9.0
@@ -287,10 +287,10 @@ importers:
version: 5.3.3
vitest:
specifier: ^1.1.0
- version: 1.1.0(@types/node@20.10.5)(supports-color@9.4.0)
+ version: 1.1.0(@types/node@20.10.6)(supports-color@9.4.0)
vue-tsc:
- specifier: ^1.8.26
- version: 1.8.26(typescript@5.3.3)
+ specifier: ^1.8.27
+ version: 1.8.27(typescript@5.3.3)
wait-on:
specifier: ^7.2.0
version: 7.2.0(debug@4.3.4)
@@ -558,184 +558,184 @@ packages:
- '@algolia/client-search'
dev: false
- /@esbuild/aix-ppc64@0.19.10:
- resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==}
+ /@esbuild/aix-ppc64@0.19.11:
+ resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [aix]
requiresBuild: true
optional: true
- /@esbuild/android-arm64@0.19.10:
- resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==}
+ /@esbuild/android-arm64@0.19.11:
+ resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
optional: true
- /@esbuild/android-arm@0.19.10:
- resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==}
+ /@esbuild/android-arm@0.19.11:
+ resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
requiresBuild: true
optional: true
- /@esbuild/android-x64@0.19.10:
- resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==}
+ /@esbuild/android-x64@0.19.11:
+ resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
optional: true
- /@esbuild/darwin-arm64@0.19.10:
- resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==}
+ /@esbuild/darwin-arm64@0.19.11:
+ resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
optional: true
- /@esbuild/darwin-x64@0.19.10:
- resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==}
+ /@esbuild/darwin-x64@0.19.11:
+ resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
optional: true
- /@esbuild/freebsd-arm64@0.19.10:
- resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==}
+ /@esbuild/freebsd-arm64@0.19.11:
+ resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
optional: true
- /@esbuild/freebsd-x64@0.19.10:
- resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==}
+ /@esbuild/freebsd-x64@0.19.11:
+ resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
optional: true
- /@esbuild/linux-arm64@0.19.10:
- resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==}
+ /@esbuild/linux-arm64@0.19.11:
+ resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-arm@0.19.10:
- resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==}
+ /@esbuild/linux-arm@0.19.11:
+ resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-ia32@0.19.10:
- resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==}
+ /@esbuild/linux-ia32@0.19.11:
+ resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-loong64@0.19.10:
- resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==}
+ /@esbuild/linux-loong64@0.19.11:
+ resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-mips64el@0.19.10:
- resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==}
+ /@esbuild/linux-mips64el@0.19.11:
+ resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-ppc64@0.19.10:
- resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==}
+ /@esbuild/linux-ppc64@0.19.11:
+ resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-riscv64@0.19.10:
- resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==}
+ /@esbuild/linux-riscv64@0.19.11:
+ resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-s390x@0.19.10:
- resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==}
+ /@esbuild/linux-s390x@0.19.11:
+ resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/linux-x64@0.19.10:
- resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==}
+ /@esbuild/linux-x64@0.19.11:
+ resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
- /@esbuild/netbsd-x64@0.19.10:
- resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==}
+ /@esbuild/netbsd-x64@0.19.11:
+ resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
optional: true
- /@esbuild/openbsd-x64@0.19.10:
- resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==}
+ /@esbuild/openbsd-x64@0.19.11:
+ resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
optional: true
- /@esbuild/sunos-x64@0.19.10:
- resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==}
+ /@esbuild/sunos-x64@0.19.11:
+ resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
optional: true
- /@esbuild/win32-arm64@0.19.10:
- resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==}
+ /@esbuild/win32-arm64@0.19.11:
+ resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
optional: true
- /@esbuild/win32-ia32@0.19.10:
- resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==}
+ /@esbuild/win32-ia32@0.19.11:
+ resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
optional: true
- /@esbuild/win32-x64@0.19.10:
- resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==}
+ /@esbuild/win32-x64@0.19.11:
+ resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@@ -874,7 +874,7 @@ packages:
resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
dev: true
- /@rollup/plugin-alias@5.1.0(rollup@4.9.1):
+ /@rollup/plugin-alias@5.1.0(rollup@4.9.2):
resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -883,11 +883,11 @@ packages:
rollup:
optional: true
dependencies:
- rollup: 4.9.1
+ rollup: 4.9.2
slash: 4.0.0
dev: true
- /@rollup/plugin-commonjs@25.0.7(rollup@4.9.1):
+ /@rollup/plugin-commonjs@25.0.7(rollup@4.9.2):
resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -896,16 +896,16 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.1)
+ '@rollup/pluginutils': 5.1.0(rollup@4.9.2)
commondir: 1.0.1
estree-walker: 2.0.2
glob: 8.1.0
is-reference: 1.2.1
magic-string: 0.30.5
- rollup: 4.9.1
+ rollup: 4.9.2
dev: true
- /@rollup/plugin-json@6.1.0(rollup@4.9.1):
+ /@rollup/plugin-json@6.1.0(rollup@4.9.2):
resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -914,11 +914,11 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.1)
- rollup: 4.9.1
+ '@rollup/pluginutils': 5.1.0(rollup@4.9.2)
+ rollup: 4.9.2
dev: true
- /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.1):
+ /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.2):
resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -927,16 +927,16 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.1)
+ '@rollup/pluginutils': 5.1.0(rollup@4.9.2)
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.8
- rollup: 4.9.1
+ rollup: 4.9.2
dev: true
- /@rollup/plugin-replace@5.0.5(rollup@4.9.1):
+ /@rollup/plugin-replace@5.0.5(rollup@4.9.2):
resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -945,12 +945,12 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.1)
+ '@rollup/pluginutils': 5.1.0(rollup@4.9.2)
magic-string: 0.30.5
- rollup: 4.9.1
+ rollup: 4.9.2
dev: true
- /@rollup/pluginutils@5.1.0(rollup@4.9.1):
+ /@rollup/pluginutils@5.1.0(rollup@4.9.2):
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -962,95 +962,95 @@ packages:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
- rollup: 4.9.1
+ rollup: 4.9.2
dev: true
- /@rollup/rollup-android-arm-eabi@4.9.1:
- resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==}
+ /@rollup/rollup-android-arm-eabi@4.9.2:
+ resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==}
cpu: [arm]
os: [android]
requiresBuild: true
optional: true
- /@rollup/rollup-android-arm64@4.9.1:
- resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==}
+ /@rollup/rollup-android-arm64@4.9.2:
+ resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==}
cpu: [arm64]
os: [android]
requiresBuild: true
optional: true
- /@rollup/rollup-darwin-arm64@4.9.1:
- resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==}
+ /@rollup/rollup-darwin-arm64@4.9.2:
+ resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
optional: true
- /@rollup/rollup-darwin-x64@4.9.1:
- resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==}
+ /@rollup/rollup-darwin-x64@4.9.2:
+ resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==}
cpu: [x64]
os: [darwin]
requiresBuild: true
optional: true
- /@rollup/rollup-linux-arm-gnueabihf@4.9.1:
- resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==}
+ /@rollup/rollup-linux-arm-gnueabihf@4.9.2:
+ resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==}
cpu: [arm]
os: [linux]
requiresBuild: true
optional: true
- /@rollup/rollup-linux-arm64-gnu@4.9.1:
- resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==}
+ /@rollup/rollup-linux-arm64-gnu@4.9.2:
+ resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
- /@rollup/rollup-linux-arm64-musl@4.9.1:
- resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==}
+ /@rollup/rollup-linux-arm64-musl@4.9.2:
+ resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true
- /@rollup/rollup-linux-riscv64-gnu@4.9.1:
- resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==}
+ /@rollup/rollup-linux-riscv64-gnu@4.9.2:
+ resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==}
cpu: [riscv64]
os: [linux]
requiresBuild: true
optional: true
- /@rollup/rollup-linux-x64-gnu@4.9.1:
- resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==}
+ /@rollup/rollup-linux-x64-gnu@4.9.2:
+ resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
- /@rollup/rollup-linux-x64-musl@4.9.1:
- resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==}
+ /@rollup/rollup-linux-x64-musl@4.9.2:
+ resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true
- /@rollup/rollup-win32-arm64-msvc@4.9.1:
- resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==}
+ /@rollup/rollup-win32-arm64-msvc@4.9.2:
+ resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==}
cpu: [arm64]
os: [win32]
requiresBuild: true
optional: true
- /@rollup/rollup-win32-ia32-msvc@4.9.1:
- resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==}
+ /@rollup/rollup-win32-ia32-msvc@4.9.2:
+ resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==}
cpu: [ia32]
os: [win32]
requiresBuild: true
optional: true
- /@rollup/rollup-win32-x64-msvc@4.9.1:
- resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==}
+ /@rollup/rollup-win32-x64-msvc@4.9.2:
+ resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==}
cpu: [x64]
os: [win32]
requiresBuild: true
@@ -1078,7 +1078,7 @@ packages:
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
dependencies:
'@types/connect': 3.4.38
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/braces@3.0.4:
@@ -1094,13 +1094,13 @@ packages:
/@types/connect@3.4.38:
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
dependencies:
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/cross-spawn@6.0.6:
resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==}
dependencies:
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/debug@4.1.12:
@@ -1120,7 +1120,7 @@ packages:
/@types/express-serve-static-core@4.17.41:
resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==}
dependencies:
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
'@types/qs': 6.9.11
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -1139,7 +1139,7 @@ packages:
resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
dependencies:
'@types/jsonfile': 6.1.4
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/http-errors@2.0.4:
@@ -1155,7 +1155,7 @@ packages:
/@types/jsonfile@6.1.4:
resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
dependencies:
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/linkify-it@3.0.5:
@@ -1230,8 +1230,8 @@ packages:
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
dev: true
- /@types/node@20.10.5:
- resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==}
+ /@types/node@20.10.6:
+ resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==}
dependencies:
undici-types: 5.26.5
@@ -1248,7 +1248,7 @@ packages:
/@types/prompts@2.4.9:
resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==}
dependencies:
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
kleur: 3.0.3
dev: true
@@ -1267,14 +1267,14 @@ packages:
/@types/sax@1.2.7:
resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
dependencies:
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/send@0.17.4:
resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
dependencies:
'@types/mime': 1.3.5
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/serve-static@1.15.5:
@@ -1282,7 +1282,7 @@ packages:
dependencies:
'@types/http-errors': 2.0.4
'@types/mime': 3.0.4
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
dev: true
/@types/sizzle@2.3.8:
@@ -1293,15 +1293,15 @@ packages:
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
dev: false
- /@vitejs/plugin-vue@5.0.0(vite@5.0.10)(vue@3.4.0-rc.2):
- resolution: {integrity: sha512-7x5e8X4J1Wi4NxudGjJBd2OFerAi/0nzF80ojCzvfj347WVr0YSn82C8BSsgwSHzlk9Kw5xnZfj0/7RLnNwP5w==}
+ /@vitejs/plugin-vue@5.0.2(vite@5.0.10)(vue@3.4.3):
+ resolution: {integrity: sha512-kEjJHrLb5ePBvjD0SPZwJlw1QTRcjjCA9sB5VyfonoXVBxTS7TMnqL6EkLt1Eu61RDeiuZ/WN9Hf6PxXhPI2uA==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
vite: ^5.0.0
vue: ^3.2.25
dependencies:
- vite: 5.0.10(@types/node@20.10.5)
- vue: 3.4.0-rc.2(typescript@5.3.3)
+ vite: 5.0.10(@types/node@20.10.6)
+ vue: 3.4.3(typescript@5.3.3)
dev: false
/@vitest/expect@1.1.0:
@@ -1361,66 +1361,48 @@ packages:
path-browserify: 1.0.1
dev: true
- /@vue/compiler-core@3.3.13:
- resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==}
- dependencies:
- '@babel/parser': 7.23.6
- '@vue/shared': 3.3.13
- estree-walker: 2.0.2
- source-map-js: 1.0.2
- dev: true
-
- /@vue/compiler-core@3.4.0-rc.2:
- resolution: {integrity: sha512-UMcGc7JUJyOA/HR3PoGewcFSJK8oQ3OQc7yLsCa4K9HvvL8A7/GVcuVIgP0HpSoEI1vPi2XzyFzt+Z87B+0trw==}
+ /@vue/compiler-core@3.4.3:
+ resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==}
dependencies:
'@babel/parser': 7.23.6
- '@vue/shared': 3.4.0-rc.2
+ '@vue/shared': 3.4.3
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.0.2
- dev: false
- /@vue/compiler-dom@3.3.13:
- resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==}
+ /@vue/compiler-dom@3.4.3:
+ resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==}
dependencies:
- '@vue/compiler-core': 3.3.13
- '@vue/shared': 3.3.13
- dev: true
-
- /@vue/compiler-dom@3.4.0-rc.2:
- resolution: {integrity: sha512-9a2YlLtxbP9cIJBNesiebhYorTlApT3zCwQGbeLdwbvqZKAUTWaNlnGdoZoFi1FFlfMvGF2f+GNjGXgDtKj9jQ==}
- dependencies:
- '@vue/compiler-core': 3.4.0-rc.2
- '@vue/shared': 3.4.0-rc.2
- dev: false
+ '@vue/compiler-core': 3.4.3
+ '@vue/shared': 3.4.3
- /@vue/compiler-sfc@3.4.0-rc.2:
- resolution: {integrity: sha512-ZKUWH4jMxyGCVpVW/7r4lmnLoMOcjFHlX+RGGarozeaH8wIap/IN1v1WM6h2BnY+yhTV5gykg7EhhSRLyX9rpA==}
+ /@vue/compiler-sfc@3.4.3:
+ resolution: {integrity: sha512-NuJqb5is9I4uzv316VRUDYgIlPZCG8D+ARt5P4t5UDShIHKL25J3TGZAUryY/Aiy0DsY7srJnZL5ryB6DD63Zw==}
dependencies:
'@babel/parser': 7.23.6
- '@vue/compiler-core': 3.4.0-rc.2
- '@vue/compiler-dom': 3.4.0-rc.2
- '@vue/compiler-ssr': 3.4.0-rc.2
- '@vue/shared': 3.4.0-rc.2
+ '@vue/compiler-core': 3.4.3
+ '@vue/compiler-dom': 3.4.3
+ '@vue/compiler-ssr': 3.4.3
+ '@vue/shared': 3.4.3
estree-walker: 2.0.2
magic-string: 0.30.5
postcss: 8.4.32
source-map-js: 1.0.2
dev: false
- /@vue/compiler-ssr@3.4.0-rc.2:
- resolution: {integrity: sha512-+XvAn6TKYJ+Y2xsvjMhE0auC31/i1TVPrkdoXKLMXYAK0VvS6EPhtVN2ii9A2oP1CLsFa/VQErTzXtmnsAwuPA==}
+ /@vue/compiler-ssr@3.4.3:
+ resolution: {integrity: sha512-wnYQtMBkeFSxgSSQbYGQeXPhQacQiog2c6AlvMldQH6DB+gSXK/0F6DVXAJfEiuBSgBhUc8dwrrG5JQcqwalsA==}
dependencies:
- '@vue/compiler-dom': 3.4.0-rc.2
- '@vue/shared': 3.4.0-rc.2
+ '@vue/compiler-dom': 3.4.3
+ '@vue/shared': 3.4.3
dev: false
/@vue/devtools-api@6.5.1:
resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
dev: false
- /@vue/language-core@1.8.26(typescript@5.3.3):
- resolution: {integrity: sha512-9cmza/Y2YTiOnKZ0Mi9zsNn7Irw+aKirP+5LLWVSNaL3fjKJjW1cD3HGBckasY2RuVh4YycvdA9/Q6EBpVd/7Q==}
+ /@vue/language-core@1.8.27(typescript@5.3.3):
+ resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -1429,8 +1411,8 @@ packages:
dependencies:
'@volar/language-core': 1.11.1
'@volar/source-map': 1.11.1
- '@vue/compiler-dom': 3.3.13
- '@vue/shared': 3.3.13
+ '@vue/compiler-dom': 3.4.3
+ '@vue/shared': 3.4.3
computeds: 0.0.1
minimatch: 9.0.3
muggle-string: 0.3.1
@@ -1439,59 +1421,54 @@ packages:
vue-template-compiler: 2.7.16
dev: true
- /@vue/reactivity@3.4.0-rc.2:
- resolution: {integrity: sha512-Ls8agGUZGz+T30KfP0euW12lbRQfgm/gjKTp6oyArEXS6SD3XnQ718K6fmtVjL3DlfM0UI1+QpL49WcDdN35qg==}
+ /@vue/reactivity@3.4.3:
+ resolution: {integrity: sha512-q5f9HLDU+5aBKizXHAx0w4whkIANs1Muiq9R5YXm0HtorSlflqv9u/ohaMxuuhHWCji4xqpQ1eL04WvmAmGnFg==}
dependencies:
- '@vue/shared': 3.4.0-rc.2
+ '@vue/shared': 3.4.3
dev: false
- /@vue/runtime-core@3.4.0-rc.2:
- resolution: {integrity: sha512-dE0sP7PiBLrKxGk/F+bdDrTUCg04o32KrZo02mnSUWnlBPjg9ymHB7t65/U4Cru4yG81Wpy9U4beIDzeK1YMWw==}
+ /@vue/runtime-core@3.4.3:
+ resolution: {integrity: sha512-C1r6QhB1qY7D591RCSFhMULyzL9CuyrGc+3PpB0h7dU4Qqw6GNyo4BNFjHZVvsWncrUlKX3DIKg0Y7rNNr06NQ==}
dependencies:
- '@vue/reactivity': 3.4.0-rc.2
- '@vue/shared': 3.4.0-rc.2
+ '@vue/reactivity': 3.4.3
+ '@vue/shared': 3.4.3
dev: false
- /@vue/runtime-dom@3.4.0-rc.2:
- resolution: {integrity: sha512-gsyLBJeMWh5wg1MqnlDy5/0uDMrnJGxuLxEL+rAEc/OlTFX5woSHwjoypE/E7oBwO4z/nETRSzY/ph+Zqh/h9Q==}
+ /@vue/runtime-dom@3.4.3:
+ resolution: {integrity: sha512-wrsprg7An5Ec+EhPngWdPuzkp0BEUxAKaQtN9dPU/iZctPyD9aaXmVtehPJerdQxQale6gEnhpnfywNw3zOv2A==}
dependencies:
- '@vue/runtime-core': 3.4.0-rc.2
- '@vue/shared': 3.4.0-rc.2
+ '@vue/runtime-core': 3.4.3
+ '@vue/shared': 3.4.3
csstype: 3.1.3
dev: false
- /@vue/server-renderer@3.4.0-rc.2(vue@3.4.0-rc.2):
- resolution: {integrity: sha512-5+9/+8K3bPAIev1S49T1gw+IhelWUl1p6Ypj+yb4GHCpsRlB7FATNF7bGnQ10wAlrVgjfuG+0m4GOzqOPhrncQ==}
+ /@vue/server-renderer@3.4.3(vue@3.4.3):
+ resolution: {integrity: sha512-BUxt8oVGMKKsqSkM1uU3d3Houyfy4WAc2SpSQRebNd+XJGATVkW/rO129jkyL+kpB/2VRKzE63zwf5RtJ3XuZw==}
peerDependencies:
- vue: 3.4.0-rc.2
+ vue: 3.4.3
dependencies:
- '@vue/compiler-ssr': 3.4.0-rc.2
- '@vue/shared': 3.4.0-rc.2
- vue: 3.4.0-rc.2(typescript@5.3.3)
+ '@vue/compiler-ssr': 3.4.3
+ '@vue/shared': 3.4.3
+ vue: 3.4.3(typescript@5.3.3)
dev: false
- /@vue/shared@3.3.13:
- resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==}
- dev: true
-
- /@vue/shared@3.4.0-rc.2:
- resolution: {integrity: sha512-ZynnK2vWLBcCEdMsyHUWIzbqhRjnTSv/eolFO+okzf5LLQqlasi/7qeo4mYzGhyPvGb0XltxCZmzTtTcJtlxkw==}
- dev: false
+ /@vue/shared@3.4.3:
+ resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==}
- /@vueuse/core@10.7.0(vue@3.4.0-rc.2):
- resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==}
+ /@vueuse/core@10.7.1(vue@3.4.3):
+ resolution: {integrity: sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==}
dependencies:
'@types/web-bluetooth': 0.0.20
- '@vueuse/metadata': 10.7.0
- '@vueuse/shared': 10.7.0(vue@3.4.0-rc.2)
- vue-demi: 0.14.6(vue@3.4.0-rc.2)
+ '@vueuse/metadata': 10.7.1
+ '@vueuse/shared': 10.7.1(vue@3.4.3)
+ vue-demi: 0.14.6(vue@3.4.3)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
- /@vueuse/integrations@10.7.0(focus-trap@7.5.4)(vue@3.4.0-rc.2):
- resolution: {integrity: sha512-rxiMYgS+91n93qXpHZF9NbHhppWY6IJyVTDxt4acyChL0zZVx7P8FAAfpF1qVK8e4wfjerhpEiMJ0IZ1GWUZ2A==}
+ /@vueuse/integrations@10.7.1(focus-trap@7.5.4)(vue@3.4.3):
+ resolution: {integrity: sha512-cKo5LEeKVHdBRBtMTOrDPdR0YNtrmN9IBfdcnY2P3m5LHVrsD0xiHUtAH1WKjHQRIErZG6rJUa6GA4tWZt89Og==}
peerDependencies:
async-validator: '*'
axios: '*'
@@ -1531,23 +1508,23 @@ packages:
universal-cookie:
optional: true
dependencies:
- '@vueuse/core': 10.7.0(vue@3.4.0-rc.2)
- '@vueuse/shared': 10.7.0(vue@3.4.0-rc.2)
+ '@vueuse/core': 10.7.1(vue@3.4.3)
+ '@vueuse/shared': 10.7.1(vue@3.4.3)
focus-trap: 7.5.4
- vue-demi: 0.14.6(vue@3.4.0-rc.2)
+ vue-demi: 0.14.6(vue@3.4.3)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
- /@vueuse/metadata@10.7.0:
- resolution: {integrity: sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA==}
+ /@vueuse/metadata@10.7.1:
+ resolution: {integrity: sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==}
dev: false
- /@vueuse/shared@10.7.0(vue@3.4.0-rc.2):
- resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==}
+ /@vueuse/shared@10.7.1(vue@3.4.3):
+ resolution: {integrity: sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==}
dependencies:
- vue-demi: 0.14.6(vue@3.4.0-rc.2)
+ vue-demi: 0.14.6(vue@3.4.3)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -1574,8 +1551,8 @@ packages:
engines: {node: '>=0.4.0'}
dev: true
- /acorn@8.11.2:
- resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
+ /acorn@8.11.3:
+ resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
engines: {node: '>=0.4.0'}
hasBin: true
dev: true
@@ -1708,8 +1685,8 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /axios@1.6.2(debug@4.3.4):
- resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==}
+ /axios@1.6.3(debug@4.3.4):
+ resolution: {integrity: sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==}
dependencies:
follow-redirects: 1.15.3(debug@4.3.4)
form-data: 4.0.0
@@ -2333,35 +2310,35 @@ packages:
is-symbol: 1.0.4
dev: true
- /esbuild@0.19.10:
- resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==}
+ /esbuild@0.19.11:
+ resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
- '@esbuild/aix-ppc64': 0.19.10
- '@esbuild/android-arm': 0.19.10
- '@esbuild/android-arm64': 0.19.10
- '@esbuild/android-x64': 0.19.10
- '@esbuild/darwin-arm64': 0.19.10
- '@esbuild/darwin-x64': 0.19.10
- '@esbuild/freebsd-arm64': 0.19.10
- '@esbuild/freebsd-x64': 0.19.10
- '@esbuild/linux-arm': 0.19.10
- '@esbuild/linux-arm64': 0.19.10
- '@esbuild/linux-ia32': 0.19.10
- '@esbuild/linux-loong64': 0.19.10
- '@esbuild/linux-mips64el': 0.19.10
- '@esbuild/linux-ppc64': 0.19.10
- '@esbuild/linux-riscv64': 0.19.10
- '@esbuild/linux-s390x': 0.19.10
- '@esbuild/linux-x64': 0.19.10
- '@esbuild/netbsd-x64': 0.19.10
- '@esbuild/openbsd-x64': 0.19.10
- '@esbuild/sunos-x64': 0.19.10
- '@esbuild/win32-arm64': 0.19.10
- '@esbuild/win32-ia32': 0.19.10
- '@esbuild/win32-x64': 0.19.10
+ '@esbuild/aix-ppc64': 0.19.11
+ '@esbuild/android-arm': 0.19.11
+ '@esbuild/android-arm64': 0.19.11
+ '@esbuild/android-x64': 0.19.11
+ '@esbuild/darwin-arm64': 0.19.11
+ '@esbuild/darwin-x64': 0.19.11
+ '@esbuild/freebsd-arm64': 0.19.11
+ '@esbuild/freebsd-x64': 0.19.11
+ '@esbuild/linux-arm': 0.19.11
+ '@esbuild/linux-arm64': 0.19.11
+ '@esbuild/linux-ia32': 0.19.11
+ '@esbuild/linux-loong64': 0.19.11
+ '@esbuild/linux-mips64el': 0.19.11
+ '@esbuild/linux-ppc64': 0.19.11
+ '@esbuild/linux-riscv64': 0.19.11
+ '@esbuild/linux-s390x': 0.19.11
+ '@esbuild/linux-x64': 0.19.11
+ '@esbuild/netbsd-x64': 0.19.11
+ '@esbuild/openbsd-x64': 0.19.11
+ '@esbuild/sunos-x64': 0.19.11
+ '@esbuild/win32-arm64': 0.19.11
+ '@esbuild/win32-ia32': 0.19.11
+ '@esbuild/win32-x64': 0.19.11
/escape-goat@3.0.0:
resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==}
@@ -3352,7 +3329,7 @@ packages:
/mlly@1.4.2:
resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==}
dependencies:
- acorn: 8.11.2
+ acorn: 8.11.3
pathe: 1.1.1
pkg-types: 1.0.3
ufo: 1.3.2
@@ -3543,8 +3520,8 @@ packages:
p-limit: 4.0.0
dev: true
- /p-map@7.0.0:
- resolution: {integrity: sha512-EZl03dLKv3RypkrjlevZoNwQMSy4bAblWcR18zhonktnN4fUs3asFQKSe0awn982omGxamvbejqQKQYDJYHCEg==}
+ /p-map@7.0.1:
+ resolution: {integrity: sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==}
engines: {node: '>=18'}
dev: true
@@ -3767,7 +3744,7 @@ packages:
dependencies:
find-up: 6.3.0
read-pkg: 8.1.0
- type-fest: 4.8.3
+ type-fest: 4.9.0
dev: true
/read-pkg@3.0.0:
@@ -3786,7 +3763,7 @@ packages:
'@types/normalize-package-data': 2.4.4
normalize-package-data: 6.0.0
parse-json: 7.1.1
- type-fest: 4.8.3
+ type-fest: 4.9.0
dev: true
/readdirp@3.6.0:
@@ -3848,7 +3825,7 @@ packages:
glob: 10.3.10
dev: true
- /rollup-plugin-dts@6.1.0(rollup@4.9.1)(typescript@5.3.3):
+ /rollup-plugin-dts@6.1.0(rollup@4.9.2)(typescript@5.3.3):
resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==}
engines: {node: '>=16'}
peerDependencies:
@@ -3856,47 +3833,47 @@ packages:
typescript: ^4.5 || ^5.0
dependencies:
magic-string: 0.30.5
- rollup: 4.9.1
+ rollup: 4.9.2
typescript: 5.3.3
optionalDependencies:
'@babel/code-frame': 7.23.5
dev: true
- /rollup-plugin-esbuild@6.1.0(esbuild@0.19.10)(rollup@4.9.1)(supports-color@9.4.0):
+ /rollup-plugin-esbuild@6.1.0(esbuild@0.19.11)(rollup@4.9.2)(supports-color@9.4.0):
resolution: {integrity: sha512-HPpXU65V8bSpW8eSYPahtUJaJHmbxJGybuf/M8B3bz/6i11YaYHlNNJIQ38gSEV0FyohQOgVxJ2YMEEZtEmwvA==}
engines: {node: '>=14.18.0'}
peerDependencies:
esbuild: '>=0.18.0'
rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.9.1)
+ '@rollup/pluginutils': 5.1.0(rollup@4.9.2)
debug: 4.3.4(supports-color@9.4.0)
es-module-lexer: 1.4.1
- esbuild: 0.19.10
+ esbuild: 0.19.11
get-tsconfig: 4.7.2
- rollup: 4.9.1
+ rollup: 4.9.2
transitivePeerDependencies:
- supports-color
dev: true
- /rollup@4.9.1:
- resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==}
+ /rollup@4.9.2:
+ resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.9.1
- '@rollup/rollup-android-arm64': 4.9.1
- '@rollup/rollup-darwin-arm64': 4.9.1
- '@rollup/rollup-darwin-x64': 4.9.1
- '@rollup/rollup-linux-arm-gnueabihf': 4.9.1
- '@rollup/rollup-linux-arm64-gnu': 4.9.1
- '@rollup/rollup-linux-arm64-musl': 4.9.1
- '@rollup/rollup-linux-riscv64-gnu': 4.9.1
- '@rollup/rollup-linux-x64-gnu': 4.9.1
- '@rollup/rollup-linux-x64-musl': 4.9.1
- '@rollup/rollup-win32-arm64-msvc': 4.9.1
- '@rollup/rollup-win32-ia32-msvc': 4.9.1
- '@rollup/rollup-win32-x64-msvc': 4.9.1
+ '@rollup/rollup-android-arm-eabi': 4.9.2
+ '@rollup/rollup-android-arm64': 4.9.2
+ '@rollup/rollup-darwin-arm64': 4.9.2
+ '@rollup/rollup-darwin-x64': 4.9.2
+ '@rollup/rollup-linux-arm-gnueabihf': 4.9.2
+ '@rollup/rollup-linux-arm64-gnu': 4.9.2
+ '@rollup/rollup-linux-arm64-musl': 4.9.2
+ '@rollup/rollup-linux-riscv64-gnu': 4.9.2
+ '@rollup/rollup-linux-x64-gnu': 4.9.2
+ '@rollup/rollup-linux-x64-musl': 4.9.2
+ '@rollup/rollup-win32-arm64-msvc': 4.9.2
+ '@rollup/rollup-win32-ia32-msvc': 4.9.2
+ '@rollup/rollup-win32-x64-msvc': 4.9.2
fsevents: 2.3.3
/run-parallel@1.2.0:
@@ -4005,19 +3982,20 @@ packages:
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
dev: true
- /shikiji-core@0.9.12:
- resolution: {integrity: sha512-AYsAtsbZuq0FPT3mdskNMa+yxD5VwXrFC2sH7R2ELmncVGNYvSzR6Zlfq8iEzINq7/kKL5prtt81UFzFWTTbxQ==}
+ /shikiji-core@0.9.15:
+ resolution: {integrity: sha512-7hqIcUKS15OMs/61Qp2GvO1fSajBB36bDqi8vexIg5kp80V6v6SGtBrlq+nLlo7erMG2d1kvIuTIq1bwKI6fEg==}
+ dev: false
- /shikiji-transformers@0.9.12:
- resolution: {integrity: sha512-ge+47j4MLTbKAnTnhTTolD9DKGW2Fhp80MV7Tb2E+p4HsJixu4slq2SDV/eFR34iH/egtyi/cjGMD8vJbNLBUA==}
+ /shikiji-transformers@0.9.15:
+ resolution: {integrity: sha512-k0sQ6tX26/cdb8QV9CCwwr7QjRp6/AVP9C0oNIXNld3of+xCrpf74kD74piybG6vMfzBoHGsz/s60RVBJOUaYQ==}
dependencies:
- shikiji: 0.9.12
+ shikiji: 0.9.15
dev: false
- /shikiji@0.9.12:
- resolution: {integrity: sha512-jYbulSGcPKYKu2uFZOSg4lgrF7s9s8/ITFzRvczE6633wypMjnnTcRnG/mCFe6v1Dbov7bRCMsXVINBUD2FV9w==}
+ /shikiji@0.9.15:
+ resolution: {integrity: sha512-+inN4cN+nY7b0uCPOiqFHAk+cn2DEdM3AIQgPhAV7QKqhww/o7OGS5xvLh3SNnjke9C/HispALqGOQGYHVq7KQ==}
dependencies:
- shikiji-core: 0.9.12
+ shikiji-core: 0.9.15
dev: false
/side-channel@1.0.4:
@@ -4256,7 +4234,7 @@ packages:
/strip-literal@1.3.0:
resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
dependencies:
- acorn: 8.11.2
+ acorn: 8.11.3
dev: true
/supports-color@5.5.0:
@@ -4356,8 +4334,8 @@ packages:
engines: {node: '>=14.16'}
dev: true
- /type-fest@4.8.3:
- resolution: {integrity: sha512-//BaTm14Q/gHBn09xlnKNqfI8t6bmdzx2DXYfPBNofN0WUybCEUDcbCWcTa0oF09lzLjZgPphXAsvRiMK0V6Bw==}
+ /type-fest@4.9.0:
+ resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==}
engines: {node: '>=16'}
dev: true
@@ -4454,7 +4432,7 @@ packages:
engines: {node: '>= 0.8'}
dev: true
- /vite-node@1.1.0(@types/node@20.10.5)(supports-color@9.4.0):
+ /vite-node@1.1.0(@types/node@20.10.6)(supports-color@9.4.0):
resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -4463,7 +4441,7 @@ packages:
debug: 4.3.4(supports-color@9.4.0)
pathe: 1.1.1
picocolors: 1.0.0
- vite: 5.0.10(@types/node@20.10.5)
+ vite: 5.0.10(@types/node@20.10.6)
transitivePeerDependencies:
- '@types/node'
- less
@@ -4475,7 +4453,7 @@ packages:
- terser
dev: true
- /vite@5.0.10(@types/node@20.10.5):
+ /vite@5.0.10(@types/node@20.10.6):
resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -4503,14 +4481,14 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 20.10.5
- esbuild: 0.19.10
+ '@types/node': 20.10.6
+ esbuild: 0.19.11
postcss: 8.4.32
- rollup: 4.9.1
+ rollup: 4.9.2
optionalDependencies:
fsevents: 2.3.3
- /vitest@1.1.0(@types/node@20.10.5)(supports-color@9.4.0):
+ /vitest@1.1.0(@types/node@20.10.6)(supports-color@9.4.0):
resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -4535,7 +4513,7 @@ packages:
jsdom:
optional: true
dependencies:
- '@types/node': 20.10.5
+ '@types/node': 20.10.6
'@vitest/expect': 1.1.0
'@vitest/runner': 1.1.0
'@vitest/snapshot': 1.1.0
@@ -4554,8 +4532,8 @@ packages:
strip-literal: 1.3.0
tinybench: 2.5.1
tinypool: 0.8.1
- vite: 5.0.10(@types/node@20.10.5)
- vite-node: 1.1.0(@types/node@20.10.5)(supports-color@9.4.0)
+ vite: 5.0.10(@types/node@20.10.6)
+ vite-node: 1.1.0(@types/node@20.10.6)(supports-color@9.4.0)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
@@ -4567,7 +4545,7 @@ packages:
- terser
dev: true
- /vue-demi@0.14.6(vue@3.4.0-rc.2):
+ /vue-demi@0.14.6(vue@3.4.3):
resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==}
engines: {node: '>=12'}
hasBin: true
@@ -4579,7 +4557,7 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.0-rc.2(typescript@5.3.3)
+ vue: 3.4.3(typescript@5.3.3)
dev: false
/vue-template-compiler@2.7.16:
@@ -4589,31 +4567,31 @@ packages:
he: 1.2.0
dev: true
- /vue-tsc@1.8.26(typescript@5.3.3):
- resolution: {integrity: sha512-jMEJ4aqU/l1hdgmeExH5h1TFoN+hbho0A2ZAhHy53/947DGm7Qj/bpB85VpECOCwV00h7JYNVnvoD2ceOorB4Q==}
+ /vue-tsc@1.8.27(typescript@5.3.3):
+ resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
'@volar/typescript': 1.11.1
- '@vue/language-core': 1.8.26(typescript@5.3.3)
+ '@vue/language-core': 1.8.27(typescript@5.3.3)
semver: 7.5.4
typescript: 5.3.3
dev: true
- /vue@3.4.0-rc.2(typescript@5.3.3):
- resolution: {integrity: sha512-/HP5U5Da5+0oUc4mEzn8nxRpIvIHbfozIH0GFX0Dywmm35TrlD5B5/m4QRkuigbuR9ydtzB3D7wReGUiUoJADg==}
+ /vue@3.4.3(typescript@5.3.3):
+ resolution: {integrity: sha512-GjN+culMAGv/mUbkIv8zMKItno8npcj5gWlXkSxf1SPTQf8eJ4A+YfHIvQFyL1IfuJcMl3soA7SmN1fRxbf/wA==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@vue/compiler-dom': 3.4.0-rc.2
- '@vue/compiler-sfc': 3.4.0-rc.2
- '@vue/runtime-dom': 3.4.0-rc.2
- '@vue/server-renderer': 3.4.0-rc.2(vue@3.4.0-rc.2)
- '@vue/shared': 3.4.0-rc.2
+ '@vue/compiler-dom': 3.4.3
+ '@vue/compiler-sfc': 3.4.3
+ '@vue/runtime-dom': 3.4.3
+ '@vue/server-renderer': 3.4.3(vue@3.4.3)
+ '@vue/shared': 3.4.3
typescript: 5.3.3
dev: false
@@ -4622,7 +4600,7 @@ packages:
engines: {node: '>=12.0.0'}
hasBin: true
dependencies:
- axios: 1.6.2(debug@4.3.4)
+ axios: 1.6.3(debug@4.3.4)
joi: 17.11.0
lodash: 4.17.21
minimist: 1.2.8
diff --git a/src/client/app/data.ts b/src/client/app/data.ts
index 77cc80d3..ccca8123 100644
--- a/src/client/app/data.ts
+++ b/src/client/app/data.ts
@@ -89,7 +89,7 @@ export function initData(route: Route): VitePressData {
frontmatter: computed(() => route.data.frontmatter),
params: computed(() => route.data.params),
lang: computed(() => site.value.lang),
- dir: computed(() => site.value.dir),
+ dir: computed(() => route.data.frontmatter.dir || site.value.dir || 'ltr'),
localeIndex: computed(() => site.value.localeIndex || 'root'),
title: computed(() => {
return createTitle(site.value, route.data)
diff --git a/src/client/theme-default/components/VPSwitchAppearance.vue b/src/client/theme-default/components/VPSwitchAppearance.vue
index 16828e7e..f63d1ce4 100644
--- a/src/client/theme-default/components/VPSwitchAppearance.vue
+++ b/src/client/theme-default/components/VPSwitchAppearance.vue
@@ -5,14 +5,16 @@ import VPSwitch from './VPSwitch.vue'
import VPIconMoon from './icons/VPIconMoon.vue'
import VPIconSun from './icons/VPIconSun.vue'
-const { isDark } = useData()
+const { isDark, theme } = useData()
const toggleAppearance = inject('toggle-appearance', () => {
isDark.value = !isDark.value
})
const switchTitle = computed(() => {
- return isDark.value ? 'Switch to light theme' : 'Switch to dark theme'
+ return isDark.value
+ ? theme.value.lightModeSwitchTitle || 'Switch to light theme'
+ : theme.value.darkModeSwitchTitle || 'Switch to dark theme'
})
diff --git a/src/client/theme-default/styles/base.css b/src/client/theme-default/styles/base.css
index 5fb3a3cc..af2ed98a 100644
--- a/src/client/theme-default/styles/base.css
+++ b/src/client/theme-default/styles/base.css
@@ -39,7 +39,6 @@ body {
font-weight: 400;
color: var(--vp-c-text-1);
background-color: var(--vp-c-bg);
- direction: ltr;
font-synthesis: style;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
diff --git a/src/node/config.ts b/src/node/config.ts
index ee0e2e94..d4a76de6 100644
--- a/src/node/config.ts
+++ b/src/node/config.ts
@@ -104,7 +104,8 @@ export async function resolveConfig(
const { pages, dynamicRoutes, rewrites } = await resolvePages(
srcDir,
- userConfig
+ userConfig,
+ logger
)
const config: SiteConfig = {
diff --git a/src/node/markdown/markdown.ts b/src/node/markdown/markdown.ts
index f93fd837..f1ccb14d 100644
--- a/src/node/markdown/markdown.ts
+++ b/src/node/markdown/markdown.ts
@@ -19,31 +19,31 @@ import anchorPlugin from 'markdown-it-anchor'
import attrsPlugin from 'markdown-it-attrs'
// @ts-ignore
import { full as emojiPlugin } from 'markdown-it-emoji'
+import type {
+ BuiltinTheme,
+ Highlighter,
+ LanguageInput,
+ ShikijiTransformer,
+ ThemeRegistrationAny
+} from 'shikiji'
import type { Logger } from 'vite'
import { containerPlugin, type ContainerOptions } from './plugins/containers'
import { highlight } from './plugins/highlight'
import { highlightLinePlugin } from './plugins/highlightLines'
-import { imagePlugin } from './plugins/image'
+import { imagePlugin, type Options as ImageOptions } from './plugins/image'
import { lineNumberPlugin } from './plugins/lineNumbers'
import { linkPlugin } from './plugins/link'
import { preWrapperPlugin } from './plugins/preWrapper'
import { snippetPlugin } from './plugins/snippet'
-import type {
- ThemeRegistration,
- BuiltinTheme,
- LanguageInput,
- ShikijiTransformer,
- Highlighter
-} from 'shikiji'
export type { Header } from '../shared'
export type ThemeOptions =
- | ThemeRegistration
+ | ThemeRegistrationAny
| BuiltinTheme
| {
- light: ThemeRegistration | BuiltinTheme
- dark: ThemeRegistration | BuiltinTheme
+ light: ThemeRegistrationAny | BuiltinTheme
+ dark: ThemeRegistrationAny | BuiltinTheme
}
export interface MarkdownOptions extends MarkdownIt.Options {
@@ -166,6 +166,7 @@ export interface MarkdownOptions extends MarkdownIt.Options {
* @see https://vitepress.dev/guide/markdown#math-equations
*/
math?: boolean | any
+ image?: ImageOptions
}
export type MarkdownRenderer = MarkdownIt
@@ -198,7 +199,7 @@ export const createMarkdownRenderer = async (
.use(preWrapperPlugin, { hasSingleTheme })
.use(snippetPlugin, srcDir)
.use(containerPlugin, { hasSingleTheme }, options.container)
- .use(imagePlugin)
+ .use(imagePlugin, options.image)
.use(
linkPlugin,
{ target: '_blank', rel: 'noreferrer', ...options.externalLinks },
diff --git a/src/node/markdown/plugins/highlight.ts b/src/node/markdown/plugins/highlight.ts
index 84d999e6..f95a78b0 100644
--- a/src/node/markdown/plugins/highlight.ts
+++ b/src/node/markdown/plugins/highlight.ts
@@ -2,14 +2,12 @@ import { customAlphabet } from 'nanoid'
import c from 'picocolors'
import type { ShikijiTransformer } from 'shikiji'
import {
+ addClassToHast,
bundledLanguages,
getHighlighter,
- addClassToHast,
isPlaintext as isPlainLang,
isSpecialLang
} from 'shikiji'
-import type { Logger } from 'vite'
-import type { MarkdownOptions, ThemeOptions } from '../markdown'
import {
transformerCompactLineOptions,
transformerNotationDiff,
@@ -18,6 +16,8 @@ import {
transformerNotationHighlight,
type TransformerCompactLineOption
} from 'shikiji-transformers'
+import type { Logger } from 'vite'
+import type { MarkdownOptions, ThemeOptions } from '../markdown'
const nanoid = customAlphabet('abcdefghijklmnopqrstuvwxyz', 10)
@@ -65,9 +65,9 @@ export async function highlight(
const highlighter = await getHighlighter({
themes:
- typeof theme === 'string' || 'name' in theme
- ? [theme]
- : [theme.light, theme.dark],
+ typeof theme === 'object' && 'light' in theme && 'dark' in theme
+ ? [theme.light, theme.dark]
+ : [theme],
langs: [...Object.keys(bundledLanguages), ...(options.languages || [])],
langAlias: options.languageAlias
})
@@ -169,15 +169,10 @@ export async function highlight(
},
...userTransformers
],
- meta: {
- __raw: attrs
- },
- ...(typeof theme === 'string' || 'name' in theme
- ? { theme }
- : {
- themes: theme,
- defaultColor: false
- })
+ meta: { __raw: attrs },
+ ...(typeof theme === 'object' && 'light' in theme && 'dark' in theme
+ ? { themes: theme, defaultColor: false }
+ : { theme })
})
return fillEmptyHighlightedLine(restoreMustache(highlighted))
diff --git a/src/node/markdown/plugins/image.ts b/src/node/markdown/plugins/image.ts
index 06d1a360..d6f7eb5f 100644
--- a/src/node/markdown/plugins/image.ts
+++ b/src/node/markdown/plugins/image.ts
@@ -3,7 +3,15 @@
import type MarkdownIt from 'markdown-it'
import { EXTERNAL_URL_RE } from '../../shared'
-export const imagePlugin = (md: MarkdownIt) => {
+export interface Options {
+ /**
+ * Support native lazy loading for the `
` tag.
+ * @default false
+ */
+ lazyLoading?: boolean
+}
+
+export const imagePlugin = (md: MarkdownIt, { lazyLoading }: Options = {}) => {
const imageRule = md.renderer.rules.image!
md.renderer.rules.image = (tokens, idx, options, env, self) => {
const token = tokens[idx]
@@ -12,6 +20,9 @@ export const imagePlugin = (md: MarkdownIt) => {
if (!/^\.?\//.test(url)) url = './' + url
token.attrSet('src', decodeURIComponent(url))
}
+ if (lazyLoading) {
+ token.attrSet('loading', 'lazy')
+ }
return imageRule(tokens, idx, options, env, self)
}
}
diff --git a/src/node/plugin.ts b/src/node/plugin.ts
index c079dad6..0c3daddc 100644
--- a/src/node/plugin.ts
+++ b/src/node/plugin.ts
@@ -268,7 +268,11 @@ export async function createVitePressPlugin(
if (file.endsWith('.md')) {
Object.assign(
siteConfig,
- await resolvePages(siteConfig.srcDir, siteConfig.userConfig)
+ await resolvePages(
+ siteConfig.srcDir,
+ siteConfig.userConfig,
+ siteConfig.logger
+ )
)
}
diff --git a/src/node/plugins/dynamicRoutesPlugin.ts b/src/node/plugins/dynamicRoutesPlugin.ts
index e42e8c13..cf9576ae 100644
--- a/src/node/plugins/dynamicRoutesPlugin.ts
+++ b/src/node/plugins/dynamicRoutesPlugin.ts
@@ -1,6 +1,7 @@
import {
loadConfigFromFile,
normalizePath,
+ type Logger,
type Plugin,
type ViteDevServer
} from 'vite'
@@ -13,7 +14,11 @@ import { resolveRewrites } from './rewritesPlugin'
export const dynamicRouteRE = /\[(\w+?)\]/g
-export async function resolvePages(srcDir: string, userConfig: UserConfig) {
+export async function resolvePages(
+ srcDir: string,
+ userConfig: UserConfig,
+ logger: Logger
+) {
// Important: fast-glob doesn't guarantee order of the returned files.
// We must sort the pages so the input list to rollup is stable across
// builds - otherwise different input order could result in different exports
@@ -39,7 +44,11 @@ export async function resolvePages(srcDir: string, userConfig: UserConfig) {
;(dynamicRouteRE.test(file) ? dynamicRouteFiles : pages).push(file)
})
- const dynamicRoutes = await resolveDynamicRoutes(srcDir, dynamicRouteFiles)
+ const dynamicRoutes = await resolveDynamicRoutes(
+ srcDir,
+ dynamicRouteFiles,
+ logger
+ )
pages.push(...dynamicRoutes.routes.map((r) => r.path))
const rewrites = resolveRewrites(pages, userConfig.rewrites)
@@ -141,7 +150,7 @@ export const dynamicRoutesPlugin = async (
if (!/\.md$/.test(ctx.file)) {
Object.assign(
config,
- await resolvePages(config.srcDir, config.userConfig)
+ await resolvePages(config.srcDir, config.userConfig, config.logger)
)
}
for (const id of mods) {
@@ -154,7 +163,8 @@ export const dynamicRoutesPlugin = async (
export async function resolveDynamicRoutes(
srcDir: string,
- routes: string[]
+ routes: string[],
+ logger: Logger
): Promise {
const pendingResolveRoutes: Promise[] = []
const routeFileToModulesMap: Record> = {}
@@ -170,7 +180,7 @@ export async function resolveDynamicRoutes(
const pathsFile = paths.find((p) => fs.existsSync(p))
if (pathsFile == null) {
- console.warn(
+ logger.warn(
c.yellow(
`Missing paths file for dynamic route ${route}: ` +
`a corresponding ${paths[0]} (or .ts/.mjs/.mts) file is needed.`
@@ -183,15 +193,15 @@ export async function resolveDynamicRoutes(
let mod = routeModuleCache.get(pathsFile)
if (!mod) {
try {
- mod = (await loadConfigFromFile({} as any, pathsFile)) as RouteModule
+ mod = (await loadConfigFromFile(
+ {} as any,
+ pathsFile,
+ undefined,
+ 'silent'
+ )) as RouteModule
routeModuleCache.set(pathsFile, mod)
- } catch (e) {
- console.warn(
- c.yellow(
- `Invalid paths file export in ${pathsFile}. ` +
- `Expects default export of an object with a "paths" property.`
- )
- )
+ } catch (e: any) {
+ logger.warn(`${c.yellow(`Failed to load ${pathsFile}:`)}\n${e.stack}`)
continue
}
}
@@ -210,7 +220,7 @@ export async function resolveDynamicRoutes(
const loader = mod!.config.paths
if (!loader) {
- console.warn(
+ logger.warn(
c.yellow(
`Invalid paths file export in ${pathsFile}. ` +
`Missing "paths" property from default export.`
diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts
index 3083a65c..c3c19b63 100644
--- a/types/default-theme.d.ts
+++ b/types/default-theme.d.ts
@@ -96,6 +96,16 @@ export namespace DefaultTheme {
*/
darkModeSwitchLabel?: string
+ /**
+ * @default 'Switch to light theme'
+ */
+ lightModeSwitchTitle?: string
+
+ /**
+ * @default 'Switch to dark theme'
+ */
+ darkModeSwitchTitle?: string
+
/**
* @default 'Menu'
*/