From 260f65167395bc3ba25006115972c3409fb62390 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BD=AD=E9=A1=BA?= <3024235926@qq.com>
Date: Mon, 21 Jul 2025 15:19:10 +0800
Subject: [PATCH 1/7] 1
---
"\346\265\213\350\257\225.txt" | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 "\346\265\213\350\257\225.txt"
diff --git "a/\346\265\213\350\257\225.txt" "b/\346\265\213\350\257\225.txt"
new file mode 100644
index 0000000..e69de29
--
Gitee
From 26d70045f45adecf7f5a1bfe7b23aee273470d2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=B0=91=E8=BD=A9?= <2980199349@qq.com>
Date: Mon, 21 Jul 2025 17:24:01 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E7=BB=93=E6=9E=84=E6=90=AD=E5=BB=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
backend/.gitignore | 14 +
backend/UniversalAdmin.sln | 0
frontend/.gitignore | 14 +
frontend/demo/.editorconfig | 9 +
frontend/demo/.gitattributes | 1 +
frontend/demo/.gitignore | 30 +
frontend/demo/.prettierrc.json | 6 +
frontend/demo/README.md | 35 +
frontend/demo/eslint.config.js | 26 +
frontend/demo/index.html | 13 +
frontend/demo/jsconfig.json | 8 +
frontend/demo/package.json | 28 +
frontend/demo/pnpm-lock.yaml | 2580 +++++++++++++++++
frontend/demo/public/favicon.ico | Bin 0 -> 4286 bytes
frontend/demo/src/App.vue | 85 +
frontend/demo/src/assets/base.css | 86 +
frontend/demo/src/assets/logo.svg | 1 +
frontend/demo/src/assets/main.css | 35 +
frontend/demo/src/components/HelloWorld.vue | 44 +
frontend/demo/src/components/TheWelcome.vue | 95 +
frontend/demo/src/components/WelcomeItem.vue | 86 +
.../src/components/icons/IconCommunity.vue | 7 +
.../components/icons/IconDocumentation.vue | 7 +
.../src/components/icons/IconEcosystem.vue | 7 +
.../demo/src/components/icons/IconSupport.vue | 7 +
.../demo/src/components/icons/IconTooling.vue | 19 +
frontend/demo/src/main.js | 11 +
frontend/demo/src/router/index.js | 23 +
frontend/demo/src/views/AboutView.vue | 15 +
frontend/demo/src/views/HomeView.vue | 9 +
frontend/demo/vite.config.js | 18 +
31 files changed, 3319 insertions(+)
create mode 100644 backend/.gitignore
create mode 100644 backend/UniversalAdmin.sln
create mode 100644 frontend/.gitignore
create mode 100644 frontend/demo/.editorconfig
create mode 100644 frontend/demo/.gitattributes
create mode 100644 frontend/demo/.gitignore
create mode 100644 frontend/demo/.prettierrc.json
create mode 100644 frontend/demo/README.md
create mode 100644 frontend/demo/eslint.config.js
create mode 100644 frontend/demo/index.html
create mode 100644 frontend/demo/jsconfig.json
create mode 100644 frontend/demo/package.json
create mode 100644 frontend/demo/pnpm-lock.yaml
create mode 100644 frontend/demo/public/favicon.ico
create mode 100644 frontend/demo/src/App.vue
create mode 100644 frontend/demo/src/assets/base.css
create mode 100644 frontend/demo/src/assets/logo.svg
create mode 100644 frontend/demo/src/assets/main.css
create mode 100644 frontend/demo/src/components/HelloWorld.vue
create mode 100644 frontend/demo/src/components/TheWelcome.vue
create mode 100644 frontend/demo/src/components/WelcomeItem.vue
create mode 100644 frontend/demo/src/components/icons/IconCommunity.vue
create mode 100644 frontend/demo/src/components/icons/IconDocumentation.vue
create mode 100644 frontend/demo/src/components/icons/IconEcosystem.vue
create mode 100644 frontend/demo/src/components/icons/IconSupport.vue
create mode 100644 frontend/demo/src/components/icons/IconTooling.vue
create mode 100644 frontend/demo/src/main.js
create mode 100644 frontend/demo/src/router/index.js
create mode 100644 frontend/demo/src/views/AboutView.vue
create mode 100644 frontend/demo/src/views/HomeView.vue
create mode 100644 frontend/demo/vite.config.js
diff --git a/backend/.gitignore b/backend/.gitignore
new file mode 100644
index 0000000..1aba69a
--- /dev/null
+++ b/backend/.gitignore
@@ -0,0 +1,14 @@
+# 操作系统
+.Ds_Store
+
+# 编辑器
+.vscode
+.vs
+
+# 前端
+node_modules
+
+
+# 后端
+bin
+obj
diff --git a/backend/UniversalAdmin.sln b/backend/UniversalAdmin.sln
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/.gitignore b/frontend/.gitignore
new file mode 100644
index 0000000..1aba69a
--- /dev/null
+++ b/frontend/.gitignore
@@ -0,0 +1,14 @@
+# 操作系统
+.Ds_Store
+
+# 编辑器
+.vscode
+.vs
+
+# 前端
+node_modules
+
+
+# 后端
+bin
+obj
diff --git a/frontend/demo/.editorconfig b/frontend/demo/.editorconfig
new file mode 100644
index 0000000..5a5809d
--- /dev/null
+++ b/frontend/demo/.editorconfig
@@ -0,0 +1,9 @@
+[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue,css,scss,sass,less,styl}]
+charset = utf-8
+indent_size = 2
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+end_of_line = lf
+max_line_length = 100
diff --git a/frontend/demo/.gitattributes b/frontend/demo/.gitattributes
new file mode 100644
index 0000000..6313b56
--- /dev/null
+++ b/frontend/demo/.gitattributes
@@ -0,0 +1 @@
+* text=auto eol=lf
diff --git a/frontend/demo/.gitignore b/frontend/demo/.gitignore
new file mode 100644
index 0000000..8ee54e8
--- /dev/null
+++ b/frontend/demo/.gitignore
@@ -0,0 +1,30 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+*.tsbuildinfo
diff --git a/frontend/demo/.prettierrc.json b/frontend/demo/.prettierrc.json
new file mode 100644
index 0000000..29a2402
--- /dev/null
+++ b/frontend/demo/.prettierrc.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://json.schemastore.org/prettierrc",
+ "semi": false,
+ "singleQuote": true,
+ "printWidth": 100
+}
diff --git a/frontend/demo/README.md b/frontend/demo/README.md
new file mode 100644
index 0000000..22c2d44
--- /dev/null
+++ b/frontend/demo/README.md
@@ -0,0 +1,35 @@
+# demo
+
+This template should help get you started developing with Vue 3 in Vite.
+
+## Recommended IDE Setup
+
+[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vite.dev/config/).
+
+## Project Setup
+
+```sh
+pnpm install
+```
+
+### Compile and Hot-Reload for Development
+
+```sh
+pnpm dev
+```
+
+### Compile and Minify for Production
+
+```sh
+pnpm build
+```
+
+### Lint with [ESLint](https://eslint.org/)
+
+```sh
+pnpm lint
+```
diff --git a/frontend/demo/eslint.config.js b/frontend/demo/eslint.config.js
new file mode 100644
index 0000000..7807d8b
--- /dev/null
+++ b/frontend/demo/eslint.config.js
@@ -0,0 +1,26 @@
+import { defineConfig, globalIgnores } from 'eslint/config'
+import globals from 'globals'
+import js from '@eslint/js'
+import pluginVue from 'eslint-plugin-vue'
+import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
+
+export default defineConfig([
+ {
+ name: 'app/files-to-lint',
+ files: ['**/*.{js,mjs,jsx,vue}'],
+ },
+
+ globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']),
+
+ {
+ languageOptions: {
+ globals: {
+ ...globals.browser,
+ },
+ },
+ },
+
+ js.configs.recommended,
+ ...pluginVue.configs['flat/essential'],
+ skipFormatting,
+])
diff --git a/frontend/demo/index.html b/frontend/demo/index.html
new file mode 100644
index 0000000..b19040a
--- /dev/null
+++ b/frontend/demo/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite App
+
+
+
+
+
+
diff --git a/frontend/demo/jsconfig.json b/frontend/demo/jsconfig.json
new file mode 100644
index 0000000..5a1f2d2
--- /dev/null
+++ b/frontend/demo/jsconfig.json
@@ -0,0 +1,8 @@
+{
+ "compilerOptions": {
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/frontend/demo/package.json b/frontend/demo/package.json
new file mode 100644
index 0000000..3c549ab
--- /dev/null
+++ b/frontend/demo/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "demo",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview",
+ "lint": "eslint . --fix",
+ "format": "prettier --write src/"
+ },
+ "dependencies": {
+ "vue": "^3.5.17",
+ "vue-router": "^4.5.1"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.29.0",
+ "@vitejs/plugin-vue": "^6.0.0",
+ "@vue/eslint-config-prettier": "^10.2.0",
+ "eslint": "^9.29.0",
+ "eslint-plugin-vue": "~10.2.0",
+ "globals": "^16.2.0",
+ "prettier": "3.5.3",
+ "vite": "^7.0.0",
+ "vite-plugin-vue-devtools": "^7.7.7"
+ }
+}
diff --git a/frontend/demo/pnpm-lock.yaml b/frontend/demo/pnpm-lock.yaml
new file mode 100644
index 0000000..0ce04a4
--- /dev/null
+++ b/frontend/demo/pnpm-lock.yaml
@@ -0,0 +1,2580 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ vue:
+ specifier: ^3.5.17
+ version: 3.5.17
+ vue-router:
+ specifier: ^4.5.1
+ version: 4.5.1(vue@3.5.17)
+ devDependencies:
+ '@eslint/js':
+ specifier: ^9.29.0
+ version: 9.31.0
+ '@vitejs/plugin-vue':
+ specifier: ^6.0.0
+ version: 6.0.0(vite@7.0.5)(vue@3.5.17)
+ '@vue/eslint-config-prettier':
+ specifier: ^10.2.0
+ version: 10.2.0(eslint@9.31.0)(prettier@3.5.3)
+ eslint:
+ specifier: ^9.29.0
+ version: 9.31.0
+ eslint-plugin-vue:
+ specifier: ~10.2.0
+ version: 10.2.0(eslint@9.31.0)(vue-eslint-parser@10.2.0(eslint@9.31.0))
+ globals:
+ specifier: ^16.2.0
+ version: 16.3.0
+ prettier:
+ specifier: 3.5.3
+ version: 3.5.3
+ vite:
+ specifier: ^7.0.0
+ version: 7.0.5
+ vite-plugin-vue-devtools:
+ specifier: ^7.7.7
+ version: 7.7.7(rollup@4.45.1)(vite@7.0.5)(vue@3.5.17)
+
+packages:
+
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
+ '@antfu/utils@0.7.10':
+ resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
+
+ '@babel/code-frame@7.27.1':
+ resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.28.0':
+ resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.28.0':
+ resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.28.0':
+ resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-compilation-targets@7.27.2':
+ resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-create-class-features-plugin@7.27.1':
+ resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-globals@7.28.0':
+ resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-member-expression-to-functions@7.27.1':
+ resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.27.1':
+ resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.27.3':
+ resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-plugin-utils@7.27.1':
+ resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-replace-supers@7.27.1':
+ resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.27.6':
+ resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.28.0':
+ resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-proposal-decorators@7.28.0':
+ resolution: {integrity: sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-decorators@7.27.1':
+ resolution: {integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-attributes@7.27.1':
+ resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-meta@7.10.4':
+ resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-jsx@7.27.1':
+ resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-typescript@7.27.1':
+ resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typescript@7.28.0':
+ resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/template@7.27.2':
+ resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.28.0':
+ resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.28.1':
+ resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@esbuild/aix-ppc64@0.25.8':
+ resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.25.8':
+ resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.25.8':
+ resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.25.8':
+ resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.25.8':
+ resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.25.8':
+ resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.25.8':
+ resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.25.8':
+ resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.25.8':
+ resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.25.8':
+ resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.25.8':
+ resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.25.8':
+ resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.25.8':
+ resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.25.8':
+ resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.25.8':
+ resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.25.8':
+ resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.25.8':
+ resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-arm64@0.25.8':
+ resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
+ '@esbuild/netbsd-x64@0.25.8':
+ resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-arm64@0.25.8':
+ resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.25.8':
+ resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/openharmony-arm64@0.25.8':
+ resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@esbuild/sunos-x64@0.25.8':
+ resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.25.8':
+ resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.25.8':
+ resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.25.8':
+ resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.7.0':
+ resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.21.0':
+ resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/config-helpers@0.3.0':
+ resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.15.1':
+ resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.3.1':
+ resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.31.0':
+ resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.6':
+ resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.3.3':
+ resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.6':
+ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/retry@0.3.1':
+ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+ engines: {node: '>=18.18'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
+ '@jridgewell/gen-mapping@0.3.12':
+ resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.5.4':
+ resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
+
+ '@jridgewell/trace-mapping@0.3.29':
+ resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
+
+ '@pkgr/core@0.2.9':
+ resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+ '@polka/url@1.0.0-next.29':
+ resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
+
+ '@rolldown/pluginutils@1.0.0-beta.19':
+ resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==}
+
+ '@rollup/pluginutils@5.2.0':
+ resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/rollup-android-arm-eabi@4.45.1':
+ resolution: {integrity: sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.45.1':
+ resolution: {integrity: sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.45.1':
+ resolution: {integrity: sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.45.1':
+ resolution: {integrity: sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.45.1':
+ resolution: {integrity: sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.45.1':
+ resolution: {integrity: sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.45.1':
+ resolution: {integrity: sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.45.1':
+ resolution: {integrity: sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-gnu@4.45.1':
+ resolution: {integrity: sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-musl@4.45.1':
+ resolution: {integrity: sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.45.1':
+ resolution: {integrity: sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==}
+ cpu: [loong64]
+ os: [linux]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.45.1':
+ resolution: {integrity: sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.45.1':
+ resolution: {integrity: sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-musl@4.45.1':
+ resolution: {integrity: sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.45.1':
+ resolution: {integrity: sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-gnu@4.45.1':
+ resolution: {integrity: sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-musl@4.45.1':
+ resolution: {integrity: sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-win32-arm64-msvc@4.45.1':
+ resolution: {integrity: sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.45.1':
+ resolution: {integrity: sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.45.1':
+ resolution: {integrity: sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==}
+ cpu: [x64]
+ os: [win32]
+
+ '@sec-ant/readable-stream@0.4.1':
+ resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
+
+ '@sindresorhus/merge-streams@4.0.0':
+ resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
+ engines: {node: '>=18'}
+
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@vitejs/plugin-vue@6.0.0':
+ resolution: {integrity: sha512-iAliE72WsdhjzTOp2DtvKThq1VBC4REhwRcaA+zPAAph6I+OQhUXv+Xu2KS7ElxYtb7Zc/3R30Hwv1DxEo7NXQ==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0
+ vue: ^3.2.25
+
+ '@vue/babel-helper-vue-transform-on@1.4.0':
+ resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==}
+
+ '@vue/babel-plugin-jsx@1.4.0':
+ resolution: {integrity: sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+
+ '@vue/babel-plugin-resolve-type@1.4.0':
+ resolution: {integrity: sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@vue/compiler-core@3.5.17':
+ resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==}
+
+ '@vue/compiler-dom@3.5.17':
+ resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==}
+
+ '@vue/compiler-sfc@3.5.17':
+ resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==}
+
+ '@vue/compiler-ssr@3.5.17':
+ resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==}
+
+ '@vue/devtools-api@6.6.4':
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+
+ '@vue/devtools-core@7.7.7':
+ resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==}
+ peerDependencies:
+ vue: ^3.0.0
+
+ '@vue/devtools-kit@7.7.7':
+ resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==}
+
+ '@vue/devtools-shared@7.7.7':
+ resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==}
+
+ '@vue/eslint-config-prettier@10.2.0':
+ resolution: {integrity: sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==}
+ peerDependencies:
+ eslint: '>= 8.21.0'
+ prettier: '>= 3.0.0'
+
+ '@vue/reactivity@3.5.17':
+ resolution: {integrity: sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==}
+
+ '@vue/runtime-core@3.5.17':
+ resolution: {integrity: sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==}
+
+ '@vue/runtime-dom@3.5.17':
+ resolution: {integrity: sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==}
+
+ '@vue/server-renderer@3.5.17':
+ resolution: {integrity: sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==}
+ peerDependencies:
+ vue: 3.5.17
+
+ '@vue/shared@3.5.17':
+ resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ birpc@2.5.0:
+ resolution: {integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
+
+ browserslist@4.25.1:
+ resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ bundle-name@4.1.0:
+ resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
+ engines: {node: '>=18'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ caniuse-lite@1.0.30001727:
+ resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ convert-source-map@2.0.0:
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+
+ copy-anything@3.0.5:
+ resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
+ engines: {node: '>=12.13'}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ debug@4.4.1:
+ resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ default-browser-id@5.0.0:
+ resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
+ engines: {node: '>=18'}
+
+ default-browser@5.2.1:
+ resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
+ engines: {node: '>=18'}
+
+ define-lazy-prop@3.0.0:
+ resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
+ engines: {node: '>=12'}
+
+ electron-to-chromium@1.5.187:
+ resolution: {integrity: sha512-cl5Jc9I0KGUoOoSbxvTywTa40uspGJt/BDBoDLoxJRSBpWh4FFXBsjNRHfQrONsV/OoEjDfHUmZQa2d6Ze4YgA==}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ error-stack-parser-es@0.1.5:
+ resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==}
+
+ esbuild@0.25.8:
+ resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-config-prettier@10.1.8:
+ resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-plugin-prettier@5.5.3:
+ resolution: {integrity: sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ '@types/eslint': '>=8.0.0'
+ eslint: '>=8.0.0'
+ eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
+ prettier: '>=3.0.0'
+ peerDependenciesMeta:
+ '@types/eslint':
+ optional: true
+ eslint-config-prettier:
+ optional: true
+
+ eslint-plugin-vue@10.2.0:
+ resolution: {integrity: sha512-tl9s+KN3z0hN2b8fV2xSs5ytGl7Esk1oSCxULLwFcdaElhZ8btYYZFrWxvh4En+czrSDtuLCeCOGa8HhEZuBdQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ vue-eslint-parser: ^10.0.0
+
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.31.0:
+ resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ execa@9.6.0:
+ resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==}
+ engines: {node: ^18.19.0 || >=20.5.0}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fdir@6.4.6:
+ resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ figures@6.1.0:
+ resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
+ engines: {node: '>=18'}
+
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
+ fs-extra@11.3.0:
+ resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
+ engines: {node: '>=14.14'}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
+ get-stream@9.0.1:
+ resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
+ engines: {node: '>=18'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
+
+ globals@16.3.0:
+ resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==}
+ engines: {node: '>=18'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ hookable@5.5.3:
+ resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
+
+ human-signals@8.0.1:
+ resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
+ engines: {node: '>=18.18.0'}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ is-docker@3.0.0:
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-inside-container@1.0.0:
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+ engines: {node: '>=14.16'}
+ hasBin: true
+
+ is-plain-obj@4.1.0:
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
+
+ is-stream@4.0.1:
+ resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
+ engines: {node: '>=18'}
+
+ is-unicode-supported@2.1.0:
+ resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
+ engines: {node: '>=18'}
+
+ is-what@4.1.16:
+ resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
+ engines: {node: '>=12.13'}
+
+ is-wsl@3.1.0:
+ resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+ engines: {node: '>=16'}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ kolorist@1.8.0:
+ resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
+ magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ mitt@3.0.1:
+ resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+
+ mrmime@2.0.1:
+ resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
+ engines: {node: '>=10'}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nanoid@5.1.5:
+ resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
+ engines: {node: ^18 || >=20}
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ node-releases@2.0.19:
+ resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+ npm-run-path@6.0.0:
+ resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
+ engines: {node: '>=18'}
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+ open@10.2.0:
+ resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
+ engines: {node: '>=18'}
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-ms@4.0.0:
+ resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
+ engines: {node: '>=18'}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
+ perfect-debounce@1.0.0:
+ resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ engines: {node: '>=12'}
+
+ postcss-selector-parser@6.1.2:
+ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+ engines: {node: '>=4'}
+
+ postcss@8.5.6:
+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier-linter-helpers@1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+
+ prettier@3.5.3:
+ resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ pretty-ms@9.2.0:
+ resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==}
+ engines: {node: '>=18'}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ rfdc@1.4.1:
+ resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
+
+ rollup@4.45.1:
+ resolution: {integrity: sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ run-applescript@7.0.0:
+ resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
+ engines: {node: '>=18'}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ semver@7.7.2:
+ resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ sirv@3.0.1:
+ resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
+ engines: {node: '>=18'}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ speakingurl@14.0.1:
+ resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
+ engines: {node: '>=0.10.0'}
+
+ strip-final-newline@4.0.0:
+ resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
+ engines: {node: '>=18'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ superjson@2.2.2:
+ resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==}
+ engines: {node: '>=16'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ synckit@0.11.11:
+ resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
+ tinyglobby@0.2.14:
+ resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
+ engines: {node: '>=12.0.0'}
+
+ totalist@3.0.1:
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+ engines: {node: '>=6'}
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ unicorn-magic@0.3.0:
+ resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
+ engines: {node: '>=18'}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ update-browserslist-db@1.1.3:
+ resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ vite-hot-client@2.1.0:
+ resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==}
+ peerDependencies:
+ vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
+
+ vite-plugin-inspect@0.8.9:
+ resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@nuxt/kit': '*'
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+
+ vite-plugin-vue-devtools@7.7.7:
+ resolution: {integrity: sha512-d0fIh3wRcgSlr4Vz7bAk4va1MkdqhQgj9ANE/rBhsAjOnRfTLs2ocjFMvSUOsv6SRRXU9G+VM7yMgqDb6yI4iQ==}
+ engines: {node: '>=v14.21.3'}
+ peerDependencies:
+ vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
+
+ vite-plugin-vue-inspector@5.3.2:
+ resolution: {integrity: sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q==}
+ peerDependencies:
+ vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0
+
+ vite@7.0.5:
+ resolution: {integrity: sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ lightningcss: ^1.21.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ vue-eslint-parser@10.2.0:
+ resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+
+ vue-router@4.5.1:
+ resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==}
+ peerDependencies:
+ vue: ^3.2.0
+
+ vue@3.5.17:
+ resolution: {integrity: sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wsl-utils@0.1.0:
+ resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
+ engines: {node: '>=18'}
+
+ xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ yoctocolors@2.1.1:
+ resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==}
+ engines: {node: '>=18'}
+
+snapshots:
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@antfu/utils@0.7.10': {}
+
+ '@babel/code-frame@7.27.1':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.27.1
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.28.0': {}
+
+ '@babel/core@7.28.0':
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.0
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
+ '@babel/helpers': 7.27.6
+ '@babel/parser': 7.28.0
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.1
+ convert-source-map: 2.0.0
+ debug: 4.4.1
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.28.0':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.1
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/helper-annotate-as-pure@7.27.3':
+ dependencies:
+ '@babel/types': 7.28.1
+
+ '@babel/helper-compilation-targets@7.27.2':
+ dependencies:
+ '@babel/compat-data': 7.28.0
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.25.1
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/traverse': 7.28.0
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-globals@7.28.0': {}
+
+ '@babel/helper-member-expression-to-functions@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-imports@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-optimise-call-expression@7.27.1':
+ dependencies:
+ '@babel/types': 7.28.1
+
+ '@babel/helper-plugin-utils@7.27.1': {}
+
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-optimise-call-expression': 7.27.1
+ '@babel/traverse': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
+ dependencies:
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-string-parser@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.27.1': {}
+
+ '@babel/helper-validator-option@7.27.1': {}
+
+ '@babel/helpers@7.27.6':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.1
+
+ '@babel/parser@7.28.0':
+ dependencies:
+ '@babel/types': 7.28.1
+
+ '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-plugin-utils': 7.27.1
+
+ '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/helper-annotate-as-pure': 7.27.3
+ '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0)
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/template@7.27.2':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.28.0
+ '@babel/types': 7.28.1
+
+ '@babel/traverse@7.28.0':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.0
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.28.0
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.1
+ debug: 4.4.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/types@7.28.1':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@esbuild/aix-ppc64@0.25.8':
+ optional: true
+
+ '@esbuild/android-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/android-arm@0.25.8':
+ optional: true
+
+ '@esbuild/android-x64@0.25.8':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/darwin-x64@0.25.8':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.25.8':
+ optional: true
+
+ '@esbuild/linux-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/linux-arm@0.25.8':
+ optional: true
+
+ '@esbuild/linux-ia32@0.25.8':
+ optional: true
+
+ '@esbuild/linux-loong64@0.25.8':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.25.8':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.25.8':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.25.8':
+ optional: true
+
+ '@esbuild/linux-s390x@0.25.8':
+ optional: true
+
+ '@esbuild/linux-x64@0.25.8':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.25.8':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.25.8':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/sunos-x64@0.25.8':
+ optional: true
+
+ '@esbuild/win32-arm64@0.25.8':
+ optional: true
+
+ '@esbuild/win32-ia32@0.25.8':
+ optional: true
+
+ '@esbuild/win32-x64@0.25.8':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0)':
+ dependencies:
+ eslint: 9.31.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/config-array@0.21.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.6
+ debug: 4.4.1
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.3.0': {}
+
+ '@eslint/core@0.15.1':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/eslintrc@3.3.1':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.1
+ espree: 10.4.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@9.31.0': {}
+
+ '@eslint/object-schema@2.1.6': {}
+
+ '@eslint/plugin-kit@0.3.3':
+ dependencies:
+ '@eslint/core': 0.15.1
+ levn: 0.4.1
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.3': {}
+
+ '@jridgewell/gen-mapping@0.3.12':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/trace-mapping': 0.3.29
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/sourcemap-codec@1.5.4': {}
+
+ '@jridgewell/trace-mapping@0.3.29':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.4
+
+ '@pkgr/core@0.2.9': {}
+
+ '@polka/url@1.0.0-next.29': {}
+
+ '@rolldown/pluginutils@1.0.0-beta.19': {}
+
+ '@rollup/pluginutils@5.2.0(rollup@4.45.1)':
+ dependencies:
+ '@types/estree': 1.0.8
+ estree-walker: 2.0.2
+ picomatch: 4.0.3
+ optionalDependencies:
+ rollup: 4.45.1
+
+ '@rollup/rollup-android-arm-eabi@4.45.1':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.45.1':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.45.1':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.45.1':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.45.1':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-musl@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.45.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.45.1':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.45.1':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.45.1':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.45.1':
+ optional: true
+
+ '@sec-ant/readable-stream@0.4.1': {}
+
+ '@sindresorhus/merge-streams@4.0.0': {}
+
+ '@types/estree@1.0.8': {}
+
+ '@types/json-schema@7.0.15': {}
+
+ '@vitejs/plugin-vue@6.0.0(vite@7.0.5)(vue@3.5.17)':
+ dependencies:
+ '@rolldown/pluginutils': 1.0.0-beta.19
+ vite: 7.0.5
+ vue: 3.5.17
+
+ '@vue/babel-helper-vue-transform-on@1.4.0': {}
+
+ '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0)
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.0
+ '@babel/types': 7.28.1
+ '@vue/babel-helper-vue-transform-on': 1.4.0
+ '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.28.0)
+ '@vue/shared': 3.5.17
+ optionalDependencies:
+ '@babel/core': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.28.0)':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/core': 7.28.0
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-plugin-utils': 7.27.1
+ '@babel/parser': 7.28.0
+ '@vue/compiler-sfc': 3.5.17
+ transitivePeerDependencies:
+ - supports-color
+
+ '@vue/compiler-core@3.5.17':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@vue/shared': 3.5.17
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.17':
+ dependencies:
+ '@vue/compiler-core': 3.5.17
+ '@vue/shared': 3.5.17
+
+ '@vue/compiler-sfc@3.5.17':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@vue/compiler-core': 3.5.17
+ '@vue/compiler-dom': 3.5.17
+ '@vue/compiler-ssr': 3.5.17
+ '@vue/shared': 3.5.17
+ estree-walker: 2.0.2
+ magic-string: 0.30.17
+ postcss: 8.5.6
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.5.17':
+ dependencies:
+ '@vue/compiler-dom': 3.5.17
+ '@vue/shared': 3.5.17
+
+ '@vue/devtools-api@6.6.4': {}
+
+ '@vue/devtools-core@7.7.7(vite@7.0.5)(vue@3.5.17)':
+ dependencies:
+ '@vue/devtools-kit': 7.7.7
+ '@vue/devtools-shared': 7.7.7
+ mitt: 3.0.1
+ nanoid: 5.1.5
+ pathe: 2.0.3
+ vite-hot-client: 2.1.0(vite@7.0.5)
+ vue: 3.5.17
+ transitivePeerDependencies:
+ - vite
+
+ '@vue/devtools-kit@7.7.7':
+ dependencies:
+ '@vue/devtools-shared': 7.7.7
+ birpc: 2.5.0
+ hookable: 5.5.3
+ mitt: 3.0.1
+ perfect-debounce: 1.0.0
+ speakingurl: 14.0.1
+ superjson: 2.2.2
+
+ '@vue/devtools-shared@7.7.7':
+ dependencies:
+ rfdc: 1.4.1
+
+ '@vue/eslint-config-prettier@10.2.0(eslint@9.31.0)(prettier@3.5.3)':
+ dependencies:
+ eslint: 9.31.0
+ eslint-config-prettier: 10.1.8(eslint@9.31.0)
+ eslint-plugin-prettier: 5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0))(eslint@9.31.0)(prettier@3.5.3)
+ prettier: 3.5.3
+ transitivePeerDependencies:
+ - '@types/eslint'
+
+ '@vue/reactivity@3.5.17':
+ dependencies:
+ '@vue/shared': 3.5.17
+
+ '@vue/runtime-core@3.5.17':
+ dependencies:
+ '@vue/reactivity': 3.5.17
+ '@vue/shared': 3.5.17
+
+ '@vue/runtime-dom@3.5.17':
+ dependencies:
+ '@vue/reactivity': 3.5.17
+ '@vue/runtime-core': 3.5.17
+ '@vue/shared': 3.5.17
+ csstype: 3.1.3
+
+ '@vue/server-renderer@3.5.17(vue@3.5.17)':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.17
+ '@vue/shared': 3.5.17
+ vue: 3.5.17
+
+ '@vue/shared@3.5.17': {}
+
+ acorn-jsx@5.3.2(acorn@8.15.0):
+ dependencies:
+ acorn: 8.15.0
+
+ acorn@8.15.0: {}
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ argparse@2.0.1: {}
+
+ balanced-match@1.0.2: {}
+
+ birpc@2.5.0: {}
+
+ boolbase@1.0.0: {}
+
+ brace-expansion@1.1.12:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ browserslist@4.25.1:
+ dependencies:
+ caniuse-lite: 1.0.30001727
+ electron-to-chromium: 1.5.187
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.3(browserslist@4.25.1)
+
+ bundle-name@4.1.0:
+ dependencies:
+ run-applescript: 7.0.0
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001727: {}
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ concat-map@0.0.1: {}
+
+ convert-source-map@2.0.0: {}
+
+ copy-anything@3.0.5:
+ dependencies:
+ is-what: 4.1.16
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ cssesc@3.0.0: {}
+
+ csstype@3.1.3: {}
+
+ debug@4.4.1:
+ dependencies:
+ ms: 2.1.3
+
+ deep-is@0.1.4: {}
+
+ default-browser-id@5.0.0: {}
+
+ default-browser@5.2.1:
+ dependencies:
+ bundle-name: 4.1.0
+ default-browser-id: 5.0.0
+
+ define-lazy-prop@3.0.0: {}
+
+ electron-to-chromium@1.5.187: {}
+
+ entities@4.5.0: {}
+
+ error-stack-parser-es@0.1.5: {}
+
+ esbuild@0.25.8:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.8
+ '@esbuild/android-arm': 0.25.8
+ '@esbuild/android-arm64': 0.25.8
+ '@esbuild/android-x64': 0.25.8
+ '@esbuild/darwin-arm64': 0.25.8
+ '@esbuild/darwin-x64': 0.25.8
+ '@esbuild/freebsd-arm64': 0.25.8
+ '@esbuild/freebsd-x64': 0.25.8
+ '@esbuild/linux-arm': 0.25.8
+ '@esbuild/linux-arm64': 0.25.8
+ '@esbuild/linux-ia32': 0.25.8
+ '@esbuild/linux-loong64': 0.25.8
+ '@esbuild/linux-mips64el': 0.25.8
+ '@esbuild/linux-ppc64': 0.25.8
+ '@esbuild/linux-riscv64': 0.25.8
+ '@esbuild/linux-s390x': 0.25.8
+ '@esbuild/linux-x64': 0.25.8
+ '@esbuild/netbsd-arm64': 0.25.8
+ '@esbuild/netbsd-x64': 0.25.8
+ '@esbuild/openbsd-arm64': 0.25.8
+ '@esbuild/openbsd-x64': 0.25.8
+ '@esbuild/openharmony-arm64': 0.25.8
+ '@esbuild/sunos-x64': 0.25.8
+ '@esbuild/win32-arm64': 0.25.8
+ '@esbuild/win32-ia32': 0.25.8
+ '@esbuild/win32-x64': 0.25.8
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-config-prettier@10.1.8(eslint@9.31.0):
+ dependencies:
+ eslint: 9.31.0
+
+ eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0))(eslint@9.31.0)(prettier@3.5.3):
+ dependencies:
+ eslint: 9.31.0
+ prettier: 3.5.3
+ prettier-linter-helpers: 1.0.0
+ synckit: 0.11.11
+ optionalDependencies:
+ eslint-config-prettier: 10.1.8(eslint@9.31.0)
+
+ eslint-plugin-vue@10.2.0(eslint@9.31.0)(vue-eslint-parser@10.2.0(eslint@9.31.0)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0)
+ eslint: 9.31.0
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.1.2
+ semver: 7.7.2
+ vue-eslint-parser: 10.2.0(eslint@9.31.0)
+ xml-name-validator: 4.0.0
+
+ eslint-scope@8.4.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint-visitor-keys@4.2.1: {}
+
+ eslint@9.31.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0)
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/config-array': 0.21.0
+ '@eslint/config-helpers': 0.3.0
+ '@eslint/core': 0.15.1
+ '@eslint/eslintrc': 3.3.1
+ '@eslint/js': 9.31.0
+ '@eslint/plugin-kit': 0.3.3
+ '@humanfs/node': 0.16.6
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.1
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.4.0:
+ dependencies:
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 4.2.1
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ esutils@2.0.3: {}
+
+ execa@9.6.0:
+ dependencies:
+ '@sindresorhus/merge-streams': 4.0.0
+ cross-spawn: 7.0.6
+ figures: 6.1.0
+ get-stream: 9.0.1
+ human-signals: 8.0.1
+ is-plain-obj: 4.1.0
+ is-stream: 4.0.1
+ npm-run-path: 6.0.0
+ pretty-ms: 9.2.0
+ signal-exit: 4.1.0
+ strip-final-newline: 4.0.0
+ yoctocolors: 2.1.1
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fdir@6.4.6(picomatch@4.0.3):
+ optionalDependencies:
+ picomatch: 4.0.3
+
+ figures@6.1.0:
+ dependencies:
+ is-unicode-supported: 2.1.0
+
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flatted@3.3.3: {}
+
+ fs-extra@11.3.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+
+ fsevents@2.3.3:
+ optional: true
+
+ gensync@1.0.0-beta.2: {}
+
+ get-stream@9.0.1:
+ dependencies:
+ '@sec-ant/readable-stream': 0.4.1
+ is-stream: 4.0.1
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ globals@14.0.0: {}
+
+ globals@16.3.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ has-flag@4.0.0: {}
+
+ hookable@5.5.3: {}
+
+ human-signals@8.0.1: {}
+
+ ignore@5.3.2: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ is-docker@3.0.0: {}
+
+ is-extglob@2.1.1: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
+ is-plain-obj@4.1.0: {}
+
+ is-stream@4.0.1: {}
+
+ is-unicode-supported@2.1.0: {}
+
+ is-what@4.1.16: {}
+
+ is-wsl@3.1.0:
+ dependencies:
+ is-inside-container: 1.0.0
+
+ isexe@2.0.0: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@2.2.3: {}
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ kolorist@1.8.0: {}
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.merge@4.6.2: {}
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.4
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.12
+
+ mitt@3.0.1: {}
+
+ mrmime@2.0.1: {}
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.11: {}
+
+ nanoid@5.1.5: {}
+
+ natural-compare@1.4.0: {}
+
+ node-releases@2.0.19: {}
+
+ npm-run-path@6.0.0:
+ dependencies:
+ path-key: 4.0.0
+ unicorn-magic: 0.3.0
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ open@10.2.0:
+ dependencies:
+ default-browser: 5.2.1
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ wsl-utils: 0.1.0
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-ms@4.0.0: {}
+
+ path-exists@4.0.0: {}
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0: {}
+
+ pathe@2.0.3: {}
+
+ perfect-debounce@1.0.0: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@4.0.3: {}
+
+ postcss-selector-parser@6.1.2:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss@8.5.6:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ prettier-linter-helpers@1.0.0:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@3.5.3: {}
+
+ pretty-ms@9.2.0:
+ dependencies:
+ parse-ms: 4.0.0
+
+ punycode@2.3.1: {}
+
+ resolve-from@4.0.0: {}
+
+ rfdc@1.4.1: {}
+
+ rollup@4.45.1:
+ dependencies:
+ '@types/estree': 1.0.8
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.45.1
+ '@rollup/rollup-android-arm64': 4.45.1
+ '@rollup/rollup-darwin-arm64': 4.45.1
+ '@rollup/rollup-darwin-x64': 4.45.1
+ '@rollup/rollup-freebsd-arm64': 4.45.1
+ '@rollup/rollup-freebsd-x64': 4.45.1
+ '@rollup/rollup-linux-arm-gnueabihf': 4.45.1
+ '@rollup/rollup-linux-arm-musleabihf': 4.45.1
+ '@rollup/rollup-linux-arm64-gnu': 4.45.1
+ '@rollup/rollup-linux-arm64-musl': 4.45.1
+ '@rollup/rollup-linux-loongarch64-gnu': 4.45.1
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.45.1
+ '@rollup/rollup-linux-riscv64-gnu': 4.45.1
+ '@rollup/rollup-linux-riscv64-musl': 4.45.1
+ '@rollup/rollup-linux-s390x-gnu': 4.45.1
+ '@rollup/rollup-linux-x64-gnu': 4.45.1
+ '@rollup/rollup-linux-x64-musl': 4.45.1
+ '@rollup/rollup-win32-arm64-msvc': 4.45.1
+ '@rollup/rollup-win32-ia32-msvc': 4.45.1
+ '@rollup/rollup-win32-x64-msvc': 4.45.1
+ fsevents: 2.3.3
+
+ run-applescript@7.0.0: {}
+
+ semver@6.3.1: {}
+
+ semver@7.7.2: {}
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ signal-exit@4.1.0: {}
+
+ sirv@3.0.1:
+ dependencies:
+ '@polka/url': 1.0.0-next.29
+ mrmime: 2.0.1
+ totalist: 3.0.1
+
+ source-map-js@1.2.1: {}
+
+ speakingurl@14.0.1: {}
+
+ strip-final-newline@4.0.0: {}
+
+ strip-json-comments@3.1.1: {}
+
+ superjson@2.2.2:
+ dependencies:
+ copy-anything: 3.0.5
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ synckit@0.11.11:
+ dependencies:
+ '@pkgr/core': 0.2.9
+
+ tinyglobby@0.2.14:
+ dependencies:
+ fdir: 6.4.6(picomatch@4.0.3)
+ picomatch: 4.0.3
+
+ totalist@3.0.1: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ unicorn-magic@0.3.0: {}
+
+ universalify@2.0.1: {}
+
+ update-browserslist-db@1.1.3(browserslist@4.25.1):
+ dependencies:
+ browserslist: 4.25.1
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ util-deprecate@1.0.2: {}
+
+ vite-hot-client@2.1.0(vite@7.0.5):
+ dependencies:
+ vite: 7.0.5
+
+ vite-plugin-inspect@0.8.9(rollup@4.45.1)(vite@7.0.5):
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@rollup/pluginutils': 5.2.0(rollup@4.45.1)
+ debug: 4.4.1
+ error-stack-parser-es: 0.1.5
+ fs-extra: 11.3.0
+ open: 10.2.0
+ perfect-debounce: 1.0.0
+ picocolors: 1.1.1
+ sirv: 3.0.1
+ vite: 7.0.5
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ vite-plugin-vue-devtools@7.7.7(rollup@4.45.1)(vite@7.0.5)(vue@3.5.17):
+ dependencies:
+ '@vue/devtools-core': 7.7.7(vite@7.0.5)(vue@3.5.17)
+ '@vue/devtools-kit': 7.7.7
+ '@vue/devtools-shared': 7.7.7
+ execa: 9.6.0
+ sirv: 3.0.1
+ vite: 7.0.5
+ vite-plugin-inspect: 0.8.9(rollup@4.45.1)(vite@7.0.5)
+ vite-plugin-vue-inspector: 5.3.2(vite@7.0.5)
+ transitivePeerDependencies:
+ - '@nuxt/kit'
+ - rollup
+ - supports-color
+ - vue
+
+ vite-plugin-vue-inspector@5.3.2(vite@7.0.5):
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.0)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0)
+ '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.0)
+ '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.28.0)
+ '@vue/compiler-dom': 3.5.17
+ kolorist: 1.8.0
+ magic-string: 0.30.17
+ vite: 7.0.5
+ transitivePeerDependencies:
+ - supports-color
+
+ vite@7.0.5:
+ dependencies:
+ esbuild: 0.25.8
+ fdir: 6.4.6(picomatch@4.0.3)
+ picomatch: 4.0.3
+ postcss: 8.5.6
+ rollup: 4.45.1
+ tinyglobby: 0.2.14
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ vue-eslint-parser@10.2.0(eslint@9.31.0):
+ dependencies:
+ debug: 4.4.1
+ eslint: 9.31.0
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ esquery: 1.6.0
+ semver: 7.7.2
+ transitivePeerDependencies:
+ - supports-color
+
+ vue-router@4.5.1(vue@3.5.17):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.17
+
+ vue@3.5.17:
+ dependencies:
+ '@vue/compiler-dom': 3.5.17
+ '@vue/compiler-sfc': 3.5.17
+ '@vue/runtime-dom': 3.5.17
+ '@vue/server-renderer': 3.5.17(vue@3.5.17)
+ '@vue/shared': 3.5.17
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wsl-utils@0.1.0:
+ dependencies:
+ is-wsl: 3.1.0
+
+ xml-name-validator@4.0.0: {}
+
+ yallist@3.1.1: {}
+
+ yocto-queue@0.1.0: {}
+
+ yoctocolors@2.1.1: {}
diff --git a/frontend/demo/public/favicon.ico b/frontend/demo/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2
GIT binary patch
literal 4286
zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj
zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56
zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy
zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei
z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX
zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm
zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp=
zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8
zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO
z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3
z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD
zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6
z={Xwx{T%b6i9IjI)Ls)S{-*mq<@~R{?$}ZKjf;^k75i_}(2MXt}^SEBVg7AI@28
zo_uPg2V)_e-`2Ois=PYoe%9u*n9({PFR)OnHJPi{dNx>KxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S
literal 0
HcmV?d00001
diff --git a/frontend/demo/src/App.vue b/frontend/demo/src/App.vue
new file mode 100644
index 0000000..e864195
--- /dev/null
+++ b/frontend/demo/src/App.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+ Home
+ About
+
+
+
+
+
+
+
+
diff --git a/frontend/demo/src/assets/base.css b/frontend/demo/src/assets/base.css
new file mode 100644
index 0000000..8816868
--- /dev/null
+++ b/frontend/demo/src/assets/base.css
@@ -0,0 +1,86 @@
+/* color palette from */
+:root {
+ --vt-c-white: #ffffff;
+ --vt-c-white-soft: #f8f8f8;
+ --vt-c-white-mute: #f2f2f2;
+
+ --vt-c-black: #181818;
+ --vt-c-black-soft: #222222;
+ --vt-c-black-mute: #282828;
+
+ --vt-c-indigo: #2c3e50;
+
+ --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
+ --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
+ --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
+ --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
+
+ --vt-c-text-light-1: var(--vt-c-indigo);
+ --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
+ --vt-c-text-dark-1: var(--vt-c-white);
+ --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
+}
+
+/* semantic color variables for this project */
+:root {
+ --color-background: var(--vt-c-white);
+ --color-background-soft: var(--vt-c-white-soft);
+ --color-background-mute: var(--vt-c-white-mute);
+
+ --color-border: var(--vt-c-divider-light-2);
+ --color-border-hover: var(--vt-c-divider-light-1);
+
+ --color-heading: var(--vt-c-text-light-1);
+ --color-text: var(--vt-c-text-light-1);
+
+ --section-gap: 160px;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --color-background: var(--vt-c-black);
+ --color-background-soft: var(--vt-c-black-soft);
+ --color-background-mute: var(--vt-c-black-mute);
+
+ --color-border: var(--vt-c-divider-dark-2);
+ --color-border-hover: var(--vt-c-divider-dark-1);
+
+ --color-heading: var(--vt-c-text-dark-1);
+ --color-text: var(--vt-c-text-dark-2);
+ }
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+ margin: 0;
+ font-weight: normal;
+}
+
+body {
+ min-height: 100vh;
+ color: var(--color-text);
+ background: var(--color-background);
+ transition:
+ color 0.5s,
+ background-color 0.5s;
+ line-height: 1.6;
+ font-family:
+ Inter,
+ -apple-system,
+ BlinkMacSystemFont,
+ 'Segoe UI',
+ Roboto,
+ Oxygen,
+ Ubuntu,
+ Cantarell,
+ 'Fira Sans',
+ 'Droid Sans',
+ 'Helvetica Neue',
+ sans-serif;
+ font-size: 15px;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
diff --git a/frontend/demo/src/assets/logo.svg b/frontend/demo/src/assets/logo.svg
new file mode 100644
index 0000000..7565660
--- /dev/null
+++ b/frontend/demo/src/assets/logo.svg
@@ -0,0 +1 @@
+
diff --git a/frontend/demo/src/assets/main.css b/frontend/demo/src/assets/main.css
new file mode 100644
index 0000000..36fb845
--- /dev/null
+++ b/frontend/demo/src/assets/main.css
@@ -0,0 +1,35 @@
+@import './base.css';
+
+#app {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ font-weight: normal;
+}
+
+a,
+.green {
+ text-decoration: none;
+ color: hsla(160, 100%, 37%, 1);
+ transition: 0.4s;
+ padding: 3px;
+}
+
+@media (hover: hover) {
+ a:hover {
+ background-color: hsla(160, 100%, 37%, 0.2);
+ }
+}
+
+@media (min-width: 1024px) {
+ body {
+ display: flex;
+ place-items: center;
+ }
+
+ #app {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ padding: 0 2rem;
+ }
+}
diff --git a/frontend/demo/src/components/HelloWorld.vue b/frontend/demo/src/components/HelloWorld.vue
new file mode 100644
index 0000000..eff59f1
--- /dev/null
+++ b/frontend/demo/src/components/HelloWorld.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
{{ msg }}
+
+ You’ve successfully created a project with
+ Vite +
+ Vue 3 .
+
+
+
+
+
diff --git a/frontend/demo/src/components/TheWelcome.vue b/frontend/demo/src/components/TheWelcome.vue
new file mode 100644
index 0000000..68a970a
--- /dev/null
+++ b/frontend/demo/src/components/TheWelcome.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+ Documentation
+
+ Vue’s
+ official documentation
+ provides you with all information you need to get started.
+
+
+
+
+
+
+ Tooling
+
+ This project is served and bundled with
+ Vite . The
+ recommended IDE setup is
+ VSCode
+ +
+ Vue - Official . If you need to test your components and web pages, check out
+ Vitest
+ and
+ Cypress
+ /
+ Playwright .
+
+
+
+ More instructions are available in
+ README.md .
+
+
+
+
+
+
+ Ecosystem
+
+ Get official tools and libraries for your project:
+ Pinia ,
+ Vue Router ,
+ Vue Test Utils , and
+ Vue Dev Tools . If
+ you need more resources, we suggest paying
+ Awesome Vue
+ a visit.
+
+
+
+
+
+
+ Community
+
+ Got stuck? Ask your question on
+ Vue Land
+ (our official Discord server), or
+ StackOverflow . You should also follow the official
+ @vuejs.org
+ Bluesky account or the
+ @vuejs
+ X account for latest news in the Vue world.
+
+
+
+
+
+
+ Support Vue
+
+ As an independent project, Vue relies on community backing for its sustainability. You can help
+ us by
+ becoming a sponsor .
+
+
diff --git a/frontend/demo/src/components/WelcomeItem.vue b/frontend/demo/src/components/WelcomeItem.vue
new file mode 100644
index 0000000..ac366d0
--- /dev/null
+++ b/frontend/demo/src/components/WelcomeItem.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
diff --git a/frontend/demo/src/components/icons/IconCommunity.vue b/frontend/demo/src/components/icons/IconCommunity.vue
new file mode 100644
index 0000000..2dc8b05
--- /dev/null
+++ b/frontend/demo/src/components/icons/IconCommunity.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/frontend/demo/src/components/icons/IconDocumentation.vue b/frontend/demo/src/components/icons/IconDocumentation.vue
new file mode 100644
index 0000000..6d4791c
--- /dev/null
+++ b/frontend/demo/src/components/icons/IconDocumentation.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/frontend/demo/src/components/icons/IconEcosystem.vue b/frontend/demo/src/components/icons/IconEcosystem.vue
new file mode 100644
index 0000000..c3a4f07
--- /dev/null
+++ b/frontend/demo/src/components/icons/IconEcosystem.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/frontend/demo/src/components/icons/IconSupport.vue b/frontend/demo/src/components/icons/IconSupport.vue
new file mode 100644
index 0000000..7452834
--- /dev/null
+++ b/frontend/demo/src/components/icons/IconSupport.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/frontend/demo/src/components/icons/IconTooling.vue b/frontend/demo/src/components/icons/IconTooling.vue
new file mode 100644
index 0000000..660598d
--- /dev/null
+++ b/frontend/demo/src/components/icons/IconTooling.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/frontend/demo/src/main.js b/frontend/demo/src/main.js
new file mode 100644
index 0000000..5a5dbdb
--- /dev/null
+++ b/frontend/demo/src/main.js
@@ -0,0 +1,11 @@
+import './assets/main.css'
+
+import { createApp } from 'vue'
+import App from './App.vue'
+import router from './router'
+
+const app = createApp(App)
+
+app.use(router)
+
+app.mount('#app')
diff --git a/frontend/demo/src/router/index.js b/frontend/demo/src/router/index.js
new file mode 100644
index 0000000..3e49915
--- /dev/null
+++ b/frontend/demo/src/router/index.js
@@ -0,0 +1,23 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import HomeView from '../views/HomeView.vue'
+
+const router = createRouter({
+ history: createWebHistory(import.meta.env.BASE_URL),
+ routes: [
+ {
+ path: '/',
+ name: 'home',
+ component: HomeView,
+ },
+ {
+ path: '/about',
+ name: 'about',
+ // route level code-splitting
+ // this generates a separate chunk (About.[hash].js) for this route
+ // which is lazy-loaded when the route is visited.
+ component: () => import('../views/AboutView.vue'),
+ },
+ ],
+})
+
+export default router
diff --git a/frontend/demo/src/views/AboutView.vue b/frontend/demo/src/views/AboutView.vue
new file mode 100644
index 0000000..756ad2a
--- /dev/null
+++ b/frontend/demo/src/views/AboutView.vue
@@ -0,0 +1,15 @@
+
+
+
This is an about page
+
+
+
+
diff --git a/frontend/demo/src/views/HomeView.vue b/frontend/demo/src/views/HomeView.vue
new file mode 100644
index 0000000..6bb706f
--- /dev/null
+++ b/frontend/demo/src/views/HomeView.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/frontend/demo/vite.config.js b/frontend/demo/vite.config.js
new file mode 100644
index 0000000..4217010
--- /dev/null
+++ b/frontend/demo/vite.config.js
@@ -0,0 +1,18 @@
+import { fileURLToPath, URL } from 'node:url'
+
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import vueDevTools from 'vite-plugin-vue-devtools'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [
+ vue(),
+ vueDevTools(),
+ ],
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url))
+ },
+ },
+})
--
Gitee
From cbba530caaaee80384177f68bb1e9150b24c0a1b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=B0=91=E8=BD=A9?= <2980199349@qq.com>
Date: Tue, 22 Jul 2025 09:25:44 +0800
Subject: [PATCH 3/7] =?UTF-8?q?refactor:=E9=85=8D=E7=BD=AE=E8=87=AA?=
=?UTF-8?q?=E5=8A=A8=E5=BC=95=E5=85=A5element=20plus=E7=BB=84=E4=BB=B6,?=
=?UTF-8?q?=E7=BB=84=E5=90=88=E5=BC=8FAPI?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend/demo/src/views/Login.vue | 0
frontend/demo/vite.config.js | 15 +-
package.json | 9 +
pnpm-lock.yaml | 754 ++++++++++++++++++++++++++++++
4 files changed, 777 insertions(+), 1 deletion(-)
create mode 100644 frontend/demo/src/views/Login.vue
create mode 100644 package.json
create mode 100644 pnpm-lock.yaml
diff --git a/frontend/demo/src/views/Login.vue b/frontend/demo/src/views/Login.vue
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/demo/vite.config.js b/frontend/demo/vite.config.js
index 4217010..c94b772 100644
--- a/frontend/demo/vite.config.js
+++ b/frontend/demo/vite.config.js
@@ -1,14 +1,27 @@
import { fileURLToPath, URL } from 'node:url'
+// import { defineConfig } from 'vite'
+// import vue from '@vitejs/plugin-vue'
+import vueDevTools from 'vite-plugin-vue-devtools'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
-import vueDevTools from 'vite-plugin-vue-devtools'
+import Components from 'unplugin-vue-components/vite'
+import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
+import AutoImport from 'unplugin-auto-import/vite'
// https://vite.dev/config/
export default defineConfig({
plugins: [
vue(),
vueDevTools(),
+ // 自动按需引入组件
+ Components({
+ resolvers: [ElementPlusResolver()],
+ }),
+ // 自动按需引入组合式 API
+ AutoImport({
+ resolvers: [ElementPlusResolver()],
+ }),
],
resolve: {
alias: {
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..3b38c5e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,9 @@
+{
+ "dependencies": {
+ "element-plus": "^2.10.4"
+ },
+ "devDependencies": {
+ "unplugin-auto-import": "^19.3.0",
+ "unplugin-vue-components": "^28.8.0"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..df9a7a5
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,754 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ element-plus:
+ specifier: ^2.10.4
+ version: 2.10.4(vue@3.5.17)
+ devDependencies:
+ unplugin-auto-import:
+ specifier: ^19.3.0
+ version: 19.3.0(@vueuse/core@9.13.0(vue@3.5.17))
+ unplugin-vue-components:
+ specifier: ^28.8.0
+ version: 28.8.0(@babel/parser@7.28.0)(vue@3.5.17)
+
+packages:
+
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.27.1':
+ resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.28.0':
+ resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/types@7.28.1':
+ resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@ctrl/tinycolor@3.6.1':
+ resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
+ engines: {node: '>=10'}
+
+ '@element-plus/icons-vue@2.3.1':
+ resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==}
+ peerDependencies:
+ vue: ^3.2.0
+
+ '@floating-ui/core@1.7.2':
+ resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==}
+
+ '@floating-ui/dom@1.7.2':
+ resolution: {integrity: sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==}
+
+ '@floating-ui/utils@0.2.10':
+ resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
+
+ '@jridgewell/sourcemap-codec@1.5.4':
+ resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
+
+ '@sxzz/popperjs-es@2.11.7':
+ resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
+
+ '@types/estree@1.0.8':
+ resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+
+ '@types/lodash-es@4.17.12':
+ resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
+
+ '@types/lodash@4.17.20':
+ resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
+
+ '@types/web-bluetooth@0.0.16':
+ resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
+
+ '@vue/compiler-core@3.5.17':
+ resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==}
+
+ '@vue/compiler-dom@3.5.17':
+ resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==}
+
+ '@vue/compiler-sfc@3.5.17':
+ resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==}
+
+ '@vue/compiler-ssr@3.5.17':
+ resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==}
+
+ '@vue/reactivity@3.5.17':
+ resolution: {integrity: sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==}
+
+ '@vue/runtime-core@3.5.17':
+ resolution: {integrity: sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==}
+
+ '@vue/runtime-dom@3.5.17':
+ resolution: {integrity: sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==}
+
+ '@vue/server-renderer@3.5.17':
+ resolution: {integrity: sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==}
+ peerDependencies:
+ vue: 3.5.17
+
+ '@vue/shared@3.5.17':
+ resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==}
+
+ '@vueuse/core@9.13.0':
+ resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
+
+ '@vueuse/metadata@9.13.0':
+ resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
+
+ '@vueuse/shared@9.13.0':
+ resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
+
+ acorn@8.15.0:
+ resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ async-validator@4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
+ confbox@0.2.2:
+ resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ dayjs@1.11.13:
+ resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
+
+ debug@4.4.1:
+ resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ element-plus@2.10.4:
+ resolution: {integrity: sha512-UD4elWHrCnp1xlPhbXmVcaKFLCRaRAY6WWRwemGfGW3ceIjXm9fSYc9RNH3AiOEA6Ds1p9ZvhCs76CR9J8Vd+A==}
+ peerDependencies:
+ vue: ^3.2.0
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ escape-string-regexp@5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
+ exsolve@1.0.7:
+ resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
+
+ fdir@6.4.6:
+ resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+
+ local-pkg@1.1.1:
+ resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==}
+ engines: {node: '>=14'}
+
+ lodash-es@4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+
+ lodash-unified@1.0.3:
+ resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
+ peerDependencies:
+ '@types/lodash-es': '*'
+ lodash: '*'
+ lodash-es: '*'
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
+ memoize-one@6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+
+ mlly@1.7.4:
+ resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-wheel-es@1.2.0:
+ resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ engines: {node: '>=12'}
+
+ pkg-types@1.3.1:
+ resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
+
+ pkg-types@2.2.0:
+ resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==}
+
+ postcss@8.5.6:
+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ quansync@0.2.10:
+ resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ scule@1.3.0:
+ resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ strip-literal@3.0.0:
+ resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
+
+ tinyglobby@0.2.14:
+ resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
+ engines: {node: '>=12.0.0'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ ufo@1.6.1:
+ resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
+
+ unimport@4.2.0:
+ resolution: {integrity: sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==}
+ engines: {node: '>=18.12.0'}
+
+ unplugin-auto-import@19.3.0:
+ resolution: {integrity: sha512-iIi0u4Gq2uGkAOGqlPJOAMI8vocvjh1clGTfSK4SOrJKrt+tirrixo/FjgBwXQNNdS7ofcr7OxzmOb/RjWxeEQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@nuxt/kit': ^3.2.2
+ '@vueuse/core': '*'
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+ '@vueuse/core':
+ optional: true
+
+ unplugin-utils@0.2.4:
+ resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==}
+ engines: {node: '>=18.12.0'}
+
+ unplugin-vue-components@28.8.0:
+ resolution: {integrity: sha512-2Q6ZongpoQzuXDK0ZsVzMoshH0MWZQ1pzVL538G7oIDKRTVzHjppBDS8aB99SADGHN3lpGU7frraCG6yWNoL5Q==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/parser': ^7.15.8
+ '@nuxt/kit': ^3.2.2 || ^4.0.0
+ vue: 2 || 3
+ peerDependenciesMeta:
+ '@babel/parser':
+ optional: true
+ '@nuxt/kit':
+ optional: true
+
+ unplugin@2.3.5:
+ resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==}
+ engines: {node: '>=18.12.0'}
+
+ vue-demi@0.14.10:
+ resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+
+ vue@3.5.17:
+ resolution: {integrity: sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ webpack-virtual-modules@0.6.2:
+ resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
+
+snapshots:
+
+ '@babel/helper-string-parser@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.27.1': {}
+
+ '@babel/parser@7.28.0':
+ dependencies:
+ '@babel/types': 7.28.1
+
+ '@babel/types@7.28.1':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
+ '@ctrl/tinycolor@3.6.1': {}
+
+ '@element-plus/icons-vue@2.3.1(vue@3.5.17)':
+ dependencies:
+ vue: 3.5.17
+
+ '@floating-ui/core@1.7.2':
+ dependencies:
+ '@floating-ui/utils': 0.2.10
+
+ '@floating-ui/dom@1.7.2':
+ dependencies:
+ '@floating-ui/core': 1.7.2
+ '@floating-ui/utils': 0.2.10
+
+ '@floating-ui/utils@0.2.10': {}
+
+ '@jridgewell/sourcemap-codec@1.5.4': {}
+
+ '@sxzz/popperjs-es@2.11.7': {}
+
+ '@types/estree@1.0.8': {}
+
+ '@types/lodash-es@4.17.12':
+ dependencies:
+ '@types/lodash': 4.17.20
+
+ '@types/lodash@4.17.20': {}
+
+ '@types/web-bluetooth@0.0.16': {}
+
+ '@vue/compiler-core@3.5.17':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@vue/shared': 3.5.17
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.17':
+ dependencies:
+ '@vue/compiler-core': 3.5.17
+ '@vue/shared': 3.5.17
+
+ '@vue/compiler-sfc@3.5.17':
+ dependencies:
+ '@babel/parser': 7.28.0
+ '@vue/compiler-core': 3.5.17
+ '@vue/compiler-dom': 3.5.17
+ '@vue/compiler-ssr': 3.5.17
+ '@vue/shared': 3.5.17
+ estree-walker: 2.0.2
+ magic-string: 0.30.17
+ postcss: 8.5.6
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.5.17':
+ dependencies:
+ '@vue/compiler-dom': 3.5.17
+ '@vue/shared': 3.5.17
+
+ '@vue/reactivity@3.5.17':
+ dependencies:
+ '@vue/shared': 3.5.17
+
+ '@vue/runtime-core@3.5.17':
+ dependencies:
+ '@vue/reactivity': 3.5.17
+ '@vue/shared': 3.5.17
+
+ '@vue/runtime-dom@3.5.17':
+ dependencies:
+ '@vue/reactivity': 3.5.17
+ '@vue/runtime-core': 3.5.17
+ '@vue/shared': 3.5.17
+ csstype: 3.1.3
+
+ '@vue/server-renderer@3.5.17(vue@3.5.17)':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.17
+ '@vue/shared': 3.5.17
+ vue: 3.5.17
+
+ '@vue/shared@3.5.17': {}
+
+ '@vueuse/core@9.13.0(vue@3.5.17)':
+ dependencies:
+ '@types/web-bluetooth': 0.0.16
+ '@vueuse/metadata': 9.13.0
+ '@vueuse/shared': 9.13.0(vue@3.5.17)
+ vue-demi: 0.14.10(vue@3.5.17)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@vueuse/metadata@9.13.0': {}
+
+ '@vueuse/shared@9.13.0(vue@3.5.17)':
+ dependencies:
+ vue-demi: 0.14.10(vue@3.5.17)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ acorn@8.15.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ async-validator@4.2.5: {}
+
+ binary-extensions@2.3.0: {}
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ confbox@0.1.8: {}
+
+ confbox@0.2.2: {}
+
+ csstype@3.1.3: {}
+
+ dayjs@1.11.13: {}
+
+ debug@4.4.1:
+ dependencies:
+ ms: 2.1.3
+
+ element-plus@2.10.4(vue@3.5.17):
+ dependencies:
+ '@ctrl/tinycolor': 3.6.1
+ '@element-plus/icons-vue': 2.3.1(vue@3.5.17)
+ '@floating-ui/dom': 1.7.2
+ '@popperjs/core': '@sxzz/popperjs-es@2.11.7'
+ '@types/lodash': 4.17.20
+ '@types/lodash-es': 4.17.12
+ '@vueuse/core': 9.13.0(vue@3.5.17)
+ async-validator: 4.2.5
+ dayjs: 1.11.13
+ escape-html: 1.0.3
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21)
+ memoize-one: 6.0.0
+ normalize-wheel-es: 1.2.0
+ vue: 3.5.17
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+
+ entities@4.5.0: {}
+
+ escape-html@1.0.3: {}
+
+ escape-string-regexp@5.0.0: {}
+
+ estree-walker@2.0.2: {}
+
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.8
+
+ exsolve@1.0.7: {}
+
+ fdir@6.4.6(picomatch@4.0.3):
+ optionalDependencies:
+ picomatch: 4.0.3
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ fsevents@2.3.3:
+ optional: true
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-extglob@2.1.1: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-number@7.0.0: {}
+
+ js-tokens@9.0.1: {}
+
+ local-pkg@1.1.1:
+ dependencies:
+ mlly: 1.7.4
+ pkg-types: 2.2.0
+ quansync: 0.2.10
+
+ lodash-es@4.17.21: {}
+
+ lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
+ dependencies:
+ '@types/lodash-es': 4.17.12
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+
+ lodash@4.17.21: {}
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.4
+
+ memoize-one@6.0.0: {}
+
+ mlly@1.7.4:
+ dependencies:
+ acorn: 8.15.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.1
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.11: {}
+
+ normalize-path@3.0.0: {}
+
+ normalize-wheel-es@1.2.0: {}
+
+ pathe@2.0.3: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ picomatch@4.0.3: {}
+
+ pkg-types@1.3.1:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.7.4
+ pathe: 2.0.3
+
+ pkg-types@2.2.0:
+ dependencies:
+ confbox: 0.2.2
+ exsolve: 1.0.7
+ pathe: 2.0.3
+
+ postcss@8.5.6:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ quansync@0.2.10: {}
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ scule@1.3.0: {}
+
+ source-map-js@1.2.1: {}
+
+ strip-literal@3.0.0:
+ dependencies:
+ js-tokens: 9.0.1
+
+ tinyglobby@0.2.14:
+ dependencies:
+ fdir: 6.4.6(picomatch@4.0.3)
+ picomatch: 4.0.3
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ ufo@1.6.1: {}
+
+ unimport@4.2.0:
+ dependencies:
+ acorn: 8.15.0
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ local-pkg: 1.1.1
+ magic-string: 0.30.17
+ mlly: 1.7.4
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ pkg-types: 2.2.0
+ scule: 1.3.0
+ strip-literal: 3.0.0
+ tinyglobby: 0.2.14
+ unplugin: 2.3.5
+ unplugin-utils: 0.2.4
+
+ unplugin-auto-import@19.3.0(@vueuse/core@9.13.0(vue@3.5.17)):
+ dependencies:
+ local-pkg: 1.1.1
+ magic-string: 0.30.17
+ picomatch: 4.0.3
+ unimport: 4.2.0
+ unplugin: 2.3.5
+ unplugin-utils: 0.2.4
+ optionalDependencies:
+ '@vueuse/core': 9.13.0(vue@3.5.17)
+
+ unplugin-utils@0.2.4:
+ dependencies:
+ pathe: 2.0.3
+ picomatch: 4.0.3
+
+ unplugin-vue-components@28.8.0(@babel/parser@7.28.0)(vue@3.5.17):
+ dependencies:
+ chokidar: 3.6.0
+ debug: 4.4.1
+ local-pkg: 1.1.1
+ magic-string: 0.30.17
+ mlly: 1.7.4
+ tinyglobby: 0.2.14
+ unplugin: 2.3.5
+ unplugin-utils: 0.2.4
+ vue: 3.5.17
+ optionalDependencies:
+ '@babel/parser': 7.28.0
+ transitivePeerDependencies:
+ - supports-color
+
+ unplugin@2.3.5:
+ dependencies:
+ acorn: 8.15.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
+ vue-demi@0.14.10(vue@3.5.17):
+ dependencies:
+ vue: 3.5.17
+
+ vue@3.5.17:
+ dependencies:
+ '@vue/compiler-dom': 3.5.17
+ '@vue/compiler-sfc': 3.5.17
+ '@vue/runtime-dom': 3.5.17
+ '@vue/server-renderer': 3.5.17(vue@3.5.17)
+ '@vue/shared': 3.5.17
+
+ webpack-virtual-modules@0.6.2: {}
--
Gitee
From fb1c26720899b763866535c08d7d227f3c6f525f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B0=A2=E9=9B=A8=E6=99=B4?= <1207713896@qq.com>
Date: Tue, 22 Jul 2025 10:29:21 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E5=B0=86=E5=90=84=E4=B8=AA=E9=A1=B9?=
=?UTF-8?q?=E7=9B=AE=E6=B7=BB=E5=8A=A0=E5=88=B0=E8=A7=A3=E5=86=B3=E6=96=B9?=
=?UTF-8?q?=E6=A1=88=E4=B8=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
backend/admin2025/UniversalAdmin.sln | 84 +++++++++++++++++++
.../src/Application/Application.csproj | 16 ++++
.../src/Application/Application.http | 6 ++
backend/admin2025/src/Application/Program.cs | 41 +++++++++
.../Properties/launchSettings.json | 23 +++++
.../Application/appsettings.Development.json | 8 ++
.../src/Application/appsettings.json | 9 ++
backend/admin2025/src/Domain/Class1.cs | 6 ++
backend/admin2025/src/Domain/Domain.csproj | 9 ++
.../src/Domain/Entities/EntityBase.cs | 28 +++++++
.../admin2025/src/Infrastructure/Class1.cs | 6 ++
.../src/Infrastructure/Infrastructure.csproj | 9 ++
backend/admin2025/src/Presentation/Class1.cs | 6 ++
.../src/Presentation/Presentation.csproj | 9 ++
14 files changed, 260 insertions(+)
create mode 100644 backend/admin2025/UniversalAdmin.sln
create mode 100644 backend/admin2025/src/Application/Application.csproj
create mode 100644 backend/admin2025/src/Application/Application.http
create mode 100644 backend/admin2025/src/Application/Program.cs
create mode 100644 backend/admin2025/src/Application/Properties/launchSettings.json
create mode 100644 backend/admin2025/src/Application/appsettings.Development.json
create mode 100644 backend/admin2025/src/Application/appsettings.json
create mode 100644 backend/admin2025/src/Domain/Class1.cs
create mode 100644 backend/admin2025/src/Domain/Domain.csproj
create mode 100644 backend/admin2025/src/Domain/Entities/EntityBase.cs
create mode 100644 backend/admin2025/src/Infrastructure/Class1.cs
create mode 100644 backend/admin2025/src/Infrastructure/Infrastructure.csproj
create mode 100644 backend/admin2025/src/Presentation/Class1.cs
create mode 100644 backend/admin2025/src/Presentation/Presentation.csproj
diff --git a/backend/admin2025/UniversalAdmin.sln b/backend/admin2025/UniversalAdmin.sln
new file mode 100644
index 0000000..9478a16
--- /dev/null
+++ b/backend/admin2025/UniversalAdmin.sln
@@ -0,0 +1,84 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application", "src\Application\Application.csproj", "{D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Domain", "src\Domain\Domain.csproj", "{D5CC761F-163C-4CDD-853D-5FBA9E313D7C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure", "src\Infrastructure\Infrastructure.csproj", "{08C49605-78E8-4C93-819F-8BE36932ACB1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presentation", "src\Presentation\Presentation.csproj", "{C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x64.Build.0 = Debug|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x86.Build.0 = Debug|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x64.ActiveCfg = Release|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x64.Build.0 = Release|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x86.ActiveCfg = Release|Any CPU
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x86.Build.0 = Release|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x64.Build.0 = Debug|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x86.Build.0 = Debug|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x64.ActiveCfg = Release|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x64.Build.0 = Release|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x86.ActiveCfg = Release|Any CPU
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x86.Build.0 = Release|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x64.Build.0 = Debug|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x86.Build.0 = Debug|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x64.ActiveCfg = Release|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x64.Build.0 = Release|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x86.ActiveCfg = Release|Any CPU
+ {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x86.Build.0 = Release|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x64.Build.0 = Debug|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x86.Build.0 = Debug|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x64.ActiveCfg = Release|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x64.Build.0 = Release|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x86.ActiveCfg = Release|Any CPU
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {D5CC761F-163C-4CDD-853D-5FBA9E313D7C} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {08C49605-78E8-4C93-819F-8BE36932ACB1} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ EndGlobalSection
+EndGlobal
diff --git a/backend/admin2025/src/Application/Application.csproj b/backend/admin2025/src/Application/Application.csproj
new file mode 100644
index 0000000..53b8871
--- /dev/null
+++ b/backend/admin2025/src/Application/Application.csproj
@@ -0,0 +1,16 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/admin2025/src/Application/Application.http b/backend/admin2025/src/Application/Application.http
new file mode 100644
index 0000000..0952984
--- /dev/null
+++ b/backend/admin2025/src/Application/Application.http
@@ -0,0 +1,6 @@
+@url = http://localhost:5140
+
+GET {{url}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/backend/admin2025/src/Application/Program.cs b/backend/admin2025/src/Application/Program.cs
new file mode 100644
index 0000000..ee9d65d
--- /dev/null
+++ b/backend/admin2025/src/Application/Program.cs
@@ -0,0 +1,41 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
+builder.Services.AddOpenApi();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.MapOpenApi();
+}
+
+app.UseHttpsRedirection();
+
+var summaries = new[]
+{
+ "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
+};
+
+app.MapGet("/weatherforecast", () =>
+{
+ var forecast = Enumerable.Range(1, 5).Select(index =>
+ new WeatherForecast
+ (
+ DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
+ Random.Shared.Next(-20, 55),
+ summaries[Random.Shared.Next(summaries.Length)]
+ ))
+ .ToArray();
+ return forecast;
+})
+.WithName("GetWeatherForecast");
+
+app.Run();
+
+record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
+{
+ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
+}
diff --git a/backend/admin2025/src/Application/Properties/launchSettings.json b/backend/admin2025/src/Application/Properties/launchSettings.json
new file mode 100644
index 0000000..e158076
--- /dev/null
+++ b/backend/admin2025/src/Application/Properties/launchSettings.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "http://localhost:5140",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "https://localhost:7058;http://localhost:5140",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/backend/admin2025/src/Application/appsettings.Development.json b/backend/admin2025/src/Application/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/backend/admin2025/src/Application/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/backend/admin2025/src/Application/appsettings.json b/backend/admin2025/src/Application/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/backend/admin2025/src/Application/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/backend/admin2025/src/Domain/Class1.cs b/backend/admin2025/src/Domain/Class1.cs
new file mode 100644
index 0000000..610aa88
--- /dev/null
+++ b/backend/admin2025/src/Domain/Class1.cs
@@ -0,0 +1,6 @@
+namespace Domain;
+
+public class Class1
+{
+
+}
diff --git a/backend/admin2025/src/Domain/Domain.csproj b/backend/admin2025/src/Domain/Domain.csproj
new file mode 100644
index 0000000..125f4c9
--- /dev/null
+++ b/backend/admin2025/src/Domain/Domain.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
diff --git a/backend/admin2025/src/Domain/Entities/EntityBase.cs b/backend/admin2025/src/Domain/Entities/EntityBase.cs
new file mode 100644
index 0000000..053733f
--- /dev/null
+++ b/backend/admin2025/src/Domain/Entities/EntityBase.cs
@@ -0,0 +1,28 @@
+namespace Backend.Admin2025.Domain.Entities
+
+ public abstract class BaseEntity
+ {
+ public int Id { get; protected set; }
+ public DateTime CreatedAt { get; protected set; }
+ public DateTime UpdatedAt { get; protected set; }
+
+ private readonly List _domainEvents = new();
+
+ public IReadOnlyCollection DomainEvents => _domainEvents.AsReadOnly();
+
+ protected void AddDomainEvent(IDomainEvent domainEvent)
+ {
+ _domainEvents.Add(domainEvent);
+ }
+
+ public void ClearDomainEvents()
+ {
+ _domainEvents.Clear();
+ }
+
+ protected BaseEntity()
+ {
+ CreatedAt = DateTime.UtcNow;
+ UpdatedAt = DateTime.UtcNow;
+ }
+ }
diff --git a/backend/admin2025/src/Infrastructure/Class1.cs b/backend/admin2025/src/Infrastructure/Class1.cs
new file mode 100644
index 0000000..cffa0c9
--- /dev/null
+++ b/backend/admin2025/src/Infrastructure/Class1.cs
@@ -0,0 +1,6 @@
+namespace Infrastructure;
+
+public class Class1
+{
+
+}
diff --git a/backend/admin2025/src/Infrastructure/Infrastructure.csproj b/backend/admin2025/src/Infrastructure/Infrastructure.csproj
new file mode 100644
index 0000000..125f4c9
--- /dev/null
+++ b/backend/admin2025/src/Infrastructure/Infrastructure.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
diff --git a/backend/admin2025/src/Presentation/Class1.cs b/backend/admin2025/src/Presentation/Class1.cs
new file mode 100644
index 0000000..5234eac
--- /dev/null
+++ b/backend/admin2025/src/Presentation/Class1.cs
@@ -0,0 +1,6 @@
+namespace Presentation;
+
+public class Class1
+{
+
+}
diff --git a/backend/admin2025/src/Presentation/Presentation.csproj b/backend/admin2025/src/Presentation/Presentation.csproj
new file mode 100644
index 0000000..125f4c9
--- /dev/null
+++ b/backend/admin2025/src/Presentation/Presentation.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
--
Gitee
From 6e12ca8d9825f83f9b927f1f86f9c8d773a8ada0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B0=A2=E9=9B=A8=E6=99=B4?= <1207713896@qq.com>
Date: Tue, 22 Jul 2025 11:24:03 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E9=87=8D=E6=96=B0=E6=9E=84=E5=BB=BA?=
=?UTF-8?q?=E4=BA=86=E5=90=8E=E7=AB=AF=E6=9E=B6=E6=9E=84=EF=BC=8C=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0=E9=A1=B9=E7=9B=AE=E5=88=B0=E8=A7=A3=E5=86=B3=E6=96=B9?=
=?UTF-8?q?=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
backend/UniversalAdmin.sln | 99 +++++++++++++++++++
backend/admin2025/UniversalAdmin.sln | 84 ----------------
.../src/Application/Application.http | 6 --
backend/admin2025/src/Application/README.md | 3 -
backend/admin2025/src/Domain/README.md | 3 -
.../admin2025/src/Infrastructure/README.md | 3 -
backend/admin2025/src/Presentation/README.md | 3 -
.../UniversalAdmin.Api}/Program.cs | 0
.../Properties/launchSettings.json | 4 +-
.../UniversalAdmin.Api.csproj | 16 +++
.../UniversalAdmin.Api.http | 6 ++
.../appsettings.Development.json | 0
.../UniversalAdmin.Api}/appsettings.json | 0
.../UniversalAdmin.Application}/Class1.cs | 2 +-
.../UniversalAdmin.Application.csproj} | 5 +-
.../Aggregates/AggregateRoot.cs | 9 ++
.../Aggregates/Aggregates.md | 4 +
.../UniversalAdmin.Domain}/Class1.cs | 2 +-
.../Entities/BaseEntity.cs} | 5 +-
.../UniversalAdmin.Domain/Entities/User.cs | 81 +++++++++++++++
.../UniversalAdmin.Domain/Entities/User.md | 6 ++
.../UniversalAdmin.Domain.csproj} | 0
.../UniversalAdmin.Domain/ValueObjects/01.md | 6 ++
.../ValueObjects/UserProfile.cs | 49 +++++++++
.../UniversalAdmin.Infrastructure/Class1.cs | 6 ++
.../UniversalAdmin.Infrastructure.csproj} | 9 ++
.../UniversalAdmin.Shared}/Class1.cs | 2 +-
.../UniversalAdmin.Shared.csproj} | 0
28 files changed, 301 insertions(+), 112 deletions(-)
create mode 100644 backend/UniversalAdmin.sln
delete mode 100644 backend/admin2025/UniversalAdmin.sln
delete mode 100644 backend/admin2025/src/Application/Application.http
delete mode 100644 backend/admin2025/src/Application/README.md
delete mode 100644 backend/admin2025/src/Domain/README.md
delete mode 100644 backend/admin2025/src/Infrastructure/README.md
delete mode 100644 backend/admin2025/src/Presentation/README.md
rename backend/{admin2025/src/Application => src/UniversalAdmin.Api}/Program.cs (100%)
rename backend/{admin2025/src/Application => src/UniversalAdmin.Api}/Properties/launchSettings.json (80%)
create mode 100644 backend/src/UniversalAdmin.Api/UniversalAdmin.Api.csproj
create mode 100644 backend/src/UniversalAdmin.Api/UniversalAdmin.Api.http
rename backend/{admin2025/src/Application => src/UniversalAdmin.Api}/appsettings.Development.json (100%)
rename backend/{admin2025/src/Application => src/UniversalAdmin.Api}/appsettings.json (100%)
rename backend/{admin2025/src/Presentation => src/UniversalAdmin.Application}/Class1.cs (38%)
rename backend/{admin2025/src/Application/Application.csproj => src/UniversalAdmin.Application/UniversalAdmin.Application.csproj} (78%)
create mode 100644 backend/src/UniversalAdmin.Domain/Aggregates/AggregateRoot.cs
create mode 100644 backend/src/UniversalAdmin.Domain/Aggregates/Aggregates.md
rename backend/{admin2025/src/Domain => src/UniversalAdmin.Domain}/Class1.cs (41%)
rename backend/{admin2025/src/Domain/Entities/EntityBase.cs => src/UniversalAdmin.Domain/Entities/BaseEntity.cs} (94%)
create mode 100644 backend/src/UniversalAdmin.Domain/Entities/User.cs
create mode 100644 backend/src/UniversalAdmin.Domain/Entities/User.md
rename backend/{admin2025/src/Domain/Domain.csproj => src/UniversalAdmin.Domain/UniversalAdmin.Domain.csproj} (100%)
create mode 100644 backend/src/UniversalAdmin.Domain/ValueObjects/01.md
create mode 100644 backend/src/UniversalAdmin.Domain/ValueObjects/UserProfile.cs
create mode 100644 backend/src/UniversalAdmin.Infrastructure/Class1.cs
rename backend/{admin2025/src/Presentation/Presentation.csproj => src/UniversalAdmin.Infrastructure/UniversalAdmin.Infrastructure.csproj} (31%)
rename backend/{admin2025/src/Infrastructure => src/UniversalAdmin.Shared}/Class1.cs (41%)
rename backend/{admin2025/src/Infrastructure/Infrastructure.csproj => src/UniversalAdmin.Shared/UniversalAdmin.Shared.csproj} (100%)
diff --git a/backend/UniversalAdmin.sln b/backend/UniversalAdmin.sln
new file mode 100644
index 0000000..d9b8175
--- /dev/null
+++ b/backend/UniversalAdmin.sln
@@ -0,0 +1,99 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalAdmin.Api", "src\UniversalAdmin.Api\UniversalAdmin.Api.csproj", "{2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalAdmin.Application", "src\UniversalAdmin.Application\UniversalAdmin.Application.csproj", "{2564B049-C699-434A-A8FF-B061AF2B3FA6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalAdmin.Domain", "src\UniversalAdmin.Domain\UniversalAdmin.Domain.csproj", "{D03EBE0F-3626-48B8-84D8-D0E7EDA72684}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalAdmin.Infrastructure", "src\UniversalAdmin.Infrastructure\UniversalAdmin.Infrastructure.csproj", "{BEC9794B-D87F-45E5-8E18-CEF847D42F45}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversalAdmin.Shared", "src\UniversalAdmin.Shared\UniversalAdmin.Shared.csproj", "{D4BA446A-C7D5-427D-B578-B3D01F9300E7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Debug|x64.Build.0 = Debug|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Debug|x86.Build.0 = Debug|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Release|x64.ActiveCfg = Release|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Release|x64.Build.0 = Release|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Release|x86.ActiveCfg = Release|Any CPU
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D}.Release|x86.Build.0 = Release|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Debug|x64.Build.0 = Debug|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Debug|x86.Build.0 = Debug|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Release|x64.ActiveCfg = Release|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Release|x64.Build.0 = Release|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Release|x86.ActiveCfg = Release|Any CPU
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6}.Release|x86.Build.0 = Release|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Debug|x64.Build.0 = Debug|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Debug|x86.Build.0 = Debug|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Release|x64.ActiveCfg = Release|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Release|x64.Build.0 = Release|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Release|x86.ActiveCfg = Release|Any CPU
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684}.Release|x86.Build.0 = Release|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Debug|x64.Build.0 = Debug|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Debug|x86.Build.0 = Debug|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Release|x64.ActiveCfg = Release|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Release|x64.Build.0 = Release|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Release|x86.ActiveCfg = Release|Any CPU
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45}.Release|x86.Build.0 = Release|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Debug|x64.Build.0 = Debug|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Debug|x86.Build.0 = Debug|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Release|x64.ActiveCfg = Release|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Release|x64.Build.0 = Release|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Release|x86.ActiveCfg = Release|Any CPU
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {2FECD51B-9A3E-4288-B1EB-F8AF82AF261D} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {2564B049-C699-434A-A8FF-B061AF2B3FA6} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {D03EBE0F-3626-48B8-84D8-D0E7EDA72684} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {BEC9794B-D87F-45E5-8E18-CEF847D42F45} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ {D4BA446A-C7D5-427D-B578-B3D01F9300E7} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
+ EndGlobalSection
+EndGlobal
diff --git a/backend/admin2025/UniversalAdmin.sln b/backend/admin2025/UniversalAdmin.sln
deleted file mode 100644
index 9478a16..0000000
--- a/backend/admin2025/UniversalAdmin.sln
+++ /dev/null
@@ -1,84 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application", "src\Application\Application.csproj", "{D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Domain", "src\Domain\Domain.csproj", "{D5CC761F-163C-4CDD-853D-5FBA9E313D7C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure", "src\Infrastructure\Infrastructure.csproj", "{08C49605-78E8-4C93-819F-8BE36932ACB1}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presentation", "src\Presentation\Presentation.csproj", "{C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x64.Build.0 = Debug|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Debug|x86.Build.0 = Debug|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|Any CPU.Build.0 = Release|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x64.ActiveCfg = Release|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x64.Build.0 = Release|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x86.ActiveCfg = Release|Any CPU
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406}.Release|x86.Build.0 = Release|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x64.Build.0 = Debug|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Debug|x86.Build.0 = Debug|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|Any CPU.Build.0 = Release|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x64.ActiveCfg = Release|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x64.Build.0 = Release|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x86.ActiveCfg = Release|Any CPU
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C}.Release|x86.Build.0 = Release|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x64.ActiveCfg = Debug|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x64.Build.0 = Debug|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Debug|x86.Build.0 = Debug|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|Any CPU.Build.0 = Release|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x64.ActiveCfg = Release|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x64.Build.0 = Release|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x86.ActiveCfg = Release|Any CPU
- {08C49605-78E8-4C93-819F-8BE36932ACB1}.Release|x86.Build.0 = Release|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x64.Build.0 = Debug|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Debug|x86.Build.0 = Debug|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|Any CPU.Build.0 = Release|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x64.ActiveCfg = Release|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x64.Build.0 = Release|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x86.ActiveCfg = Release|Any CPU
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {D5B259D0-DEF7-4561-B7ED-0E2D45ABD406} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
- {D5CC761F-163C-4CDD-853D-5FBA9E313D7C} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
- {08C49605-78E8-4C93-819F-8BE36932ACB1} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
- {C8209FE4-D45B-4FF9-B32E-6BDA1CA3BDD5} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
- EndGlobalSection
-EndGlobal
diff --git a/backend/admin2025/src/Application/Application.http b/backend/admin2025/src/Application/Application.http
deleted file mode 100644
index 0952984..0000000
--- a/backend/admin2025/src/Application/Application.http
+++ /dev/null
@@ -1,6 +0,0 @@
-@url = http://localhost:5140
-
-GET {{url}}/weatherforecast/
-Accept: application/json
-
-###
diff --git a/backend/admin2025/src/Application/README.md b/backend/admin2025/src/Application/README.md
deleted file mode 100644
index 23dea94..0000000
--- a/backend/admin2025/src/Application/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Application 层
-
-应用层,包含用例服务、DTO、应用服务接口等。
diff --git a/backend/admin2025/src/Domain/README.md b/backend/admin2025/src/Domain/README.md
deleted file mode 100644
index 7d6888f..0000000
--- a/backend/admin2025/src/Domain/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Domain 层
-
-领域层,包含实体、聚合、值对象、领域服务、仓储接口等。
diff --git a/backend/admin2025/src/Infrastructure/README.md b/backend/admin2025/src/Infrastructure/README.md
deleted file mode 100644
index c15b545..0000000
--- a/backend/admin2025/src/Infrastructure/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Infrastructure 层
-
-基础设施层,包含数据库实现、第三方服务、仓储实现等。
diff --git a/backend/admin2025/src/Presentation/README.md b/backend/admin2025/src/Presentation/README.md
deleted file mode 100644
index 66a2744..0000000
--- a/backend/admin2025/src/Presentation/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Presentation 层
-
-表现层,包含 API 控制器、Web、UI 等。
diff --git a/backend/admin2025/src/Application/Program.cs b/backend/src/UniversalAdmin.Api/Program.cs
similarity index 100%
rename from backend/admin2025/src/Application/Program.cs
rename to backend/src/UniversalAdmin.Api/Program.cs
diff --git a/backend/admin2025/src/Application/Properties/launchSettings.json b/backend/src/UniversalAdmin.Api/Properties/launchSettings.json
similarity index 80%
rename from backend/admin2025/src/Application/Properties/launchSettings.json
rename to backend/src/UniversalAdmin.Api/Properties/launchSettings.json
index e158076..768b4c1 100644
--- a/backend/admin2025/src/Application/Properties/launchSettings.json
+++ b/backend/src/UniversalAdmin.Api/Properties/launchSettings.json
@@ -5,7 +5,7 @@
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
- "applicationUrl": "http://localhost:5140",
+ "applicationUrl": "http://localhost:5292",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
@@ -14,7 +14,7 @@
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
- "applicationUrl": "https://localhost:7058;http://localhost:5140",
+ "applicationUrl": "https://localhost:7009;http://localhost:5292",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
diff --git a/backend/src/UniversalAdmin.Api/UniversalAdmin.Api.csproj b/backend/src/UniversalAdmin.Api/UniversalAdmin.Api.csproj
new file mode 100644
index 0000000..2f6e7b3
--- /dev/null
+++ b/backend/src/UniversalAdmin.Api/UniversalAdmin.Api.csproj
@@ -0,0 +1,16 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/src/UniversalAdmin.Api/UniversalAdmin.Api.http b/backend/src/UniversalAdmin.Api/UniversalAdmin.Api.http
new file mode 100644
index 0000000..439f15f
--- /dev/null
+++ b/backend/src/UniversalAdmin.Api/UniversalAdmin.Api.http
@@ -0,0 +1,6 @@
+@UniversalAdmin.Api_HostAddress = http://localhost:5292
+
+GET {{UniversalAdmin.Api_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/backend/admin2025/src/Application/appsettings.Development.json b/backend/src/UniversalAdmin.Api/appsettings.Development.json
similarity index 100%
rename from backend/admin2025/src/Application/appsettings.Development.json
rename to backend/src/UniversalAdmin.Api/appsettings.Development.json
diff --git a/backend/admin2025/src/Application/appsettings.json b/backend/src/UniversalAdmin.Api/appsettings.json
similarity index 100%
rename from backend/admin2025/src/Application/appsettings.json
rename to backend/src/UniversalAdmin.Api/appsettings.json
diff --git a/backend/admin2025/src/Presentation/Class1.cs b/backend/src/UniversalAdmin.Application/Class1.cs
similarity index 38%
rename from backend/admin2025/src/Presentation/Class1.cs
rename to backend/src/UniversalAdmin.Application/Class1.cs
index 5234eac..4be6d8e 100644
--- a/backend/admin2025/src/Presentation/Class1.cs
+++ b/backend/src/UniversalAdmin.Application/Class1.cs
@@ -1,4 +1,4 @@
-namespace Presentation;
+namespace UniversalAdmin.Application;
public class Class1
{
diff --git a/backend/admin2025/src/Application/Application.csproj b/backend/src/UniversalAdmin.Application/UniversalAdmin.Application.csproj
similarity index 78%
rename from backend/admin2025/src/Application/Application.csproj
rename to backend/src/UniversalAdmin.Application/UniversalAdmin.Application.csproj
index 53b8871..9b86875 100644
--- a/backend/admin2025/src/Application/Application.csproj
+++ b/backend/src/UniversalAdmin.Application/UniversalAdmin.Application.csproj
@@ -1,16 +1,15 @@
-
+
net9.0
- enable
enable
+ enable
-
diff --git a/backend/src/UniversalAdmin.Domain/Aggregates/AggregateRoot.cs b/backend/src/UniversalAdmin.Domain/Aggregates/AggregateRoot.cs
new file mode 100644
index 0000000..e60d9d4
--- /dev/null
+++ b/backend/src/UniversalAdmin.Domain/Aggregates/AggregateRoot.cs
@@ -0,0 +1,9 @@
+namespace UniversalAdmin.Domain.Common
+{
+ public abstract class AggregateRoot : BaseEntity
+ {
+ protected AggregateRoot() : base()
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/backend/src/UniversalAdmin.Domain/Aggregates/Aggregates.md b/backend/src/UniversalAdmin.Domain/Aggregates/Aggregates.md
new file mode 100644
index 0000000..03f07a1
--- /dev/null
+++ b/backend/src/UniversalAdmin.Domain/Aggregates/Aggregates.md
@@ -0,0 +1,4 @@
+
+继承自 BaseEntity,表示一个聚合根。
+聚合根是领域驱动设计中的一个重要概念,它是一个实体,可以包含其他实体和值对象,并且是这些实体和值对象的根。
+通过继承 BaseEntity,聚合根继承了所有基础实体的属性和方法。
\ No newline at end of file
diff --git a/backend/admin2025/src/Domain/Class1.cs b/backend/src/UniversalAdmin.Domain/Class1.cs
similarity index 41%
rename from backend/admin2025/src/Domain/Class1.cs
rename to backend/src/UniversalAdmin.Domain/Class1.cs
index 610aa88..e664930 100644
--- a/backend/admin2025/src/Domain/Class1.cs
+++ b/backend/src/UniversalAdmin.Domain/Class1.cs
@@ -1,4 +1,4 @@
-namespace Domain;
+namespace UniversalAdmin.Domain;
public class Class1
{
diff --git a/backend/admin2025/src/Domain/Entities/EntityBase.cs b/backend/src/UniversalAdmin.Domain/Entities/BaseEntity.cs
similarity index 94%
rename from backend/admin2025/src/Domain/Entities/EntityBase.cs
rename to backend/src/UniversalAdmin.Domain/Entities/BaseEntity.cs
index 053733f..d2fe7de 100644
--- a/backend/admin2025/src/Domain/Entities/EntityBase.cs
+++ b/backend/src/UniversalAdmin.Domain/Entities/BaseEntity.cs
@@ -1,5 +1,5 @@
-namespace Backend.Admin2025.Domain.Entities
-
+namespace UniversalAdmin.Domain.Common
+{
public abstract class BaseEntity
{
public int Id { get; protected set; }
@@ -26,3 +26,4 @@ namespace Backend.Admin2025.Domain.Entities
UpdatedAt = DateTime.UtcNow;
}
}
+}
\ No newline at end of file
diff --git a/backend/src/UniversalAdmin.Domain/Entities/User.cs b/backend/src/UniversalAdmin.Domain/Entities/User.cs
new file mode 100644
index 0000000..cd151a0
--- /dev/null
+++ b/backend/src/UniversalAdmin.Domain/Entities/User.cs
@@ -0,0 +1,81 @@
+namespace UniversalAdmin.Domain.Entities
+{
+ public class User : AggregateRoot
+ {
+ public string Username { get; private set; }
+ public string Email { get; private set; }
+ public string PasswordHash { get; private set; }
+ public UserProfile Profile { get; private set; }
+ public UserStatus Status { get; private set; }
+
+ private readonly List _userRoles = new();
+ public IReadOnlyCollection UserRoles => _userRoles.AsReadOnly();
+
+ protected User() : base() { } // EF Core构造函数
+
+ public User(string username, string email, string passwordHash, UserProfile profile)
+ : base()
+ {
+ Username = username ?? throw new ArgumentNullException(nameof(username));
+ Email = email ?? throw new ArgumentNullException(nameof(email));
+ PasswordHash = passwordHash ?? throw new ArgumentNullException(nameof(passwordHash));
+ Profile = profile ?? throw new ArgumentNullException(nameof(profile));
+ Status = UserStatus.Active;
+
+ AddDomainEvent(new UserCreatedEvent(this));
+ }
+
+ public void UpdateProfile(UserProfile profile)
+ {
+ Profile = profile ?? throw new ArgumentNullException(nameof(profile));
+ UpdatedAt = DateTime.UtcNow;
+ AddDomainEvent(new UserProfileUpdatedEvent(this));
+ }
+
+ public void ChangePassword(string newPasswordHash)
+ {
+ if (string.IsNullOrEmpty(newPasswordHash))
+ throw new ArgumentNullException(nameof(newPasswordHash));
+
+ PasswordHash = newPasswordHash;
+ UpdatedAt = DateTime.UtcNow;
+ AddDomainEvent(new UserPasswordChangedEvent(this));
+ }
+
+ public void AssignRole(Role role)
+ {
+ if (role == null)
+ throw new ArgumentNullException(nameof(role));
+
+ if (_userRoles.Any(ur => ur.RoleId == role.Id))
+ throw new DomainException($"User {Username} already has role {role.Name}");
+
+ _userRoles.Add(new UserRole(Id, role.Id));
+ AddDomainEvent(new UserRoleAssignedEvent(this, role));
+ }
+
+ public void RemoveRole(int roleId)
+ {
+ var userRole = _userRoles.FirstOrDefault(ur => ur.RoleId == roleId);
+ if (userRole != null)
+ {
+ _userRoles.Remove(userRole);
+ AddDomainEvent(new UserRoleRemovedEvent(this, roleId));
+ }
+ }
+
+ public void Activate()
+ {
+ Status = UserStatus.Active;
+ UpdatedAt = DateTime.UtcNow;
+ AddDomainEvent(new UserActivatedEvent(this));
+ }
+
+ public void Deactivate()
+ {
+ Status = UserStatus.Inactive;
+ UpdatedAt = DateTime.UtcNow;
+ AddDomainEvent(new UserDeactivatedEvent(this));
+ }
+ }
+}
\ No newline at end of file
diff --git a/backend/src/UniversalAdmin.Domain/Entities/User.md b/backend/src/UniversalAdmin.Domain/Entities/User.md
new file mode 100644
index 0000000..9805c34
--- /dev/null
+++ b/backend/src/UniversalAdmin.Domain/Entities/User.md
@@ -0,0 +1,6 @@
+功能:
+定义了一个 User 类,表示用户实体,继承自 AggregateRoot。
+包含用户的基本属性,如 Username(用户名)、Email(邮箱)、PasswordHash(密码哈希)、Profile(用户资料)和 Status(状态)。
+包含一个私有列表 _userRoles,用于存储用户的角色关系,并通过 UserRoles 提供只读访问。
+提供了多个方法来管理用户的状态,如 UpdateProfile(更新用户资料)、ChangePassword(更改密码)、AssignRole(分配角色)、RemoveRole(移除角色)、Activate(激活用户)和 Deactivate(停用用户)。
+每次修改用户状态时,都会通过 AddDomainEvent 方法添加一个领域事件。
\ No newline at end of file
diff --git a/backend/admin2025/src/Domain/Domain.csproj b/backend/src/UniversalAdmin.Domain/UniversalAdmin.Domain.csproj
similarity index 100%
rename from backend/admin2025/src/Domain/Domain.csproj
rename to backend/src/UniversalAdmin.Domain/UniversalAdmin.Domain.csproj
diff --git a/backend/src/UniversalAdmin.Domain/ValueObjects/01.md b/backend/src/UniversalAdmin.Domain/ValueObjects/01.md
new file mode 100644
index 0000000..0fe14c1
--- /dev/null
+++ b/backend/src/UniversalAdmin.Domain/ValueObjects/01.md
@@ -0,0 +1,6 @@
+###
+ValueObjects.cs文件
+定义了一个 UserProfile 类,表示用户资料,继承自 ValueObject。
+包含用户资料的基本属性,如 Phone(电话)、Avatar(头像)、FullName(全名)和 Department(部门)。
+通过 GetEqualityComponents 方法定义了值对象的相等性比较逻辑。
+ValueObject 是一个抽象基类,提供了值对象的基本功能,包括 Equals 和 GetHashCode 方法的实现。
\ No newline at end of file
diff --git a/backend/src/UniversalAdmin.Domain/ValueObjects/UserProfile.cs b/backend/src/UniversalAdmin.Domain/ValueObjects/UserProfile.cs
new file mode 100644
index 0000000..28aa79d
--- /dev/null
+++ b/backend/src/UniversalAdmin.Domain/ValueObjects/UserProfile.cs
@@ -0,0 +1,49 @@
+namespace UniversalAdmin.Domain.ValueObjects
+{
+ public class UserProfile : ValueObject
+ {
+ public string? Phone { get; private set; }
+ public string? Avatar { get; private set; }
+ public string? FullName { get; private set; }
+ public string? Department { get; private set; }
+
+ protected UserProfile() { } // EF Core构造函数
+
+ public UserProfile(string? phone, string? avatar, string? fullName, string? department)
+ {
+ Phone = phone;
+ Avatar = avatar;
+ FullName = fullName;
+ Department = department;
+ }
+
+ protected override IEnumerable GetEqualityComponents()
+ {
+ yield return Phone;
+ yield return Avatar;
+ yield return FullName;
+ yield return Department;
+ }
+ }
+
+ public abstract class ValueObject
+ {
+ protected abstract IEnumerable GetEqualityComponents();
+
+ public override bool Equals(object? obj)
+ {
+ if (obj == null || obj.GetType() != GetType())
+ return false;
+
+ var other = (ValueObject)obj;
+ return GetEqualityComponents().SequenceEqual(other.GetEqualityComponents());
+ }
+
+ public override int GetHashCode()
+ {
+ return GetEqualityComponents()
+ .Select(x => x?.GetHashCode() ?? 0)
+ .Aggregate((x, y) => x ^ y);
+ }
+ }
+}
\ No newline at end of file
diff --git a/backend/src/UniversalAdmin.Infrastructure/Class1.cs b/backend/src/UniversalAdmin.Infrastructure/Class1.cs
new file mode 100644
index 0000000..4ee2041
--- /dev/null
+++ b/backend/src/UniversalAdmin.Infrastructure/Class1.cs
@@ -0,0 +1,6 @@
+namespace UniversalAdmin.Infrastructure;
+
+public class Class1
+{
+
+}
diff --git a/backend/admin2025/src/Presentation/Presentation.csproj b/backend/src/UniversalAdmin.Infrastructure/UniversalAdmin.Infrastructure.csproj
similarity index 31%
rename from backend/admin2025/src/Presentation/Presentation.csproj
rename to backend/src/UniversalAdmin.Infrastructure/UniversalAdmin.Infrastructure.csproj
index 125f4c9..bf8c325 100644
--- a/backend/admin2025/src/Presentation/Presentation.csproj
+++ b/backend/src/UniversalAdmin.Infrastructure/UniversalAdmin.Infrastructure.csproj
@@ -6,4 +6,13 @@
enable
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
diff --git a/backend/admin2025/src/Infrastructure/Class1.cs b/backend/src/UniversalAdmin.Shared/Class1.cs
similarity index 41%
rename from backend/admin2025/src/Infrastructure/Class1.cs
rename to backend/src/UniversalAdmin.Shared/Class1.cs
index cffa0c9..27c0eeb 100644
--- a/backend/admin2025/src/Infrastructure/Class1.cs
+++ b/backend/src/UniversalAdmin.Shared/Class1.cs
@@ -1,4 +1,4 @@
-namespace Infrastructure;
+namespace UniversalAdmin.Shared;
public class Class1
{
diff --git a/backend/admin2025/src/Infrastructure/Infrastructure.csproj b/backend/src/UniversalAdmin.Shared/UniversalAdmin.Shared.csproj
similarity index 100%
rename from backend/admin2025/src/Infrastructure/Infrastructure.csproj
rename to backend/src/UniversalAdmin.Shared/UniversalAdmin.Shared.csproj
--
Gitee
From 1565a68955d671a69014bfa355f97e50254ff651 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B0=A2=E9=9B=A8=E6=99=B4?= <1207713896@qq.com>
Date: Tue, 22 Jul 2025 11:25:17 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=90=84=E4=B8=AA?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=9A=84=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/backend-dev-guide.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/backend-dev-guide.md b/docs/backend-dev-guide.md
index 4cf3b56..86c4085 100644
--- a/docs/backend-dev-guide.md
+++ b/docs/backend-dev-guide.md
@@ -1336,7 +1336,7 @@ namespace UniversalAdmin.Infrastructure.Data.Configurations
builder.Ignore(r => r.DomainEvents);
}
}
-
+
public class UserRoleConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
--
Gitee
From 830eb92e9e9e07c0d1cf5ef8489b24738fafdc7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B0=A2=E9=9B=A8=E6=99=B4?= <1207713896@qq.com>
Date: Tue, 22 Jul 2025 11:27:19 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=90=84=E4=B8=AA?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=9A=84=E4=BE=9D=E8=B5=96,=E5=B9=B6?=
=?UTF-8?q?=E5=9C=A8=E9=A2=86=E5=9F=9F=E5=B1=82=E5=AE=9A=E4=B9=89=20?=
=?UTF-8?q?=E9=80=9A=E7=94=A8=E5=9F=BA=E7=A1=80=E5=AE=9E=E4=BD=93=E3=80=81?=
=?UTF-8?q?=E8=81=9A=E5=90=88=E6=A0=B9=E3=80=81=E7=94=A8=E6=88=B7=E8=81=9A?=
=?UTF-8?q?=E5=90=88=20=E5=92=8C=20=E5=80=BC=E5=AF=B9=E8=B1=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/backend-dev-guide.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/backend-dev-guide.md b/docs/backend-dev-guide.md
index 86c4085..b5ba830 100644
--- a/docs/backend-dev-guide.md
+++ b/docs/backend-dev-guide.md
@@ -1336,7 +1336,7 @@ namespace UniversalAdmin.Infrastructure.Data.Configurations
builder.Ignore(r => r.DomainEvents);
}
}
-
+
public class UserRoleConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
--
Gitee