diff --git a/.vitepress/theme/components/AsideSponsors.vue b/.vitepress/theme/components/AsideSponsors.vue
index bd1baf1b..92eef401 100644
--- a/.vitepress/theme/components/AsideSponsors.vue
+++ b/.vitepress/theme/components/AsideSponsors.vue
@@ -18,18 +18,23 @@ const sponsors = computed(() => {
-
-
+
+
-
- Vite Meetup SF
+
+ ViteConf 2023
+
diff --git a/guide/api-hmr.md b/guide/api-hmr.md
index 64321028..a30e2018 100644
--- a/guide/api-hmr.md
+++ b/guide/api-hmr.md
@@ -218,7 +218,7 @@ import.meta.hot.accept((module) => {
如果在连接前调用,数据会先被缓存、等到连接建立好后再发送。
-查看 [客户端与服务器的数据交互](/guide/api-plugin.html#client-server-communication) 一节获取更多细节。
+查看 [客户端与服务端间通信](/guide/api-plugin.html#client-server-communication) 以及 [自定义事件的 TypeScript 类型定义指南](/guide/api-plugin.html#typescript-for-custom-events) 章节获取更多细节。
## 推荐阅读 {#further-reading}
diff --git a/guide/api-plugin.md b/guide/api-plugin.md
index fbf0917a..f0fccc29 100644
--- a/guide/api-plugin.md
+++ b/guide/api-plugin.md
@@ -624,16 +624,40 @@ export default defineConfig({
### 自定义事件的 TypeScript 类型定义指南 {#typeScript-for-custom-events}
-可以通过扩展 `CustomEventMap` 这个 interface 来为自定义事件标注类型:
+Vite 会在内部从 `CustomEventMap` 这个接口推断出 payload 的类型,可以通过扩展这个接口来为自定义事件进行类型定义:
+
+:::tip 提示
+在指定 TypeScript 声明文件时,确保包含 `.d.ts` 扩展名。否则,TypeScript 可能不会知道试图扩展的是哪个文件。
+:::
```ts
// events.d.ts
-import 'vite/types/customEvent'
+import 'vite/types/customEvent.d.ts'
-declare module 'vite/types/customEvent' {
+declare module 'vite/types/customEvent.d.ts' {
interface CustomEventMap {
'custom:foo': { msg: string }
// 'event-key': payload
}
}
```
+
+这个接口扩展被 `InferCustomEventPayload` 所使用,用来推断事件 `T` 的 payload 类型。要了解更多关于这个接口如何被使用的信息,请参考 [HMR API 文档](./api-hmr#hmr-api)。
+
+```ts twoslash
+import 'vite/client'
+import type { InferCustomEventPayload } from 'vite/types/customEvent.d.ts'
+declare module 'vite/types/customEvent.d.ts' {
+ interface CustomEventMap {
+ 'custom:foo': { msg: string }
+ }
+}
+// ---cut---
+type CustomFooPayload = InferCustomEventPayload<'custom:foo'>
+import.meta.hot?.on('custom:foo', (payload) => {
+ // payload 的类型为 { msg: string }
+})
+import.meta.hot?.on('unknown:event', (payload) => {
+ // payload 的类型为 any
+})
+```
diff --git a/guide/backend-integration.md b/guide/backend-integration.md
index 94736901..19ffb4e3 100644
--- a/guide/backend-integration.md
+++ b/guide/backend-integration.md
@@ -62,24 +62,36 @@
```json
{
- "main.js": {
- "file": "assets/main.4889e940.js",
- "src": "main.js",
+ "_shared-!~{003}~.js": {
+ "file": "assets/shared-ChJ_j-JJ.css",
+ "src": "_shared-!~{003}~.js"
+ },
+ "_shared-B7PI925R.js": {
+ "file": "assets/shared-B7PI925R.js",
+ "name": "shared",
+ "css": ["assets/shared-ChJ_j-JJ.css"]
+ },
+ "baz.js": {
+ "file": "assets/baz-B2H3sXNv.js",
+ "name": "baz",
+ "src": "baz.js",
+ "isDynamicEntry": true
+ },
+ "views/bar.js": {
+ "file": "assets/bar-gkvgaI9m.js",
+ "name": "bar",
+ "src": "views/bar.js",
"isEntry": true,
- "dynamicImports": ["views/foo.js"],
- "css": ["assets/main.b82dbe22.css"],
- "assets": ["assets/asset.0ab0f9cd.png"],
- "imports": ["_shared.83069a53.js"]
+ "imports": ["_shared-B7PI925R.js"],
+ "dynamicImports": ["baz.js"]
},
"views/foo.js": {
- "file": "assets/foo.869aea0d.js",
+ "file": "assets/foo-BRBmoGS9.js",
+ "name": "foo",
"src": "views/foo.js",
- "isDynamicEntry": true,
- "imports": ["_shared.83069a53.js"]
- },
- "_shared.83069a53.js": {
- "file": "assets/shared.83069a53.js",
- "css": ["assets/shared.a834bfc3.css"]
+ "isEntry": true,
+ "imports": ["_shared-B7PI925R.js"],
+ "css": ["assets/foo-5UjPuW-k.css"]
}
}
```
@@ -122,21 +134,21 @@
- 可选项,对于每个导入的 JavaScript chunk 的 `file` 键的 `` 标签,
同样从入口文件 chunk 开始递归追踪导入。
- 按照上面的示例 manifest,对于入口文件 `main.js`,在生产环境中应包含以下标签:
+ 按照上面的示例 manifest,对于入口文件 `views/foo.js`,在生产环境中应包含以下标签:
```html
-
-
-
+
+
+
-
+
```
- 而对于入口文件 `views/foo.js`,应该包含以下标签:
+ 而对于入口文件 `views/bar.js`,应该包含以下标签:
```html
-
-
+
+
-
+
```
diff --git a/guide/env-and-mode.md b/guide/env-and-mode.md
index a29c2608..4323c16a 100644
--- a/guide/env-and-mode.md
+++ b/guide/env-and-mode.md
@@ -2,7 +2,7 @@
## 环境变量 {#env-variables}
-Vite 在一个特殊的 **`import.meta.env`** 对象上暴露环境变量。这里有一些在所有情况下都可以使用的内建变量:
+Vite 在一个特殊的 **`import.meta.env`** 对象上暴露环境变量,这些变量在构建时会被静态地替换掉。这里有一些在所有情况下都可以使用的内建变量:
- **`import.meta.env.MODE`**: {string} 应用运行的[模式](#modes)。
diff --git a/guide/static-deploy.md b/guide/static-deploy.md
index c2cb1b7f..1d873c09 100644
--- a/guide/static-deploy.md
+++ b/guide/static-deploy.md
@@ -334,14 +334,28 @@ $ npx wrangler pages deploy dist
还可以为项目添加一个 [自定义域名](https://render.com/docs/custom-domains)。
-## Flightcontrol {#flightcontrol}
+
-使用 [AWS Amplify 部署](https://aws.amazon.com/amplify/hosting/) 部署静态站点,可以按照 [说明](https://docs.amplify.aws/guides/hosting/vite/q/platform/js/) 进行操作。
+## Flightcontrol
+
+根据 [说明](https://www.flightcontrol.dev/docs/reference/examples/vite?ref=docs-vite),使用 [Flightcontrol](https://www.flightcontrol.dev/?ref=docs-vite) 来部署你的静态站点。
## Kinsta 静态站点托管 {#kinsta-static-site-hosting}
-你可以按照这些 [说明](https://kinsta.com/docs/react-vite-example/) 在 [Kinsta](https://kinsta.com/static-site-hosting/) 上部署你的 Vite 应用作为一个静态站点。
+根据 [说明](https://kinsta.com/docs/react-vite-example/),使用 [Kinsta](https://kinsta.com/static-site-hosting/) 来部署你的静态站点。
+
+## xmit 静态站点托管 {#xmit-static-site-hosting}
+
+根据 [说明](https://xmit.dev/posts/vite-quickstart/),使用 [xmit](https://xmit.co) 来部署你的静态站点。
diff --git a/index.md b/index.md
index a8b07498..a53a4ce5 100644
--- a/index.md
+++ b/index.md
@@ -21,6 +21,9 @@ hero:
- theme: alt
text: 在 GitHub 上查看
link: https://github.com/vitejs/vite
+ - theme: brand
+ text: 🎉 ViteConf 23!
+ link: https://viteconf.org/23/replay?utm=vite-homepage
features:
- icon: 💡
@@ -48,6 +51,13 @@ import { onMounted } from 'vue'
import { fetchReleaseTag } from './.vitepress/utils/fetchReleaseTag.js'
onMounted(() => {
+ const urlParams = new URLSearchParams(window.location.search)
+ if (urlParams.get('uwu') != null) {
+ const img = document.querySelector('.VPHero .VPImage.image-src')
+ img.src = '/logo-uwu.png'
+ img.alt = 'Vite Kawaii Logo by @icarusgkx'
+ }
+
fetchReleaseTag()
})
diff --git a/package.json b/package.json
index ba2012e4..e9b76aa3 100644
--- a/package.json
+++ b/package.json
@@ -15,10 +15,10 @@
"vite": "^5.1.6",
"feed": "^4.2.2",
"yorkie": "^2.0.0",
- "@shikijs/vitepress-twoslash": "^1.3.0",
+ "@shikijs/vitepress-twoslash": "^1.4.0",
"@types/express": "^4.17.21",
- "vitepress": "1.1.3",
- "vue": "^3.4.24"
+ "vitepress": "1.1.4",
+ "vue": "^3.4.26"
},
"scripts": {
"dev": "vitepress dev .",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2a2ea44b..598fa8a7 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,8 +6,8 @@ settings:
devDependencies:
'@shikijs/vitepress-twoslash':
- specifier: ^1.3.0
- version: 1.3.0(typescript@5.4.2)
+ specifier: ^1.4.0
+ version: 1.5.1(typescript@5.4.2)
'@types/express':
specifier: ^4.17.21
version: 4.17.21
@@ -30,11 +30,11 @@ devDependencies:
specifier: ^5.1.6
version: 5.1.6(@types/node@20.9.2)
vitepress:
- specifier: 1.1.3
- version: 1.1.3(@algolia/client-search@4.20.0)(@types/node@20.9.2)(search-insights@2.11.0)(typescript@5.4.2)
+ specifier: 1.1.4
+ version: 1.1.4(@algolia/client-search@4.20.0)(@types/node@20.9.2)(search-insights@2.11.0)(typescript@5.4.2)
vue:
- specifier: ^3.4.24
- version: 3.4.25(typescript@5.4.2)
+ specifier: ^3.4.26
+ version: 3.4.27(typescript@5.4.2)
yorkie:
specifier: ^2.0.0
version: 2.0.0
@@ -180,14 +180,6 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /@babel/parser@7.24.0:
- resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==}
- engines: {node: '>=6.0.0'}
- hasBin: true
- dependencies:
- '@babel/types': 7.18.4
- dev: true
-
/@babel/parser@7.24.4:
resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==}
engines: {node: '>=6.0.0'}
@@ -892,34 +884,38 @@ packages:
resolution: {integrity: sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA==}
dev: true
+ /@shikijs/core@1.5.1:
+ resolution: {integrity: sha512-xjV63pRUBvxA1LsxOUhRKLPh0uUjwBLzAKLdEuYSLIylo71sYuwDcttqNP01Ib1TZlLfO840CXHPlgUUsYFjzg==}
+ dev: true
+
/@shikijs/transformers@1.3.0:
resolution: {integrity: sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA==}
dependencies:
shiki: 1.3.0
dev: true
- /@shikijs/twoslash@1.3.0(typescript@5.4.2):
- resolution: {integrity: sha512-XF8Xmotej+cavT6ibKtnsN+TagUJF6eieOV0botcXLhj5aMTPtO+Jdjm9+0vGgloy9JHtuXsik1/JqYMvPIIVw==}
+ /@shikijs/twoslash@1.5.1(typescript@5.4.2):
+ resolution: {integrity: sha512-O0cnGcpW1LkBLd85TQp7Kdb9qzhSGyYl9c21BCAmYWhQdtnxaSKBgbiP3S35ewP/s3SrR9gCzumgznp/YSyMNg==}
dependencies:
- '@shikijs/core': 1.3.0
- twoslash: 0.2.5(typescript@5.4.2)
+ '@shikijs/core': 1.5.1
+ twoslash: 0.2.6(typescript@5.4.2)
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@shikijs/vitepress-twoslash@1.3.0(typescript@5.4.2):
- resolution: {integrity: sha512-fzgoLysy9aSBrZzV5KLeEUjBmCYhz2gZr+36FAtUeNB+GTDIITTlMUzCaqfnYyrDycoIemy7hw/fhNXPPhEjbQ==}
+ /@shikijs/vitepress-twoslash@1.5.1(typescript@5.4.2):
+ resolution: {integrity: sha512-q+qDk6iiKWFM8NiMQ31fLE7edWZSk7/Q3aE4Ak59fvxd9Se/BQ0yhp318o2POs1bm7AHU6Fqo2OBPN/gtzPObg==}
dependencies:
- '@shikijs/twoslash': 1.3.0(typescript@5.4.2)
- floating-vue: 5.2.2(vue@3.4.25)
+ '@shikijs/twoslash': 1.5.1(typescript@5.4.2)
+ floating-vue: 5.2.2(vue@3.4.27)
mdast-util-from-markdown: 2.0.0
mdast-util-gfm: 3.0.0
mdast-util-to-hast: 13.1.0
- shiki: 1.3.0
- twoslash: 0.2.5(typescript@5.4.2)
- twoslash-vue: 0.2.5(typescript@5.4.2)
- vue: 3.4.25(typescript@5.4.2)
+ shiki: 1.5.1
+ twoslash: 0.2.6(typescript@5.4.2)
+ twoslash-vue: 0.2.6(typescript@5.4.2)
+ vue: 3.4.27(typescript@5.4.2)
transitivePeerDependencies:
- '@nuxt/kit'
- supports-color
@@ -1059,7 +1055,7 @@ packages:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
- /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.25):
+ /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.27):
resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
@@ -1067,7 +1063,7 @@ packages:
vue: ^3.2.25
dependencies:
vite: 5.2.10(@types/node@20.9.2)
- vue: 3.4.25(typescript@5.4.2)
+ vue: 3.4.27(typescript@5.4.2)
dev: true
/@volar/language-core@1.11.1:
@@ -1082,16 +1078,6 @@ packages:
muggle-string: 0.3.1
dev: true
- /@vue/compiler-core@3.4.21:
- resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==}
- dependencies:
- '@babel/parser': 7.24.0
- '@vue/shared': 3.4.21
- entities: 4.5.0
- estree-walker: 2.0.2
- source-map-js: 1.2.0
- dev: true
-
/@vue/compiler-core@3.4.25:
resolution: {integrity: sha512-Y2pLLopaElgWnMNolgG8w3C5nNUVev80L7hdQ5iIKPtMJvhVpG0zhnBG/g3UajJmZdvW0fktyZTotEHD1Srhbg==}
dependencies:
@@ -1102,11 +1088,14 @@ packages:
source-map-js: 1.2.0
dev: true
- /@vue/compiler-dom@3.4.21:
- resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==}
+ /@vue/compiler-core@3.4.27:
+ resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==}
dependencies:
- '@vue/compiler-core': 3.4.21
- '@vue/shared': 3.4.21
+ '@babel/parser': 7.24.4
+ '@vue/shared': 3.4.27
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.0
dev: true
/@vue/compiler-dom@3.4.25:
@@ -1116,36 +1105,43 @@ packages:
'@vue/shared': 3.4.25
dev: true
- /@vue/compiler-sfc@3.4.25:
- resolution: {integrity: sha512-m7rryuqzIoQpOBZ18wKyq05IwL6qEpZxFZfRxlNYuIPDqywrXQxgUwLXIvoU72gs6cRdY6wHD0WVZIFE4OEaAQ==}
+ /@vue/compiler-dom@3.4.27:
+ resolution: {integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==}
+ dependencies:
+ '@vue/compiler-core': 3.4.27
+ '@vue/shared': 3.4.27
+ dev: true
+
+ /@vue/compiler-sfc@3.4.27:
+ resolution: {integrity: sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==}
dependencies:
'@babel/parser': 7.24.4
- '@vue/compiler-core': 3.4.25
- '@vue/compiler-dom': 3.4.25
- '@vue/compiler-ssr': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/compiler-core': 3.4.27
+ '@vue/compiler-dom': 3.4.27
+ '@vue/compiler-ssr': 3.4.27
+ '@vue/shared': 3.4.27
estree-walker: 2.0.2
magic-string: 0.30.10
postcss: 8.4.38
source-map-js: 1.2.0
dev: true
- /@vue/compiler-ssr@3.4.25:
- resolution: {integrity: sha512-H2ohvM/Pf6LelGxDBnfbbXFPyM4NE3hrw0e/EpwuSiYu8c819wx+SVGdJ65p/sFrYDd6OnSDxN1MB2mN07hRSQ==}
+ /@vue/compiler-ssr@3.4.27:
+ resolution: {integrity: sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==}
dependencies:
- '@vue/compiler-dom': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/compiler-dom': 3.4.27
+ '@vue/shared': 3.4.27
dev: true
- /@vue/devtools-api@7.1.3(vue@3.4.25):
+ /@vue/devtools-api@7.1.3(vue@3.4.27):
resolution: {integrity: sha512-W8IwFJ/o5iUk78jpqhvScbgCsPiOp2uileDVC0NDtW38gCWhsnu9SeBTjcdu3lbwLdsjc+H1c5Msd/x9ApbcFA==}
dependencies:
- '@vue/devtools-kit': 7.1.3(vue@3.4.25)
+ '@vue/devtools-kit': 7.1.3(vue@3.4.27)
transitivePeerDependencies:
- vue
dev: true
- /@vue/devtools-kit@7.1.3(vue@3.4.25):
+ /@vue/devtools-kit@7.1.3(vue@3.4.27):
resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==}
peerDependencies:
vue: ^3.0.0
@@ -1155,7 +1151,7 @@ packages:
mitt: 3.0.1
perfect-debounce: 1.0.0
speakingurl: 14.0.1
- vue: 3.4.25(typescript@5.4.2)
+ vue: 3.4.27(typescript@5.4.2)
dev: true
/@vue/devtools-shared@7.1.3:
@@ -1174,8 +1170,8 @@ packages:
dependencies:
'@volar/language-core': 1.11.1
'@volar/source-map': 1.11.1
- '@vue/compiler-dom': 3.4.21
- '@vue/shared': 3.4.21
+ '@vue/compiler-dom': 3.4.25
+ '@vue/shared': 3.4.25
computeds: 0.0.1
minimatch: 9.0.3
muggle-string: 0.3.1
@@ -1184,58 +1180,58 @@ packages:
vue-template-compiler: 2.7.16
dev: true
- /@vue/reactivity@3.4.25:
- resolution: {integrity: sha512-mKbEtKr1iTxZkAG3vm3BtKHAOhuI4zzsVcN0epDldU/THsrvfXRKzq+lZnjczZGnTdh3ojd86/WrP+u9M51pWQ==}
+ /@vue/reactivity@3.4.27:
+ resolution: {integrity: sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==}
dependencies:
- '@vue/shared': 3.4.25
+ '@vue/shared': 3.4.27
dev: true
- /@vue/runtime-core@3.4.25:
- resolution: {integrity: sha512-3qhsTqbEh8BMH3pXf009epCI5E7bKu28fJLi9O6W+ZGt/6xgSfMuGPqa5HRbUxLoehTNp5uWvzCr60KuiRIL0Q==}
+ /@vue/runtime-core@3.4.27:
+ resolution: {integrity: sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==}
dependencies:
- '@vue/reactivity': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/reactivity': 3.4.27
+ '@vue/shared': 3.4.27
dev: true
- /@vue/runtime-dom@3.4.25:
- resolution: {integrity: sha512-ode0sj77kuwXwSc+2Yhk8JMHZh1sZp9F/51wdBiz3KGaWltbKtdihlJFhQG4H6AY+A06zzeMLkq6qu8uDSsaoA==}
+ /@vue/runtime-dom@3.4.27:
+ resolution: {integrity: sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==}
dependencies:
- '@vue/runtime-core': 3.4.25
- '@vue/shared': 3.4.25
+ '@vue/runtime-core': 3.4.27
+ '@vue/shared': 3.4.27
csstype: 3.1.3
dev: true
- /@vue/server-renderer@3.4.25(vue@3.4.25):
- resolution: {integrity: sha512-8VTwq0Zcu3K4dWV0jOwIVINESE/gha3ifYCOKEhxOj6MEl5K5y8J8clQncTcDhKF+9U765nRw4UdUEXvrGhyVQ==}
+ /@vue/server-renderer@3.4.27(vue@3.4.27):
+ resolution: {integrity: sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==}
peerDependencies:
- vue: 3.4.25
+ vue: 3.4.27
dependencies:
- '@vue/compiler-ssr': 3.4.25
- '@vue/shared': 3.4.25
- vue: 3.4.25(typescript@5.4.2)
- dev: true
-
- /@vue/shared@3.4.21:
- resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==}
+ '@vue/compiler-ssr': 3.4.27
+ '@vue/shared': 3.4.27
+ vue: 3.4.27(typescript@5.4.2)
dev: true
/@vue/shared@3.4.25:
resolution: {integrity: sha512-k0yappJ77g2+KNrIaF0FFnzwLvUBLUYr8VOwz+/6vLsmItFp51AcxLL7Ey3iPd7BIRyWPOcqUjMnm7OkahXllA==}
dev: true
- /@vueuse/core@10.9.0(vue@3.4.25):
+ /@vue/shared@3.4.27:
+ resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==}
+ dev: true
+
+ /@vueuse/core@10.9.0(vue@3.4.27):
resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==}
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.9.0
- '@vueuse/shared': 10.9.0(vue@3.4.25)
- vue-demi: 0.14.7(vue@3.4.25)
+ '@vueuse/shared': 10.9.0(vue@3.4.27)
+ vue-demi: 0.14.7(vue@3.4.27)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: true
- /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.25):
+ /@vueuse/integrations@10.9.0(focus-trap@7.5.4)(vue@3.4.27):
resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==}
peerDependencies:
async-validator: '*'
@@ -1276,10 +1272,10 @@ packages:
universal-cookie:
optional: true
dependencies:
- '@vueuse/core': 10.9.0(vue@3.4.25)
- '@vueuse/shared': 10.9.0(vue@3.4.25)
+ '@vueuse/core': 10.9.0(vue@3.4.27)
+ '@vueuse/shared': 10.9.0(vue@3.4.27)
focus-trap: 7.5.4
- vue-demi: 0.14.7(vue@3.4.25)
+ vue-demi: 0.14.7(vue@3.4.27)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -1289,10 +1285,10 @@ packages:
resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==}
dev: true
- /@vueuse/shared@10.9.0(vue@3.4.25):
+ /@vueuse/shared@10.9.0(vue@3.4.27):
resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==}
dependencies:
- vue-demi: 0.14.7(vue@3.4.25)
+ vue-demi: 0.14.7(vue@3.4.27)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -1528,7 +1524,7 @@ packages:
xml-js: 1.6.11
dev: true
- /floating-vue@5.2.2(vue@3.4.25):
+ /floating-vue@5.2.2(vue@3.4.27):
resolution: {integrity: sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==}
peerDependencies:
'@nuxt/kit': ^3.2.0
@@ -1538,8 +1534,8 @@ packages:
optional: true
dependencies:
'@floating-ui/dom': 1.1.1
- vue: 3.4.25(typescript@5.4.2)
- vue-resize: 2.0.0-alpha.1(vue@3.4.25)
+ vue: 3.4.27(typescript@5.4.2)
+ vue-resize: 2.0.0-alpha.1(vue@3.4.27)
dev: true
/focus-trap@7.5.4:
@@ -2132,6 +2128,12 @@ packages:
'@shikijs/core': 1.3.0
dev: true
+ /shiki@1.5.1:
+ resolution: {integrity: sha512-vx4Ds3M3B9ZEmLeSXqBAB85osBWV8ErZfP69kuFQZozPgHc33m7spLTCUkcjwEjFm3gk3F9IdXMv8kX+v9xDHA==}
+ dependencies:
+ '@shikijs/core': 1.5.1
+ dev: true
+
/signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
@@ -2190,30 +2192,30 @@ packages:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
dev: true
- /twoslash-protocol@0.2.5:
- resolution: {integrity: sha512-oUr5ZAn37CgNa6p1mrCuuR/pINffsnGCee2aS170Uj1IObxCjsHzu6sgdPUdxGLLn6++gd/qjNH1/iR6RrfLeg==}
+ /twoslash-protocol@0.2.6:
+ resolution: {integrity: sha512-8NbJlYeRdBcCTQ7ui7pdRPC1NL16aOnoYNz06oBW+W0qWNuiQXHgE8UeNvbA038aDd6ZPuuD5WedsBIESocB4g==}
dev: true
- /twoslash-vue@0.2.5(typescript@5.4.2):
- resolution: {integrity: sha512-Tai45V/1G/jEJQIbDe/DIkJCgOqtA/ZHxx4TgC5EM/nnyTP6zbZNtvKOlzMjFgXFdk6rebWEl2Mi/RHKs/sbDQ==}
+ /twoslash-vue@0.2.6(typescript@5.4.2):
+ resolution: {integrity: sha512-tuR/45Xb3mg3WGb7Ek7+WH/bBStw79OCbiFmnqK/51lcfjxaz7RCIQEcH2rAMY52NjwbOqw9om+DKVfgA4BYdA==}
peerDependencies:
typescript: '*'
dependencies:
'@vue/language-core': 1.8.27(typescript@5.4.2)
- twoslash: 0.2.5(typescript@5.4.2)
- twoslash-protocol: 0.2.5
+ twoslash: 0.2.6(typescript@5.4.2)
+ twoslash-protocol: 0.2.6
typescript: 5.4.2
transitivePeerDependencies:
- supports-color
dev: true
- /twoslash@0.2.5(typescript@5.4.2):
- resolution: {integrity: sha512-U8rqsfVh8jQMO1NJekUtglb52b7xD9+FrzeFrgzpHsRTKl8IQgqnZP6ld4PeKaHXhLfoZPuju9K50NXJ7wom8g==}
+ /twoslash@0.2.6(typescript@5.4.2):
+ resolution: {integrity: sha512-DcAKIyXMB6xNs+SOw/oF8GvUr/cfJSqznngVXYbAUIVfTW3M8vWSEoCaz/RgSD+M6vwtK8DJ4/FmYBF5MN8BGw==}
peerDependencies:
typescript: '*'
dependencies:
'@typescript/vfs': 1.5.0
- twoslash-protocol: 0.2.5
+ twoslash-protocol: 0.2.6
typescript: 5.4.2
transitivePeerDependencies:
- supports-color
@@ -2349,8 +2351,8 @@ packages:
fsevents: 2.3.3
dev: true
- /vitepress@1.1.3(@algolia/client-search@4.20.0)(@types/node@20.9.2)(search-insights@2.11.0)(typescript@5.4.2):
- resolution: {integrity: sha512-hGrIYN0w9IHWs0NQSnlMjKV/v/HLfD+Ywv5QdvCSkiT32mpNOOwUrZjnqZv/JL/WBPpUc94eghTUvmipxw0xrA==}
+ /vitepress@1.1.4(@algolia/client-search@4.20.0)(@types/node@20.9.2)(search-insights@2.11.0)(typescript@5.4.2):
+ resolution: {integrity: sha512-bWIzFZXpPB6NIDBuWnS20aMADH+FcFKDfQNYFvbOWij03PR29eImTceQHIzCKordjXYBhM/TjE5VKFTUJ3EheA==}
hasBin: true
peerDependencies:
markdown-it-mathjax3: ^4
@@ -2366,16 +2368,16 @@ packages:
'@shikijs/core': 1.3.0
'@shikijs/transformers': 1.3.0
'@types/markdown-it': 14.0.1
- '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.25)
- '@vue/devtools-api': 7.1.3(vue@3.4.25)
- '@vueuse/core': 10.9.0(vue@3.4.25)
- '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.25)
+ '@vitejs/plugin-vue': 5.0.4(vite@5.2.10)(vue@3.4.27)
+ '@vue/devtools-api': 7.1.3(vue@3.4.27)
+ '@vueuse/core': 10.9.0(vue@3.4.27)
+ '@vueuse/integrations': 10.9.0(focus-trap@7.5.4)(vue@3.4.27)
focus-trap: 7.5.4
mark.js: 8.11.1
minisearch: 6.3.0
shiki: 1.3.0
vite: 5.2.10(@types/node@20.9.2)
- vue: 3.4.25(typescript@5.4.2)
+ vue: 3.4.27(typescript@5.4.2)
transitivePeerDependencies:
- '@algolia/client-search'
- '@types/node'
@@ -2404,7 +2406,7 @@ packages:
- universal-cookie
dev: true
- /vue-demi@0.14.7(vue@3.4.25):
+ /vue-demi@0.14.7(vue@3.4.27):
resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==}
engines: {node: '>=12'}
hasBin: true
@@ -2416,15 +2418,15 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.25(typescript@5.4.2)
+ vue: 3.4.27(typescript@5.4.2)
dev: true
- /vue-resize@2.0.0-alpha.1(vue@3.4.25):
+ /vue-resize@2.0.0-alpha.1(vue@3.4.27):
resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
peerDependencies:
vue: ^3.0.0
dependencies:
- vue: 3.4.25(typescript@5.4.2)
+ vue: 3.4.27(typescript@5.4.2)
dev: true
/vue-template-compiler@2.7.16:
@@ -2434,19 +2436,19 @@ packages:
he: 1.2.0
dev: true
- /vue@3.4.25(typescript@5.4.2):
- resolution: {integrity: sha512-HWyDqoBHMgav/OKiYA2ZQg+kjfMgLt/T0vg4cbIF7JbXAjDexRf5JRg+PWAfrAkSmTd2I8aPSXtooBFWHB98cg==}
+ /vue@3.4.27(typescript@5.4.2):
+ resolution: {integrity: sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@vue/compiler-dom': 3.4.25
- '@vue/compiler-sfc': 3.4.25
- '@vue/runtime-dom': 3.4.25
- '@vue/server-renderer': 3.4.25(vue@3.4.25)
- '@vue/shared': 3.4.25
+ '@vue/compiler-dom': 3.4.27
+ '@vue/compiler-sfc': 3.4.27
+ '@vue/runtime-dom': 3.4.27
+ '@vue/server-renderer': 3.4.27(vue@3.4.27)
+ '@vue/shared': 3.4.27
typescript: 5.4.2
dev: true
diff --git a/public/logo-uwu.png b/public/logo-uwu.png
new file mode 100644
index 00000000..e45e40af
Binary files /dev/null and b/public/logo-uwu.png differ