summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/thin-rabbits-wait.md18
-rw-r--r--packages/integrations/vue/package.json3
-rw-r--r--packages/integrations/vue/src/index.ts35
-rw-r--r--pnpm-lock.yaml243
4 files changed, 279 insertions, 20 deletions
diff --git a/.changeset/thin-rabbits-wait.md b/.changeset/thin-rabbits-wait.md
new file mode 100644
index 000000000..1556e0147
--- /dev/null
+++ b/.changeset/thin-rabbits-wait.md
@@ -0,0 +1,18 @@
+---
+"@astrojs/vue": minor
+---
+
+Adds a `devtools` option
+
+You can enable the [official Vue DevTools](https://devtools-next.vuejs.org/) while working in development mode by setting `devtools:true` in your `vue()` integration config:
+
+```js
+import { defineConfig } from "astro/config"
+import vue from "@astrojs/vue"
+
+export default defineConfig({
+ integrations: [
+ vue({ devtools: true })
+ ]
+})
+``` \ No newline at end of file
diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json
index 102d102ba..5fcf280a4 100644
--- a/packages/integrations/vue/package.json
+++ b/packages/integrations/vue/package.json
@@ -42,7 +42,8 @@
"dependencies": {
"@vitejs/plugin-vue": "^5.0.4",
"@vitejs/plugin-vue-jsx": "^3.1.0",
- "@vue/compiler-sfc": "^3.4.26"
+ "@vue/compiler-sfc": "^3.4.26",
+ "vite-plugin-vue-devtools": "^7.1.3"
},
"devDependencies": {
"astro": "workspace:*",
diff --git a/packages/integrations/vue/src/index.ts b/packages/integrations/vue/src/index.ts
index 803095c19..f61b35a09 100644
--- a/packages/integrations/vue/src/index.ts
+++ b/packages/integrations/vue/src/index.ts
@@ -3,12 +3,16 @@ import type { Options as VueOptions } from '@vitejs/plugin-vue';
import vue from '@vitejs/plugin-vue';
import type { Options as VueJsxOptions } from '@vitejs/plugin-vue-jsx';
import { MagicString } from '@vue/compiler-sfc';
-import type { AstroIntegration, AstroRenderer } from 'astro';
+import type { AstroIntegration, AstroRenderer, HookParameters } from 'astro';
import type { Plugin, UserConfig } from 'vite';
+const VIRTUAL_MODULE_ID = 'virtual:@astrojs/vue/app';
+const RESOLVED_VIRTUAL_MODULE_ID = `\0${VIRTUAL_MODULE_ID}`;
+
interface Options extends VueOptions {
jsx?: boolean | VueJsxOptions;
appEntrypoint?: string;
+ devtools?: boolean;
}
function getRenderer(): AstroRenderer {
@@ -28,9 +32,6 @@ function getJsxRenderer(): AstroRenderer {
}
function virtualAppEntrypoint(options?: Options): Plugin {
- const virtualModuleId = 'virtual:@astrojs/vue/app';
- const resolvedVirtualModuleId = '\0' + virtualModuleId;
-
let isBuild: boolean;
let root: string;
let appEntrypoint: string | undefined;
@@ -49,12 +50,12 @@ function virtualAppEntrypoint(options?: Options): Plugin {
}
},
resolveId(id: string) {
- if (id == virtualModuleId) {
- return resolvedVirtualModuleId;
+ if (id == VIRTUAL_MODULE_ID) {
+ return RESOLVED_VIRTUAL_MODULE_ID;
}
},
load(id: string) {
- if (id === resolvedVirtualModuleId) {
+ if (id === RESOLVED_VIRTUAL_MODULE_ID) {
if (appEntrypoint) {
return `\
import * as mod from ${JSON.stringify(appEntrypoint)};
@@ -93,7 +94,10 @@ export const setup = async (app) => {
};
}
-async function getViteConfiguration(options?: Options): Promise<UserConfig> {
+async function getViteConfiguration(
+ command: HookParameters<'astro:config:setup'>['command'],
+ options?: Options
+): Promise<UserConfig> {
let vueOptions = {
...options,
template: {
@@ -105,7 +109,7 @@ async function getViteConfiguration(options?: Options): Promise<UserConfig> {
const config: UserConfig = {
optimizeDeps: {
include: ['@astrojs/vue/client.js', 'vue'],
- exclude: ['@astrojs/vue/server.js', 'virtual:@astrojs/vue/app'],
+ exclude: ['@astrojs/vue/server.js', VIRTUAL_MODULE_ID],
},
plugins: [vue(vueOptions), virtualAppEntrypoint(vueOptions)],
ssr: {
@@ -119,6 +123,15 @@ async function getViteConfiguration(options?: Options): Promise<UserConfig> {
config.plugins?.push(vueJsx(jsxOptions));
}
+ if (command === 'dev' && options?.devtools) {
+ const vueDevTools = (await import('vite-plugin-vue-devtools')).default;
+ config.plugins?.push(
+ vueDevTools({
+ appendTo: VIRTUAL_MODULE_ID,
+ })
+ );
+ }
+
return config;
}
@@ -126,12 +139,12 @@ export default function (options?: Options): AstroIntegration {
return {
name: '@astrojs/vue',
hooks: {
- 'astro:config:setup': async ({ addRenderer, updateConfig }) => {
+ 'astro:config:setup': async ({ addRenderer, updateConfig, command }) => {
addRenderer(getRenderer());
if (options?.jsx) {
addRenderer(getJsxRenderer());
}
- updateConfig({ vite: await getViteConfiguration(options) });
+ updateConfig({ vite: await getViteConfiguration(command, options) });
},
},
};
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9e7fd73d2..0649f9fa1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5235,6 +5235,9 @@ importers:
'@vue/compiler-sfc':
specifier: ^3.4.26
version: 3.4.26
+ vite-plugin-vue-devtools:
+ specifier: ^7.1.3
+ version: 7.1.3(vite@5.2.10)(vue@3.4.26)
devDependencies:
astro:
specifier: workspace:*
@@ -5584,6 +5587,10 @@ packages:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
+ /@antfu/utils@0.7.7:
+ resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==}
+ dev: false
+
/@asamuzakjp/dom-selector@2.0.2:
resolution: {integrity: sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==}
dependencies:
@@ -5787,7 +5794,7 @@ packages:
'@babel/helper-optimise-call-expression': 7.22.5
'@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5)
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
- '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-split-export-declaration': 7.24.5
semver: 6.3.1
dev: false
@@ -5897,13 +5904,6 @@ packages:
'@babel/types': 7.24.5
dev: false
- /@babel/helper-split-export-declaration@7.22.6:
- resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.24.5
- dev: false
-
/@babel/helper-split-export-declaration@7.24.5:
resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==}
engines: {node: '>=6.9.0'}
@@ -5955,6 +5955,59 @@ packages:
dependencies:
'@babel/types': 7.24.5
+ /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.5):
+ resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5)
+ '@babel/helper-plugin-utils': 7.24.0
+ '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.5)
+ dev: false
+
+ /@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.5):
+ resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.0
+ dev: false
+
+ /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5):
+ resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.0
+ dev: false
+
+ /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5):
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/helper-plugin-utils': 7.24.0
+ dev: false
+
/@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5):
resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==}
engines: {node: '>=6.9.0'}
@@ -7780,6 +7833,10 @@ packages:
playwright: 1.43.1
dev: true
+ /@polka/url@1.0.0-next.25:
+ resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
+ dev: false
+
/@preact/preset-vite@2.8.2(preact@10.20.2):
resolution: {integrity: sha512-m3tl+M8IO8jgiHnk+7LSTFl8axdPXloewi7iGVLdmCwf34XOzEUur0bZVewW4DUbUipFjTS2CXu27+5f/oexBA==}
peerDependencies:
@@ -7873,6 +7930,20 @@ packages:
picomatch: 2.3.1
dev: false
+ /@rollup/pluginutils@5.1.0:
+ resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.5
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: false
+
/@rollup/rollup-android-arm-eabi@4.17.1:
resolution: {integrity: sha512-P6Wg856Ou/DLpR+O0ZLneNmrv7QpqBg+hK4wE05ijbC/t349BRfMfx+UFj5Ha3fCFopIa6iSZlpdaB4agkWp2Q==}
cpu: [arm]
@@ -8982,6 +9053,39 @@ packages:
'@vue/compiler-dom': 3.4.26
'@vue/shared': 3.4.26
+ /@vue/devtools-core@7.1.3(vite@5.2.10)(vue@3.4.26):
+ resolution: {integrity: sha512-pVbWi8pf2Z/fZPioYOIgu+cv9pQG55k4D8bL31ec+Wfe+pQR0ImFDu0OhHfch1Ra8uvLLrAZTF4IKeGAkmzD4A==}
+ dependencies:
+ '@vue/devtools-kit': 7.1.3(vue@3.4.26)
+ '@vue/devtools-shared': 7.1.3
+ mitt: 3.0.1
+ nanoid: 3.3.7
+ pathe: 1.1.2
+ vite-hot-client: 0.2.3(vite@5.2.10)
+ transitivePeerDependencies:
+ - vite
+ - vue
+ dev: false
+
+ /@vue/devtools-kit@7.1.3(vue@3.4.26):
+ resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==}
+ peerDependencies:
+ vue: ^3.0.0
+ dependencies:
+ '@vue/devtools-shared': 7.1.3
+ hookable: 5.5.3
+ mitt: 3.0.1
+ perfect-debounce: 1.0.0
+ speakingurl: 14.0.1
+ vue: 3.4.26(typescript@5.4.5)
+ dev: false
+
+ /@vue/devtools-shared@7.1.3:
+ resolution: {integrity: sha512-KJ3AfgjTn3tJz/XKF+BlVShNPecim3G21oHRue+YQOsooW+0s+qXvm09U09aO7yBza5SivL1QgxSrzAbiKWjhQ==}
+ dependencies:
+ rfdc: 1.3.1
+ dev: false
+
/@vue/reactivity@3.1.5:
resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==}
dependencies:
@@ -10594,6 +10698,10 @@ packages:
is-arrayish: 0.2.1
dev: true
+ /error-stack-parser-es@0.1.1:
+ resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==}
+ dev: false
+
/es-abstract@1.23.3:
resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==}
engines: {node: '>= 0.4'}
@@ -11711,6 +11819,10 @@ packages:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
+ /hookable@5.5.3:
+ resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
+ dev: false
+
/hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
dev: true
@@ -13351,6 +13463,10 @@ packages:
rimraf: 5.0.5
dev: false
+ /mitt@3.0.1:
+ resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+ dev: false
+
/mixme@0.5.10:
resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==}
engines: {node: '>= 8.0.0'}
@@ -13945,6 +14061,10 @@ packages:
engines: {node: '>= 14.16'}
dev: true
+ /perfect-debounce@1.0.0:
+ resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+ dev: false
+
/periscopic@3.1.0:
resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
dependencies:
@@ -14995,6 +15115,10 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ /rfdc@1.3.1:
+ resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==}
+ dev: false
+
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
@@ -15363,6 +15487,15 @@ packages:
is-arrayish: 0.3.2
dev: false
+ /sirv@2.0.4:
+ resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@polka/url': 1.0.0-next.25
+ mrmime: 2.0.0
+ totalist: 3.0.1
+ dev: false
+
/sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
dev: false
@@ -15496,6 +15629,11 @@ packages:
resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
dev: true
+ /speakingurl@14.0.1:
+ resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
/speech-rule-engine@4.0.7:
resolution: {integrity: sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==}
hasBin: true
@@ -15965,6 +16103,11 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
+ /totalist@3.0.1:
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+ engines: {node: '>=6'}
+ dev: false
+
/tough-cookie@4.1.3:
resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
engines: {node: '>=6'}
@@ -16510,6 +16653,17 @@ packages:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
+ /vite-hot-client@0.2.3(vite@5.2.10):
+ resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==}
+ peerDependencies:
+ vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ dependencies:
+ vite: 5.2.10(@types/node@18.19.31)(sass@1.75.0)
+ dev: false
+
/vite-node@1.5.0(@types/node@18.19.31):
resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -16531,6 +16685,33 @@ packages:
- terser
dev: false
+ /vite-plugin-inspect@0.8.4(vite@5.2.10):
+ resolution: {integrity: sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@nuxt/kit': '*'
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+ vite:
+ optional: true
+ dependencies:
+ '@antfu/utils': 0.7.7
+ '@rollup/pluginutils': 5.1.0
+ debug: 4.3.4(supports-color@8.1.1)
+ error-stack-parser-es: 0.1.1
+ fs-extra: 11.2.0
+ open: 10.1.0
+ perfect-debounce: 1.0.0
+ picocolors: 1.0.0
+ sirv: 2.0.4
+ vite: 5.2.10(@types/node@18.19.31)(sass@1.75.0)
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ dev: false
+
/vite-plugin-solid@2.10.2(solid-js@1.8.17):
resolution: {integrity: sha512-AOEtwMe2baBSXMXdo+BUwECC8IFHcKS6WQV/1NEd+Q7vHPap5fmIhLcAzr+DUJ04/KHx/1UBU0l1/GWP+rMAPQ==}
peerDependencies:
@@ -16554,6 +16735,52 @@ packages:
- supports-color
dev: false
+ /vite-plugin-vue-devtools@7.1.3(vite@5.2.10)(vue@3.4.26):
+ resolution: {integrity: sha512-qv8Z4yok9RYo6TEs89WnIAlmTHby/+XTim8tlSnMs3lAPcQqqcl/wGRY8gAeYrGCANngOqO+VuabW3Jb1HZtyw==}
+ engines: {node: '>=v14.21.3'}
+ peerDependencies:
+ vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ dependencies:
+ '@vue/devtools-core': 7.1.3(vite@5.2.10)(vue@3.4.26)
+ '@vue/devtools-kit': 7.1.3(vue@3.4.26)
+ '@vue/devtools-shared': 7.1.3
+ execa: 8.0.1
+ sirv: 2.0.4
+ vite: 5.2.10(@types/node@18.19.31)(sass@1.75.0)
+ vite-plugin-inspect: 0.8.4(vite@5.2.10)
+ vite-plugin-vue-inspector: 5.0.1(vite@5.2.10)
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - rollup
+ - supports-color
+ - vue
+ dev: false
+
+ /vite-plugin-vue-inspector@5.0.1(vite@5.2.10):
+ resolution: {integrity: sha512-R93P8iFa6BPODhc/aOtO04A8FFMMyFIfm8ZVSmN+8vU1TgwsHya734APGpX4fVHSPX2aVwYyiezXBUYQ0Opsqw==}
+ peerDependencies:
+ vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0
+ peerDependenciesMeta:
+ vite:
+ optional: true
+ dependencies:
+ '@babel/core': 7.24.5
+ '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5)
+ '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.5)
+ '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.5)
+ '@vue/compiler-dom': 3.4.26
+ kolorist: 1.8.0
+ magic-string: 0.30.10
+ vite: 5.2.10(@types/node@18.19.31)(sass@1.75.0)
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/vite-svg-loader@4.0.0:
resolution: {integrity: sha512-0MMf1yzzSYlV4MGePsLVAOqXsbF5IVxbn4EEzqRnWxTQl8BJg/cfwIzfQNmNQxZp5XXwd4kyRKF1LytuHZTnqA==}
peerDependencies: