diff --git a/demos/vue3/README.md b/demos/vue3/README.md
new file mode 100644
index 00000000..11195890
--- /dev/null
+++ b/demos/vue3/README.md
@@ -0,0 +1,7 @@
+# vue3 demo
+
+## 运行
+```
+pnpm i
+pnpm dev
+```
\ No newline at end of file
diff --git a/demos/vue3/package.json b/demos/vue3/package.json
new file mode 100644
index 00000000..47ee1ee2
--- /dev/null
+++ b/demos/vue3/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "vue3-demo",
+ "ignored": true,
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "pnpm --filter vue3-* --parallel dev",
+ "build": "pnpm --filter vue3-* --parallel build",
+ "serve": "pnpm --filter vue3-* --parallel serve",
+ "stat": "pnpm --filter vue3-* --parallel stat"
+ }
+ }
+
\ No newline at end of file
diff --git a/demos/vue3/vue-3-base/emp.config.ts b/demos/vue3/vue-3-base/emp.config.ts
new file mode 100644
index 00000000..7ccf5195
--- /dev/null
+++ b/demos/vue3/vue-3-base/emp.config.ts
@@ -0,0 +1,41 @@
+import {defineConfig} from '@empjs/cli'
+import lightningcss from '@empjs/plugin-lightningcss'
+import Vue3 from '@empjs/plugin-vue3'
+import {pluginRspackEmpShare} from '@empjs/share'
+export default defineConfig(() => {
+ return {
+ plugins: [
+ Vue3(),
+ lightningcss(),
+ pluginRspackEmpShare({
+ name: 'vue3Base',
+ // dts: {
+ // consumeTypes: true,
+ // generateTypes: {
+ // compilerInstance: 'vue-tsc',
+ // },
+ // },
+ shared: {
+ vue: {
+ requiredVersion: '^3',
+ },
+ },
+ exposes: {
+ './ButtonComponent': './src/components/ButtonComponent',
+ './TableComponent': './src/components/TableComponent',
+ './JSXComponent': './src/components/JSXComponent',
+ './TsxScript': './src/components/TsxScript',
+ './Antd': './src/Antd',
+ './Home': './src/Home',
+ },
+ }),
+ ],
+ appEntry: 'main.ts',
+ server: {port: 9301, open: false},
+ html: {title: 'EMP Vue3 Base'},
+ debug: {
+ clearLog: false,
+ showRsconfig: false,
+ },
+ }
+})
diff --git a/demos/vue3/vue-3-base/package.json b/demos/vue3/vue-3-base/package.json
new file mode 100644
index 00000000..f5edf31e
--- /dev/null
+++ b/demos/vue3/vue-3-base/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "vue3-base",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "type": "module",
+ "devDependencies": {
+ "@empjs/cli": "3.2.7",
+ "@empjs/plugin-vue3": "3.2.0"
+ },
+ "dependencies": {
+ "@empjs/plugin-lightningcss": "3.2.2",
+ "@empjs/share": "3.2.0",
+ "ant-design-vue": "^4.1.2",
+ "vue": "^3.4.20"
+ },
+ "scripts": {
+ "dev": "emp dev",
+ "build": "emp build",
+ "start": "emp serve",
+ "stat": "emp build --analyze",
+ "emp": "emp"
+ },
+ "author": "",
+ "license": "ISC"
+}
diff --git a/demos/vue3/vue-3-base/src/Antd.ts b/demos/vue3/vue-3-base/src/Antd.ts
new file mode 100644
index 00000000..2047b19e
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/Antd.ts
@@ -0,0 +1,2 @@
+import Antd from 'ant-design-vue'
+export default Antd
diff --git a/demos/vue3/vue-3-base/src/App.vue b/demos/vue3/vue-3-base/src/App.vue
new file mode 100644
index 00000000..844d9704
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/App.vue
@@ -0,0 +1,41 @@
+
+
+
Vue 3 Base
+
svg component:
+
+
svg image:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demos/vue3/vue-3-base/src/Home.vue b/demos/vue3/vue-3-base/src/Home.vue
new file mode 100644
index 00000000..7ccc5506
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/Home.vue
@@ -0,0 +1,6 @@
+
+
+
Host Home
+
+
+
diff --git a/demos/vue3/vue-3-base/src/bootstrap.ts b/demos/vue3/vue-3-base/src/bootstrap.ts
new file mode 100644
index 00000000..afbb274b
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/bootstrap.ts
@@ -0,0 +1,6 @@
+import Antd from 'ant-design-vue'
+import {createApp} from 'vue'
+import App from './App.vue'
+const app = createApp(App)
+app.use(Antd)
+app.mount('#emp-root')
diff --git a/demos/vue3/vue-3-base/src/components/ButtonComponent.vue b/demos/vue3/vue-3-base/src/components/ButtonComponent.vue
new file mode 100644
index 00000000..8ef08176
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/components/ButtonComponent.vue
@@ -0,0 +1,35 @@
+
+
+
add
+
value: {{ value }}
+
+ {{JSON.stringify(props)}}
+
+
+
+
+
+
+
+
+
diff --git a/demos/vue3/vue-3-base/src/components/Count.vue b/demos/vue3/vue-3-base/src/components/Count.vue
new file mode 100644
index 00000000..0bdd83f9
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/components/Count.vue
@@ -0,0 +1,54 @@
+
+
+
+
+ {{ count.toFixed(2) }}
+
+
+
+
{{ JSON.stringify(dataSource, null, 2) }}
+
+
diff --git a/demos/vue3/vue-3-base/src/components/JSXComponent.tsx b/demos/vue3/vue-3-base/src/components/JSXComponent.tsx
new file mode 100644
index 00000000..5dbe1cf0
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/components/JSXComponent.tsx
@@ -0,0 +1,22 @@
+import {Button} from 'ant-design-vue'
+import {defineComponent, ref} from 'vue'
+import styles from './index.module.less'
+
+export default defineComponent({
+ name: 'JSXComponent',
+ setup() {
+ const value = ref(0)
+ function add() {
+ value.value++
+ }
+
+ return () => (
+
+
============ jsx component start =============
+
+
value:{value.value}
+
============ jsx component end =============
+
+ )
+ },
+})
diff --git a/demos/vue3/vue-3-base/src/components/TableComponent.vue b/demos/vue3/vue-3-base/src/components/TableComponent.vue
new file mode 100644
index 00000000..16a6cd94
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/components/TableComponent.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
diff --git a/demos/vue3/vue-3-base/src/components/TsxScript.vue b/demos/vue3/vue-3-base/src/components/TsxScript.vue
new file mode 100644
index 00000000..ac2f8bdb
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/components/TsxScript.vue
@@ -0,0 +1,37 @@
+
+
+
\ No newline at end of file
diff --git a/demos/vue3/vue-3-base/src/components/index.module.less b/demos/vue3/vue-3-base/src/components/index.module.less
new file mode 100644
index 00000000..c62ed0f4
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/components/index.module.less
@@ -0,0 +1,3 @@
+.space {
+ margin-left: 10px;
+}
\ No newline at end of file
diff --git a/demos/vue3/vue-3-base/src/logo.svg b/demos/vue3/vue-3-base/src/logo.svg
new file mode 100644
index 00000000..4f6f3a33
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/logo.svg
@@ -0,0 +1,8 @@
+
diff --git a/demos/vue3/vue-3-base/src/main.ts b/demos/vue3/vue-3-base/src/main.ts
new file mode 100644
index 00000000..fd65f60c
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/main.ts
@@ -0,0 +1 @@
+import('./bootstrap')
diff --git a/demos/vue3/vue-3-base/src/shims-vue.d.ts b/demos/vue3/vue-3-base/src/shims-vue.d.ts
new file mode 100644
index 00000000..806ec5b9
--- /dev/null
+++ b/demos/vue3/vue-3-base/src/shims-vue.d.ts
@@ -0,0 +1,19 @@
+declare module '*.vue' {
+ import type {DefineComponent} from 'vue'
+ const component: DefineComponent, Record, unknown>
+ export default component
+}
+
+declare module '*.svg' {
+ import type Vue from 'vue'
+ import type {VueConstructor} from 'vue'
+ const content: VueConstructor
+ export default content
+}
+
+declare module '*.less' {
+ const classes: {readonly [key: string]: string}
+ export default classes
+}
+
+declare module 'ATable'
diff --git a/demos/vue3/vue-3-base/tsconfig.json b/demos/vue3/vue-3-base/tsconfig.json
new file mode 100644
index 00000000..883bbb57
--- /dev/null
+++ b/demos/vue3/vue-3-base/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@empjs/cli/emp-tsconfig.json",
+ "compilerOptions": {
+ "jsx": "preserve",
+ "allowJs": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules"]
+}
diff --git a/demos/vue3/vue-3-project/emp-config.js b/demos/vue3/vue-3-project/emp-config.js
new file mode 100644
index 00000000..066a705c
--- /dev/null
+++ b/demos/vue3/vue-3-project/emp-config.js
@@ -0,0 +1,34 @@
+import {defineConfig} from '@empjs/cli'
+import Vue3 from '@empjs/plugin-vue3'
+import {pluginRspackEmpShare} from '@empjs/share'
+// cf vue3
+const deploy = process.env.DEPLOY
+const isCf = deploy === 'cloudflare'
+//
+export default defineConfig(store => {
+ const ip = store.getLanIp()
+ const vue3Base = isCf ? 'https://mf-vue3.sc.empjs.dev/host/emp.js' : `http://${ip}:9301/emp.js`
+ return {
+ plugins: [
+ Vue3(),
+ pluginRspackEmpShare({
+ name: 'vue3Project',
+ shared: {
+ vue: {
+ requiredVersion: '^3',
+ },
+ },
+ remotes: {
+ '@v3': `vue3Base@${vue3Base}`,
+ },
+ }),
+ ],
+ appEntry: 'main.ts',
+ server: {port: 9302},
+ html: {title: 'EMP Vue3 Projects'},
+ debug: {
+ clearLog: false,
+ showRsconfig: false,
+ },
+ }
+})
diff --git a/demos/vue3/vue-3-project/package.json b/demos/vue3/vue-3-project/package.json
new file mode 100644
index 00000000..49df385a
--- /dev/null
+++ b/demos/vue3/vue-3-project/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "vue3-project",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "type": "module",
+ "devDependencies": {
+ "@empjs/cli": "3.2.7",
+ "@empjs/plugin-vue3": "3.2.0"
+ },
+ "dependencies": {
+ "@empjs/share": "3.2.0",
+ "ant-design-vue": "^4.1.2",
+ "vue": "^3.4.20",
+ "vue-router": "4"
+ },
+ "scripts": {
+ "dev": "emp dev",
+ "build": "emp build",
+ "start": "emp serve",
+ "stat": "emp build --analyze",
+ "emp": "emp"
+ },
+ "author": "",
+ "license": "ISC"
+}
diff --git a/demos/vue3/vue-3-project/src/App.vue b/demos/vue3/vue-3-project/src/App.vue
new file mode 100644
index 00000000..530fb4b0
--- /dev/null
+++ b/demos/vue3/vue-3-project/src/App.vue
@@ -0,0 +1,13 @@
+
+ Hello App
+
+ Current route path: {{ $route.fullPath }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demos/vue3/vue-3-project/src/Home.vue b/demos/vue3/vue-3-project/src/Home.vue
new file mode 100644
index 00000000..36d51658
--- /dev/null
+++ b/demos/vue3/vue-3-project/src/Home.vue
@@ -0,0 +1,32 @@
+
+
+
Vue 3 Project
+
vue3Base/TableComponent
+
+
vue3Base/JSXComponent
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demos/vue3/vue-3-project/src/bootstrap.ts b/demos/vue3/vue-3-project/src/bootstrap.ts
new file mode 100644
index 00000000..479f76ee
--- /dev/null
+++ b/demos/vue3/vue-3-project/src/bootstrap.ts
@@ -0,0 +1,9 @@
+import Antd from '@v3/Antd'
+import {createApp} from 'vue'
+import App from './App.vue'
+import {router} from './router'
+console.log('Antd', Antd)
+const app = createApp(App)
+app.use(Antd)
+app.use(router)
+app.mount('#emp-root')
diff --git a/demos/vue3/vue-3-project/src/main.ts b/demos/vue3/vue-3-project/src/main.ts
new file mode 100644
index 00000000..fd65f60c
--- /dev/null
+++ b/demos/vue3/vue-3-project/src/main.ts
@@ -0,0 +1 @@
+import('./bootstrap')
diff --git a/demos/vue3/vue-3-project/src/router.ts b/demos/vue3/vue-3-project/src/router.ts
new file mode 100644
index 00000000..ef914935
--- /dev/null
+++ b/demos/vue3/vue-3-project/src/router.ts
@@ -0,0 +1,11 @@
+import {createRouter, createWebHashHistory} from 'vue-router'
+
+const routes = [
+ {path: '/', name: 'home', component: () => import('./Home.vue')},
+ {path: '/hostHome', name: 'hostHome', component: () => import('@v3/Home')},
+]
+
+export const router = createRouter({
+ history: createWebHashHistory(),
+ routes,
+})
diff --git a/demos/vue3/vue-3-project/src/shims-vue.d.ts b/demos/vue3/vue-3-project/src/shims-vue.d.ts
new file mode 100644
index 00000000..c2b902ff
--- /dev/null
+++ b/demos/vue3/vue-3-project/src/shims-vue.d.ts
@@ -0,0 +1,7 @@
+declare module '*.vue' {
+ import type {DefineComponent} from 'vue'
+ const component: DefineComponent, Record, unknown>
+ export default component
+}
+
+declare module '@v3/*'
diff --git a/demos/vue3/vue-3-project/tsconfig.json b/demos/vue3/vue-3-project/tsconfig.json
new file mode 100644
index 00000000..883bbb57
--- /dev/null
+++ b/demos/vue3/vue-3-project/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "@empjs/cli/emp-tsconfig.json",
+ "compilerOptions": {
+ "jsx": "preserve",
+ "allowJs": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules"]
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1a61bdf5..a3a73cbb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -224,6 +224,50 @@ importers:
specifier: 3.2.0
version: 3.2.0(@babel/core@7.24.0)(css-loader@7.1.2)(react-dom@18.2.0)(react@18.2.0)(webpack@5.90.3)
+ demos/vue3/vue-3-base:
+ dependencies:
+ '@empjs/plugin-lightningcss':
+ specifier: 3.2.2
+ version: 3.2.2
+ '@empjs/share':
+ specifier: 3.2.0
+ version: 3.2.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.90.3)
+ ant-design-vue:
+ specifier: ^4.1.2
+ version: 4.2.3(vue@3.4.31)
+ vue:
+ specifier: ^3.4.20
+ version: 3.4.31(typescript@5.3.3)
+ devDependencies:
+ '@empjs/cli':
+ specifier: 3.2.7
+ version: 3.2.7(less@4.2.0)(ts-node@10.9.1)(typescript@5.3.3)(webpack@5.90.3)
+ '@empjs/plugin-vue3':
+ specifier: 3.2.0
+ version: 3.2.0(@babel/core@7.24.0)(typescript@5.3.3)(vue-template-compiler@2.7.16)(webpack@5.90.3)
+
+ demos/vue3/vue-3-project:
+ dependencies:
+ '@empjs/share':
+ specifier: 3.2.0
+ version: 3.2.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.90.3)
+ ant-design-vue:
+ specifier: ^4.1.2
+ version: 4.2.3(vue@3.4.31)
+ vue:
+ specifier: ^3.4.20
+ version: 3.4.31(typescript@5.3.3)
+ vue-router:
+ specifier: '4'
+ version: 4.4.5(vue@3.4.31)
+ devDependencies:
+ '@empjs/cli':
+ specifier: 3.2.7
+ version: 3.2.7(less@4.2.0)(ts-node@10.9.1)(typescript@5.3.3)(webpack@5.90.3)
+ '@empjs/plugin-vue3':
+ specifier: 3.2.0
+ version: 3.2.0(@babel/core@7.24.0)(typescript@5.3.3)(vue-template-compiler@2.7.16)(webpack@5.90.3)
+
projects/emp-runtime-react-16-app:
dependencies:
'@empjs/plugin-emp-runtime':
@@ -2454,6 +2498,14 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
+ /@empjs/plugin-lightningcss@3.2.2:
+ resolution: {integrity: sha512-gm2ZJoq/cOgkHQ1jZ7ZL2mMLGfG1hPILG/MHTHXX8Il+EU+qgnHFqX2mMkf6Z6HgbwYJL3KbB3SY4TXqRwUALA==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ browserslist: 4.23.2
+ lightningcss: 1.27.0
+ dev: false
+
/@empjs/plugin-react@3.0.0(typescript@5.3.3):
resolution: {integrity: sha512-fTWazGyUMuT9AMWjnQmiLkr2Vf7uRbpLJzpDezzPU51+Ka/8JfG7QAIk7kxTQG9OaZsSKSIDFwSZXr9aE6qMTQ==}
engines: {node: '>=16.0.0'}
@@ -2643,6 +2695,25 @@ packages:
- webpack
dev: true
+ /@empjs/plugin-vue3@3.2.0(@babel/core@7.24.0)(typescript@5.3.3)(vue-template-compiler@2.7.16)(webpack@5.90.3):
+ resolution: {integrity: sha512-u7FY6MPRZvUOD5NFQ+AeLpp2CbhEX4rbbtUeM/Vj4nMtlizAHdA2RoS5J8IrT92chg2kR7RDvy3o7A5DjXUv+w==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ '@babel/preset-typescript': 7.24.7(@babel/core@7.24.0)
+ '@empjs/vue-loader': 17.4.5(vue@3.4.31)(webpack@5.90.3)
+ '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.0)
+ babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3)
+ vue: 3.4.31(typescript@5.3.3)
+ vue-svg-loader: 0.16.0(vue-template-compiler@2.7.16)
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@vue/compiler-sfc'
+ - supports-color
+ - typescript
+ - vue-template-compiler
+ - webpack
+ dev: true
+
/@empjs/share@3.2.0(react-dom@16.14.0)(react@16.14.0)(typescript@5.3.3)(webpack@5.90.3):
resolution: {integrity: sha512-hlWaADnuvHFvnJ+hVK/wgC5R6j19lafoiIPy4pGFaAwbMxZYh49lT9foxN+iJdK8K4uuW03JWI6CH5RrNKm42g==}
engines: {node: '>=16.0.0'}
@@ -2703,6 +2774,24 @@ packages:
- webpack
dev: false
+ /@empjs/vue-loader@17.4.5(vue@3.4.31)(webpack@5.90.3):
+ resolution: {integrity: sha512-tk0HoaXv2+i8bVlCanaSqaHlH10xIQPlMHBGPZI9wBoyVmxMXAdYIVRjWLLkk0r/WJAEIf4jwkJbf7WKsShvSA==}
+ peerDependencies:
+ '@vue/compiler-sfc': '*'
+ vue: '*'
+ webpack: ^4.1.0 || ^5.0.0-0
+ peerDependenciesMeta:
+ '@vue/compiler-sfc':
+ optional: true
+ vue:
+ optional: true
+ dependencies:
+ chalk: 4.1.2
+ vue: 3.4.31(typescript@5.3.3)
+ watchpack: 2.4.1
+ webpack: 5.90.3(webpack-cli@4.10.0)
+ dev: true
+
/@isaacs/cliui@8.0.2:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
@@ -4923,6 +5012,10 @@ packages:
- whiskers
dev: true
+ /@vue/devtools-api@6.6.4:
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+ dev: false
+
/@vue/reactivity@3.4.31:
resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==}
dependencies:
@@ -5262,7 +5355,7 @@ packages:
array-tree-filter: 2.1.0
async-validator: 4.2.5
csstype: 3.1.3
- dayjs: 1.11.11
+ dayjs: 1.11.13
dom-align: 1.12.4
dom-scroll-into-view: 2.0.1
lodash: 4.17.21
@@ -6507,13 +6600,8 @@ packages:
resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==}
engines: {node: '>=4.0'}
- /dayjs@1.11.11:
- resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==}
- dev: false
-
/dayjs@1.11.13:
resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
- dev: true
/de-indent@1.0.2:
resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
@@ -6672,6 +6760,12 @@ packages:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ /detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+ dev: false
+
/detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
@@ -8703,6 +8797,114 @@ packages:
source-map: 0.6.1
dev: true
+ /lightningcss-darwin-arm64@1.27.0:
+ resolution: {integrity: sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-darwin-x64@1.27.0:
+ resolution: {integrity: sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-freebsd-x64@1.27.0:
+ resolution: {integrity: sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-arm-gnueabihf@1.27.0:
+ resolution: {integrity: sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-arm64-gnu@1.27.0:
+ resolution: {integrity: sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-arm64-musl@1.27.0:
+ resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-x64-gnu@1.27.0:
+ resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-linux-x64-musl@1.27.0:
+ resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-win32-arm64-msvc@1.27.0:
+ resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-win32-x64-msvc@1.27.0:
+ resolution: {integrity: sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss@1.27.0:
+ resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ detect-libc: 1.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.27.0
+ lightningcss-darwin-x64: 1.27.0
+ lightningcss-freebsd-x64: 1.27.0
+ lightningcss-linux-arm-gnueabihf: 1.27.0
+ lightningcss-linux-arm64-gnu: 1.27.0
+ lightningcss-linux-arm64-musl: 1.27.0
+ lightningcss-linux-x64-gnu: 1.27.0
+ lightningcss-linux-x64-musl: 1.27.0
+ lightningcss-win32-arm64-msvc: 1.27.0
+ lightningcss-win32-x64-msvc: 1.27.0
+ dev: false
+
/lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
@@ -12302,6 +12504,15 @@ packages:
vue: 2.7.16
dev: false
+ /vue-router@4.4.5(vue@3.4.31):
+ resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.4.31(typescript@5.3.3)
+ dev: false
+
/vue-style-loader@4.1.3:
resolution: {integrity: sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==}
dependencies: