diff --git a/.env b/.env
index a84741b8..434cf575 100644
--- a/.env
+++ b/.env
@@ -4,11 +4,6 @@ VITE_APP_TITLE = Admin
# 网站前缀
VITE_BASE_URL = /
-# base api
-VITE_BASE_API_URL = '/api/admin/'
-VITE_BASE_SOCKET_PATH = '/ws-api'
-VITE_BASE_SOCKET_NSP = '/admin'
-
-# mock api
-VITE_MOCK_API = '/api/'
+# enable mock in production
+VITE_MOCK_IN_PROD = true
diff --git a/.env.development b/.env.development
index 11fc3dc1..00f3fa10 100644
--- a/.env.development
+++ b/.env.development
@@ -5,8 +5,6 @@ ENV = 'development'
VITE_BASE_URL = /
# base api url
-VITE_BASE_API_URL = '/api'
-VITE_BASE_SOCKET_PATH = '/ws-api'
-VITE_BASE_SOCKET_NSP = '/auth'
+VITE_BASE_API_URL = '/api'
VITE_DROP_CONSOLE = false
diff --git a/.env.production b/.env.production
index 7aad938e..8db41913 100644
--- a/.env.production
+++ b/.env.production
@@ -3,9 +3,7 @@ ENV = 'production'
# base api url
VITE_BASE_API_URL = 'https://nest-api.buqiyuan.site'
-# VITE_BASE_API_URL = 'http://127.0.0.1:7001'
-VITE_BASE_SOCKET_PATH = '/ws-api'
-VITE_BASE_SOCKET_NSP = 'wss://nest-api.buqiyuan.site/admin'
+# VITE_BASE_API_URL = 'http://127.0.0.1:7001'
# 网站前缀
VITE_BASE_URL = /vue3-antdv-admin/
diff --git a/.github/workflows/release-package.yml b/.github/workflows/release-package.yml
index 355d7342..caa8d92f 100644
--- a/.github/workflows/release-package.yml
+++ b/.github/workflows/release-package.yml
@@ -26,10 +26,12 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile
- # run: pnpm run --filter \"./packages/**\" build
+ - name: Build
+ shell: bash
+ run: pnpm --filter "./packages/*" build
- name: Publish 🚀
shell: bash
- run: pnpm publish --filter ./packages/* --access public --no-git-checks
+ run: pnpm publish --filter ./packages/* --access public --no-git-checks --registry https://registry.npmjs.org --verbose
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
diff --git a/.github/workflows/sync-to-gitee.yml b/.github/workflows/sync-to-gitee.yml
index 8e4c47ae..f89f1371 100644
--- a/.github/workflows/sync-to-gitee.yml
+++ b/.github/workflows/sync-to-gitee.yml
@@ -7,6 +7,11 @@ on:
push:
branches: [main]
+# Ensures that only one mirror task will run at a time.
+concurrency:
+ group: repo-sync
+ cancel-in-progress: true
+
jobs:
repo-sync:
runs-on: ubuntu-latest
diff --git a/.gitignore b/.gitignore
index ad4d7eb9..83377964 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,6 @@
node_modules
.DS_Store
dist
-.npmrc
.cache
tests/server/static
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 00000000..6ac1657c
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "docs"]
+ path = docs
+ url = https://github.com/buqiyuan/vue3-antdv-admin-docs.git
+ branch = main
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 00000000..c9290356
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1,18 @@
+# 使用淘宝镜像源
+registry = https://registry.npmmirror.com
+# registry = https://registry.npmjs.org
+
+# 根据需要提升含有以下的依赖包到根 node_modules 目录下
+public-hoist-pattern[]=husky
+public-hoist-pattern[]=*eslint*
+public-hoist-pattern[]=*prettier*
+public-hoist-pattern[]=lint-staged
+public-hoist-pattern[]=*stylelint*
+public-hoist-pattern[]=@commitlint/cli
+public-hoist-pattern[]=core-js
+
+# 提升所有依赖到根 node_modules 目录下,相当于 public-hoist-pattern[]=*,与上面一种方式一般二选一使用
+# 极不推荐用这样的方式解决依赖问题,这样没有充分利用 pnpm 依赖访问安全性的优势,又走回了 npm / yarn 的老路。
+# shamefully-hoist=true
+
+enable-pre-post-scripts=true
\ No newline at end of file
diff --git a/README.md b/README.md
index c2aa5b6d..b1229d29 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,21 @@
# vue3-antdv-admin
-> 基于 vite4.x 重构整个前后端项目,完善后端权限控制细粒度,封装更多场景化组件...正在完善中
+基于 vite5.x + vue3.x + antd-design-vue4.x + typescript5.x 的后台管理系统
-基于 vite4.x + vue3.x + antd-design-vue4.x + typescript5.x 的后台管理系统模板
-
-- 账号:rootadmin,密码:123456
-- 在线预览( [gitee](http://buqiyuan.gitee.io/vue3-antdv-admin/) / [vercel](https://vue3-antdv-admin.vercel.app/) )
-- [swagger 文档](https://nest-api.buqiyuan.site/swagger-api/)
-- [后台地址](https://github.com/buqiyuan/nest-admin)
-- [vue-cli版](https://github.com/buqiyuan/vue3-antdv-admin/tree/vue-cli)
+- 账号:admin,密码:a123456
+- [在线预览](http://buqiyuan.gitee.io/vue3-antdv-admin/)
+- [项目文档](https://buqiyuan.github.io/vue3-antdv-admin-docs/)
+- [swagger 文档](https://nest-api.buqiyuan.site/api-docs/)
+- [后端仓库地址](https://github.com/buqiyuan/nest-admin)
- [gitee 地址](https://gitee.com/buqiyuan/vue3-antdv-admin)
- 根据 JSON 生成 typescript 的工具:[http://json2ts.com/](http://json2ts.com/)
-部分设计参考了 [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin)
-
## 安装使用
- 获取项目代码
```bash
-git clone --depth 1 https://github.com/buqiyuan/vue3-antdv-admin
+git clone https://github.com/buqiyuan/vue3-antdv-admin
```
- 安装依赖
@@ -47,11 +43,7 @@ pnpm build
安装项目根目录 `.vscode` 推荐的插件,再安装 `Volar`,并禁用 `Vetur`,重启 vscode 即可。
-> 使用了 Vue3.x 全家桶、ant-design-vue3.x 和 typescript4.x,实践 vue3.x 的新特性以及玩法,不得不说 vue3.x 的 Composition API 相比于 vue2.x 的 Options API 灵活很多,让我们可以灵活地组合组件逻辑,我们可以很轻松的使用 hooks 的形式去代替以前 mixins 等的写法。更多 hooks 可以参考[vueuse](https://vueuse.org/functions.html)
-
-## 项目简要说明
-
-`rootadmin` 默认开放多点登录,其他新建的账号默认都是单点登录。建议自己拉后端代码到本地跑,避免多人同时操作时产生冲突和误解。
+> 使用了 Vue3.x 全家桶、ant-design-vue4.x 和 typescript5.x,实践 vue3.x 的新特性以及玩法,不得不说 vue3.x 的 Composition API 相比于 vue2.x 的 Options API 灵活很多,让我们可以灵活地组合组件逻辑,我们可以很轻松的使用 hooks 的形式去代替以前 mixins 等的写法。更多 hooks 可以参考[vueuse](https://vueuse.org/functions.html)
### todolist
diff --git a/docs/.editorconfig b/docs/.editorconfig
new file mode 100644
index 00000000..0de50015
--- /dev/null
+++ b/docs/.editorconfig
@@ -0,0 +1,10 @@
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/docs/.github/workflows/gh-pages.yml b/docs/.github/workflows/gh-pages.yml
new file mode 100644
index 00000000..fe322abe
--- /dev/null
+++ b/docs/.github/workflows/gh-pages.yml
@@ -0,0 +1,54 @@
+name: GitHub Pages
+
+on:
+ push:
+ branches: [main]
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup node
+ uses: actions/setup-node@v3
+ with:
+ node-version: '18'
+ registry-url: https://registry.npmjs.com/
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v2
+ with:
+ version: latest
+
+ - name: Get pnpm store directory
+ shell: bash
+ run: |
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
+
+ - uses: actions/cache@v3
+ name: Setup pnpm cache
+ with:
+ path: ${{ env.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
+
+ - name: Install dependencies
+ run: pnpm i --frozen-lockfile
+
+ - name: Build
+ run: pnpm run deploy
+ env:
+ FORCE_COLOR: 2
+
+ - name: Deploy
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ publish_dir: ./.vitepress/dist
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ commit_message: Update ghPages
+ force_orphan: true
diff --git a/docs/.gitignore b/docs/.gitignore
new file mode 100644
index 00000000..e44ac5a5
--- /dev/null
+++ b/docs/.gitignore
@@ -0,0 +1,118 @@
+### OSX ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### Node ###
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# pnpm link folder
+pnpm-global
+
+# dotenv environment variables file
+.env
+.env.test
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+
+# rollup.js default build output
+dist/
+
+# vitepress build output
+.vitepress/dist
+.vitepress/cache
+
+# Serverless directories
+.serverless/
+
+# Temporary folders
+tmp/
+temp/
+TODOs.md
+src/api/index.json
+src/examples/data.json
+src/tutorial/data.json
+draft.md
+
+# IDEs
+.idea
+
+test.html
+.firebase
\ No newline at end of file
diff --git a/docs/.npmrc b/docs/.npmrc
new file mode 100644
index 00000000..1e48054c
--- /dev/null
+++ b/docs/.npmrc
@@ -0,0 +1,2 @@
+registry = https://registry.npmmirror.com
+# registry = https://registry.npmjs.org
diff --git a/docs/.prettierrc b/docs/.prettierrc
new file mode 100644
index 00000000..2ecc4f49
--- /dev/null
+++ b/docs/.prettierrc
@@ -0,0 +1,6 @@
+{
+ "semi": false,
+ "singleQuote": true,
+ "trailingComma": "none",
+ "printWidth": 75
+}
diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
new file mode 100644
index 00000000..d311e95d
--- /dev/null
+++ b/docs/.vitepress/config.mts
@@ -0,0 +1,119 @@
+import { defineConfig } from 'vitepress'
+import path from 'node:path'
+
+const isProd = process.env.NODE_ENV === 'production'
+
+export default defineConfig({
+ base: isProd ? '/vue3-antdv-admin-docs' : '',
+ title: 'Vue3 Antdv Admin',
+ description: '一个优雅、清新、漂亮的中后台模版',
+ ignoreDeadLinks: [
+ // 自定义函数,忽略所有包含 "/playground/" 的链接
+ (url) => {
+ return url.toLowerCase().includes('/playground/')
+ }
+ ],
+ head: [
+ ['meta', { name: 'author', content: 'Vue3 Antdv Admin' }],
+ [
+ 'meta',
+ {
+ name: 'keywords',
+ content:
+ 'buqiyuan, vue3-antdv-admin, vite, vue, vue3, vue3-antdv-admin docs'
+ }
+ ],
+ ['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.png' }],
+ [
+ 'meta',
+ {
+ name: 'viewport',
+ content:
+ 'width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no'
+ }
+ ],
+ ['link', { rel: 'icon', href: '/favicon.ico' }]
+ ],
+ srcDir: `${path.resolve(process.cwd())}/src`,
+ themeConfig: {
+ logo: '/logo.png',
+ search: {
+ provider: 'local'
+ },
+ editLink: {
+ text: '为此页提供修改建议',
+ pattern:
+ 'https://github.com/buqiyuan/vue3-antdv-admin-docs/tree/main/src/:path'
+ },
+ socialLinks: [
+ {
+ icon: 'github',
+ link: 'https://github.com/buqiyuan/vue3-antdv-admin'
+ }
+ ],
+ footer: {
+ message: 'Released under the MIT License.',
+ copyright: 'Copyright © 2024-PRESENT buqiyuan'
+ },
+ nav: [
+ {
+ text: '项目指南',
+ link: '/guide/getting-started',
+ activeMatch: '/guide/'
+ },
+ {
+ text: '相关链接',
+ items: [
+ {
+ text: '预览地址',
+ link: 'https://buqiyuan.gitee.io/vue3-antdv-admin'
+ },
+ {
+ text: '前端源码',
+ link: 'https://github.com/buqiyuan/vue3-antdv-admin'
+ },
+ {
+ text: '后端源码',
+ link: 'https://github.com/buqiyuan/nest-admin'
+ },
+ {
+ text: '文档源码',
+ link: 'https://github.com/buqiyuan/vue3-antdv-admin-docs'
+ },
+ {
+ text: '更新日志',
+ link: 'https://github.com/buqiyuan/vue3-antdv-admin/blob/main/CHANGELOG.md'
+ }
+ ]
+ },
+ {
+ text: '赞助',
+ link: '/other/donate'
+ }
+ ],
+ sidebar: [
+ {
+ text: '指南',
+ items: [
+ {
+ text: '介绍',
+ link: '/guide/introduction'
+ },
+ {
+ text: '开始',
+ link: '/guide/getting-started'
+ },
+ { text: 'mock服务', link: '/guide/mock-service' },
+ { text: '接口管理', link: '/guide/api-manage' }
+ ]
+ },
+ {
+ text: '组件',
+ items: [
+ { text: 'Table', link: '/components/table' },
+ { text: 'Form', link: '/components/form' }
+ ]
+ }
+ ]
+ }
+})
diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts
new file mode 100644
index 00000000..fc475217
--- /dev/null
+++ b/docs/.vitepress/theme/index.ts
@@ -0,0 +1,10 @@
+import Theme from 'vitepress/theme'
+import './style.css'
+import Test from './test.vue'
+
+export default {
+ ...Theme,
+ enhanceApp(ctx: any) {
+ ctx.app.component('Test', Test)
+ }
+}
diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css
new file mode 100644
index 00000000..d0247a69
--- /dev/null
+++ b/docs/.vitepress/theme/style.css
@@ -0,0 +1,108 @@
+/**
+ * Colors
+ * -------------------------------------------------------------------------- */
+
+:root {
+ --vp-c-brand-1: #44bd87;
+ --vp-c-brand-2: #249252;
+ --vp-c-brand-3: #19633b;
+ --vp-c-brand-soft: #69e8af50;
+
+ --vp-c-text-code: #528d52;
+
+ --vp-code-block-bg: rgba(125, 125, 125, 0.04);
+ --vp-code-copy-code-bg: rgba(125, 125, 125, 0.1);
+ --vp-code-copy-code-hover-bg: rgba(125, 125, 125, 0.2);
+
+ --vp-c-disabled-bg: rgba(125, 125, 125, 0.2);
+ /* fix contrast on gray cards: used by --vp-c-text-2 */
+ --vp-c-text-light-2: rgba(56 56 56 / 70%);
+ --vp-c-text-dark-2: rgba(56 56 56 / 70%);
+
+ --vp-custom-block-info-bg: transparent;
+ --vp-custom-block-tip-bg: transparent;
+
+ --vp-custom-block-warning-bg: #d9a40605;
+ --vp-custom-block-warning-text: #d9a406;
+ --vp-custom-block-warning-border: #d9a40630;
+
+ --vp-custom-block-tip-bg: #44bd8705;
+ --vp-custom-block-tip-text: #44bd87;
+ --vp-custom-block-tip-border: #44bd8730;
+
+ --vp-code-color: #729772;
+}
+
+.dark {
+ --vp-code-block-bg: var(--vp-c-bg-alt);
+ --vp-c-text-code: #c0cec0;
+ /* fix contrast on gray cards: check the same above (this is the default) */
+ --vp-c-text-dark-2: rgba(235, 235, 235, 0.6);
+}
+
+/**
+ * Component: Code
+ * -------------------------------------------------------------------------- */
+
+:root {
+ --vp-code-line-highlight-color: rgba(125, 125, 125, 0.2);
+}
+
+.dark {
+ --vp-code-line-highlight-color: rgba(0, 0, 0, 0.5);
+}
+
+/**
+ * Component: Button
+ * -------------------------------------------------------------------------- */
+
+:root {
+ --vp-button-brand-border: var(--vp-c-brand-soft);
+ --vp-button-brand-text: var(--vp-c-text-dark-1);
+ --vp-button-brand-bg: var(--vp-c-brand-1);
+ --vp-button-brand-hover-border: var(--vp-c-brand-soft);
+ --vp-button-brand-hover-text: var(--vp-c-text-dark-1);
+ --vp-button-brand-hover-bg: var(--vp-c-brand-soft);
+ --vp-button-brand-active-border: var(--vp-c-brand-soft);
+ --vp-button-brand-active-text: var(--vp-c-text-dark-1);
+ --vp-button-brand-active-bg: var(--vp-button-brand-bg);
+}
+
+/**
+ * Component: Home
+ * -------------------------------------------------------------------------- */
+
+:root {
+ --vp-home-hero-name-color: transparent;
+ --vp-home-hero-name-background: -webkit-linear-gradient(
+ 120deg,
+ #35495e -80%,
+ #41b883
+ );
+ --vp-home-hero-image-background-image: linear-gradient(
+ -45deg,
+ #41b88380 30%,
+ #35495e80
+ );
+ --vp-home-hero-image-filter: blur(30px);
+}
+
+@media (min-width: 640px) {
+ :root {
+ --vp-home-hero-image-filter: blur(56px);
+ }
+}
+
+@media (min-width: 960px) {
+ :root {
+ --vp-home-hero-image-filter: blur(72px);
+ }
+}
+
+/**
+ * Component: Algolia
+ * -------------------------------------------------------------------------- */
+
+.DocSearch {
+ --docsearch-primary-color: var(--vp-c-brand) !important;
+}
diff --git a/docs/.vitepress/theme/test.vue b/docs/.vitepress/theme/test.vue
new file mode 100644
index 00000000..d978529a
--- /dev/null
+++ b/docs/.vitepress/theme/test.vue
@@ -0,0 +1,3 @@
+
+ 测试
+
diff --git a/docs/.vscode/launch.json b/docs/.vscode/launch.json
new file mode 100644
index 00000000..1a709d67
--- /dev/null
+++ b/docs/.vscode/launch.json
@@ -0,0 +1,15 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "chrome",
+ "request": "launch",
+ "name": "Launch Chrome",
+ "url": "http://localhost:5173",
+ "webRoot": "${workspaceFolder}/src"
+ }
+ ]
+}
diff --git a/docs/.vscode/settings.json b/docs/.vscode/settings.json
new file mode 100644
index 00000000..3296f056
--- /dev/null
+++ b/docs/.vscode/settings.json
@@ -0,0 +1,47 @@
+{
+ "typescript.tsdk": "./node_modules/typescript/lib",
+ "typescript.preferences.importModuleSpecifier": "non-relative",
+ "npm.packageManager": "pnpm",
+ "editor.tabSize": 2,
+ "editor.formatOnSave": true,
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "files.eol": "\n",
+ "stylelint.enable": true,
+ "stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass"],
+ "stylelint.packageManager": "pnpm",
+ "path-intellisense.mappings": {
+ "@/": "${workspaceRoot}/src"
+ },
+ "[javascriptreact]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[typescript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[typescriptreact]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[html]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[css]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[less]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[scss]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[markdown]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[jsonc]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[vue]": {
+ "editor.codeActionsOnSave": {
+ "source.fixAll.stylelint": "explicit"
+ }
+ }
+}
diff --git a/docs/.vscode/vue3.3.code-snippets b/docs/.vscode/vue3.3.code-snippets
new file mode 100644
index 00000000..0bf32dee
--- /dev/null
+++ b/docs/.vscode/vue3.3.code-snippets
@@ -0,0 +1,20 @@
+{
+ "Vue3.3+defineOptions快速生成模板": {
+ "scope": "vue",
+ "prefix": "Vue3.3+",
+ "body": [
+ "\n",
+ "",
+ "\ttest
",
+ "\n",
+ "",
+ "$2"
+ ],
+ "description": "Vue3.3+defineOptions快速生成模板"
+ }
+}
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 00000000..e956ecb4
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,7 @@
+# vue3-antdv-admin-docs
+
+**Vue3 Antdv Admin 的文档说明**
+[预览地址](https://buqiyuan.github.io/vue3-antdv-admin-docs)
+
+**Vue3 Antdv Admin 仓库地址**
+[地址](https://github.com/buqiyuan/vue3-antdv-admin)
diff --git a/docs/package.json b/docs/package.json
new file mode 100644
index 00000000..e088ebe0
--- /dev/null
+++ b/docs/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "vue3-antdv-admin-docs",
+ "version": "0.0.1",
+ "description": "vue3-antdv-admin 中后台管理系统的说明文档",
+ "author": {
+ "name": "buqiyuan",
+ "email": "1743369777@qq.com",
+ "url": "https://github.com/buqiyuan"
+ },
+ "license": "MIT",
+ "homepage": "https://github.com/buqiyuan/vue3-antdv-admin-docs",
+ "repository": {
+ "url": "https://github.com/buqiyuan/vue3-antdv-admin-docs.git"
+ },
+ "bugs": {
+ "url": "https://github.com/buqiyuan/vue3-antdv-admin-docs/issues"
+ },
+ "scripts": {
+ "dev": "vitepress dev",
+ "build": "vitepress build",
+ "preview": "vitepress preview",
+ "serve": "vitepress serve",
+ "deploy": "pnpm build && pnpm -F playground build"
+ },
+ "devDependencies": {
+ "@types/node": "20.11.16",
+ "typescript": "5.3.3",
+ "unplugin-icons": "^0.18.5",
+ "vitepress": "1.0.0-rc.44"
+ }
+}
diff --git a/docs/playground/README.md b/docs/playground/README.md
new file mode 100644
index 00000000..8abaa81b
--- /dev/null
+++ b/docs/playground/README.md
@@ -0,0 +1,19 @@
+# SFC Playground
+
+This is continuously deployed at [https://play.vuejs.org](https://play.vuejs.org).
+
+## Run Locally in Dev
+
+In repo root:
+
+```sh
+pnpm dev-sfc
+```
+
+## Build for Prod
+
+In repo root
+
+```sh
+pnpm build-sfc-playground
+```
diff --git a/docs/playground/index.html b/docs/playground/index.html
new file mode 100644
index 00000000..02d94b74
--- /dev/null
+++ b/docs/playground/index.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+ Vue SFC Playground
+
+
+
+
+
+
+
diff --git a/docs/playground/package.json b/docs/playground/package.json
new file mode 100644
index 00000000..70f76e06
--- /dev/null
+++ b/docs/playground/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "playground",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "serve": "vite preview"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^5.0.4",
+ "vite": "^5.0.12",
+ "vite-plugin-static-copy": "^1.0.1"
+ },
+ "dependencies": {
+ "@vue/repl": "^4.1.1",
+ "file-saver": "^2.0.5",
+ "jszip": "^3.10.1",
+ "vue": "~3.4.19"
+ }
+}
diff --git a/docs/playground/public/logo.png b/docs/playground/public/logo.png
new file mode 100644
index 00000000..3ac3627b
Binary files /dev/null and b/docs/playground/public/logo.png differ
diff --git a/docs/playground/src/App.vue b/docs/playground/src/App.vue
new file mode 100644
index 00000000..0b341378
--- /dev/null
+++ b/docs/playground/src/App.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
diff --git a/docs/playground/src/components/Header.vue b/docs/playground/src/components/Header.vue
new file mode 100644
index 00000000..22e3c26a
--- /dev/null
+++ b/docs/playground/src/components/Header.vue
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
diff --git a/docs/playground/src/components/VersionSelect.vue b/docs/playground/src/components/VersionSelect.vue
new file mode 100644
index 00000000..e613c7d6
--- /dev/null
+++ b/docs/playground/src/components/VersionSelect.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+ {{ label }}
+ {{ version }}
+
+
+
+
+
+
+
diff --git a/docs/playground/src/download/download.ts b/docs/playground/src/download/download.ts
new file mode 100644
index 00000000..f981134a
--- /dev/null
+++ b/docs/playground/src/download/download.ts
@@ -0,0 +1,39 @@
+import { saveAs } from 'file-saver'
+
+import index from './template/index.html?raw'
+import main from './template/main.js?raw'
+import pkg from './template/package.json?raw'
+import config from './template/vite.config.js?raw'
+import readme from './template/README.md?raw'
+import type { ReplStore } from '@vue/repl'
+
+export async function downloadProject(store: ReplStore) {
+ if (!confirm('Download project files?')) {
+ return
+ }
+
+ const { default: JSZip } = await import('jszip')
+ const zip = new JSZip()
+
+ // basic structure
+ zip.file('index.html', index)
+ zip.file('package.json', pkg)
+ zip.file('vite.config.js', config)
+ zip.file('README.md', readme)
+
+ // project src
+ const src = zip.folder('src')!
+ src.file('main.js', main)
+
+ const files = store.getFiles()
+ for (const file in files) {
+ if (file !== 'import-map.json') {
+ src.file(file, files[file])
+ } else {
+ zip.file(file, files[file])
+ }
+ }
+
+ const blob = await zip.generateAsync({ type: 'blob' })
+ saveAs(blob, 'vue-project.zip')
+}
diff --git a/docs/playground/src/download/template/README.md b/docs/playground/src/download/template/README.md
new file mode 100644
index 00000000..39c47d25
--- /dev/null
+++ b/docs/playground/src/download/template/README.md
@@ -0,0 +1,14 @@
+# Vite Vue Starter
+
+This is a project template using [Vite](https://vitejs.dev/). It requires [Node.js](https://nodejs.org) v12+.
+
+To start:
+
+```sh
+npm install
+npm run dev
+
+# if using yarn:
+yarn
+yarn dev
+```
diff --git a/docs/playground/src/download/template/index.html b/docs/playground/src/download/template/index.html
new file mode 100644
index 00000000..ce6276f6
--- /dev/null
+++ b/docs/playground/src/download/template/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ Vite App
+
+
+
+
+
+
diff --git a/docs/playground/src/download/template/main.js b/docs/playground/src/download/template/main.js
new file mode 100644
index 00000000..01433bca
--- /dev/null
+++ b/docs/playground/src/download/template/main.js
@@ -0,0 +1,4 @@
+import { createApp } from 'vue'
+import App from './App.vue'
+
+createApp(App).mount('#app')
diff --git a/docs/playground/src/download/template/package.json b/docs/playground/src/download/template/package.json
new file mode 100644
index 00000000..28c6334c
--- /dev/null
+++ b/docs/playground/src/download/template/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "vite-vue-starter",
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "serve": "vite preview"
+ },
+ "dependencies": {
+ "vue": "^3.4.0"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^5.0.3",
+ "vite": "^5.0.12"
+ }
+}
diff --git a/docs/playground/src/download/template/vite.config.js b/docs/playground/src/download/template/vite.config.js
new file mode 100644
index 00000000..315212d6
--- /dev/null
+++ b/docs/playground/src/download/template/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [vue()]
+})
diff --git a/docs/playground/src/icons/Download.vue b/docs/playground/src/icons/Download.vue
new file mode 100644
index 00000000..338658f4
--- /dev/null
+++ b/docs/playground/src/icons/Download.vue
@@ -0,0 +1,34 @@
+
+
+
diff --git a/docs/playground/src/icons/GitHub.vue b/docs/playground/src/icons/GitHub.vue
new file mode 100644
index 00000000..87405325
--- /dev/null
+++ b/docs/playground/src/icons/GitHub.vue
@@ -0,0 +1,12 @@
+
+
+
diff --git a/docs/playground/src/icons/Moon.vue b/docs/playground/src/icons/Moon.vue
new file mode 100644
index 00000000..21f393d4
--- /dev/null
+++ b/docs/playground/src/icons/Moon.vue
@@ -0,0 +1,8 @@
+
+
+
diff --git a/docs/playground/src/icons/Reload.vue b/docs/playground/src/icons/Reload.vue
new file mode 100644
index 00000000..5ec5be80
--- /dev/null
+++ b/docs/playground/src/icons/Reload.vue
@@ -0,0 +1,14 @@
+
+
+
diff --git a/docs/playground/src/icons/Share.vue b/docs/playground/src/icons/Share.vue
new file mode 100644
index 00000000..8dd9ccd8
--- /dev/null
+++ b/docs/playground/src/icons/Share.vue
@@ -0,0 +1,17 @@
+
+
+
diff --git a/docs/playground/src/icons/Sun.vue b/docs/playground/src/icons/Sun.vue
new file mode 100644
index 00000000..4b739224
--- /dev/null
+++ b/docs/playground/src/icons/Sun.vue
@@ -0,0 +1,40 @@
+
+
+
diff --git a/docs/playground/src/main.ts b/docs/playground/src/main.ts
new file mode 100644
index 00000000..2e7bc652
--- /dev/null
+++ b/docs/playground/src/main.ts
@@ -0,0 +1,9 @@
+import { createApp } from 'vue'
+import App from './App.vue'
+
+// @ts-expect-error Custom window property
+window.VUE_DEVTOOLS_CONFIG = {
+ defaultSelectedAppId: 'repl'
+}
+
+createApp(App).mount('#app')
diff --git a/docs/playground/src/store/index.ts b/docs/playground/src/store/index.ts
new file mode 100644
index 00000000..29bf3893
--- /dev/null
+++ b/docs/playground/src/store/index.ts
@@ -0,0 +1,146 @@
+import {
+ useStore as useReplStore,
+ File,
+ compileFile,
+ useVueImportMap,
+ OutputModes,
+ SFCOptions,
+ mergeImportMap
+} from '@vue/repl'
+import { computed, ref, watch, watchEffect } from 'vue'
+import mainCode from '../template/main.vue?raw'
+import setupCode from '../template/setup?raw'
+import welcomeCode from '../template/welcome.vue?raw'
+import tsconfigCode from '../template/tsconfig.json?raw'
+
+// retrieve some configuration options from the URL
+const query = new URLSearchParams(location.search)
+const MAIN_FILE = 'src/PlaygroundMain.vue'
+const APP_FILE = 'src/App.vue'
+const SETUP_FILE = 'src/setup.ts'
+const IMPORT_MAP_FILE = 'import-map.json'
+const TSCONFIG = 'tsconfig.json'
+
+export const useStore = () => {
+ const typescriptVersion = ref('5.2.2')
+ const antdVersion = ref('4.1.2')
+ const adminPkgVersion = ref('latest')
+ const files = ref>({
+ [APP_FILE]: new File(APP_FILE, welcomeCode)
+ })
+ const template = ref({
+ welcomeSFC: welcomeCode
+ })
+
+ const {
+ importMap: builtinImportMap,
+ vueVersion,
+ productionMode,
+ defaultVersion
+ } = useVueImportMap({
+ vueVersion: '3.4.19',
+ // specify the default URL to import Vue runtime from in the sandbox
+ // default is the CDN link from jsdelivr.com with version matching Vue's version
+ // from peerDependency
+ runtimeDev:
+ 'https://unpkg.com/vue@latest/dist/vue.runtime.esm-browser.js',
+ runtimeProd:
+ 'https://unpkg.com/vue@latest/dist/vue.runtime.esm-browser.prod.js',
+ serverRenderer:
+ 'https://unpkg.com/vue@latest/dist/server-renderer.esm-browser.js'
+ })
+
+ const sfcOptions = ref({
+ script: {
+ inlineTemplate: productionMode.value,
+ isProd: productionMode.value,
+ propsDestructure: true
+ },
+ style: {
+ isProd: productionMode.value
+ },
+ template: {
+ isProd: productionMode.value,
+ compilerOptions: {
+ isCustomElement: (tag: string) => tag === 'mjx-container'
+ }
+ }
+ })
+
+ const store = useReplStore(
+ {
+ // pre-set import map
+ builtinImportMap,
+ vueVersion,
+ typescriptVersion,
+ template,
+ files,
+ sfcOptions,
+ // starts on the output pane (mobile only) if the URL has a showOutput query
+ showOutput: ref(query.has('showOutput')),
+ // starts on a different tab on the output pane if the URL has a outputMode query
+ // and default to the "preview" tab
+ outputMode: ref(
+ (query.get('outputMode') as OutputModes) || 'preview'
+ ),
+ dependencyVersion: computed(() => ({
+ '@admin-pkg/components': adminPkgVersion.value,
+ 'ant-design-vue': antdVersion.value
+ }))
+ },
+ // initialize repl with previously serialized state
+ location.hash
+ )
+
+ const mainFile = new File(MAIN_FILE, mainCode, true)
+ store.addFile(mainFile)
+ compileFile(store, mainFile)
+ store.mainFile = MAIN_FILE
+ store.addFile(new File(TSCONFIG, tsconfigCode, true))
+
+ const genSetupCode = () => {
+ return setupCode
+ .replace('__ANTDV_VERSION__', antdVersion.value)
+ .replace('__ADMIN_PKG_VERSION__', adminPkgVersion.value)
+ }
+
+ watchEffect(() => history.replaceState({}, '', store.serialize()))
+
+ watch(
+ [antdVersion, adminPkgVersion],
+ async ([antdVer, adminPkgVer]) => {
+ const importMapCode = mergeImportMap(
+ { ...builtinImportMap.value },
+ {
+ imports: {
+ 'ant-design-vue': `https://cdn.jsdelivr.net/npm/ant-design-vue@${antdVer}/dist/antd.esm.js`,
+ '@admin-pkg/components': `https://cdn.jsdelivr.net/npm/@admin-pkg/components@${adminPkgVer}/dist/index.es.js`
+ }
+ }
+ )
+ const importMapFile = new File(
+ IMPORT_MAP_FILE,
+ JSON.stringify(importMapCode, null, 2),
+ true
+ )
+ store.addFile(importMapFile)
+
+ const setupFile = new File(SETUP_FILE, genSetupCode(), true)
+ store.addFile(setupFile)
+ await compileFile(store, setupFile)
+ },
+ { immediate: true }
+ )
+
+ return {
+ vueVersion,
+ typescriptVersion,
+ antdVersion,
+ adminPkgVersion,
+ productionMode,
+ defaultVersion,
+ template,
+ store,
+ sfcOptions
+ }
+}
diff --git a/docs/playground/src/template/global.d.ts b/docs/playground/src/template/global.d.ts
new file mode 100644
index 00000000..86a458f1
--- /dev/null
+++ b/docs/playground/src/template/global.d.ts
@@ -0,0 +1,3 @@
+declare module '@admin-pkg/components' {
+ export function useTable(): any
+}
diff --git a/docs/playground/src/template/main.vue b/docs/playground/src/template/main.vue
new file mode 100644
index 00000000..0097549b
--- /dev/null
+++ b/docs/playground/src/template/main.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/docs/playground/src/template/setup.ts b/docs/playground/src/template/setup.ts
new file mode 100644
index 00000000..db93bfe4
--- /dev/null
+++ b/docs/playground/src/template/setup.ts
@@ -0,0 +1,28 @@
+import { getCurrentInstance } from 'vue'
+import * as Antdv from 'ant-design-vue'
+
+let installed = false
+
+const styleMap = {
+ 'ant-design-vue': '__ANTDV_VERSION__/dist/reset.css',
+ '@admin-pkg/components': '__ADMIN_PKG_VERSION__/dist/style.css'
+}
+await Promise.all(
+ Object.entries(styleMap).map(async ([pkg, version]) => {
+ await loadStyle(pkg, version)
+ })
+)
+
+export function setupAntdv() {
+ if (installed) return
+ const instance = getCurrentInstance()
+ instance?.appContext.app.use(Antdv)
+ installed = true
+}
+
+function loadStyle(pkg: string, version: string) {
+ const link = document.createElement('link')
+ link.rel = 'stylesheet'
+ link.href = `https://cdn.jsdelivr.net/npm/${pkg}@${version}`
+ document.head.append(link)
+}
diff --git a/docs/playground/src/template/tsconfig.json b/docs/playground/src/template/tsconfig.json
new file mode 100644
index 00000000..cf233930
--- /dev/null
+++ b/docs/playground/src/template/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": true,
+ "jsx": "Preserve",
+ "target": "ESNext",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "allowImportingTsExtensions": true
+ },
+ "vueCompilerOptions": {
+ "target": 3.4
+ }
+}
diff --git a/docs/playground/src/template/welcome.vue b/docs/playground/src/template/welcome.vue
new file mode 100644
index 00000000..eb022a09
--- /dev/null
+++ b/docs/playground/src/template/welcome.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
diff --git a/docs/playground/vercel.json b/docs/playground/vercel.json
new file mode 100644
index 00000000..4511eb79
--- /dev/null
+++ b/docs/playground/vercel.json
@@ -0,0 +1,16 @@
+{
+ "github": {
+ "silent": true
+ },
+ "headers": [
+ {
+ "source": "/assets/(.*)",
+ "headers": [
+ {
+ "key": "Cache-Control",
+ "value": "max-age=31536000, immutable"
+ }
+ ]
+ }
+ ]
+}
diff --git a/docs/playground/vite.config.ts b/docs/playground/vite.config.ts
new file mode 100644
index 00000000..d2a1f9b4
--- /dev/null
+++ b/docs/playground/vite.config.ts
@@ -0,0 +1,35 @@
+import fs from 'node:fs'
+import { viteStaticCopy } from 'vite-plugin-static-copy'
+import { defineConfig } from 'vite'
+import vue from '@vitejs/plugin-vue'
+import { resolve } from 'node:path'
+
+const isProd = process.env.NODE_ENV === 'production'
+
+export default defineConfig({
+ base: isProd ? 'vue3-antdv-admin-docs/playground' : '',
+ plugins: [
+ vue({
+ script: {
+ fs: {
+ fileExists: fs.existsSync,
+ readFile: (file) => fs.readFileSync(file, 'utf-8')
+ }
+ }
+ }),
+ viteStaticCopy({
+ targets: [
+ {
+ src: resolve(__dirname, './dist/*'),
+ dest: resolve(__dirname, '../.vitepress/dist/playground')
+ }
+ ]
+ })
+ ],
+ define: {
+ __VUE_PROD_DEVTOOLS__: JSON.stringify(true)
+ },
+ optimizeDeps: {
+ exclude: ['@vue/repl']
+ }
+})
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
new file mode 100644
index 00000000..ab1fc03b
--- /dev/null
+++ b/docs/pnpm-lock.yaml
@@ -0,0 +1,1717 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ devDependencies:
+ '@types/node':
+ specifier: 20.11.16
+ version: 20.11.16
+ typescript:
+ specifier: 5.3.3
+ version: 5.3.3
+ unplugin-icons:
+ specifier: ^0.18.5
+ version: 0.18.5
+ vitepress:
+ specifier: 1.0.0-rc.44
+ version: 1.0.0-rc.44(@algolia/client-search@4.20.0)(@types/node@20.11.16)(search-insights@2.9.0)(typescript@5.3.3)
+
+ playground:
+ dependencies:
+ '@vue/repl':
+ specifier: ^4.1.1
+ version: 4.1.1
+ file-saver:
+ specifier: ^2.0.5
+ version: 2.0.5
+ jszip:
+ specifier: ^3.10.1
+ version: 3.10.1
+ vue:
+ specifier: ~3.4.19
+ version: 3.4.19(typescript@5.3.3)
+ devDependencies:
+ '@vitejs/plugin-vue':
+ specifier: ^5.0.4
+ version: 5.0.4(vite@5.1.3)(vue@3.4.19)
+ vite:
+ specifier: ^5.0.12
+ version: 5.1.3(@types/node@20.11.16)
+ vite-plugin-static-copy:
+ specifier: ^1.0.1
+ version: 1.0.1(vite@5.1.3)
+
+packages:
+
+ /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.9.0):
+ resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
+ dependencies:
+ '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.9.0)
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)
+ transitivePeerDependencies:
+ - '@algolia/client-search'
+ - algoliasearch
+ - search-insights
+ dev: true
+
+ /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.9.0):
+ resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
+ peerDependencies:
+ search-insights: '>= 1 < 3'
+ dependencies:
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)
+ search-insights: 2.9.0
+ transitivePeerDependencies:
+ - '@algolia/client-search'
+ - algoliasearch
+ dev: true
+
+ /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0):
+ resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
+ peerDependencies:
+ '@algolia/client-search': '>= 4.9.1 < 6'
+ algoliasearch: '>= 4.9.1 < 6'
+ dependencies:
+ '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)
+ '@algolia/client-search': 4.20.0
+ algoliasearch: 4.20.0
+ dev: true
+
+ /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0):
+ resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
+ peerDependencies:
+ '@algolia/client-search': '>= 4.9.1 < 6'
+ algoliasearch: '>= 4.9.1 < 6'
+ dependencies:
+ '@algolia/client-search': 4.20.0
+ algoliasearch: 4.20.0
+ dev: true
+
+ /@algolia/cache-browser-local-storage@4.20.0:
+ resolution: {integrity: sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==}
+ dependencies:
+ '@algolia/cache-common': 4.20.0
+ dev: true
+
+ /@algolia/cache-common@4.20.0:
+ resolution: {integrity: sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==}
+ dev: true
+
+ /@algolia/cache-in-memory@4.20.0:
+ resolution: {integrity: sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==}
+ dependencies:
+ '@algolia/cache-common': 4.20.0
+ dev: true
+
+ /@algolia/client-account@4.20.0:
+ resolution: {integrity: sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==}
+ dependencies:
+ '@algolia/client-common': 4.20.0
+ '@algolia/client-search': 4.20.0
+ '@algolia/transporter': 4.20.0
+ dev: true
+
+ /@algolia/client-analytics@4.20.0:
+ resolution: {integrity: sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==}
+ dependencies:
+ '@algolia/client-common': 4.20.0
+ '@algolia/client-search': 4.20.0
+ '@algolia/requester-common': 4.20.0
+ '@algolia/transporter': 4.20.0
+ dev: true
+
+ /@algolia/client-common@4.20.0:
+ resolution: {integrity: sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==}
+ dependencies:
+ '@algolia/requester-common': 4.20.0
+ '@algolia/transporter': 4.20.0
+ dev: true
+
+ /@algolia/client-personalization@4.20.0:
+ resolution: {integrity: sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==}
+ dependencies:
+ '@algolia/client-common': 4.20.0
+ '@algolia/requester-common': 4.20.0
+ '@algolia/transporter': 4.20.0
+ dev: true
+
+ /@algolia/client-search@4.20.0:
+ resolution: {integrity: sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==}
+ dependencies:
+ '@algolia/client-common': 4.20.0
+ '@algolia/requester-common': 4.20.0
+ '@algolia/transporter': 4.20.0
+ dev: true
+
+ /@algolia/logger-common@4.20.0:
+ resolution: {integrity: sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==}
+ dev: true
+
+ /@algolia/logger-console@4.20.0:
+ resolution: {integrity: sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==}
+ dependencies:
+ '@algolia/logger-common': 4.20.0
+ dev: true
+
+ /@algolia/requester-browser-xhr@4.20.0:
+ resolution: {integrity: sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==}
+ dependencies:
+ '@algolia/requester-common': 4.20.0
+ dev: true
+
+ /@algolia/requester-common@4.20.0:
+ resolution: {integrity: sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==}
+ dev: true
+
+ /@algolia/requester-node-http@4.20.0:
+ resolution: {integrity: sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==}
+ dependencies:
+ '@algolia/requester-common': 4.20.0
+ dev: true
+
+ /@algolia/transporter@4.20.0:
+ resolution: {integrity: sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==}
+ dependencies:
+ '@algolia/cache-common': 4.20.0
+ '@algolia/logger-common': 4.20.0
+ '@algolia/requester-common': 4.20.0
+ dev: true
+
+ /@antfu/install-pkg@0.1.1:
+ resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==}
+ dependencies:
+ execa: 5.1.1
+ find-up: 5.0.0
+ dev: true
+
+ /@antfu/install-pkg@0.3.1:
+ resolution: {integrity: sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==}
+ dependencies:
+ execa: 8.0.1
+ dev: true
+
+ /@antfu/utils@0.7.7:
+ resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==}
+ dev: true
+
+ /@babel/helper-string-parser@7.22.5:
+ resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-identifier@7.22.20:
+ resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.23.0
+
+ /@babel/types@7.23.0:
+ resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.22.5
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
+
+ /@docsearch/css@3.5.2:
+ resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==}
+ dev: true
+
+ /@docsearch/js@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.9.0):
+ resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==}
+ dependencies:
+ '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.9.0)
+ preact: 10.18.1
+ transitivePeerDependencies:
+ - '@algolia/client-search'
+ - '@types/react'
+ - react
+ - react-dom
+ - search-insights
+ dev: true
+
+ /@docsearch/react@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.9.0):
+ resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==}
+ peerDependencies:
+ '@types/react': '>= 16.8.0 < 19.0.0'
+ react: '>= 16.8.0 < 19.0.0'
+ react-dom: '>= 16.8.0 < 19.0.0'
+ search-insights: '>= 1 < 3'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+ search-insights:
+ optional: true
+ dependencies:
+ '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.9.0)
+ '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)
+ '@docsearch/css': 3.5.2
+ algoliasearch: 4.20.0
+ search-insights: 2.9.0
+ transitivePeerDependencies:
+ - '@algolia/client-search'
+ dev: true
+
+ /@esbuild/aix-ppc64@0.19.12:
+ resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.19.12:
+ resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.19.12:
+ resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.19.12:
+ resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.19.12:
+ resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.19.12:
+ resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.19.12:
+ resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.19.12:
+ resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.19.12:
+ resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.19.12:
+ resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.19.12:
+ resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.19.12:
+ resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.19.12:
+ resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.19.12:
+ resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.19.12:
+ resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.19.12:
+ resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.19.12:
+ resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.19.12:
+ resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.19.12:
+ resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.19.12:
+ resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.19.12:
+ resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.19.12:
+ resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.19.12:
+ resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@iconify/types@2.0.0:
+ resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
+ dev: true
+
+ /@iconify/utils@2.1.22:
+ resolution: {integrity: sha512-6UHVzTVXmvO8uS6xFF+L/QTSpTzA/JZxtgU+KYGFyDYMEObZ1bu/b5l+zNJjHy+0leWjHI+C0pXlzGvv3oXZMA==}
+ dependencies:
+ '@antfu/install-pkg': 0.1.1
+ '@antfu/utils': 0.7.7
+ '@iconify/types': 2.0.0
+ debug: 4.3.4
+ kolorist: 1.8.0
+ local-pkg: 0.5.0
+ mlly: 1.5.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@jridgewell/sourcemap-codec@1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+
+ /@nodelib/fs.scandir@2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+ dev: true
+
+ /@nodelib/fs.stat@2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk@1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.17.1
+ dev: true
+
+ /@rollup/rollup-android-arm-eabi@4.9.6:
+ resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-android-arm64@4.9.6:
+ resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-darwin-arm64@4.9.6:
+ resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-darwin-x64@4.9.6:
+ resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm-gnueabihf@4.9.6:
+ resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-gnu@4.9.6:
+ resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-musl@4.9.6:
+ resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-riscv64-gnu@4.9.6:
+ resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-gnu@4.9.6:
+ resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-musl@4.9.6:
+ resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-arm64-msvc@4.9.6:
+ resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-ia32-msvc@4.9.6:
+ resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-x64-msvc@4.9.6:
+ resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@shikijs/core@1.1.5:
+ resolution: {integrity: sha512-cKc5vGQ4p/4sjx48BHIO7CvLaN32vqpz5Wh7v2n+U1EezGdfX4Wms7khBctKz3iCg9yYq4sfGUc2t+JWj6EUsw==}
+ dev: true
+
+ /@shikijs/transformers@1.1.5:
+ resolution: {integrity: sha512-ot6KWPmLuSN9nA9FAhttOXZIjKIy7cnwpNtI9aWmYN72RUaDz8eojRfMGUXsXXUxW/buvcvdZQAQldk7/pFpdw==}
+ dependencies:
+ shiki: 1.1.5
+ dev: true
+
+ /@types/estree@1.0.5:
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+ dev: true
+
+ /@types/linkify-it@3.0.4:
+ resolution: {integrity: sha512-hPpIeeHb/2UuCw06kSNAOVWgehBLXEo0/fUs0mw3W2qhqX89PI2yvok83MnuctYGCPrabGIoi0fFso4DQ+sNUQ==}
+ dev: true
+
+ /@types/markdown-it@13.0.7:
+ resolution: {integrity: sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==}
+ dependencies:
+ '@types/linkify-it': 3.0.4
+ '@types/mdurl': 1.0.4
+ dev: true
+
+ /@types/mdurl@1.0.4:
+ resolution: {integrity: sha512-ARVxjAEX5TARFRzpDRVC6cEk0hUIXCCwaMhz8y7S1/PxU6zZS1UMjyobz7q4w/D/R552r4++EhwmXK1N2rAy0A==}
+ dev: true
+
+ /@types/node@20.11.16:
+ resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==}
+ dependencies:
+ undici-types: 5.26.5
+ dev: true
+
+ /@types/web-bluetooth@0.0.20:
+ resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
+ dev: true
+
+ /@vitejs/plugin-vue@5.0.4(vite@5.1.3)(vue@3.4.19):
+ resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ vite: ^5.0.0
+ vue: ^3.2.25
+ dependencies:
+ vite: 5.1.3(@types/node@20.11.16)
+ vue: 3.4.19(typescript@5.3.3)
+ dev: true
+
+ /@vue/compiler-core@3.4.19:
+ resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==}
+ dependencies:
+ '@babel/parser': 7.23.9
+ '@vue/shared': 3.4.19
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.0.2
+
+ /@vue/compiler-dom@3.4.19:
+ resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==}
+ dependencies:
+ '@vue/compiler-core': 3.4.19
+ '@vue/shared': 3.4.19
+
+ /@vue/compiler-sfc@3.4.19:
+ resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==}
+ dependencies:
+ '@babel/parser': 7.23.9
+ '@vue/compiler-core': 3.4.19
+ '@vue/compiler-dom': 3.4.19
+ '@vue/compiler-ssr': 3.4.19
+ '@vue/shared': 3.4.19
+ estree-walker: 2.0.2
+ magic-string: 0.30.7
+ postcss: 8.4.35
+ source-map-js: 1.0.2
+
+ /@vue/compiler-ssr@3.4.19:
+ resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==}
+ dependencies:
+ '@vue/compiler-dom': 3.4.19
+ '@vue/shared': 3.4.19
+
+ /@vue/devtools-api@7.0.14:
+ resolution: {integrity: sha512-TluWR9qZ6aO11bwtYK8+fzXxBqLfsE0mWZz1q/EQBmO9k82Cm6deieLwNNXjNFJz7xutazoia5Qa+zTYkPPOfw==}
+ dependencies:
+ '@vue/devtools-kit': 7.0.14
+ dev: true
+
+ /@vue/devtools-kit@7.0.14:
+ resolution: {integrity: sha512-wAAJazr4hI0aVRpgWOCVPw+NzMQdthhnprHHIg4njp1MkKrpCNGQ7MtQbZF1AltAA7xpMCGyyt+0kYH0FqTiPg==}
+ dependencies:
+ '@vue/devtools-schema': 7.0.14
+ '@vue/devtools-shared': 7.0.14
+ hookable: 5.5.3
+ mitt: 3.0.1
+ perfect-debounce: 1.0.0
+ speakingurl: 14.0.1
+ dev: true
+
+ /@vue/devtools-schema@7.0.14:
+ resolution: {integrity: sha512-tpUeCLVrdHX+KzWMLTAwx/vAPFbo6jAUi7sr6Q+0mBIqIVSSIxNr5wEhegiFvYva+OtDeM2OrT+f7/X/5bvZNg==}
+ dev: true
+
+ /@vue/devtools-shared@7.0.14:
+ resolution: {integrity: sha512-79RP1NDakBVWou9rDpVnT1WMjTbL1lJKm6YEOodjQ0dq5ehf0wsRbeYDhgAlnjehWRzTq5GAYFBFUPYBs0/QpA==}
+ dependencies:
+ rfdc: 1.3.1
+ dev: true
+
+ /@vue/reactivity@3.4.19:
+ resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==}
+ dependencies:
+ '@vue/shared': 3.4.19
+
+ /@vue/repl@4.1.1:
+ resolution: {integrity: sha512-gkbnU+rM01/ILdnDJbsWS8+PW6qMAzprBo/U2+7eVci0kx6VAR26fL/qrcEPwEYa6q0vzzptZ4il0SaUGGqZKw==}
+ dev: false
+
+ /@vue/runtime-core@3.4.19:
+ resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==}
+ dependencies:
+ '@vue/reactivity': 3.4.19
+ '@vue/shared': 3.4.19
+
+ /@vue/runtime-dom@3.4.19:
+ resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==}
+ dependencies:
+ '@vue/runtime-core': 3.4.19
+ '@vue/shared': 3.4.19
+ csstype: 3.1.3
+
+ /@vue/server-renderer@3.4.19(vue@3.4.19):
+ resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==}
+ peerDependencies:
+ vue: 3.4.19
+ dependencies:
+ '@vue/compiler-ssr': 3.4.19
+ '@vue/shared': 3.4.19
+ vue: 3.4.19(typescript@5.3.3)
+
+ /@vue/shared@3.4.19:
+ resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==}
+
+ /@vueuse/core@10.7.2(vue@3.4.19):
+ resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==}
+ dependencies:
+ '@types/web-bluetooth': 0.0.20
+ '@vueuse/metadata': 10.7.2
+ '@vueuse/shared': 10.7.2(vue@3.4.19)
+ vue-demi: 0.14.6(vue@3.4.19)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: true
+
+ /@vueuse/integrations@10.7.2(focus-trap@7.5.4)(vue@3.4.19):
+ resolution: {integrity: sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==}
+ peerDependencies:
+ async-validator: '*'
+ axios: '*'
+ change-case: '*'
+ drauu: '*'
+ focus-trap: '*'
+ fuse.js: '*'
+ idb-keyval: '*'
+ jwt-decode: '*'
+ nprogress: '*'
+ qrcode: '*'
+ sortablejs: '*'
+ universal-cookie: '*'
+ peerDependenciesMeta:
+ async-validator:
+ optional: true
+ axios:
+ optional: true
+ change-case:
+ optional: true
+ drauu:
+ optional: true
+ focus-trap:
+ optional: true
+ fuse.js:
+ optional: true
+ idb-keyval:
+ optional: true
+ jwt-decode:
+ optional: true
+ nprogress:
+ optional: true
+ qrcode:
+ optional: true
+ sortablejs:
+ optional: true
+ universal-cookie:
+ optional: true
+ dependencies:
+ '@vueuse/core': 10.7.2(vue@3.4.19)
+ '@vueuse/shared': 10.7.2(vue@3.4.19)
+ focus-trap: 7.5.4
+ vue-demi: 0.14.6(vue@3.4.19)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: true
+
+ /@vueuse/metadata@10.7.2:
+ resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==}
+ dev: true
+
+ /@vueuse/shared@10.7.2(vue@3.4.19):
+ resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==}
+ dependencies:
+ vue-demi: 0.14.6(vue@3.4.19)
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: true
+
+ /acorn@8.11.3:
+ resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /algoliasearch@4.20.0:
+ resolution: {integrity: sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==}
+ dependencies:
+ '@algolia/cache-browser-local-storage': 4.20.0
+ '@algolia/cache-common': 4.20.0
+ '@algolia/cache-in-memory': 4.20.0
+ '@algolia/client-account': 4.20.0
+ '@algolia/client-analytics': 4.20.0
+ '@algolia/client-common': 4.20.0
+ '@algolia/client-personalization': 4.20.0
+ '@algolia/client-search': 4.20.0
+ '@algolia/logger-common': 4.20.0
+ '@algolia/logger-console': 4.20.0
+ '@algolia/requester-browser-xhr': 4.20.0
+ '@algolia/requester-common': 4.20.0
+ '@algolia/requester-node-http': 4.20.0
+ '@algolia/transporter': 4.20.0
+ dev: true
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ 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
+ dev: true
+
+ /core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+ dev: false
+
+ /cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: true
+
+ /csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ /esbuild@0.19.12:
+ resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.19.12
+ '@esbuild/android-arm': 0.19.12
+ '@esbuild/android-arm64': 0.19.12
+ '@esbuild/android-x64': 0.19.12
+ '@esbuild/darwin-arm64': 0.19.12
+ '@esbuild/darwin-x64': 0.19.12
+ '@esbuild/freebsd-arm64': 0.19.12
+ '@esbuild/freebsd-x64': 0.19.12
+ '@esbuild/linux-arm': 0.19.12
+ '@esbuild/linux-arm64': 0.19.12
+ '@esbuild/linux-ia32': 0.19.12
+ '@esbuild/linux-loong64': 0.19.12
+ '@esbuild/linux-mips64el': 0.19.12
+ '@esbuild/linux-ppc64': 0.19.12
+ '@esbuild/linux-riscv64': 0.19.12
+ '@esbuild/linux-s390x': 0.19.12
+ '@esbuild/linux-x64': 0.19.12
+ '@esbuild/netbsd-x64': 0.19.12
+ '@esbuild/openbsd-x64': 0.19.12
+ '@esbuild/sunos-x64': 0.19.12
+ '@esbuild/win32-arm64': 0.19.12
+ '@esbuild/win32-ia32': 0.19.12
+ '@esbuild/win32-x64': 0.19.12
+ dev: true
+
+ /estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ /execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+ dev: true
+
+ /execa@8.0.1:
+ resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+ engines: {node: '>=16.17'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 8.0.1
+ human-signals: 5.0.0
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.2.0
+ onetime: 6.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 3.0.0
+ dev: true
+
+ /fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
+
+ /fastq@1.17.1:
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /file-saver@2.0.5:
+ resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
+ dev: false
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+ dev: true
+
+ /focus-trap@7.5.4:
+ resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==}
+ dependencies:
+ tabbable: 6.2.0
+ dev: true
+
+ /fs-extra@11.2.0:
+ resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==}
+ engines: {node: '>=14.14'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ dev: true
+
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /get-stream@8.0.1:
+ resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+ engines: {node: '>=16'}
+ dev: true
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: true
+
+ /hookable@5.5.3:
+ resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
+ dev: true
+
+ /human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+ dev: true
+
+ /human-signals@5.0.0:
+ resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+ engines: {node: '>=16.17.0'}
+ dev: true
+
+ /immediate@3.0.6:
+ resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
+ dev: false
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: false
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-stream@3.0.0:
+ resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+ dev: false
+
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: true
+
+ /jsonc-parser@3.2.1:
+ resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
+ dev: true
+
+ /jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: true
+
+ /jszip@3.10.1:
+ resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
+ dependencies:
+ lie: 3.3.0
+ pako: 1.0.11
+ readable-stream: 2.3.8
+ setimmediate: 1.0.5
+ dev: false
+
+ /kolorist@1.8.0:
+ resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ dev: true
+
+ /lie@3.3.0:
+ resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
+ dependencies:
+ immediate: 3.0.6
+ dev: false
+
+ /local-pkg@0.5.0:
+ resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
+ engines: {node: '>=14'}
+ dependencies:
+ mlly: 1.5.0
+ pkg-types: 1.0.3
+ dev: true
+
+ /locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-locate: 5.0.0
+ dev: true
+
+ /magic-string@0.30.7:
+ resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ /mark.js@8.11.1:
+ resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==}
+ dev: true
+
+ /merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ dev: true
+
+ /merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /minisearch@6.3.0:
+ resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==}
+ dev: true
+
+ /mitt@3.0.1:
+ resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
+ dev: true
+
+ /mlly@1.5.0:
+ resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==}
+ dependencies:
+ acorn: 8.11.3
+ pathe: 1.1.2
+ pkg-types: 1.0.3
+ ufo: 1.3.2
+ dev: true
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /nanoid@3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+ 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'}
+ dev: true
+
+ /npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-key: 3.1.1
+ dev: true
+
+ /npm-run-path@5.2.0:
+ resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ path-key: 4.0.0
+ dev: true
+
+ /onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+ dependencies:
+ mimic-fn: 2.1.0
+ dev: true
+
+ /onetime@6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ mimic-fn: 4.0.0
+ dev: true
+
+ /p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ yocto-queue: 0.1.0
+ dev: true
+
+ /p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-limit: 3.1.0
+ dev: true
+
+ /pako@1.0.11:
+ resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
+ dev: false
+
+ /path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /pathe@1.1.2:
+ resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+ dev: true
+
+ /perfect-debounce@1.0.0:
+ resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+ dev: true
+
+ /picocolors@1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+
+ /pkg-types@1.0.3:
+ resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
+ dependencies:
+ jsonc-parser: 3.2.1
+ mlly: 1.5.0
+ pathe: 1.1.2
+ dev: true
+
+ /postcss@8.4.35:
+ resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+
+ /preact@10.18.1:
+ resolution: {integrity: sha512-mKUD7RRkQQM6s7Rkmi7IFkoEHjuFqRQUaXamO61E6Nn7vqF/bo7EZCmSyrUnp2UWHw0O7XjZ2eeXis+m7tf4lg==}
+ dev: true
+
+ /process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ dev: false
+
+ /queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+ dev: false
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /rfdc@1.3.1:
+ resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==}
+ dev: true
+
+ /rollup@4.9.6:
+ resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+ dependencies:
+ '@types/estree': 1.0.5
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.9.6
+ '@rollup/rollup-android-arm64': 4.9.6
+ '@rollup/rollup-darwin-arm64': 4.9.6
+ '@rollup/rollup-darwin-x64': 4.9.6
+ '@rollup/rollup-linux-arm-gnueabihf': 4.9.6
+ '@rollup/rollup-linux-arm64-gnu': 4.9.6
+ '@rollup/rollup-linux-arm64-musl': 4.9.6
+ '@rollup/rollup-linux-riscv64-gnu': 4.9.6
+ '@rollup/rollup-linux-x64-gnu': 4.9.6
+ '@rollup/rollup-linux-x64-musl': 4.9.6
+ '@rollup/rollup-win32-arm64-msvc': 4.9.6
+ '@rollup/rollup-win32-ia32-msvc': 4.9.6
+ '@rollup/rollup-win32-x64-msvc': 4.9.6
+ fsevents: 2.3.3
+ dev: true
+
+ /run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ dev: false
+
+ /search-insights@2.9.0:
+ resolution: {integrity: sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==}
+ dev: true
+
+ /setimmediate@1.0.5:
+ resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
+ dev: false
+
+ /shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+ dev: true
+
+ /shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /shiki@1.1.5:
+ resolution: {integrity: sha512-754GuKIwkUdT810Xm8btuyNQPL+q3PqOkwGW/VlmAWyMYp+HbvvDt69sWXO1sm5aeczBJQjmQTTMR4GkKQNQPw==}
+ dependencies:
+ '@shikijs/core': 1.1.5
+ dev: true
+
+ /signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+ dev: true
+
+ /signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /source-map-js@1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+
+ /speakingurl@14.0.1:
+ resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: false
+
+ /strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /strip-final-newline@3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /tabbable@6.2.0:
+ resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
+ dev: true
+
+ /to-fast-properties@2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /typescript@5.3.3:
+ resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ /ufo@1.3.2:
+ resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==}
+ dev: true
+
+ /undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ dev: true
+
+ /universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+ dev: true
+
+ /unplugin-icons@0.18.5:
+ resolution: {integrity: sha512-KVNAohXbZ7tVcG1C3p6QaC7wU9Qrj7etv4XvsMMJAxr5LccQZ+Iuv5LOIv/7GtqXaGN1BuFCqRO1ErsHEgEXdQ==}
+ peerDependencies:
+ '@svgr/core': '>=7.0.0'
+ '@svgx/core': ^1.0.1
+ '@vue/compiler-sfc': ^3.0.2 || ^2.7.0
+ vue-template-compiler: ^2.6.12
+ vue-template-es2015-compiler: ^1.9.0
+ peerDependenciesMeta:
+ '@svgr/core':
+ optional: true
+ '@svgx/core':
+ optional: true
+ '@vue/compiler-sfc':
+ optional: true
+ vue-template-compiler:
+ optional: true
+ vue-template-es2015-compiler:
+ optional: true
+ dependencies:
+ '@antfu/install-pkg': 0.3.1
+ '@antfu/utils': 0.7.7
+ '@iconify/utils': 2.1.22
+ debug: 4.3.4
+ kolorist: 1.8.0
+ local-pkg: 0.5.0
+ unplugin: 1.6.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /unplugin@1.6.0:
+ resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==}
+ dependencies:
+ acorn: 8.11.3
+ chokidar: 3.5.3
+ webpack-sources: 3.2.3
+ webpack-virtual-modules: 0.6.1
+ dev: true
+
+ /util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ dev: false
+
+ /vite-plugin-static-copy@1.0.1(vite@5.1.3):
+ resolution: {integrity: sha512-3eGL4mdZoPJMDBT68pv/XKIHR4MgVolStIxxv1gIBP4R8TpHn9C9EnaU0hesqlseJ4ycLGUxckFTu/jpuJXQlA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ peerDependencies:
+ vite: ^5.0.0
+ dependencies:
+ chokidar: 3.5.3
+ fast-glob: 3.3.2
+ fs-extra: 11.2.0
+ picocolors: 1.0.0
+ vite: 5.1.3(@types/node@20.11.16)
+ dev: true
+
+ /vite@5.1.3(@types/node@20.11.16):
+ resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ '@types/node': 20.11.16
+ esbuild: 0.19.12
+ postcss: 8.4.35
+ rollup: 4.9.6
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /vitepress@1.0.0-rc.44(@algolia/client-search@4.20.0)(@types/node@20.11.16)(search-insights@2.9.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-tO5taxGI7fSpBK1D8zrZTyJJERlyU9nnt0jHSt3fywfq3VKn977Hg0wUuTkEmwXlFYwuW26+6+3xorf4nD3XvA==}
+ hasBin: true
+ peerDependencies:
+ markdown-it-mathjax3: ^4.3.2
+ postcss: ^8.4.35
+ peerDependenciesMeta:
+ markdown-it-mathjax3:
+ optional: true
+ postcss:
+ optional: true
+ dependencies:
+ '@docsearch/css': 3.5.2
+ '@docsearch/js': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.9.0)
+ '@shikijs/core': 1.1.5
+ '@shikijs/transformers': 1.1.5
+ '@types/markdown-it': 13.0.7
+ '@vitejs/plugin-vue': 5.0.4(vite@5.1.3)(vue@3.4.19)
+ '@vue/devtools-api': 7.0.14
+ '@vueuse/core': 10.7.2(vue@3.4.19)
+ '@vueuse/integrations': 10.7.2(focus-trap@7.5.4)(vue@3.4.19)
+ focus-trap: 7.5.4
+ mark.js: 8.11.1
+ minisearch: 6.3.0
+ shiki: 1.1.5
+ vite: 5.1.3(@types/node@20.11.16)
+ vue: 3.4.19(typescript@5.3.3)
+ transitivePeerDependencies:
+ - '@algolia/client-search'
+ - '@types/node'
+ - '@types/react'
+ - '@vue/composition-api'
+ - async-validator
+ - axios
+ - change-case
+ - drauu
+ - fuse.js
+ - idb-keyval
+ - jwt-decode
+ - less
+ - lightningcss
+ - nprogress
+ - qrcode
+ - react
+ - react-dom
+ - sass
+ - search-insights
+ - sortablejs
+ - stylus
+ - sugarss
+ - terser
+ - typescript
+ - universal-cookie
+ dev: true
+
+ /vue-demi@0.14.6(vue@3.4.19):
+ resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ dependencies:
+ vue: 3.4.19(typescript@5.3.3)
+ dev: true
+
+ /vue@3.4.19(typescript@5.3.3):
+ resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@vue/compiler-dom': 3.4.19
+ '@vue/compiler-sfc': 3.4.19
+ '@vue/runtime-dom': 3.4.19
+ '@vue/server-renderer': 3.4.19(vue@3.4.19)
+ '@vue/shared': 3.4.19
+ typescript: 5.3.3
+
+ /webpack-sources@3.2.3:
+ resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ engines: {node: '>=10.13.0'}
+ dev: true
+
+ /webpack-virtual-modules@0.6.1:
+ resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==}
+ dev: true
+
+ /which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+ dev: true
diff --git a/docs/pnpm-workspace.yaml b/docs/pnpm-workspace.yaml
new file mode 100644
index 00000000..52fdbb5d
--- /dev/null
+++ b/docs/pnpm-workspace.yaml
@@ -0,0 +1,2 @@
+packages:
+ - playground
diff --git a/docs/src/components/form.md b/docs/src/components/form.md
new file mode 100644
index 00000000..a5d4479a
--- /dev/null
+++ b/docs/src/components/form.md
@@ -0,0 +1,7 @@
+# Form
+
+在线演练场
+
+## 基本使用
+
+可参考项目内的[使用示例](https://github.com/buqiyuan/vue3-antdv-admin/tree/main/src/views/demos/form)
diff --git a/docs/src/components/table.md b/docs/src/components/table.md
new file mode 100644
index 00000000..399850be
--- /dev/null
+++ b/docs/src/components/table.md
@@ -0,0 +1,136 @@
+# Table
+
+在线演练场
+基于 `ant-design-vue` [Table](https://antdv.com/components/table-cn#api) 的二次封装,减少项目中的样板代码,对常用的逻辑进行封装。
+
+## 基本使用
+
+可参考项目内的[使用示例](https://github.com/buqiyuan/vue3-antdv-admin/tree/main/src/views/demos/tables)
+
+## 基本配置
+
+配置表格的预设行为与逻辑
+文件位置:[src/components/core/dynamic-table/src/dynamic-table.config.ts](https://github.com/buqiyuan/vue3-antdv-admin/blob/main/src/components/core/dynamic-table/src/dynamic-table.config.ts)
+
+```ts
+/** 表格配置 */
+export default {
+ fetchConfig: {
+ // The field name of the current page passed to the background
+ pageField: 'page',
+ // The number field name of each page displayed in the background
+ sizeField: 'pageSize',
+ // Field name of the form data returned by the interface
+ listField: 'items',
+ // Total number of tables returned by the interface field name
+ totalField: 'meta.totalItems'
+ },
+ // Number of pages that can be selected
+ pageSizeOptions: ['10', '50', '80', '100'],
+ // Default display quantity on one page
+ defaultPageSize: 10,
+ // Default layout of table cells
+ defaultAlign: 'center' as AlignType,
+ // Custom general sort function
+ defaultSortFn: (sortInfo: SorterResult) => {
+ const { field, order } = sortInfo
+ if (field && order) {
+ return {
+ // The sort field passed to the backend you
+ field,
+ // Sorting method passed to the background asc/desc
+ order
+ }
+ } else {
+ return {}
+ }
+ },
+ // Custom general filter function
+ defaultFilterFn: (data: Partial>) => {
+ return data
+ }
+} as const
+```
+
+### 搜索表单
+
+默认情况下,表格会根据 `TableColumn` 配置自动生成搜索表单。其配置方式与[动态表单](/components/form)一致。
+以下是搜索表单相关的基本使用方式:
+
+- **关闭搜索表单**
+
+表格的 `search` 属性为 `false` 时,将不再生成和显示搜索表单。
+
+```vue
+
+```
+
+- **通过`TableColumn`配置生成**
+
+自定义搜索表单项,可通过`formItemProps`属性配置,具体配置方式与[动态表单](/components/form)一致
+
+```ts
+const columns: TableColumn[] = [
+ {
+ title: '状态',
+ dataIndex: 'status',
+ /** 搜索表单项配置 */
+ formItemProps: {
+ component: 'Select',
+ componentProps: {
+ options: [
+ {
+ label: '启用',
+ value: 1
+ },
+ {
+ label: '禁用',
+ value: 0
+ }
+ ]
+ }
+ }
+ }
+]
+```
+
+- **通过表格`formProps`属性配置生成**
+
+使用 `formProps` 相当于是直接对 [动态表单组件](/components/form) 本身进行配置
+
+```ts
+const searchFormSchemas: FormSchema[] = [
+ {
+ field: 'status',
+ label: '状态',
+ component: 'Select',
+ componentProps: {
+ options: [
+ {
+ label: '启用',
+ value: 1
+ },
+ {
+ label: '禁用',
+ value: 0
+ }
+ ]
+ }
+ }
+]
+
+const [DynamicTable, dynamicTableInstance] = useTable({
+ formProps: {
+ /** 搜索表单 formSchemas 配置 */
+ schemas: searchFormSchemas,
+ /** 搜索表单初始值 */
+ initialValues: { typeId: typeId.value },
+ /** 表单重置事件 */
+ onReset(model) {
+ if (Number.isInteger(model?.typeId)) {
+ typeId.value = model.typeId
+ }
+ }
+ }
+})
+```
diff --git a/docs/src/guide/api-manage.md b/docs/src/guide/api-manage.md
new file mode 100644
index 00000000..b6905ccc
--- /dev/null
+++ b/docs/src/guide/api-manage.md
@@ -0,0 +1,98 @@
+# 接口管理
+
+在实际的开发中,联调永远都是比较麻烦的事情,尤其是在前后端分离之后,后端一般都需要维护一份文档来告诉我们具体的 API 有什么功能,具体的
+字段信息,这些信息的维护成本还是比较高的。然后前端则需要频繁的查阅接口文档,并且前端还需要手动定义相关的接口请求,如果追求极致的开发体验,
+我们还需要手动定义很多 ts 类型与注释,例如:请求参数类型、响应结果类型、字段描述等。这个过程即耗时又容易出错,并且在实际的对接过程中还会反复修改。
+
+## 工程化管理
+
+作为一名 `Coder`,我们对于日常 coding 过程中的一些重复劳动,应该始终考虑如何“偷懒”,如何通过工程化手段去解决这些繁琐的体力活,解放双手!
+现在有很多成熟的`接口文档生成接口请求`的工具可以帮我们做到这件事情,如:[@umijs/openapi](https://github.com/chenshuai2144/openapi2typescript)、[swagger-typescript-api](https://github.com/acacode/swagger-typescript-api) 等。本项目中采用的
+是`@umijs/openapi`。
+
+## 使用
+
+通过在项目根目录下执行以下命令,会自动生成请求接口,默认生成到 `src/api/backend`文件夹中
+
+```bash
+pnpm openapi
+```
+
+## 配置
+
+相关的配置在 `openapi.config.ts`,你可以根据自己的实际情况做调整,以下配置是本项目对接后端 [swagger](https://nest-api.buqiyuan.site/api-docs) 文档的一个实际用例:
+
+```ts
+import { generateService } from '@umijs/openapi'
+import type { RequestOptions } from './src/utils/request'
+
+const re = /controller[-_ .](\w)/gi
+
+// 具体配置说明请查阅: https://github.com/chenshuai2144/openapi2typescript
+generateService({
+ // 后端 swagger json 的在线链接
+ schemaPath: 'http://127.0.0.1:7001/api-docs-json',
+ // 生成接口的文件夹的路径
+ serversPath: './src/api/backend',
+ requestOptionsType: 'RequestOptions',
+ // 自定义网络请求函数路径
+ requestImportStatement:
+ 'import { request, type RequestOptions } from "@/utils/request";',
+ hook: {
+ // @ts-ignore
+ customFunctionName(operationObject, apiPath) {
+ const { operationId } = operationObject
+
+ if (!operationId) {
+ console.warn('[Warning] no operationId', apiPath)
+ return
+ }
+
+ const funcName = operationId.replace(re, (_all, letter) =>
+ letter.toUpperCase()
+ )
+
+ operationObject.operationId = funcName
+
+ return funcName
+ },
+ // @ts-ignore
+ customFileNames(operationObject, apiPath) {
+ const { operationId } = operationObject
+
+ if (!operationId) {
+ console.warn('[Warning] no operationId', apiPath)
+ return
+ }
+ const controllerName = operationId.split(re)[0]
+ const moduleName = operationObject.tags?.[0].split(' - ')[0]
+
+ if (moduleName === controllerName) {
+ return [controllerName]
+ } else if (moduleName && moduleName !== controllerName) {
+ return [`${moduleName}_${controllerName}`]
+ }
+ return
+ },
+ customType(schemaObject, namespace, defaultGetType) {
+ const type = defaultGetType(schemaObject, namespace)
+ // 提取出 data 的类型
+ const regex = /API\.ResOp & { 'data'\?: (.+); }/
+ return type.replace(regex, '$1')
+ },
+ customOptionsDefaultValue(data): RequestOptions {
+ const { summary } = data
+
+ if (summary?.startsWith('创建') || summary?.startsWith('新增')) {
+ return { successMsg: '创建成功' }
+ } else if (summary?.startsWith('更新')) {
+ return { successMsg: '更新成功' }
+ } else if (summary?.startsWith('删除')) {
+ return { successMsg: '删除成功' }
+ }
+
+ return {}
+ }
+ }
+})
+```
diff --git a/docs/src/guide/getting-started.md b/docs/src/guide/getting-started.md
new file mode 100644
index 00000000..68f2b972
--- /dev/null
+++ b/docs/src/guide/getting-started.md
@@ -0,0 +1,39 @@
+# 快速开始
+
+## 环境准备
+
+本地环境需要安装 [pnpm 7.x+](https://pnpm.io/) 、[Node.js 16+](http://nodejs.org/) 和 [Git](https://git-scm.com/)
+
+## 工具配置
+
+本项目推荐使用 VSCode 进行开发,项目里面已内置 VSCode 配置,包含推荐的插件和设置,在通过 VSCode 启动项目时,根据相关提示进行安装插件即可。
+
+## 拉取代码
+
+### 从 GitHub 获取代码
+
+```bash
+# 克隆代码
+git clone https://github.com/buqiyuan/vue3-antdv-admin.git
+```
+
+### 从 Gitee 获取代码
+
+```bash
+# 克隆代码
+git clone https://gitee.com/buqiyuan/vue3-antdv-admin.git
+```
+
+## 本地开发
+
+安装项目依赖
+
+```bash
+pnpm i
+```
+
+启动项目
+
+```bash
+pnpm dev
+```
diff --git a/docs/src/guide/introduction.md b/docs/src/guide/introduction.md
new file mode 100644
index 00000000..5407cbd1
--- /dev/null
+++ b/docs/src/guide/introduction.md
@@ -0,0 +1,29 @@
+# 介绍
+
+## 简介
+
+
+

+
+
+[Vue3 Antdv Admin](https://github.com/buqiyuan/vue3-antdv-admin) 是一个基于 `Vue3`、`Vite`、`TypeScript`、`AntDesignVue`、`Pinia` 和 `UnoCSS` 的后台管理系统,使用了最新流行的前端技术栈,并且提供了一个配套的后台代码,希望能在全栈的路上对你有所帮助。
+
+## 仓库
+
+- 前端:[Vue3 Antdv Admin](https://github.com/buqiyuan/vue3-antdv-admin)
+- 后端:[Nest Admin](https://github.com/buqiyuan/nest-admin)
+
+## 在线预览
+
+- 完整项目演示地址:https://buqiyuan.github.io/vue3-antdv-admin
+- 后端 swagger 文档地址:https://nest-api.buqiyuan.site/api-docs
+
+## 浏览器支持
+
+本地开发推荐使用`Chrome 90+` 浏览器
+
+支持现代浏览器, 不支持 IE
+
+| [
](http://godban.github.io/browsers-support-badges/)IE | [
](http://godban.github.io/browsers-support-badges/)Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari |
+| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
diff --git a/docs/src/guide/mock-service.md b/docs/src/guide/mock-service.md
new file mode 100644
index 00000000..556e4ed9
--- /dev/null
+++ b/docs/src/guide/mock-service.md
@@ -0,0 +1,21 @@
+# Mock 服务
+
+采用 [msw](https://mswjs.io/) 作为 mock 数据服务。
+
+## 优点
+
+- 集成于前端,不需要写 node 中间件(比如 express, koa)
+- 语法基本和 express 一致
+- 直接通过 chrome 快速 debugger
+- 不存在跨域问题
+
+## 缺点
+
+由于浏览器 service Worker API 使用限制:只能在 https(已安装证书)、localhost、127.0.0.1 等服务下使用,否则控制台会出现 [MSW] Mocking enabled (fallback mode) 日志,也就是说 http 域名服务,包括本地 IP 服务,例如:http://192.168.31.171:8088/ 等服务下不可用。
+
+> [!NOTE]
+> 由于项目中使用到了 [vite-plugin-mkcert](https://github.com/liuweiGL/vite-plugin-mkcert) 插件,该插件使用 mkcert 为 vite https 开发服务提供证书支持,所以上述的缺点在本地开发中理论上不会出现不可用的问题。但若要在生产环境中使用 mock,则服务端需要开启 https, 同时也要安装证书,没有证书 msw 会直接报错!
+
+## 如何使用 msw
+
+具体的使用,可以参考[Msw Docs](https://mswjs.io/)
diff --git a/docs/src/index.md b/docs/src/index.md
new file mode 100644
index 00000000..16b44001
--- /dev/null
+++ b/docs/src/index.md
@@ -0,0 +1,55 @@
+---
+layout: home
+title: Vue3 Antdv Admin
+
+hero:
+ name: Vue3 Antdv Admin
+ tagline: 基于 Vue3 + Vite5 + Antdv4 + TS + UnoCSS
+ image:
+ src: /logo.png
+ alt: vue3 antdv admin
+ actions:
+ - theme: brand
+ text: 开始使用
+ link: /guide/getting-started
+ - theme: alt
+ text: 介绍
+ link: /guide/introduction
+ - theme: alt
+ text: View on GitHub
+ link: https://github.com/buqiyuan/vue3-antdv-admin
+ - theme: alt
+ text: 国内镜像
+ link: https://gitee.com/buqiyuan/vue3-antdv-admin
+features:
+ - title: 高效快速
+ icon:
+ src: /vite.svg
+ details: vite5.x 加持,开发、打包、热更新、热加载、热替换,一切都是那么的快
+ link: https://vitejs.dev/
+ - title: 预设样式
+ icon:
+ src: /unocss.svg
+ details: 更快、更上层的原子化 CSS 引擎,听说,下雨天,属性化书写 class 名和 vue3 更配哦
+ link: https://unocss.dev/
+ - title: TypeScript
+ icon:
+ src: /typescript.svg
+ details: 项目全量使用 TypeScript,代码处处有提示,老大再也不用担心我叕写错变量名了
+ link: https://www.typescriptlang.org/
+ - title: MSW Mock 服务
+ icon:
+ src: /msw.svg
+ details: 项目使用 MSW 作为 Mock 服务,在浏览器端也能像后端一样编写 API 服务
+ link: https://mswjs.io/
+ - title: 状态管理
+ icon:
+ src: /pinia.svg
+ details: 项目使用 Pinia 作为状态管理,使用起来更加简单
+ link: https://pinia.vuejs.org/
+ - title: 全栈式
+ icon:
+ src: /nestjs.svg
+ details: 同时提供了一个基于 NestJs 的后台代码配套前端项目进行使用
+ link: https://github.com/buqiyuan/nest-admin
+---
diff --git a/docs/src/other/donate.md b/docs/src/other/donate.md
new file mode 100644
index 00000000..5a3fa05f
--- /dev/null
+++ b/docs/src/other/donate.md
@@ -0,0 +1,7 @@
+# 赞助
+
+如果你觉得这个项目对你有帮助,你可以帮作者买一杯咖啡表示支持!
+
+| 微信 | 支付宝 |
+| :------------------------------------: | :--------------------------------------: |
+|
|
|
diff --git a/docs/src/public/favicon.ico b/docs/src/public/favicon.ico
new file mode 100644
index 00000000..df36fcfb
Binary files /dev/null and b/docs/src/public/favicon.ico differ
diff --git a/docs/src/public/logo.png b/docs/src/public/logo.png
new file mode 100644
index 00000000..3ac3627b
Binary files /dev/null and b/docs/src/public/logo.png differ
diff --git a/docs/src/public/msw.svg b/docs/src/public/msw.svg
new file mode 100644
index 00000000..1e3567f7
--- /dev/null
+++ b/docs/src/public/msw.svg
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/docs/src/public/nestjs.svg b/docs/src/public/nestjs.svg
new file mode 100644
index 00000000..39bcd048
--- /dev/null
+++ b/docs/src/public/nestjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/src/public/pinia.svg b/docs/src/public/pinia.svg
new file mode 100644
index 00000000..3a20cba1
--- /dev/null
+++ b/docs/src/public/pinia.svg
@@ -0,0 +1 @@
+
diff --git a/docs/src/public/typescript.svg b/docs/src/public/typescript.svg
new file mode 100644
index 00000000..a46d53d4
--- /dev/null
+++ b/docs/src/public/typescript.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/src/public/unocss.svg b/docs/src/public/unocss.svg
new file mode 100644
index 00000000..7b268ca3
--- /dev/null
+++ b/docs/src/public/unocss.svg
@@ -0,0 +1,5 @@
+
diff --git a/docs/src/public/vite.svg b/docs/src/public/vite.svg
new file mode 100644
index 00000000..de4aeddc
--- /dev/null
+++ b/docs/src/public/vite.svg
@@ -0,0 +1,15 @@
+
diff --git a/docs/src/public/weixin.jpg b/docs/src/public/weixin.jpg
new file mode 100644
index 00000000..6f201cec
Binary files /dev/null and b/docs/src/public/weixin.jpg differ
diff --git a/docs/src/public/zhifubao.jpg b/docs/src/public/zhifubao.jpg
new file mode 100644
index 00000000..8b1ef1c3
Binary files /dev/null and b/docs/src/public/zhifubao.jpg differ
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
new file mode 100644
index 00000000..85314547
--- /dev/null
+++ b/docs/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "module": "ESNext",
+ "target": "ESNext",
+ "lib": ["DOM", "ESNext"],
+ "strict": true,
+ "esModuleInterop": true,
+ "jsx": "preserve",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "noUnusedLocals": true,
+ "strictNullChecks": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "include": [".vitepress", "playground"],
+ "exclude": ["dist", "node_modules", "cache"]
+}
diff --git a/mocks/index.ts b/mocks/index.ts
index 6db0bd34..65dc06ed 100644
--- a/mocks/index.ts
+++ b/mocks/index.ts
@@ -18,5 +18,8 @@ export const setupMock = async () => {
return prev;
}, []);
// console.log('handlers', handlers);
- await enableMocking(handlers);
+ await enableMocking(handlers, {
+ // 设置为 true 则不会在浏览器控制台输出 log 信息
+ quiet: false,
+ });
};
diff --git a/package.json b/package.json
index 735337e9..54499ac8 100644
--- a/package.json
+++ b/package.json
@@ -2,6 +2,9 @@
"name": "vue3-antdv-admin",
"version": "2.0.0",
"packageManager": "pnpm@8.10.2",
+ "engines": {
+ "node": ">=18"
+ },
"author": {
"name": "buqiyuan",
"email": "1743369777@qq.com",
@@ -12,6 +15,7 @@
"serve": "npm run dev",
"dev": "vite",
"build": "rimraf dist && cross-env NODE_ENV=production vite build",
+ "build:watch": "rimraf dist && cross-env NODE_ENV=production vite build --watch",
"preview": "npm run build && vite preview",
"preview:dist": "vite preview",
"deploy": "bash deploy.sh",
@@ -33,15 +37,16 @@
"test:br": "npx http-server dist --cors --brotli -c-1"
},
"dependencies": {
+ "@admin-pkg/components": "workspace:^",
"@admin-pkg/vite-plugin-msw": "workspace:*",
"@ant-design/icons-vue": "~7.0.1",
"@iconify/vue": "^4.1.1",
"@tinymce/tinymce-vue": "^5.1.1",
- "@vueuse/core": "~10.7.2",
+ "@vueuse/core": "~10.8.0",
"ant-design-vue": "~4.1.2",
"axios": "~1.6.7",
"dayjs": "~1.11.10",
- "echarts": "^5.4.3",
+ "echarts": "^5.5.0",
"file-saver": "~2.0.5",
"lodash-es": "~4.17.21",
"mitt": "~3.0.1",
@@ -50,11 +55,11 @@
"qiniu-js": "^3.4.2",
"qs": "~6.11.2",
"sortablejs": "~1.15.2",
- "tinymce": "^6.8.2",
- "vue": "~3.4.15",
- "vue-echarts": "^6.6.8",
+ "tinymce": "^6.8.3",
+ "vue": "~3.4.19",
+ "vue-echarts": "^6.6.9",
"vue-i18n": "9.9.1",
- "vue-router": "~4.2.5",
+ "vue-router": "~4.3.0",
"vue-types": "~5.1.1",
"vue-virtual-scroller": "2.0.0-beta.8",
"xlsx": "~0.18.5"
@@ -62,22 +67,21 @@
"devDependencies": {
"@commitlint/cli": "~18.6.0",
"@commitlint/config-conventional": "~18.6.0",
- "@faker-js/faker": "^8.4.0",
- "@iconify-json/ant-design": "^1.1.14",
+ "@faker-js/faker": "^8.4.1",
+ "@iconify-json/ant-design": "^1.1.15",
"@iconify-json/ep": "^1.1.14",
- "@iconify/json": "^2.2.177",
+ "@iconify/json": "^2.2.180",
"@types/lodash-es": "~4.17.12",
- "@types/node": "~20.10.5",
- "@typescript-eslint/eslint-plugin": "~6.20.0",
- "@typescript-eslint/parser": "~6.20.0",
+ "@types/node": "~20.11.16",
+ "@typescript-eslint/eslint-plugin": "~7.0.2",
+ "@typescript-eslint/parser": "~7.0.2",
"@umijs/openapi": "^1.10.1",
- "@vitejs/plugin-legacy": "~5.3.0",
- "@vitejs/plugin-vue": "~5.0.3",
+ "@vitejs/plugin-vue": "~5.0.4",
"@vitejs/plugin-vue-jsx": "~3.1.0",
"@vue/tsconfig": "^0.5.1",
"commitizen": "~4.3.0",
"conventional-changelog-cli": "~4.1.0",
- "core-js": "^3.35.1",
+ "core-js": "^3.36.0",
"cross-env": "~7.0.3",
"eslint": "~8.56.0",
"eslint-config-prettier": "~9.1.0",
@@ -85,32 +89,33 @@
"eslint-plugin-import": "~2.29.1",
"eslint-plugin-prettier": "~5.1.3",
"eslint-plugin-vue": "~9.21.1",
- "husky": "~9.0.7",
+ "husky": "~9.0.10",
"less": "~4.2.0",
"lightningcss": "^1.23.0",
- "lint-staged": "~15.2.1",
+ "lint-staged": "~15.2.2",
"mockjs": "~1.1.0",
- "msw": "^2.1.5",
- "postcss": "~8.4.33",
+ "msw": "^2.2.1",
+ "postcss": "~8.4.34",
"postcss-html": "~1.6.0",
"postcss-less": "~6.0.0",
- "prettier": "~3.2.4",
- "pretty-quick": "~3.1.3",
+ "prettier": "~3.2.5",
+ "pretty-quick": "~4.0.0",
"rimraf": "~5.0.5",
- "stylelint": "~16.2.0",
+ "stylelint": "~16.2.1",
"stylelint-config-property-sort-order-smacss": "^10.0.0",
"stylelint-config-recommended": "~14.0.0",
"stylelint-config-recommended-vue": "~1.5.0",
"stylelint-config-standard": "~36.0.0",
"stylelint-order": "~6.0.4",
"stylelint-prettier": "^5.0.0",
- "terser": "~5.27.0",
+ "terser": "~5.27.2",
"ts-node": "^10.9.2",
- "typescript": "~5.2.2",
- "unocss": "^0.58.4",
+ "typescript": "~5.3.3",
+ "unocss": "^0.58.5",
"unplugin-vue-components": "~0.26.0",
- "vite": "~5.0.12",
+ "vite": "~5.1.4",
"vite-plugin-checker": "~0.6.4",
+ "vite-plugin-mkcert": "^1.17.3",
"vite-plugin-svg-icons": "~2.0.1",
"vue-eslint-parser": "~9.4.2",
"vue-tsc": "~1.8.27"
@@ -131,9 +136,6 @@
"typescript"
],
"license": "MIT",
- "engines": {
- "node": ">=14"
- },
"target": "web",
"dependenciesMeta": {
"@admin-pkg/vite-plugin-msw": {
diff --git a/packages/components/index.ts b/packages/components/index.ts
new file mode 100644
index 00000000..d37bd784
--- /dev/null
+++ b/packages/components/index.ts
@@ -0,0 +1,10 @@
+import 'uno.css';
+
+/**
+ * 此包供 playground 在线测试使用,不建议在生产环境中使用
+ */
+
+export * from '@/components/core/dynamic-table/';
+export * from '@/components/core/schema-form/';
+
+console.log('[@admin-pkg/components] load');
diff --git a/packages/components/package.json b/packages/components/package.json
new file mode 100644
index 00000000..a8cf61fc
--- /dev/null
+++ b/packages/components/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "@admin-pkg/components",
+ "version": "0.0.2",
+ "description": "",
+ "type": "module",
+ "module": "./dist/index.es.js",
+ "main": "../dist/index.es.js",
+ "types": "dist/types/index.es.d.ts",
+ "jsdelivr": "./dist/index.es.js",
+ "unpkg": "./dist/index.es.js",
+ "files": [
+ "dist"
+ ],
+ "exports": {
+ ".": {
+ "types": "./dist/types/index.es.d.ts",
+ "import": "./dist/index.es.js",
+ "require": "./dist/index.umd.js"
+ },
+ "./*": "./*"
+ },
+ "scripts": {
+ "dev": "vite",
+ "build": "rimraf dist && vite build",
+ "build:dts": "npx tsc -p tsconfig.dts.json"
+ },
+ "keywords": [
+ "ant-design-vue",
+ "procomponents",
+ "vue"
+ ],
+ "author": {
+ "name": "buqiyuan",
+ "email": "1743369777@qq.com",
+ "url": "https://github.com/buqiyuan"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/buqiyuan/vue3-antdv-admin/tree/main/packages/components",
+ "directory": "packages/components"
+ },
+ "homepage": "https://github.com/buqiyuan/vue3-antdv-admin/tree/main/packages/components#readme",
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public",
+ "registry": "https://registry.npmjs.org/"
+ },
+ "devDependencies": {
+ "vite": "^5.0.2"
+ },
+ "peerDependencies": {
+ "vue": "^3.4.0"
+ }
+}
diff --git a/packages/components/tsconfig.dts.json b/packages/components/tsconfig.dts.json
new file mode 100644
index 00000000..b6c65cf5
--- /dev/null
+++ b/packages/components/tsconfig.dts.json
@@ -0,0 +1,19 @@
+{
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": false,
+ // Generate d.ts files
+ "declaration": true,
+ // only output d.ts files
+ "emitDeclarationOnly": true,
+ "declarationDir": "dist/types",
+ "strict": false,
+ "noEmit": false,
+ "target": "ESNext",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "lib": ["ESNext", "DOM"]
+ },
+ "include": ["./dist/index.es.js"]
+}
diff --git a/packages/components/tsconfig.json b/packages/components/tsconfig.json
new file mode 100644
index 00000000..9a335395
--- /dev/null
+++ b/packages/components/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "paths": {
+ "@/*": ["../../src/*"]
+ }
+ },
+ "include": ["index.ts", "../../src/**/*.ts"],
+ "exclude": ["node_modules", "test", "dist", "**/src/views/**"]
+}
diff --git a/packages/components/vite.config.ts b/packages/components/vite.config.ts
new file mode 100644
index 00000000..a0e7664b
--- /dev/null
+++ b/packages/components/vite.config.ts
@@ -0,0 +1,115 @@
+import { resolve } from 'node:path';
+import { exec } from 'node:child_process';
+import { defineConfig, type Plugin } from 'vite';
+import vue from '@vitejs/plugin-vue';
+import vueJsx from '@vitejs/plugin-vue-jsx';
+import Components from 'unplugin-vue-components/vite';
+import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
+import Unocss from 'unocss/vite';
+
+const sourceDir = resolve(__dirname, '../../src');
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ publicDir: false,
+ resolve: {
+ alias: [
+ {
+ find: '@',
+ replacement: sourceDir,
+ },
+ ],
+ },
+ esbuild: {
+ drop: ['debugger'],
+ pure: ['console.log'],
+ },
+ // 打包配置
+ build: {
+ target: 'esnext',
+ lib: {
+ entry: resolve(__dirname, './index.ts'), // 设置入口文件
+ formats: ['es'],
+ name: 'components', // 起个名字,安装、引入用
+ fileName: (format) => `index.${format}.js`, // 打包后的文件名
+ },
+ rollupOptions: {
+ treeshake: true,
+ // make sure to externalize deps that shouldn't be bundled
+ // into your library
+ external: ['vue', 'ant-design-vue'],
+ output: {
+ // minifyInternalExports: false,
+ // // Provide global variables to use in the UMD build
+ // // for externalized deps
+ // globals: {
+ // vue: 'Vue',
+ // 'ant-design-vue': 'AntDesignVue',
+ // },
+ // manualChunks: {
+ // library: ['lodash-es', 'vue-i18n'],
+ // },
+ manualChunks(id) {
+ if (id.includes('/src/locales/helper.ts')) {
+ console.log('id: ', id);
+ return 'vendor';
+ } else if (id.includes('ant-design-vue')) {
+ return 'vendor';
+ }
+ },
+ },
+ },
+ },
+ plugins: [
+ vue(),
+ vueJsx(),
+ Unocss(),
+ myPlugin(),
+ Components({
+ dts: false,
+ dirs: ['../../src/components'],
+ resolvers: [
+ AntDesignVueResolver({
+ importStyle: false, // css in js
+ exclude: ['Button'],
+ }),
+ (componentName) => {
+ // where `componentName` is always CapitalCase
+ if (componentName === 'AButton') {
+ return { name: componentName, from: resolve(sourceDir, 'components/basic/button/') };
+ }
+ },
+ ],
+ }),
+ ],
+});
+
+function myPlugin(): Plugin {
+ const file = resolve(sourceDir, './permission');
+
+ return {
+ name: '@admin-pkg/components:transform-file',
+
+ // transform(src, id) {
+ // if (id.includes(file)) {
+ // console.log('transform id: ', id);
+ // return {
+ // code: `export const hasPermission = () => true`,
+ // map: null,
+ // };
+ // }
+ // },
+ closeBundle() {
+ // 根据 js 生成 .d.ts
+ exec('npm run build:dts', (err) => {
+ console.error(err);
+ });
+ },
+ load(id) {
+ if (id.includes(file)) {
+ console.log('load id: ', id);
+ return `export const hasPermission = () => true`;
+ }
+ },
+ };
+}
diff --git a/packages/vite-plugin-msw/package.json b/packages/vite-plugin-msw/package.json
index 33856834..360632d9 100644
--- a/packages/vite-plugin-msw/package.json
+++ b/packages/vite-plugin-msw/package.json
@@ -1,6 +1,6 @@
{
"name": "@admin-pkg/vite-plugin-msw",
- "version": "0.0.4",
+ "version": "0.0.5",
"description": "",
"module": "./dist/browser/index.mjs",
"main": "./dist/browser/index.mjs",
@@ -37,18 +37,19 @@
"url": "https://github.com/buqiyuan/vue3-antdv-admin/tree/main/packages/vite-plugin-msw",
"directory": "packages/vite-plugin-msw"
},
- "homepage": "https://buqiyuan.github.io/vue3-antdv-admin/tree/main/packages/vite-plugin-msw#readme",
+ "homepage": "https://github.com/buqiyuan/vue3-antdv-admin/tree/main/packages/vite-plugin-msw#readme",
"license": "MIT",
"publishConfig": {
- "access": "public"
+ "access": "public",
+ "registry": "https://registry.npmjs.org/"
},
"dependencies": {
- "@mswjs/interceptors": "^0.25.15",
+ "@mswjs/interceptors": "^0.26.5",
"headers-polyfill": "^4.0.2",
"strict-event-emitter": "^0.5.1"
},
"devDependencies": {
- "tsup": "^8.0.1"
+ "tsup": "^8.0.2"
},
"peerDependencies": {
"msw": "^2.0.0"
diff --git a/packages/vite-plugin-msw/src/browser/enableMocking.ts b/packages/vite-plugin-msw/src/browser/enableMocking.ts
index b07fe162..615f76c1 100644
--- a/packages/vite-plugin-msw/src/browser/enableMocking.ts
+++ b/packages/vite-plugin-msw/src/browser/enableMocking.ts
@@ -1,4 +1,4 @@
-import { setupWorker } from 'msw/browser';
+import { type StartOptions, setupWorker } from 'msw/browser';
import { log } from '../utils/log';
import type { HttpHandler } from 'msw';
@@ -22,7 +22,7 @@ const postMsg = (registration: ServiceWorkerRegistration, handlers: HttpHandler[
}
};
-export const enableMocking = async (handlers: HttpHandler[]) => {
+export const enableMocking = async (handlers: HttpHandler[], options?: StartOptions) => {
const scriptURL = `${import.meta.env.BASE_URL || ''}/mockServiceWorker.js`.replace(
/\/{2,}/g,
'/',
@@ -33,12 +33,14 @@ export const enableMocking = async (handlers: HttpHandler[]) => {
const serviceWorkerRegistration = await worker.start({
onUnhandledRequest: 'bypass',
+ // quiet: true,
serviceWorker: {
url: scriptURL,
options: {
updateViaCache: 'none',
},
},
+ ...options,
});
if (serviceWorkerRegistration) {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 522fe20a..25d7753a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,33 +8,36 @@ importers:
.:
dependencies:
+ '@admin-pkg/components':
+ specifier: workspace:^
+ version: link:packages/components
'@admin-pkg/vite-plugin-msw':
specifier: workspace:*
- version: file:packages/vite-plugin-msw(msw@2.1.5)
+ version: file:packages/vite-plugin-msw(msw@2.2.1)
'@ant-design/icons-vue':
specifier: ~7.0.1
- version: 7.0.1(vue@3.4.15)
+ version: 7.0.1(vue@3.4.19)
'@iconify/vue':
specifier: ^4.1.1
- version: 4.1.1(vue@3.4.15)
+ version: 4.1.1(vue@3.4.19)
'@tinymce/tinymce-vue':
specifier: ^5.1.1
- version: 5.1.1(vue@3.4.15)
+ version: 5.1.1(vue@3.4.19)
'@vueuse/core':
- specifier: ~10.7.2
- version: 10.7.2(vue@3.4.15)
+ specifier: ~10.8.0
+ version: 10.8.0(vue@3.4.19)
ant-design-vue:
specifier: ~4.1.2
- version: 4.1.2(vue@3.4.15)
+ version: 4.1.2(vue@3.4.19)
axios:
specifier: ~1.6.7
- version: 1.6.7
+ version: 1.6.7(debug@4.3.4)
dayjs:
specifier: ~1.11.10
version: 1.11.10
echarts:
- specifier: ^5.4.3
- version: 5.4.3
+ specifier: ^5.5.0
+ version: 5.5.0
file-saver:
specifier: ~2.0.5
version: 2.0.5
@@ -49,7 +52,7 @@ importers:
version: 1.0.0-1
pinia:
specifier: ~2.1.7
- version: 2.1.7(typescript@5.2.2)(vue@3.4.15)
+ version: 2.1.7(typescript@5.3.3)(vue@3.4.19)
qiniu-js:
specifier: ^3.4.2
version: 3.4.2
@@ -60,84 +63,81 @@ importers:
specifier: ~1.15.2
version: 1.15.2
tinymce:
- specifier: ^6.8.2
- version: 6.8.2
+ specifier: ^6.8.3
+ version: 6.8.3
vue:
- specifier: ~3.4.15
- version: 3.4.15(typescript@5.2.2)
+ specifier: ~3.4.19
+ version: 3.4.19(typescript@5.3.3)
vue-echarts:
- specifier: ^6.6.8
- version: 6.6.8(echarts@5.4.3)(vue@3.4.15)
+ specifier: ^6.6.9
+ version: 6.6.9(echarts@5.5.0)(vue@3.4.19)
vue-i18n:
specifier: 9.9.1
- version: 9.9.1(vue@3.4.15)
+ version: 9.9.1(vue@3.4.19)
vue-router:
- specifier: ~4.2.5
- version: 4.2.5(vue@3.4.15)
+ specifier: ~4.3.0
+ version: 4.3.0(vue@3.4.19)
vue-types:
specifier: ~5.1.1
- version: 5.1.1(vue@3.4.15)
+ version: 5.1.1(vue@3.4.19)
vue-virtual-scroller:
specifier: 2.0.0-beta.8
- version: 2.0.0-beta.8(vue@3.4.15)
+ version: 2.0.0-beta.8(vue@3.4.19)
xlsx:
specifier: ~0.18.5
version: 0.18.5
devDependencies:
'@commitlint/cli':
specifier: ~18.6.0
- version: 18.6.0(@types/node@20.10.8)(typescript@5.2.2)
+ version: 18.6.0(@types/node@20.11.16)(typescript@5.3.3)
'@commitlint/config-conventional':
specifier: ~18.6.0
version: 18.6.0
'@faker-js/faker':
- specifier: ^8.4.0
- version: 8.4.0
+ specifier: ^8.4.1
+ version: 8.4.1
'@iconify-json/ant-design':
- specifier: ^1.1.14
- version: 1.1.14
+ specifier: ^1.1.15
+ version: 1.1.15
'@iconify-json/ep':
specifier: ^1.1.14
version: 1.1.14
'@iconify/json':
- specifier: ^2.2.177
- version: 2.2.177
+ specifier: ^2.2.180
+ version: 2.2.180
'@types/lodash-es':
specifier: ~4.17.12
version: 4.17.12
'@types/node':
- specifier: ~20.10.5
- version: 20.10.8
+ specifier: ~20.11.16
+ version: 20.11.16
'@typescript-eslint/eslint-plugin':
- specifier: ~6.20.0
- version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.2.2)
+ specifier: ~7.0.2
+ version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser':
- specifier: ~6.20.0
- version: 6.20.0(eslint@8.56.0)(typescript@5.2.2)
+ specifier: ~7.0.2
+ version: 7.0.2(eslint@8.56.0)(typescript@5.3.3)
'@umijs/openapi':
specifier: ^1.10.1
version: 1.10.1
- '@vitejs/plugin-legacy':
- specifier: ~5.3.0
- version: 5.3.0(esbuild@0.19.11)(terser@5.27.0)(vite@5.0.12)
'@vitejs/plugin-vue':
- specifier: ~5.0.3
- version: 5.0.3(vite@5.0.12)(vue@3.4.15)
+ specifier: ~5.0.4
+ version: 5.0.4(vite@5.1.4)(vue@3.4.19)
'@vitejs/plugin-vue-jsx':
specifier: ~3.1.0
- version: 3.1.0(vite@5.0.12)(vue@3.4.15)
+ version: 3.1.0(vite@5.1.4)(vue@3.4.19)
'@vue/tsconfig':
specifier: ^0.5.1
version: 0.5.1
commitizen:
specifier: ~4.3.0
- version: 4.3.0(@types/node@20.10.8)(typescript@5.2.2)
+ version: 4.3.0(@types/node@20.11.16)(typescript@5.3.3)
conventional-changelog-cli:
specifier: ~4.1.0
version: 4.1.0
core-js:
- specifier: ^3.35.1
- version: 3.35.1
+ specifier: ^3.36.0
+ version: 3.36.0
cross-env:
specifier: ~7.0.3
version: 7.0.3
@@ -152,16 +152,16 @@ importers:
version: 2.1.0
eslint-plugin-import:
specifier: ~2.29.1
- version: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)
+ version: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)
eslint-plugin-prettier:
specifier: ~5.1.3
- version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4)
+ version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5)
eslint-plugin-vue:
specifier: ~9.21.1
version: 9.21.1(eslint@8.56.0)
husky:
- specifier: ~9.0.7
- version: 9.0.7
+ specifier: ~9.0.10
+ version: 9.0.10
less:
specifier: ~4.2.0
version: 4.2.0
@@ -169,105 +169,118 @@ importers:
specifier: ^1.23.0
version: 1.23.0
lint-staged:
- specifier: ~15.2.1
- version: 15.2.1
+ specifier: ~15.2.2
+ version: 15.2.2
mockjs:
specifier: ~1.1.0
version: 1.1.0
msw:
- specifier: ^2.1.5
- version: 2.1.5(typescript@5.2.2)
+ specifier: ^2.2.1
+ version: 2.2.1(typescript@5.3.3)
postcss:
- specifier: ~8.4.33
- version: 8.4.33
+ specifier: ~8.4.34
+ version: 8.4.34
postcss-html:
specifier: ~1.6.0
version: 1.6.0
postcss-less:
specifier: ~6.0.0
- version: 6.0.0(postcss@8.4.33)
+ version: 6.0.0(postcss@8.4.34)
prettier:
- specifier: ~3.2.4
- version: 3.2.4
+ specifier: ~3.2.5
+ version: 3.2.5
pretty-quick:
- specifier: ~3.1.3
- version: 3.1.4(prettier@3.2.4)
+ specifier: ~4.0.0
+ version: 4.0.0(prettier@3.2.5)
rimraf:
specifier: ~5.0.5
version: 5.0.5
stylelint:
- specifier: ~16.2.0
- version: 16.2.0(typescript@5.2.2)
+ specifier: ~16.2.1
+ version: 16.2.1(typescript@5.3.3)
stylelint-config-property-sort-order-smacss:
specifier: ^10.0.0
- version: 10.0.0(stylelint@16.2.0)
+ version: 10.0.0(stylelint@16.2.1)
stylelint-config-recommended:
specifier: ~14.0.0
- version: 14.0.0(stylelint@16.2.0)
+ version: 14.0.0(stylelint@16.2.1)
stylelint-config-recommended-vue:
specifier: ~1.5.0
- version: 1.5.0(postcss-html@1.6.0)(stylelint@16.2.0)
+ version: 1.5.0(postcss-html@1.6.0)(stylelint@16.2.1)
stylelint-config-standard:
specifier: ~36.0.0
- version: 36.0.0(stylelint@16.2.0)
+ version: 36.0.0(stylelint@16.2.1)
stylelint-order:
specifier: ~6.0.4
- version: 6.0.4(stylelint@16.2.0)
+ version: 6.0.4(stylelint@16.2.1)
stylelint-prettier:
specifier: ^5.0.0
- version: 5.0.0(prettier@3.2.4)(stylelint@16.2.0)
+ version: 5.0.0(prettier@3.2.5)(stylelint@16.2.1)
terser:
- specifier: ~5.27.0
- version: 5.27.0
+ specifier: ~5.27.2
+ version: 5.27.2
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@types/node@20.10.8)(typescript@5.2.2)
+ version: 10.9.2(@types/node@20.11.16)(typescript@5.3.3)
typescript:
- specifier: ~5.2.2
- version: 5.2.2
+ specifier: ~5.3.3
+ version: 5.3.3
unocss:
- specifier: ^0.58.4
- version: 0.58.4(postcss@8.4.33)(vite@5.0.12)
+ specifier: ^0.58.5
+ version: 0.58.5(postcss@8.4.34)(vite@5.1.4)
unplugin-vue-components:
specifier: ~0.26.0
- version: 0.26.0(vue@3.4.15)
+ version: 0.26.0(vue@3.4.19)
vite:
- specifier: ~5.0.12
- version: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
+ specifier: ~5.1.4
+ version: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
vite-plugin-checker:
specifier: ~0.6.4
- version: 0.6.4(eslint@8.56.0)(stylelint@16.2.0)(typescript@5.2.2)(vite@5.0.12)(vue-tsc@1.8.27)
+ version: 0.6.4(eslint@8.56.0)(stylelint@16.2.1)(typescript@5.3.3)(vite@5.1.4)(vue-tsc@1.8.27)
+ vite-plugin-mkcert:
+ specifier: ^1.17.3
+ version: 1.17.3(vite@5.1.4)
vite-plugin-svg-icons:
specifier: ~2.0.1
- version: 2.0.1(vite@5.0.12)
+ version: 2.0.1(vite@5.1.4)
vue-eslint-parser:
specifier: ~9.4.2
version: 9.4.2(eslint@8.56.0)
vue-tsc:
specifier: ~1.8.27
- version: 1.8.27(typescript@5.2.2)
+ version: 1.8.27(typescript@5.3.3)
dependenciesMeta:
'@admin-pkg/vite-plugin-msw':
injected: true
+ packages/components:
+ dependencies:
+ vue:
+ specifier: ^3.4.0
+ version: 3.4.19(typescript@5.3.3)
+ devDependencies:
+ vite:
+ specifier: ^5.0.2
+ version: 5.1.3(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
+
packages/vite-plugin-msw:
dependencies:
'@mswjs/interceptors':
- specifier: ^0.25.15
- version: 0.25.15
+ specifier: ^0.26.5
+ version: 0.26.5
headers-polyfill:
specifier: ^4.0.2
version: 4.0.2
msw:
specifier: ^2.0.0
- version: 2.1.5(typescript@5.2.2)
+ version: 2.1.5(typescript@5.3.3)
strict-event-emitter:
specifier: ^0.5.1
version: 0.5.1
devDependencies:
tsup:
- specifier: ^8.0.1
- version: 8.0.1(postcss@8.4.33)(ts-node@10.9.2)(typescript@5.2.2)
+ specifier: ^8.0.2
+ version: 8.0.2(postcss@8.4.34)(ts-node@10.9.2)(typescript@5.3.3)
packages:
@@ -294,14 +307,14 @@ packages:
resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==}
dev: false
- /@ant-design/icons-vue@7.0.1(vue@3.4.15):
+ /@ant-design/icons-vue@7.0.1(vue@3.4.19):
resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==}
peerDependencies:
vue: '>=3.0.3'
dependencies:
'@ant-design/colors': 6.0.0
'@ant-design/icons-svg': 4.3.1
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
/@antfu/install-pkg@0.1.1:
@@ -344,10 +357,33 @@ packages:
'@babel/helper-compilation-targets': 7.23.6
'@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7)
'@babel/helpers': 7.23.8
- '@babel/parser': 7.23.6
+ '@babel/parser': 7.23.9
'@babel/template': 7.22.15
'@babel/traverse': 7.23.7
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
+ convert-source-map: 2.0.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/core@7.23.9:
+ resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.2.1
+ '@babel/code-frame': 7.23.5
+ '@babel/generator': 7.23.6
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
+ '@babel/helpers': 7.23.9
+ '@babel/parser': 7.23.9
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -371,11 +407,25 @@ packages:
semver: 6.3.1
dev: true
+ /@babel/eslint-parser@7.23.3(@babel/core@7.23.9)(eslint@7.32.0):
+ resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
+ peerDependencies:
+ '@babel/core': ^7.11.0
+ eslint: ^7.5.0 || ^8.0.0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
+ eslint: 7.32.0
+ eslint-visitor-keys: 2.1.0
+ semver: 6.3.1
+ dev: true
+
/@babel/generator@7.23.6:
resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.22
jsesc: 2.5.2
@@ -392,7 +442,7 @@ packages:
resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-compilation-targets@7.23.6:
@@ -424,6 +474,24 @@ packages:
semver: 6.3.1
dev: true
+ /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.9):
+ resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-member-expression-to-functions': 7.23.0
+ '@babel/helper-optimise-call-expression': 7.22.5
+ '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ semver: 6.3.1
+ dev: true
+
/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7):
resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
engines: {node: '>=6.9.0'}
@@ -461,21 +529,21 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.22.15
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-hoist-variables@7.22.5:
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-member-expression-to-functions@7.23.0:
resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-module-imports@7.22.15:
@@ -499,11 +567,25 @@ packages:
'@babel/helper-validator-identifier': 7.22.20
dev: true
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9):
+ resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/helper-simple-access': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/helper-validator-identifier': 7.22.20
+ dev: true
+
/@babel/helper-optimise-call-expression@7.22.5:
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-plugin-utils@7.22.5:
@@ -535,25 +617,37 @@ packages:
'@babel/helper-optimise-call-expression': 7.22.5
dev: true
+ /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9):
+ resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-member-expression-to-functions': 7.23.0
+ '@babel/helper-optimise-call-expression': 7.22.5
+ dev: true
+
/@babel/helper-simple-access@7.22.5:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-skip-transparent-expression-wrappers@7.22.5:
resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-split-export-declaration@7.22.6:
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-string-parser@7.23.4:
@@ -574,8 +668,8 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-function-name': 7.23.0
- '@babel/template': 7.22.15
- '@babel/types': 7.23.6
+ '@babel/template': 7.23.9
+ '@babel/types': 7.23.9
dev: true
/@babel/helpers@7.23.8:
@@ -584,7 +678,18 @@ packages:
dependencies:
'@babel/template': 7.22.15
'@babel/traverse': 7.23.7
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helpers@7.23.9:
+ resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
transitivePeerDependencies:
- supports-color
dev: true
@@ -603,7 +708,15 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
+ dev: true
+
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.23.9
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7):
resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==}
@@ -775,6 +888,16 @@ packages:
'@babel/helper-plugin-utils': 7.22.5
dev: true
+ /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9):
+ resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7):
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
@@ -859,6 +982,16 @@ packages:
'@babel/helper-plugin-utils': 7.22.5
dev: true
+ /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.9):
+ resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: true
+
/@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7):
resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
engines: {node: '>=6.9.0'}
@@ -973,7 +1106,7 @@ packages:
dependencies:
'@babel/core': 7.23.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/template': 7.22.15
+ '@babel/template': 7.23.9
dev: true
/@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7):
@@ -1128,6 +1261,18 @@ packages:
'@babel/helper-simple-access': 7.22.5
dev: true
+ /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9):
+ resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-simple-access': 7.22.5
+ dev: true
+
/@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.7):
resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==}
engines: {node: '>=6.9.0'}
@@ -1318,7 +1463,7 @@ packages:
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7)
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
dev: true
/@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.7):
@@ -1417,6 +1562,19 @@ packages:
'@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7)
dev: true
+ /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9):
+ resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-annotate-as-pure': 7.22.5
+ '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.9)
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9)
+ dev: true
+
/@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7):
resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==}
engines: {node: '>=6.9.0'}
@@ -1558,7 +1716,7 @@ packages:
dependencies:
'@babel/core': 7.23.7
'@babel/helper-plugin-utils': 7.22.5
- '@babel/types': 7.23.6
+ '@babel/types': 7.23.9
esutils: 2.0.3
dev: true
@@ -1591,6 +1749,20 @@ packages:
'@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7)
dev: true
+ /@babel/preset-typescript@7.23.3(@babel/core@7.23.9):
+ resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/helper-plugin-utils': 7.22.5
+ '@babel/helper-validator-option': 7.23.5
+ '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9)
+ '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9)
+ dev: true
+
/@babel/regjsgen@0.8.0:
resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==}
dev: true
@@ -1618,6 +1790,15 @@ packages:
'@babel/types': 7.23.6
dev: true
+ /@babel/template@7.23.9:
+ resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
+ dev: true
+
/@babel/traverse@7.23.7:
resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==}
engines: {node: '>=6.9.0'}
@@ -1636,6 +1817,24 @@ packages:
- supports-color
dev: true
+ /@babel/traverse@7.23.9:
+ resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.23.5
+ '@babel/generator': 7.23.6
+ '@babel/helper-environment-visitor': 7.22.20
+ '@babel/helper-function-name': 7.23.0
+ '@babel/helper-hoist-variables': 7.22.5
+ '@babel/helper-split-export-declaration': 7.22.6
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/types@7.23.6:
resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==}
engines: {node: '>=6.9.0'}
@@ -1643,6 +1842,15 @@ packages:
'@babel/helper-string-parser': 7.23.4
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
+ dev: true
+
+ /@babel/types@7.23.9:
+ resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.23.4
+ '@babel/helper-validator-identifier': 7.22.20
+ to-fast-properties: 2.0.0
/@bundled-es-modules/cookie@2.0.0:
resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==}
@@ -1654,14 +1862,14 @@ packages:
dependencies:
statuses: 2.0.1
- /@commitlint/cli@18.6.0(@types/node@20.10.8)(typescript@5.2.2):
+ /@commitlint/cli@18.6.0(@types/node@20.11.16)(typescript@5.3.3):
resolution: {integrity: sha512-FiH23cr9QG8VdfbmvJJZmdfHGVMCouOOAzoXZ3Cd7czGC52RbycwNt8YCI7SA69pAl+t30vh8LMaO/N+kcel6w==}
engines: {node: '>=v18'}
hasBin: true
dependencies:
'@commitlint/format': 18.6.0
'@commitlint/lint': 18.6.0
- '@commitlint/load': 18.6.0(@types/node@20.10.8)(typescript@5.2.2)
+ '@commitlint/load': 18.6.0(@types/node@20.11.16)(typescript@5.3.3)
'@commitlint/read': 18.6.0
'@commitlint/types': 18.6.0
execa: 5.1.1
@@ -1684,6 +1892,7 @@ packages:
/@commitlint/config-validator@18.6.0:
resolution: {integrity: sha512-Ptfa865arNozlkjxrYG3qt6wT9AlhNUHeuDyKEZiTL/l0ftncFhK/KN0t/EAMV2tec+0Mwxo0FmhbESj/bI+1g==}
engines: {node: '>=v18'}
+ requiresBuild: true
dependencies:
'@commitlint/types': 18.6.0
ajv: 8.12.0
@@ -1704,6 +1913,7 @@ packages:
/@commitlint/execute-rule@18.4.4:
resolution: {integrity: sha512-a37Nd3bDQydtg9PCLLWM9ZC+GO7X5i4zJvrggJv5jBhaHsXeQ9ZWdO6ODYR+f0LxBXXNYK3geYXJrCWUCP8JEg==}
engines: {node: '>=v18'}
+ requiresBuild: true
dev: true
/@commitlint/format@18.6.0:
@@ -1732,7 +1942,7 @@ packages:
'@commitlint/types': 18.6.0
dev: true
- /@commitlint/load@18.6.0(@types/node@20.10.8)(typescript@5.2.2):
+ /@commitlint/load@18.6.0(@types/node@20.11.16)(typescript@5.3.3):
resolution: {integrity: sha512-RRssj7TmzT0bowoEKlgwg8uQ7ORXWkw7lYLsZZBMi9aInsJuGNLNWcMxJxRZbwxG3jkCidGUg85WmqJvRjsaDA==}
engines: {node: '>=v18'}
dependencies:
@@ -1741,8 +1951,8 @@ packages:
'@commitlint/resolve-extends': 18.6.0
'@commitlint/types': 18.6.0
chalk: 4.1.2
- cosmiconfig: 8.3.6(typescript@5.2.2)
- cosmiconfig-typescript-loader: 5.0.0(@types/node@20.10.8)(cosmiconfig@8.3.6)(typescript@5.2.2)
+ cosmiconfig: 8.3.6(typescript@5.3.3)
+ cosmiconfig-typescript-loader: 5.0.0(@types/node@20.11.16)(cosmiconfig@8.3.6)(typescript@5.3.3)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@@ -1779,6 +1989,7 @@ packages:
/@commitlint/resolve-extends@18.6.0:
resolution: {integrity: sha512-k2Xp+Fxeggki2i90vGrbiLDMefPius3zGSTFFlRAPKce/SWLbZtI+uqE9Mne23mHO5lmcSV8z5m6ziiJwGpOcg==}
engines: {node: '>=v18'}
+ requiresBuild: true
dependencies:
'@commitlint/config-validator': 18.6.0
'@commitlint/types': 18.6.0
@@ -2147,8 +2358,8 @@ packages:
resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==}
dev: true
- /@faker-js/faker@8.4.0:
- resolution: {integrity: sha512-htW87352wzUCdX1jyUQocUcmAaFqcR/w082EC8iP/gtkF0K+aKcBp0hR5Arb7dzR8tQ1TrhE9DNa5EbJELm84w==}
+ /@faker-js/faker@8.4.1:
+ resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'}
dev: true
@@ -2192,8 +2403,8 @@ packages:
engines: {node: '>=10.13.0'}
dev: true
- /@iconify-json/ant-design@1.1.14:
- resolution: {integrity: sha512-43K3xnXzhGnNWwXhaSAZrP8ZV7pbqpGQsr3F88EpVJCUbQ9iquPbOldkGQ72k24FPvFKInCYFTgIuwhOVu0q1A==}
+ /@iconify-json/ant-design@1.1.15:
+ resolution: {integrity: sha512-E8XLyDo2HWVeVT8ViNTxF2+0Vgcox8FC73G4v64AM+lvlWpERcY90g7jXoBOeykl1pQCf1awkQUwjkynZ8Xb7A==}
dependencies:
'@iconify/types': 2.0.0
dev: true
@@ -2204,8 +2415,8 @@ packages:
'@iconify/types': 2.0.0
dev: true
- /@iconify/json@2.2.177:
- resolution: {integrity: sha512-BKWZMvJklkkuDcmBqOYLXUSBCFDoYn5oaUU6j6eVQHE6KEfVYawSsTvfu4aCTx6Pzd47HR5zhTL4LJzhuKZOxg==}
+ /@iconify/json@2.2.180:
+ resolution: {integrity: sha512-Kww6uD6fi+9qSeXAUGo6bQgTm5vprMEvTENVaZXL3qfa9KHICWZaGsVETpjn3WiTwcUPgN6P2/GXLzhuFulm7w==}
dependencies:
'@iconify/types': 2.0.0
pathe: 1.1.2
@@ -2214,8 +2425,8 @@ packages:
/@iconify/types@2.0.0:
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
- /@iconify/utils@2.1.20:
- resolution: {integrity: sha512-t8TeKlYK/5i9yTY9VAGAE4P0qQHd/0vH+VSRO+bdpxlt8wqB6f2I0/IrciRsdeFZPMoL8IICgP7lgl2ZtbG8Tw==}
+ /@iconify/utils@2.1.22:
+ resolution: {integrity: sha512-6UHVzTVXmvO8uS6xFF+L/QTSpTzA/JZxtgU+KYGFyDYMEObZ1bu/b5l+zNJjHy+0leWjHI+C0pXlzGvv3oXZMA==}
dependencies:
'@antfu/install-pkg': 0.1.1
'@antfu/utils': 0.7.7
@@ -2223,19 +2434,50 @@ packages:
debug: 4.3.4
kolorist: 1.8.0
local-pkg: 0.5.0
+ mlly: 1.5.0
transitivePeerDependencies:
- supports-color
dev: true
- /@iconify/vue@4.1.1(vue@3.4.15):
+ /@iconify/vue@4.1.1(vue@3.4.19):
resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==}
peerDependencies:
vue: '>=3'
dependencies:
'@iconify/types': 2.0.0
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
+ /@inquirer/confirm@3.0.0:
+ resolution: {integrity: sha512-LHeuYP1D8NmQra1eR4UqvZMXwxEdDXyElJmmZfU44xdNLL6+GcQBS0uE16vyfZVjH8c22p9e+DStROfE/hyHrg==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@inquirer/core': 7.0.0
+ '@inquirer/type': 1.2.0
+
+ /@inquirer/core@7.0.0:
+ resolution: {integrity: sha512-g13W5yEt9r1sEVVriffJqQ8GWy94OnfxLCreNSOTw0HPVcszmc/If1KIf7YBmlwtX4klmvwpZHnQpl3N7VX2xA==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@inquirer/type': 1.2.0
+ '@types/mute-stream': 0.0.4
+ '@types/node': 20.11.16
+ '@types/wrap-ansi': 3.0.0
+ ansi-escapes: 4.3.2
+ chalk: 4.1.2
+ cli-spinners: 2.9.2
+ cli-width: 4.1.0
+ figures: 3.2.0
+ mute-stream: 1.0.0
+ run-async: 3.0.0
+ signal-exit: 4.1.0
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
+
+ /@inquirer/type@1.2.0:
+ resolution: {integrity: sha512-/vvkUkYhrjbm+RolU7V1aUFDydZVKNKqKHR5TsE+j5DXgXFwrsOPcoGUJ02K0O7q7O53CU2DOTMYCHeGZ25WHA==}
+ engines: {node: '>=18'}
+
/@intlify/core-base@9.9.1:
resolution: {integrity: sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==}
engines: {node: '>= 16'}
@@ -2316,8 +2558,19 @@ packages:
resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==}
engines: {node: '>=18'}
- /@mswjs/interceptors@0.25.15:
- resolution: {integrity: sha512-s4jdyxmq1eeftfDXJ7MUiK/jlvYaU8Sr75+42hHCVBrYez0k51RHbMitKIKdmsF92Q6gwhp8Sm1MmvdA9llpcg==}
+ /@mswjs/interceptors@0.25.16:
+ resolution: {integrity: sha512-8QC8JyKztvoGAdPgyZy49c9vSHHAZjHagwl4RY9E8carULk8ym3iTaiawrT1YoLF/qb449h48f71XDPgkUSOUg==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@open-draft/deferred-promise': 2.2.0
+ '@open-draft/logger': 0.3.0
+ '@open-draft/until': 2.1.0
+ is-node-process: 1.2.0
+ outvariant: 1.4.2
+ strict-event-emitter: 0.5.1
+
+ /@mswjs/interceptors@0.26.5:
+ resolution: {integrity: sha512-A8Q7XbzFZMCjfgB/QTS1wNdWzVa/SwTQDiSzR9KAgUaS+Mr9jLknXrI5Gvn88w8tFjlZxfwMinYIoFh8RMptig==}
engines: {node: '>=18'}
dependencies:
'@open-draft/deferred-promise': 2.2.0
@@ -2326,6 +2579,7 @@ packages:
is-node-process: 1.2.0
outvariant: 1.4.2
strict-event-emitter: 0.5.1
+ dev: false
/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1:
resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
@@ -2354,6 +2608,109 @@ packages:
fastq: 1.16.0
dev: true
+ /@octokit/auth-token@4.0.0:
+ resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==}
+ engines: {node: '>= 18'}
+ dev: true
+
+ /@octokit/core@5.1.0:
+ resolution: {integrity: sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==}
+ engines: {node: '>= 18'}
+ dependencies:
+ '@octokit/auth-token': 4.0.0
+ '@octokit/graphql': 7.0.2
+ '@octokit/request': 8.1.6
+ '@octokit/request-error': 5.0.1
+ '@octokit/types': 12.4.0
+ before-after-hook: 2.2.3
+ universal-user-agent: 6.0.1
+ dev: true
+
+ /@octokit/endpoint@9.0.4:
+ resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==}
+ engines: {node: '>= 18'}
+ dependencies:
+ '@octokit/types': 12.4.0
+ universal-user-agent: 6.0.1
+ dev: true
+
+ /@octokit/graphql@7.0.2:
+ resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==}
+ engines: {node: '>= 18'}
+ dependencies:
+ '@octokit/request': 8.1.6
+ '@octokit/types': 12.4.0
+ universal-user-agent: 6.0.1
+ dev: true
+
+ /@octokit/openapi-types@19.1.0:
+ resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==}
+ dev: true
+
+ /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.1.0):
+ resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': '>=5'
+ dependencies:
+ '@octokit/core': 5.1.0
+ '@octokit/types': 12.4.0
+ dev: true
+
+ /@octokit/plugin-request-log@4.0.0(@octokit/core@5.1.0):
+ resolution: {integrity: sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': '>=5'
+ dependencies:
+ '@octokit/core': 5.1.0
+ dev: true
+
+ /@octokit/plugin-rest-endpoint-methods@10.2.0(@octokit/core@5.1.0):
+ resolution: {integrity: sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ '@octokit/core': '>=5'
+ dependencies:
+ '@octokit/core': 5.1.0
+ '@octokit/types': 12.4.0
+ dev: true
+
+ /@octokit/request-error@5.0.1:
+ resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==}
+ engines: {node: '>= 18'}
+ dependencies:
+ '@octokit/types': 12.4.0
+ deprecation: 2.3.1
+ once: 1.4.0
+ dev: true
+
+ /@octokit/request@8.1.6:
+ resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==}
+ engines: {node: '>= 18'}
+ dependencies:
+ '@octokit/endpoint': 9.0.4
+ '@octokit/request-error': 5.0.1
+ '@octokit/types': 12.4.0
+ universal-user-agent: 6.0.1
+ dev: true
+
+ /@octokit/rest@20.0.2:
+ resolution: {integrity: sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==}
+ engines: {node: '>= 18'}
+ dependencies:
+ '@octokit/core': 5.1.0
+ '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.1.0)
+ '@octokit/plugin-request-log': 4.0.0(@octokit/core@5.1.0)
+ '@octokit/plugin-rest-endpoint-methods': 10.2.0(@octokit/core@5.1.0)
+ dev: true
+
+ /@octokit/types@12.4.0:
+ resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==}
+ dependencies:
+ '@octokit/openapi-types': 19.1.0
+ dev: true
+
/@open-draft/deferred-promise@2.2.0:
resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==}
@@ -2508,7 +2865,7 @@ packages:
/@simonwep/pickr@1.8.2:
resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
dependencies:
- core-js: 3.35.1
+ core-js: 3.36.0
nanopop: 2.4.1
dev: false
@@ -2519,9 +2876,9 @@ packages:
postcss: '>=7.0.0 || 5'
postcss-syntax: '>=0.36.2'
dependencies:
- '@babel/core': 7.23.7
+ '@babel/core': 7.23.9
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.33)
+ postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34)
transitivePeerDependencies:
- supports-color
dev: true
@@ -2534,20 +2891,20 @@ packages:
postcss-syntax: '>=0.36.2'
dependencies:
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.33)
+ postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34)
remark: 13.0.0
unist-util-find-all-after: 3.0.2
transitivePeerDependencies:
- supports-color
dev: true
- /@tinymce/tinymce-vue@5.1.1(vue@3.4.15):
+ /@tinymce/tinymce-vue@5.1.1(vue@3.4.19):
resolution: {integrity: sha512-iO57HOWesFOhsaqjA5Ea6sDvQBmJJH3/dq00Uvg7metlct2kLF+ctRgoDsetLt6gmeZ7COPftr814/XzqnJ/dg==}
peerDependencies:
vue: ^3.0.0
dependencies:
- tinymce: 6.8.2
- vue: 3.4.15(typescript@5.2.2)
+ tinymce: 6.8.3
+ vue: 3.4.19(typescript@5.3.3)
dev: false
/@trysound/sax@0.2.0:
@@ -2589,7 +2946,7 @@ packages:
resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
dependencies:
'@types/minimatch': 5.1.2
- '@types/node': 20.10.8
+ '@types/node': 20.11.16
dev: true
/@types/json-schema@7.0.15:
@@ -2616,10 +2973,6 @@ packages:
'@types/unist': 2.0.10
dev: true
- /@types/minimatch@3.0.5:
- resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
- dev: true
-
/@types/minimatch@5.1.2:
resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
dev: true
@@ -2628,11 +2981,15 @@ packages:
resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
dev: true
- /@types/node@20.10.8:
- resolution: {integrity: sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==}
+ /@types/mute-stream@0.0.4:
+ resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==}
+ dependencies:
+ '@types/node': 20.11.16
+
+ /@types/node@20.11.16:
+ resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==}
dependencies:
undici-types: 5.26.5
- dev: true
/@types/normalize-package-data@2.4.4:
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -2652,7 +3009,7 @@ packages:
/@types/svgo@2.6.4:
resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
dependencies:
- '@types/node': 20.10.8
+ '@types/node': 20.11.16
dev: true
/@types/unist@2.0.10:
@@ -2663,6 +3020,9 @@ packages:
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
dev: false
+ /@types/wrap-ansi@3.0.0:
+ resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==}
+
/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@7.32.0)(typescript@4.9.5):
resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2691,31 +3051,31 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==}
+ /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
- eslint: ^7.0.0 || ^8.0.0
+ '@typescript-eslint/parser': ^7.0.0
+ eslint: ^8.56.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@eslint-community/regexpp': 4.10.0
- '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.2.2)
- '@typescript-eslint/scope-manager': 6.20.0
- '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.2.2)
- '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.2.2)
- '@typescript-eslint/visitor-keys': 6.20.0
+ '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/scope-manager': 7.0.2
+ '@typescript-eslint/type-utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/visitor-keys': 7.0.2
debug: 4.3.4
eslint: 8.56.0
graphemer: 1.4.0
ignore: 5.3.0
natural-compare: 1.4.0
semver: 7.5.4
- ts-api-utils: 1.0.3(typescript@5.2.2)
- typescript: 5.2.2
+ ts-api-utils: 1.0.3(typescript@5.3.3)
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2758,23 +3118,23 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==}
+ /@typescript-eslint/parser@7.0.2(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
+ eslint: ^8.56.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 6.20.0
- '@typescript-eslint/types': 6.20.0
- '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.2.2)
- '@typescript-eslint/visitor-keys': 6.20.0
+ '@typescript-eslint/scope-manager': 7.0.2
+ '@typescript-eslint/types': 7.0.2
+ '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3)
+ '@typescript-eslint/visitor-keys': 7.0.2
debug: 4.3.4
eslint: 8.56.0
- typescript: 5.2.2
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2795,12 +3155,12 @@ packages:
'@typescript-eslint/visitor-keys': 5.62.0
dev: true
- /@typescript-eslint/scope-manager@6.20.0:
- resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==}
+ /@typescript-eslint/scope-manager@7.0.2:
+ resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.20.0
- '@typescript-eslint/visitor-keys': 6.20.0
+ '@typescript-eslint/types': 7.0.2
+ '@typescript-eslint/visitor-keys': 7.0.2
dev: true
/@typescript-eslint/type-utils@5.62.0(eslint@7.32.0)(typescript@4.9.5):
@@ -2823,22 +3183,22 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==}
+ /@typescript-eslint/type-utils@7.0.2(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
+ eslint: ^8.56.0
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.2.2)
- '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3)
+ '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
debug: 4.3.4
eslint: 8.56.0
- ts-api-utils: 1.0.3(typescript@5.2.2)
- typescript: 5.2.2
+ ts-api-utils: 1.0.3(typescript@5.3.3)
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2853,8 +3213,8 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/types@6.20.0:
- resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==}
+ /@typescript-eslint/types@7.0.2:
+ resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==}
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
@@ -2900,8 +3260,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/typescript-estree@6.20.0(typescript@5.2.2):
- resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==}
+ /@typescript-eslint/typescript-estree@7.0.2(typescript@5.3.3):
+ resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
@@ -2909,15 +3269,15 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 6.20.0
- '@typescript-eslint/visitor-keys': 6.20.0
+ '@typescript-eslint/types': 7.0.2
+ '@typescript-eslint/visitor-keys': 7.0.2
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.5.4
- ts-api-utils: 1.0.3(typescript@5.2.2)
- typescript: 5.2.2
+ ts-api-utils: 1.0.3(typescript@5.3.3)
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2942,18 +3302,18 @@ packages:
- typescript
dev: true
- /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.2.2):
- resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==}
+ /@typescript-eslint/utils@7.0.2(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- eslint: ^7.0.0 || ^8.0.0
+ eslint: ^8.56.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.6
- '@typescript-eslint/scope-manager': 6.20.0
- '@typescript-eslint/types': 6.20.0
- '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.2.2)
+ '@typescript-eslint/scope-manager': 7.0.2
+ '@typescript-eslint/types': 7.0.2
+ '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.3.3)
eslint: 8.56.0
semver: 7.5.4
transitivePeerDependencies:
@@ -2977,11 +3337,11 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
- /@typescript-eslint/visitor-keys@6.20.0:
- resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==}
+ /@typescript-eslint/visitor-keys@7.0.2:
+ resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.20.0
+ '@typescript-eslint/types': 7.0.2
eslint-visitor-keys: 3.4.3
dev: true
@@ -3056,243 +3416,221 @@ packages:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
- /@unocss/astro@0.58.4(vite@5.0.12):
- resolution: {integrity: sha512-feS8+f3oPmCeR1XF7isQjs3Z9ojM5Ssv0vCNR/dexPFdROfccK/7sIu1YnHWtVg1trPc1kMfI8XJRqfrHMdd5w==}
+ /@unocss/astro@0.58.5(vite@5.1.4):
+ resolution: {integrity: sha512-LtuVnj8oFAK9663OVhQO8KpdJFiOyyPsYfnOZlDCOFK3gHb/2WMrzdBwr1w8LoQF3bDedkFMKirVF7gWjyZiaw==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
peerDependenciesMeta:
vite:
optional: true
dependencies:
- '@unocss/core': 0.58.4
- '@unocss/reset': 0.58.4
- '@unocss/vite': 0.58.4(vite@5.0.12)
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
+ '@unocss/core': 0.58.5
+ '@unocss/reset': 0.58.5
+ '@unocss/vite': 0.58.5(vite@5.1.4)
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
transitivePeerDependencies:
- rollup
dev: true
- /@unocss/cli@0.58.4:
- resolution: {integrity: sha512-8dAs1TzzWCtb3FxoTsVtR2+JGkdmchuP0RvGlSywADf5FqYn9nbP0m3z4STtpPavHO9JaGbabStyjS0nA8Ck6w==}
+ /@unocss/cli@0.58.5:
+ resolution: {integrity: sha512-FzVVXO9ghsGtJpu9uR4o7JeM9gUfWNbVZZ/IfH+0WbDJuyx4rO/jwN55z0yA5QDkhvOz9DvzwPCBzLpTJ5q+Lw==}
engines: {node: '>=14'}
hasBin: true
dependencies:
'@ampproject/remapping': 2.2.1
'@rollup/pluginutils': 5.1.0
- '@unocss/config': 0.58.4
- '@unocss/core': 0.58.4
- '@unocss/preset-uno': 0.58.4
+ '@unocss/config': 0.58.5
+ '@unocss/core': 0.58.5
+ '@unocss/preset-uno': 0.58.5
cac: 6.7.14
chokidar: 3.5.3
colorette: 2.0.20
consola: 3.2.3
fast-glob: 3.3.2
- magic-string: 0.30.5
+ magic-string: 0.30.7
pathe: 1.1.2
perfect-debounce: 1.0.0
transitivePeerDependencies:
- rollup
dev: true
- /@unocss/config@0.58.4:
- resolution: {integrity: sha512-b/inDCOnhUPzobhj+SxRI7xeSwoAQU+3D3J5JoWZNPBI4OaJdwpuz40uLXl9VsPz5N6dc8/qa+FrSsgCjUcLTg==}
+ /@unocss/config@0.58.5:
+ resolution: {integrity: sha512-O1pLSeNXfG11QHaLSVwS9rJKvE4b9304IQ3UvOdbYN+7SAT4YTZ7JDU4ngO1KWyOFBO6RD0WspCR95pgqOqJiQ==}
engines: {node: '>=14'}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
unconfig: 0.3.11
dev: true
- /@unocss/core@0.58.4:
- resolution: {integrity: sha512-wh4pxXUCkhC+C/0ct74PMYeZgX+oWuHj2mnvr09nM0WmvOm1HeeISrDCCBGcxmKbErUk+D1v3JgzXF7b6j2l4g==}
+ /@unocss/core@0.58.5:
+ resolution: {integrity: sha512-qbPqL+46hf1/UelQOwUwpAuvm6buoss43DPYHOPdfNJ+NTWkSpATQMF0JKT04QE0QRQbHNSHdMe9ariG+IIlCw==}
dev: true
- /@unocss/extractor-arbitrary-variants@0.58.4:
- resolution: {integrity: sha512-TQlVtSQk8YdBU9KuTA5k6JBJ8d/aPrIsCWjDPfBvAqDvrll/dzwBCLoLTQMdCHFjCXCOYWKPum1ET+Wn9R+XbA==}
+ /@unocss/extractor-arbitrary-variants@0.58.5:
+ resolution: {integrity: sha512-KJQX0OJKzy4YjJo09h2la2Q+cn5IJ1JdyPVJJkzovHnv7jSBWzsfct+bj/6a+SJ4p4JBIqEJz3M/qxHv4EPJyA==}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
dev: true
- /@unocss/inspector@0.58.4:
- resolution: {integrity: sha512-BbsaIMqP6dqa3qCfkC0nkvjCg11JRigvFPU4319imTPcTHQNQSg35t2mVFPGZ+QYHlU/3ouBeogUQfJDHBmtVQ==}
+ /@unocss/inspector@0.58.5:
+ resolution: {integrity: sha512-cbJlIHEZ14puTtttf7sl+VZFDscV1DJiSseh9sSe0xJ/1NVBT9Bvkm09/1tnpLYAgF5gfa1CaCcjKmURgYzKrA==}
dependencies:
- '@unocss/core': 0.58.4
- '@unocss/rule-utils': 0.58.4
+ '@unocss/core': 0.58.5
+ '@unocss/rule-utils': 0.58.5
gzip-size: 6.0.0
sirv: 2.0.4
dev: true
- /@unocss/postcss@0.58.4(postcss@8.4.33):
- resolution: {integrity: sha512-pg2qCGakV1TyMApPdvuvqqmPDhgogPWF14J97BT5zIfGYITAJSmBsm7d3+06w6EuqIS+vcYRw+qCV3oX6qTeiA==}
+ /@unocss/postcss@0.58.5(postcss@8.4.34):
+ resolution: {integrity: sha512-m4L2YRdYfT6CV306Kl2VwEwbqa/92EpW4GE2Kqak1RuJyFJXBnWEEMJV4Uy6B1jWKLlCEWkuVUW33JUg7X6BxQ==}
engines: {node: '>=14'}
peerDependencies:
postcss: ^8.4.21 || 5
dependencies:
- '@unocss/config': 0.58.4
- '@unocss/core': 0.58.4
- '@unocss/rule-utils': 0.58.4
+ '@unocss/config': 0.58.5
+ '@unocss/core': 0.58.5
+ '@unocss/rule-utils': 0.58.5
css-tree: 2.3.1
fast-glob: 3.3.2
- magic-string: 0.30.5
- postcss: 8.4.33
+ magic-string: 0.30.7
+ postcss: 8.4.34
dev: true
- /@unocss/preset-attributify@0.58.4:
- resolution: {integrity: sha512-r7pDXgcOgGMmrMoqM4/w20KKn4PxF+/vpElatAGXW3V/tHJWFOLGzk+wYeCMgMxeC+vPzqyJkjTfoqYlZrlokQ==}
+ /@unocss/preset-attributify@0.58.5:
+ resolution: {integrity: sha512-OR4gUHamHCb4/LB/zZHlibaraTyILfFvRIzgmJnEb6lITGApQUl86qaJcTbTyfTfLVRufLG/JVeuz2HLUBPRXw==}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
dev: true
- /@unocss/preset-icons@0.58.4:
- resolution: {integrity: sha512-xdOe3PLfEWS4y+rA7Gxh/kDI82VkW0PbdoYO2FBwXH7a0JegdUDD5zuOTsTKAIymvQ7eVH53WXN9mcuhfNmdvQ==}
+ /@unocss/preset-icons@0.58.5:
+ resolution: {integrity: sha512-LDNXavHtWaIvMvBezT9O8yiqHJChVCEfTRO6YFVY0yy+wo5jHiuMh6iKeHVcwbYdn3NqHYmpi7b/hrXPMtODzA==}
dependencies:
- '@iconify/utils': 2.1.20
- '@unocss/core': 0.58.4
+ '@iconify/utils': 2.1.22
+ '@unocss/core': 0.58.5
ofetch: 1.3.3
transitivePeerDependencies:
- supports-color
dev: true
- /@unocss/preset-mini@0.58.4:
- resolution: {integrity: sha512-cpIWUYxLi4VCkkjxpNJOVqH9D32NX1ebRFaoAVnvCRsoj5TRsZJSdxs0WMN7reHT/CUHh0Wh6d3TfMCFxzbZ4g==}
+ /@unocss/preset-mini@0.58.5:
+ resolution: {integrity: sha512-WqD31fKUAN28OCUOyi1uremmLk0eTMqtCizjbbXsY/DP6RKYUT7trFAtppTcHWFhSQcknb4FURfAZppACsTVQQ==}
dependencies:
- '@unocss/core': 0.58.4
- '@unocss/extractor-arbitrary-variants': 0.58.4
- '@unocss/rule-utils': 0.58.4
+ '@unocss/core': 0.58.5
+ '@unocss/extractor-arbitrary-variants': 0.58.5
+ '@unocss/rule-utils': 0.58.5
dev: true
- /@unocss/preset-tagify@0.58.4:
- resolution: {integrity: sha512-1E3vQvg5Qy4tbgovvrV0JaIXFfcdhK4NCSz+MuUk5ZYgKGVDh4IEw0WPuic534nlLm9+YFqyCSLLyIs3bT/GYQ==}
+ /@unocss/preset-tagify@0.58.5:
+ resolution: {integrity: sha512-UB9IXi8vA/SzmmRLMWR7bzeBpxpiRo7y9xk3ruvDddYlsyiwIeDIMwG23YtcA6q41FDQvkrmvTxUEH9LFlv6aA==}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
dev: true
- /@unocss/preset-typography@0.58.4:
- resolution: {integrity: sha512-0Opt3Y0At4F03092iwGgz7HswRC2ElBXHR+IO9wWxSbldtpdmKzFJ/GBHEalzQjacWnyyzmRjabjA2quoQ8FQA==}
+ /@unocss/preset-typography@0.58.5:
+ resolution: {integrity: sha512-rFny4a9yxgY34XOom5euCqQaOLV8PpbTg0Pn+5FelUMG4OfMevTwBCe9JttFJcUc3cNTL2enkzIdMa3l66114g==}
dependencies:
- '@unocss/core': 0.58.4
- '@unocss/preset-mini': 0.58.4
+ '@unocss/core': 0.58.5
+ '@unocss/preset-mini': 0.58.5
dev: true
- /@unocss/preset-uno@0.58.4:
- resolution: {integrity: sha512-FWBPGIt0UcQHu58l75kvhB4vF2v+s2m0OW9DnIrPm3aY7Qj3q4yA2wdahR37qSsH+6vR3JP4+mV9WBrGjIsjrQ==}
+ /@unocss/preset-uno@0.58.5:
+ resolution: {integrity: sha512-vgq/R4f7RDmdROy+pX+PeE38I3SgYKd4LL7Wb1HJUaVwz7PkF0XHCynOTbwrPXnK1kp1cnZYYEww7/RiYp+IQQ==}
dependencies:
- '@unocss/core': 0.58.4
- '@unocss/preset-mini': 0.58.4
- '@unocss/preset-wind': 0.58.4
- '@unocss/rule-utils': 0.58.4
+ '@unocss/core': 0.58.5
+ '@unocss/preset-mini': 0.58.5
+ '@unocss/preset-wind': 0.58.5
+ '@unocss/rule-utils': 0.58.5
dev: true
- /@unocss/preset-web-fonts@0.58.4:
- resolution: {integrity: sha512-vcy20fIK37GdhesRpiWGvCvkJDQsSiRF1jxw3dy8J5n9kFpIV8DQoPWUIE0ePF4i5ky2dHSDxKaNOP1bxHdKGA==}
+ /@unocss/preset-web-fonts@0.58.5:
+ resolution: {integrity: sha512-WKZ5raSClFXhqzfAhApef3+fuMq6cjKBxvhJ1FBIxFKcSOvN8e2czty2iGQVl02yMsxBWMv0Bpfm7np+cCoI1w==}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
ofetch: 1.3.3
dev: true
- /@unocss/preset-wind@0.58.4:
- resolution: {integrity: sha512-e2F0HsqPXw+nD85MKIZ63mx5yUx5g8iPOtMw9/eEUeK67HrD+jFxeLq0hAM3ou3a4589QIzeg23LXAkM7gCzvg==}
+ /@unocss/preset-wind@0.58.5:
+ resolution: {integrity: sha512-54RkjLmlqMUlC8o8nDCVzB25D1zzK4eth+/3uQzt739qU0U92NxuZKY21ADj9Rp/mVhKBV5FKuXPjmYc6yTQRQ==}
dependencies:
- '@unocss/core': 0.58.4
- '@unocss/preset-mini': 0.58.4
- '@unocss/rule-utils': 0.58.4
+ '@unocss/core': 0.58.5
+ '@unocss/preset-mini': 0.58.5
+ '@unocss/rule-utils': 0.58.5
dev: true
- /@unocss/reset@0.58.4:
- resolution: {integrity: sha512-ZZTrAdl4WWmMjQdOqcOSWdgFH6kdFKZjPu4c6Ijxk7KvY2BW3nttTTBa7IYeuXFHVfcExUFqlOgRurt+NeWYyQ==}
+ /@unocss/reset@0.58.5:
+ resolution: {integrity: sha512-2wMrkCj3SSb5hrx9TKs5jZa34QIRkHv9FotbJutAPo7o8hx+XXn56ogzdoUrcFPJZJUx2R2nyOVbSlGMIjtFtw==}
dev: true
- /@unocss/rule-utils@0.58.4:
- resolution: {integrity: sha512-52Jp4I+joGTaDm7ehB/7uZ2kJL+9BZcYRDUVk4IDacDH5W9yxf1F75LzYT8jJVWXD/HIhiS0r9V6qhcBq2OWZw==}
+ /@unocss/rule-utils@0.58.5:
+ resolution: {integrity: sha512-w0sGJoeUGwMWLVFLEE9PDiv/fQcQqZnTIIQLYNCjTdqXDRlwTp9ACW0h47x/hAAIXdOtEOOBuTfjGD79GznUmA==}
engines: {node: '>=14'}
dependencies:
- '@unocss/core': 0.58.4
- magic-string: 0.30.5
+ '@unocss/core': 0.58.5
+ magic-string: 0.30.7
dev: true
- /@unocss/scope@0.58.4:
- resolution: {integrity: sha512-JrX98xoYnv0HN41WyzlvCCU1T3jnDOry+V8mm2dB9DvByzxI484X6gtKbOXlJFAPwOlZPU5Bru/XTDaL6yQQww==}
+ /@unocss/scope@0.58.5:
+ resolution: {integrity: sha512-vSentagAwYTnThGRCjzZ6eNSSRuzdWBl21L1BbvVNM91Ss/FugQnZ1hd0m3TrVvvStYXnFVHMQ/MjCAEJ4cMYg==}
dev: true
- /@unocss/transformer-attributify-jsx-babel@0.58.4:
- resolution: {integrity: sha512-yJd+OxAdgAxSQHVrqC6z19ibPqwwWO7J0TFf2caiP3hidSJ0iOvxcC0h62YCMr9dg4MsCpXaiHmGzxXbWGJ9nQ==}
+ /@unocss/transformer-attributify-jsx-babel@0.58.5:
+ resolution: {integrity: sha512-IAWSSKN3V0D87DE8bqaaPrZBWOdWQ06QNfi9vRuQJfRWOui87ezi9+NffjcnQw/ap9xMk1O6z74/WOW3zo6uYA==}
dependencies:
- '@babel/core': 7.23.7
- '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7)
- '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7)
- '@unocss/core': 0.58.4
+ '@babel/core': 7.23.9
+ '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9)
+ '@babel/preset-typescript': 7.23.3(@babel/core@7.23.9)
+ '@unocss/core': 0.58.5
transitivePeerDependencies:
- supports-color
dev: true
- /@unocss/transformer-attributify-jsx@0.58.4:
- resolution: {integrity: sha512-Y4YMVkgY/EF7x0llV8Y42WGs8b77hbXkPstRLNeRD5x8KBNKnjYUXADwhTBEKXjDR8/y5Ewie8u43i1nbh1XuA==}
+ /@unocss/transformer-attributify-jsx@0.58.5:
+ resolution: {integrity: sha512-sItEALyvAt3PZLd9Q1tlIATjaj3kWbS/qI3otUVsYBdZjP4UudzJ3D1fcWNL2WPlgz8KtlVzRUuxob8TQ4ibZg==}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
dev: true
- /@unocss/transformer-compile-class@0.58.4:
- resolution: {integrity: sha512-GPz462ogvtb64W0iweuB0Dcm1snGsGte0RlVpFUeG2eWlVqKMRvNRtYuive2Ky2zSZKefWJQBGk3Ti+7CM4wFA==}
+ /@unocss/transformer-compile-class@0.58.5:
+ resolution: {integrity: sha512-4MaxjaZo1rf5uHvDGa2mbnXxAYVYoj1+oRNpL4fE3FoExS1Ka2CiNGQn/S4bHMF51vmXMSWtOzurJpPD4BaJUQ==}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
dev: true
- /@unocss/transformer-directives@0.58.4:
- resolution: {integrity: sha512-5g2XVhwpmu2IrGHqPwxh+S3ZtkC/AwAtLIBLWB1QNhY3HVzAAaOzcif6uarngrCTTDQSDmsjzm8TSAq26LtCmQ==}
+ /@unocss/transformer-directives@0.58.5:
+ resolution: {integrity: sha512-allspF5TlT1B2bJSZ1houHScXOTaTPlatLiEmgQKzr/m93rCvktokaO5J6qeN2VXQdpTIsxdA5B8//7UkfTuIA==}
dependencies:
- '@unocss/core': 0.58.4
- '@unocss/rule-utils': 0.58.4
+ '@unocss/core': 0.58.5
+ '@unocss/rule-utils': 0.58.5
css-tree: 2.3.1
dev: true
- /@unocss/transformer-variant-group@0.58.4:
- resolution: {integrity: sha512-zpJ4TMor7aJ3SoLJm4jNBOSqikyXUdQEO1AxkILd9Zcn7JWRgudfFXiXnFP+WGJcs9mMLoUiISxzT8SKNCckfA==}
+ /@unocss/transformer-variant-group@0.58.5:
+ resolution: {integrity: sha512-SjUwGzKK5CVqn7Gg+3v3hV47ZUll7GcGu0vR3RCLO4gqEfFlZWMTHml1Sl2sY1WAca2iVcDRu+dp0RLxRG/dUA==}
dependencies:
- '@unocss/core': 0.58.4
+ '@unocss/core': 0.58.5
dev: true
- /@unocss/vite@0.58.4(vite@5.0.12):
- resolution: {integrity: sha512-TqD5fIXv6NF3v10FFrCII//GRbkou6Dn/OzW+d4T5f0KM5+T6DutljpYUdGo0+2QXKDroUWLAspFUaZUx8iwVw==}
+ /@unocss/vite@0.58.5(vite@5.1.4):
+ resolution: {integrity: sha512-p4o1XNX1rvjmoUqSSdua8XyWNg/d+YUChDd2L/xEty+6j2qv0wUaohs3UQ87vWlv632/UmgdX+2MbrgtqthCtw==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
dependencies:
'@ampproject/remapping': 2.2.1
'@rollup/pluginutils': 5.1.0
- '@unocss/config': 0.58.4
- '@unocss/core': 0.58.4
- '@unocss/inspector': 0.58.4
- '@unocss/scope': 0.58.4
- '@unocss/transformer-directives': 0.58.4
+ '@unocss/config': 0.58.5
+ '@unocss/core': 0.58.5
+ '@unocss/inspector': 0.58.5
+ '@unocss/scope': 0.58.5
+ '@unocss/transformer-directives': 0.58.5
chokidar: 3.5.3
fast-glob: 3.3.2
- magic-string: 0.30.5
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
+ magic-string: 0.30.7
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
transitivePeerDependencies:
- rollup
dev: true
- /@vitejs/plugin-legacy@5.3.0(esbuild@0.19.11)(terser@5.27.0)(vite@5.0.12):
- resolution: {integrity: sha512-BhW+WcJmEgW5G/1UQRiVQ7wz9/ZPnxqzExT9n0zAk4RlqQQ/26udIeXzdU8+03AGnaF61wmZlCspexgEnxFWMA==}
- engines: {node: ^18.0.0 || >=20.0.0}
- peerDependencies:
- terser: ^5.4.0
- vite: ^5.0.0
- dependencies:
- '@babel/core': 7.23.7
- '@babel/preset-env': 7.23.9(@babel/core@7.23.7)
- browserslist: 4.22.2
- core-js: 3.35.1
- esbuild-plugin-browserslist: 0.10.0(browserslist@4.22.2)(esbuild@0.19.11)
- magic-string: 0.30.5
- regenerator-runtime: 0.14.1
- systemjs: 6.14.3
- terser: 5.27.0
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
- transitivePeerDependencies:
- - esbuild
- - supports-color
- dev: true
-
- /@vitejs/plugin-vue-jsx@3.1.0(vite@5.0.12)(vue@3.4.15):
+ /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.19):
resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -3302,21 +3640,21 @@ packages:
'@babel/core': 7.23.7
'@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7)
'@vue/babel-plugin-jsx': 1.2.0(@babel/core@7.23.7)
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
- vue: 3.4.15(typescript@5.2.2)
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
+ vue: 3.4.19(typescript@5.3.3)
transitivePeerDependencies:
- supports-color
dev: true
- /@vitejs/plugin-vue@5.0.3(vite@5.0.12)(vue@3.4.15):
- resolution: {integrity: sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==}
+ /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.19):
+ resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
vite: ^5.0.0
vue: ^3.2.25
dependencies:
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
- vue: 3.4.15(typescript@5.2.2)
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: true
/@volar/language-core@1.11.1:
@@ -3376,48 +3714,48 @@ packages:
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.22.5
'@babel/parser': 7.23.6
- '@vue/compiler-sfc': 3.4.15
+ '@vue/compiler-sfc': 3.4.19
dev: true
- /@vue/compiler-core@3.4.15:
- resolution: {integrity: sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==}
+ /@vue/compiler-core@3.4.19:
+ resolution: {integrity: sha512-gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==}
dependencies:
- '@babel/parser': 7.23.6
- '@vue/shared': 3.4.15
+ '@babel/parser': 7.23.9
+ '@vue/shared': 3.4.19
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.0.2
- /@vue/compiler-dom@3.4.15:
- resolution: {integrity: sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==}
+ /@vue/compiler-dom@3.4.19:
+ resolution: {integrity: sha512-vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==}
dependencies:
- '@vue/compiler-core': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/compiler-core': 3.4.19
+ '@vue/shared': 3.4.19
- /@vue/compiler-sfc@3.4.15:
- resolution: {integrity: sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==}
+ /@vue/compiler-sfc@3.4.19:
+ resolution: {integrity: sha512-LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==}
dependencies:
- '@babel/parser': 7.23.6
- '@vue/compiler-core': 3.4.15
- '@vue/compiler-dom': 3.4.15
- '@vue/compiler-ssr': 3.4.15
- '@vue/shared': 3.4.15
+ '@babel/parser': 7.23.9
+ '@vue/compiler-core': 3.4.19
+ '@vue/compiler-dom': 3.4.19
+ '@vue/compiler-ssr': 3.4.19
+ '@vue/shared': 3.4.19
estree-walker: 2.0.2
- magic-string: 0.30.5
- postcss: 8.4.33
+ magic-string: 0.30.7
+ postcss: 8.4.35
source-map-js: 1.0.2
- /@vue/compiler-ssr@3.4.15:
- resolution: {integrity: sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==}
+ /@vue/compiler-ssr@3.4.19:
+ resolution: {integrity: sha512-P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==}
dependencies:
- '@vue/compiler-dom': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/compiler-dom': 3.4.19
+ '@vue/shared': 3.4.19
/@vue/devtools-api@6.5.1:
resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
dev: false
- /@vue/language-core@1.8.27(typescript@5.2.2):
+ /@vue/language-core@1.8.27(typescript@5.3.3):
resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==}
peerDependencies:
typescript: '*'
@@ -3427,70 +3765,70 @@ packages:
dependencies:
'@volar/language-core': 1.11.1
'@volar/source-map': 1.11.1
- '@vue/compiler-dom': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/compiler-dom': 3.4.19
+ '@vue/shared': 3.4.19
computeds: 0.0.1
minimatch: 9.0.3
muggle-string: 0.3.1
path-browserify: 1.0.1
- typescript: 5.2.2
+ typescript: 5.3.3
vue-template-compiler: 2.7.16
dev: true
- /@vue/reactivity@3.4.15:
- resolution: {integrity: sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==}
+ /@vue/reactivity@3.4.19:
+ resolution: {integrity: sha512-+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==}
dependencies:
- '@vue/shared': 3.4.15
+ '@vue/shared': 3.4.19
- /@vue/runtime-core@3.4.15:
- resolution: {integrity: sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==}
+ /@vue/runtime-core@3.4.19:
+ resolution: {integrity: sha512-/Z3tFwOrerJB/oyutmJGoYbuoadphDcJAd5jOuJE86THNZji9pYjZroQ2NFsZkTxOq0GJbb+s2kxTYToDiyZzw==}
dependencies:
- '@vue/reactivity': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/reactivity': 3.4.19
+ '@vue/shared': 3.4.19
- /@vue/runtime-dom@3.4.15:
- resolution: {integrity: sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==}
+ /@vue/runtime-dom@3.4.19:
+ resolution: {integrity: sha512-IyZzIDqfNCF0OyZOauL+F4yzjMPN2rPd8nhqPP2N1lBn3kYqJpPHHru+83Rkvo2lHz5mW+rEeIMEF9qY3PB94g==}
dependencies:
- '@vue/runtime-core': 3.4.15
- '@vue/shared': 3.4.15
+ '@vue/runtime-core': 3.4.19
+ '@vue/shared': 3.4.19
csstype: 3.1.3
- /@vue/server-renderer@3.4.15(vue@3.4.15):
- resolution: {integrity: sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==}
+ /@vue/server-renderer@3.4.19(vue@3.4.19):
+ resolution: {integrity: sha512-eAj2p0c429RZyyhtMRnttjcSToch+kTWxFPHlzGMkR28ZbF1PDlTcmGmlDxccBuqNd9iOQ7xPRPAGgPVj+YpQw==}
peerDependencies:
- vue: 3.4.15
+ vue: 3.4.19
dependencies:
- '@vue/compiler-ssr': 3.4.15
- '@vue/shared': 3.4.15
- vue: 3.4.15(typescript@5.2.2)
+ '@vue/compiler-ssr': 3.4.19
+ '@vue/shared': 3.4.19
+ vue: 3.4.19(typescript@5.3.3)
- /@vue/shared@3.4.15:
- resolution: {integrity: sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==}
+ /@vue/shared@3.4.19:
+ resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==}
/@vue/tsconfig@0.5.1:
resolution: {integrity: sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==}
dev: true
- /@vueuse/core@10.7.2(vue@3.4.15):
- resolution: {integrity: sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==}
+ /@vueuse/core@10.8.0(vue@3.4.19):
+ resolution: {integrity: sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==}
dependencies:
'@types/web-bluetooth': 0.0.20
- '@vueuse/metadata': 10.7.2
- '@vueuse/shared': 10.7.2(vue@3.4.15)
- vue-demi: 0.14.6(vue@3.4.15)
+ '@vueuse/metadata': 10.8.0
+ '@vueuse/shared': 10.8.0(vue@3.4.19)
+ vue-demi: 0.14.7(vue@3.4.19)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
dev: false
- /@vueuse/metadata@10.7.2:
- resolution: {integrity: sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==}
+ /@vueuse/metadata@10.8.0:
+ resolution: {integrity: sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==}
dev: false
- /@vueuse/shared@10.7.2(vue@3.4.15):
- resolution: {integrity: sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==}
+ /@vueuse/shared@10.8.0(vue@3.4.19):
+ resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==}
dependencies:
- vue-demi: 0.14.6(vue@3.4.15)
+ vue-demi: 0.14.7(vue@3.4.19)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -3623,14 +3961,14 @@ packages:
engines: {node: '>=12'}
dev: true
- /ant-design-vue@4.1.2(vue@3.4.15):
+ /ant-design-vue@4.1.2(vue@3.4.19):
resolution: {integrity: sha512-ynFkDJLlHgumeK6Hr1UZ7PvQNZ1uBcri/pmejBdS3kRqHeA5VRsxneYDwa8YxA+uYB5YfT2jpYsSHsiMiCjRGg==}
engines: {node: '>=12.22.0'}
peerDependencies:
vue: '>=3.2.0'
dependencies:
'@ant-design/colors': 6.0.0
- '@ant-design/icons-vue': 7.0.1(vue@3.4.15)
+ '@ant-design/icons-vue': 7.0.1(vue@3.4.19)
'@babel/runtime': 7.23.8
'@ctrl/tinycolor': 3.6.1
'@emotion/hash': 0.9.1
@@ -3649,8 +3987,8 @@ packages:
shallow-equal: 1.2.1
stylis: 4.3.1
throttle-debounce: 5.0.0
- vue: 3.4.15(typescript@5.2.2)
- vue-types: 3.0.2(vue@3.4.15)
+ vue: 3.4.19(typescript@5.3.3)
+ vue-types: 3.0.2(vue@3.4.19)
warning: 4.0.3
dev: false
@@ -3701,11 +4039,6 @@ packages:
is-array-buffer: 3.0.2
dev: true
- /array-differ@3.0.0:
- resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==}
- engines: {node: '>=8'}
- dev: true
-
/array-ify@1.0.0:
resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
dev: true
@@ -3794,11 +4127,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /arrify@2.0.1:
- resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
- engines: {node: '>=8'}
- dev: true
-
/asap@2.0.6:
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
dev: true
@@ -3825,7 +4153,6 @@ packages:
/asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
- dev: false
/at-least-node@1.0.0:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
@@ -3856,15 +4183,14 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /axios@1.6.7:
+ /axios@1.6.7(debug@4.3.4):
resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==}
dependencies:
- follow-redirects: 1.15.5
+ follow-redirects: 1.15.5(debug@4.3.4)
form-data: 4.0.0
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
- dev: false
/babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.7):
resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==}
@@ -3930,6 +4256,10 @@ packages:
pascalcase: 0.1.1
dev: true
+ /before-after-hook@2.2.3:
+ resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
+ dev: true
+
/big.js@5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
dev: true
@@ -4001,6 +4331,17 @@ packages:
update-browserslist-db: 1.0.13(browserslist@4.22.2)
dev: true
+ /browserslist@4.23.0:
+ resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001588
+ electron-to-chromium: 1.4.679
+ node-releases: 2.0.14
+ update-browserslist-db: 1.0.13(browserslist@4.23.0)
+ dev: true
+
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
dev: true
@@ -4085,6 +4426,10 @@ packages:
resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==}
dev: true
+ /caniuse-lite@1.0.30001588:
+ resolution: {integrity: sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==}
+ dev: true
+
/cfb@1.2.2:
resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==}
engines: {node: '>=0.8'}
@@ -4204,6 +4549,10 @@ packages:
resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
engines: {node: '>= 10'}
+ /cli-width@4.1.0:
+ resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
+ engines: {node: '>= 12'}
+
/cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
@@ -4273,7 +4622,6 @@ packages:
engines: {node: '>= 0.8'}
dependencies:
delayed-stream: 1.0.0
- dev: false
/commander@11.1.0:
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
@@ -4304,13 +4652,13 @@ packages:
engines: {node: '>= 12'}
dev: true
- /commitizen@4.3.0(@types/node@20.10.8)(typescript@5.2.2):
+ /commitizen@4.3.0(@types/node@20.11.16)(typescript@5.3.3):
resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==}
engines: {node: '>= 12'}
hasBin: true
dependencies:
cachedir: 2.3.0
- cz-conventional-changelog: 3.3.0(@types/node@20.10.8)(typescript@5.2.2)
+ cz-conventional-changelog: 3.3.0(@types/node@20.11.16)(typescript@5.3.3)
dedent: 0.7.0
detect-indent: 6.1.0
find-node-modules: 2.1.3
@@ -4511,7 +4859,7 @@ packages:
/core-js-compat@3.35.1:
resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==}
dependencies:
- browserslist: 4.22.2
+ browserslist: 4.23.0
dev: true
/core-js@2.6.12:
@@ -4520,8 +4868,8 @@ packages:
requiresBuild: true
dev: false
- /core-js@3.35.1:
- resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==}
+ /core-js@3.36.0:
+ resolution: {integrity: sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==}
requiresBuild: true
/cors@2.8.5:
@@ -4532,18 +4880,19 @@ packages:
vary: 1.1.2
dev: true
- /cosmiconfig-typescript-loader@5.0.0(@types/node@20.10.8)(cosmiconfig@8.3.6)(typescript@5.2.2):
+ /cosmiconfig-typescript-loader@5.0.0(@types/node@20.11.16)(cosmiconfig@8.3.6)(typescript@5.3.3):
resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==}
engines: {node: '>=v16'}
+ requiresBuild: true
peerDependencies:
'@types/node': '*'
cosmiconfig: '>=8.2'
typescript: '>=4'
dependencies:
- '@types/node': 20.10.8
- cosmiconfig: 8.3.6(typescript@5.2.2)
+ '@types/node': 20.11.16
+ cosmiconfig: 8.3.6(typescript@5.3.3)
jiti: 1.21.0
- typescript: 5.2.2
+ typescript: 5.3.3
dev: true
/cosmiconfig@7.1.0:
@@ -4557,9 +4906,10 @@ packages:
yaml: 1.10.2
dev: true
- /cosmiconfig@8.3.6(typescript@5.2.2):
+ /cosmiconfig@8.3.6(typescript@5.3.3):
resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
engines: {node: '>=14'}
+ requiresBuild: true
peerDependencies:
typescript: '>=4.9.5'
peerDependenciesMeta:
@@ -4570,10 +4920,10 @@ packages:
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
- typescript: 5.2.2
+ typescript: 5.3.3
dev: true
- /cosmiconfig@9.0.0(typescript@5.2.2):
+ /cosmiconfig@9.0.0(typescript@5.3.3):
resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
engines: {node: '>=14'}
peerDependencies:
@@ -4586,7 +4936,7 @@ packages:
import-fresh: 3.3.0
js-yaml: 4.1.0
parse-json: 5.2.0
- typescript: 5.2.2
+ typescript: 5.3.3
dev: true
/crc-32@1.2.2:
@@ -4672,18 +5022,18 @@ packages:
/csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
- /cz-conventional-changelog@3.3.0(@types/node@20.10.8)(typescript@5.2.2):
+ /cz-conventional-changelog@3.3.0(@types/node@20.11.16)(typescript@5.3.3):
resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==}
engines: {node: '>= 10'}
dependencies:
chalk: 2.4.2
- commitizen: 4.3.0(@types/node@20.10.8)(typescript@5.2.2)
+ commitizen: 4.3.0(@types/node@20.11.16)(typescript@5.3.3)
conventional-commit-types: 3.0.0
lodash.map: 4.6.0
longest: 2.0.1
word-wrap: 1.2.5
optionalDependencies:
- '@commitlint/load': 18.6.0(@types/node@20.10.8)(typescript@5.2.2)
+ '@commitlint/load': 18.6.0(@types/node@20.11.16)(typescript@5.3.3)
transitivePeerDependencies:
- '@types/node'
- typescript
@@ -4745,7 +5095,6 @@ packages:
optional: true
dependencies:
ms: 2.1.2
- dev: true
/decamelize-keys@1.1.1:
resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
@@ -4824,7 +5173,10 @@ packages:
/delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
- dev: false
+
+ /deprecation@2.3.1:
+ resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==}
+ dev: true
/destr@2.0.2:
resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==}
@@ -4974,17 +5326,21 @@ packages:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
dev: true
- /echarts@5.4.3:
- resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==}
+ /echarts@5.5.0:
+ resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==}
dependencies:
tslib: 2.3.0
- zrender: 5.4.4
+ zrender: 5.5.0
dev: false
/electron-to-chromium@1.4.640:
resolution: {integrity: sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA==}
dev: true
+ /electron-to-chromium@1.4.679:
+ resolution: {integrity: sha512-NhQMsz5k0d6m9z3qAxnsOR/ebal4NAGsrNVRwcDo4Kc/zQ7KdsTKZUxZoygHcVRb0QDW3waEDIcE3isZ79RP6g==}
+ dev: true
+
/emoji-regex@10.3.0:
resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==}
dev: true
@@ -5173,21 +5529,6 @@ packages:
es6-symbol: 3.1.3
dev: true
- /esbuild-plugin-browserslist@0.10.0(browserslist@4.22.2)(esbuild@0.19.11):
- resolution: {integrity: sha512-rZWFcp3l+73xDiJB+Vl9UqP1VVs+L4E0lygbwJl6UTmW2qQago7DLT56hBu0vocH/TtZsAcRHj0+qHqkkB5Gww==}
- engines: {node: '>=18'}
- peerDependencies:
- browserslist: ^4.21.8
- esbuild: ~0.19.2
- dependencies:
- browserslist: 4.22.2
- debug: 4.3.4
- esbuild: 0.19.11
- zod: 3.22.4
- transitivePeerDependencies:
- - supports-color
- dev: true
-
/esbuild@0.19.11:
resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==}
engines: {node: '>=12'}
@@ -5287,7 +5628,7 @@ packages:
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -5308,7 +5649,7 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
debug: 3.2.7
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
@@ -5326,7 +5667,7 @@ packages:
eslint-rule-composer: 0.3.0
dev: true
- /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0):
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0):
resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
@@ -5336,7 +5677,7 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.3.3)
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
array.prototype.flat: 1.3.2
@@ -5345,7 +5686,7 @@ packages:
doctrine: 2.1.0
eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -5379,7 +5720,7 @@ packages:
- typescript
dev: true
- /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4):
+ /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5):
resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -5395,7 +5736,7 @@ packages:
dependencies:
eslint: 8.56.0
eslint-config-prettier: 9.1.0(eslint@8.56.0)
- prettier: 3.2.4
+ prettier: 3.2.5
prettier-linter-helpers: 1.0.0
synckit: 0.8.8
dev: true
@@ -5515,8 +5856,8 @@ packages:
peerDependencies:
eslint: '>=7.0.0'
dependencies:
- '@babel/core': 7.23.7
- '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@7.32.0)
+ '@babel/core': 7.23.9
+ '@babel/eslint-parser': 7.23.3(@babel/core@7.23.9)(eslint@7.32.0)
eslint: 7.32.0
eslint-visitor-keys: 2.1.0
esquery: 1.5.0
@@ -5997,7 +6338,7 @@ packages:
resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
dev: true
- /follow-redirects@1.15.5:
+ /follow-redirects@1.15.5(debug@4.3.4):
resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==}
engines: {node: '>=4.0'}
peerDependencies:
@@ -6005,7 +6346,8 @@ packages:
peerDependenciesMeta:
debug:
optional: true
- dev: false
+ dependencies:
+ debug: 4.3.4
/for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
@@ -6033,7 +6375,6 @@ packages:
asynckit: 0.4.0
combined-stream: 1.0.8
mime-types: 2.1.35
- dev: false
/frac@1.1.2:
resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
@@ -6536,8 +6877,8 @@ packages:
engines: {node: '>=16.17.0'}
dev: true
- /husky@9.0.7:
- resolution: {integrity: sha512-vWdusw+y12DUEeoZqW1kplOFqk3tedGV8qlga8/SF6a3lOiWLqGZZQvfWvY0fQYdfiRi/u1DFNpudTSV9l1aCg==}
+ /husky@9.0.10:
+ resolution: {integrity: sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA==}
engines: {node: '>=18'}
hasBin: true
dev: true
@@ -6658,6 +6999,7 @@ packages:
strip-ansi: 6.0.1
through: 2.3.8
wrap-ansi: 6.2.0
+ dev: false
/internal-slot@1.0.6:
resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
@@ -7367,8 +7709,8 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
- /lint-staged@15.2.1:
- resolution: {integrity: sha512-dhwAPnM85VdshybV9FWI/9ghTvMLoQLEXgVMx+ua2DN7mdfzd/tRfoU2yhMcBac0RHkofoxdnnJUokr8s4zKmQ==}
+ /lint-staged@15.2.2:
+ resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==}
engines: {node: '>=18.12.0'}
hasBin: true
dependencies:
@@ -7468,6 +7810,7 @@ packages:
/lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+ requiresBuild: true
dev: true
/lodash.kebabcase@4.1.1:
@@ -7484,6 +7827,7 @@ packages:
/lodash.mergewith@4.6.2:
resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==}
+ requiresBuild: true
dev: true
/lodash.snakecase@4.1.1:
@@ -7504,6 +7848,7 @@ packages:
/lodash.uniq@4.5.0:
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+ requiresBuild: true
dev: true
/lodash.upperfirst@4.3.1:
@@ -7579,6 +7924,13 @@ packages:
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
+ /magic-string@0.30.7:
+ resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
/make-dir@2.1.0:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
@@ -7790,14 +8142,12 @@ packages:
/mime-db@1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
- dev: false
/mime-types@2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
- dev: false
/mime@1.6.0:
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
@@ -7908,13 +8258,12 @@ packages:
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- dev: true
/ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
dev: true
- /msw@2.1.5(typescript@5.2.2):
+ /msw@2.1.5(typescript@5.3.3):
resolution: {integrity: sha512-r39AZk4taMmUEYwtzDAgFy38feqJy1yaKykvo0QE8q7H7c28yH/WIlOmE7oatjkC3dMgpTYfND8MaxeywgU+Yg==}
engines: {node: '>=18'}
hasBin: true
@@ -7928,7 +8277,7 @@ packages:
'@bundled-es-modules/cookie': 2.0.0
'@bundled-es-modules/statuses': 1.0.1
'@mswjs/cookies': 1.1.0
- '@mswjs/interceptors': 0.25.15
+ '@mswjs/interceptors': 0.25.16
'@open-draft/until': 2.1.0
'@types/cookie': 0.6.0
'@types/statuses': 2.0.4
@@ -7942,7 +8291,38 @@ packages:
path-to-regexp: 6.2.1
strict-event-emitter: 0.5.1
type-fest: 4.9.0
- typescript: 5.2.2
+ typescript: 5.3.3
+ yargs: 17.7.2
+ dev: false
+
+ /msw@2.2.1(typescript@5.3.3):
+ resolution: {integrity: sha512-DCsZAQwan+2onEcpD86fiEnCKW4IvYzqcwDq/2TIoeNrmBqNp/mJW4wHQyxcoYrRPwgujin7wDFflqiSO1iT/w==}
+ engines: {node: '>=18'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ typescript: '>= 4.7.x <= 5.3.x'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@bundled-es-modules/cookie': 2.0.0
+ '@bundled-es-modules/statuses': 1.0.1
+ '@inquirer/confirm': 3.0.0
+ '@mswjs/cookies': 1.1.0
+ '@mswjs/interceptors': 0.25.16
+ '@open-draft/until': 2.1.0
+ '@types/cookie': 0.6.0
+ '@types/statuses': 2.0.4
+ chalk: 4.1.2
+ graphql: 16.8.1
+ headers-polyfill: 4.0.2
+ is-node-process: 1.2.0
+ outvariant: 1.4.2
+ path-to-regexp: 6.2.1
+ strict-event-emitter: 0.5.1
+ type-fest: 4.9.0
+ typescript: 5.3.3
yargs: 17.7.2
/muggle-string@0.3.1:
@@ -7953,20 +8333,13 @@ packages:
resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==}
dev: true
- /multimatch@5.0.0:
- resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
- engines: {node: '>=10'}
- dependencies:
- '@types/minimatch': 3.0.5
- array-differ: 3.0.0
- array-union: 2.1.0
- arrify: 2.0.1
- minimatch: 3.1.2
- dev: true
-
/mute-stream@0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+ /mute-stream@1.0.0:
+ resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
/mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
dependencies:
@@ -8537,6 +8910,11 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+ /picomatch@3.0.1:
+ resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==}
+ engines: {node: '>=10'}
+ dev: true
+
/pidtree@0.6.0:
resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
engines: {node: '>=0.10'}
@@ -8550,7 +8928,7 @@ packages:
dev: true
optional: true
- /pinia@2.1.7(typescript@5.2.2)(vue@3.4.15):
+ /pinia@2.1.7(typescript@5.3.3)(vue@3.4.19):
resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==}
peerDependencies:
'@vue/composition-api': ^1.4.0
@@ -8563,9 +8941,9 @@ packages:
optional: true
dependencies:
'@vue/devtools-api': 6.5.1
- typescript: 5.2.2
- vue: 3.4.15(typescript@5.2.2)
- vue-demi: 0.14.6(vue@3.4.15)
+ typescript: 5.3.3
+ vue: 3.4.19(typescript@5.3.3)
+ vue-demi: 0.14.6(vue@3.4.19)
dev: false
/pirates@4.0.6:
@@ -8606,7 +8984,7 @@ packages:
dependencies:
htmlparser2: 3.10.1
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.33)
+ postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34)
dev: true
/postcss-html@1.6.0:
@@ -8615,8 +8993,8 @@ packages:
dependencies:
htmlparser2: 8.0.2
js-tokens: 8.0.2
- postcss: 8.4.33
- postcss-safe-parser: 6.0.0(postcss@8.4.33)
+ postcss: 8.4.34
+ postcss-safe-parser: 6.0.0(postcss@8.4.34)
dev: true
/postcss-less@3.1.4:
@@ -8630,19 +9008,19 @@ packages:
resolution: {integrity: sha512-C92S4sHlbDpefJ2QQJjrucCcypq3+KZPstjfuvgOCNnGx0tF9h8hXgAlOIATGAxMXZXaF+nVp+/Mi8pCAWdSmw==}
engines: {node: '>=10'}
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.35
dev: true
- /postcss-less@6.0.0(postcss@8.4.33):
+ /postcss-less@6.0.0(postcss@8.4.34):
resolution: {integrity: sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==}
engines: {node: '>=12'}
peerDependencies:
postcss: ^8.3.5 || 5
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.34
dev: true
- /postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.2):
+ /postcss-load-config@4.0.2(postcss@8.4.34)(ts-node@10.9.2):
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
peerDependencies:
@@ -8655,8 +9033,8 @@ packages:
optional: true
dependencies:
lilconfig: 3.0.0
- postcss: 8.4.33
- ts-node: 10.9.2(@types/node@20.10.8)(typescript@5.2.2)
+ postcss: 8.4.34
+ ts-node: 10.9.2(@types/node@20.11.16)(typescript@5.3.3)
yaml: 2.3.4
dev: true
@@ -8683,22 +9061,22 @@ packages:
postcss: 7.0.39
dev: true
- /postcss-safe-parser@6.0.0(postcss@8.4.33):
+ /postcss-safe-parser@6.0.0(postcss@8.4.34):
resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.3.3 || 5
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.34
dev: true
- /postcss-safe-parser@7.0.0(postcss@8.4.33):
+ /postcss-safe-parser@7.0.0(postcss@8.4.34):
resolution: {integrity: sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==}
engines: {node: '>=18.0'}
peerDependencies:
postcss: ^8.4.31 || 5
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.34
dev: true
/postcss-sass@0.4.4:
@@ -8723,24 +9101,24 @@ packages:
util-deprecate: 1.0.2
dev: true
- /postcss-sorting@6.0.0(postcss@8.4.33):
+ /postcss-sorting@6.0.0(postcss@8.4.35):
resolution: {integrity: sha512-bYJ0vgAiGbjCBKi7B07CzsBc9eM84nLEbavUmwNp8rAa+PNyrgdH+6PpnqTtciLuUs99c4rFQQmCaYgeBQYmSQ==}
peerDependencies:
postcss: ^8.0.4 || 5
dependencies:
lodash: 4.17.21
- postcss: 8.4.33
+ postcss: 8.4.35
dev: true
- /postcss-sorting@8.0.2(postcss@8.4.33):
+ /postcss-sorting@8.0.2(postcss@8.4.34):
resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==}
peerDependencies:
postcss: ^8.4.20 || 5
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.34
dev: true
- /postcss-syntax@0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.33):
+ /postcss-syntax@0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34):
resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==}
peerDependencies:
postcss: '>=5.0.0 || 5'
@@ -8761,9 +9139,9 @@ packages:
postcss-scss:
optional: true
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.34
postcss-html: 1.6.0
- postcss-less: 6.0.0(postcss@8.4.33)
+ postcss-less: 6.0.0(postcss@8.4.34)
dev: true
/postcss-value-parser@4.2.0:
@@ -8788,8 +9166,17 @@ packages:
source-map: 0.6.1
dev: true
- /postcss@8.4.33:
- resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
+ /postcss@8.4.34:
+ resolution: {integrity: sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /postcss@8.4.35:
+ resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
@@ -8860,9 +9247,9 @@ packages:
peerDependencies:
prettier: '>= 2.0.0'
dependencies:
- postcss: 8.4.33
+ postcss: 8.4.35
postcss-less: 4.0.1
- postcss-sorting: 6.0.0(postcss@8.4.33)
+ postcss-sorting: 6.0.0(postcss@8.4.35)
prettier: 2.8.8
dev: true
@@ -8872,26 +9259,27 @@ packages:
hasBin: true
dev: true
- /prettier@3.2.4:
- resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
+ /prettier@3.2.5:
+ resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==}
engines: {node: '>=14'}
hasBin: true
dev: true
- /pretty-quick@3.1.4(prettier@3.2.4):
- resolution: {integrity: sha512-/sx+sUrD52omQQII19m7Zw4gZevQTbA73HDMqzFoBIAf6pCL4kVxSk3O9IRN9Ud/wt/Q068/WOdgiBJeMI7EbQ==}
- engines: {node: '>=10.13'}
+ /pretty-quick@4.0.0(prettier@3.2.5):
+ resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==}
+ engines: {node: '>=14'}
hasBin: true
peerDependencies:
- prettier: ^2.0.0
+ prettier: ^3.0.0
dependencies:
- chalk: 4.1.2
- execa: 4.1.0
- find-up: 4.1.0
+ execa: 5.1.1
+ find-up: 5.0.0
ignore: 5.3.0
mri: 1.2.0
- multimatch: 5.0.0
- prettier: 3.2.4
+ picocolors: 1.0.0
+ picomatch: 3.0.1
+ prettier: 3.2.5
+ tslib: 2.6.2
dev: true
/progress@2.0.3:
@@ -8909,7 +9297,6 @@ packages:
/proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
- dev: false
/prr@1.0.1:
resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
@@ -9287,6 +9674,10 @@ packages:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
+ /run-async@3.0.0:
+ resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==}
+ engines: {node: '>=0.12.0'}
+
/run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
@@ -9461,7 +9852,6 @@ packages:
/signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- dev: true
/sirv@2.0.4:
resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
@@ -9822,7 +10212,7 @@ packages:
stylelint: 13.13.1
dev: true
- /stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.2.0):
+ /stylelint-config-html@1.1.0(postcss-html@1.6.0)(stylelint@16.2.1):
resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==}
engines: {node: ^12 || >=14}
peerDependencies:
@@ -9830,7 +10220,7 @@ packages:
stylelint: '>=14.0.0'
dependencies:
postcss-html: 1.6.0
- stylelint: 16.2.0(typescript@5.2.2)
+ stylelint: 16.2.1(typescript@5.3.3)
dev: true
/stylelint-config-prettier@8.0.2(stylelint@13.13.1):
@@ -9843,18 +10233,18 @@ packages:
stylelint: 13.13.1
dev: true
- /stylelint-config-property-sort-order-smacss@10.0.0(stylelint@16.2.0):
+ /stylelint-config-property-sort-order-smacss@10.0.0(stylelint@16.2.1):
resolution: {integrity: sha512-NuiTgyqD8UdYY1IpTBIodBbrWKwaib5r8sq5kGHQ52UrmT8O7Fa8ZWYGipSZw6k9tGoljl9Hng2jtH+wBTMa1Q==}
engines: {node: '>=18.12.0'}
peerDependencies:
stylelint: ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
css-property-sort-order-smacss: 2.2.0
- stylelint: 16.2.0(typescript@5.2.2)
- stylelint-order: 6.0.4(stylelint@16.2.0)
+ stylelint: 16.2.1(typescript@5.3.3)
+ stylelint-order: 6.0.4(stylelint@16.2.1)
dev: true
- /stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.2.0):
+ /stylelint-config-recommended-vue@1.5.0(postcss-html@1.6.0)(stylelint@16.2.1):
resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==}
engines: {node: ^12 || >=14}
peerDependencies:
@@ -9863,18 +10253,18 @@ packages:
dependencies:
postcss-html: 1.6.0
semver: 7.5.4
- stylelint: 16.2.0(typescript@5.2.2)
- stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.2.0)
- stylelint-config-recommended: 14.0.0(stylelint@16.2.0)
+ stylelint: 16.2.1(typescript@5.3.3)
+ stylelint-config-html: 1.1.0(postcss-html@1.6.0)(stylelint@16.2.1)
+ stylelint-config-recommended: 14.0.0(stylelint@16.2.1)
dev: true
- /stylelint-config-recommended@14.0.0(stylelint@16.2.0):
+ /stylelint-config-recommended@14.0.0(stylelint@16.2.1):
resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==}
engines: {node: '>=18.12.0'}
peerDependencies:
stylelint: ^16.0.0
dependencies:
- stylelint: 16.2.0(typescript@5.2.2)
+ stylelint: 16.2.1(typescript@5.3.3)
dev: true
/stylelint-config-recommended@3.0.0(stylelint@13.13.1):
@@ -9894,14 +10284,14 @@ packages:
stylelint-config-recommended: 3.0.0(stylelint@13.13.1)
dev: true
- /stylelint-config-standard@36.0.0(stylelint@16.2.0):
+ /stylelint-config-standard@36.0.0(stylelint@16.2.1):
resolution: {integrity: sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug==}
engines: {node: '>=18.12.0'}
peerDependencies:
stylelint: ^16.1.0
dependencies:
- stylelint: 16.2.0(typescript@5.2.2)
- stylelint-config-recommended: 14.0.0(stylelint@16.2.0)
+ stylelint: 16.2.1(typescript@5.3.3)
+ stylelint-config-recommended: 14.0.0(stylelint@16.2.1)
dev: true
/stylelint-declaration-block-no-ignored-properties@2.8.0(stylelint@13.13.1):
@@ -9913,26 +10303,26 @@ packages:
stylelint: 13.13.1
dev: true
- /stylelint-order@6.0.4(stylelint@16.2.0):
+ /stylelint-order@6.0.4(stylelint@16.2.1):
resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==}
peerDependencies:
stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1
dependencies:
- postcss: 8.4.33
- postcss-sorting: 8.0.2(postcss@8.4.33)
- stylelint: 16.2.0(typescript@5.2.2)
+ postcss: 8.4.34
+ postcss-sorting: 8.0.2(postcss@8.4.34)
+ stylelint: 16.2.1(typescript@5.3.3)
dev: true
- /stylelint-prettier@5.0.0(prettier@3.2.4)(stylelint@16.2.0):
+ /stylelint-prettier@5.0.0(prettier@3.2.5)(stylelint@16.2.1):
resolution: {integrity: sha512-RHfSlRJIsaVg5Br94gZVdWlz/rBTyQzZflNE6dXvSxt/GthWMY3gEHsWZEBaVGg7GM+XrtVSp4RznFlB7i0oyw==}
engines: {node: '>=18.12.0'}
peerDependencies:
prettier: '>=3.0.0'
stylelint: '>=16.0.0'
dependencies:
- prettier: 3.2.4
+ prettier: 3.2.5
prettier-linter-helpers: 1.0.0
- stylelint: 16.2.0(typescript@5.2.2)
+ stylelint: 16.2.1(typescript@5.3.3)
dev: true
/stylelint@13.13.1:
@@ -9975,7 +10365,7 @@ packages:
postcss-sass: 0.4.4
postcss-scss: 2.1.1
postcss-selector-parser: 6.0.15
- postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.33)
+ postcss-syntax: 0.36.2(postcss-html@1.6.0)(postcss-less@6.0.0)(postcss@8.4.34)
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
slash: 3.0.0
@@ -9994,8 +10384,8 @@ packages:
- supports-color
dev: true
- /stylelint@16.2.0(typescript@5.2.2):
- resolution: {integrity: sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==}
+ /stylelint@16.2.1(typescript@5.3.3):
+ resolution: {integrity: sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==}
engines: {node: '>=18.12.0'}
hasBin: true
dependencies:
@@ -10005,7 +10395,7 @@ packages:
'@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15)
balanced-match: 2.0.0
colord: 2.9.3
- cosmiconfig: 9.0.0(typescript@5.2.2)
+ cosmiconfig: 9.0.0(typescript@5.3.3)
css-functions-list: 3.2.1
css-tree: 2.3.1
debug: 4.3.4
@@ -10025,9 +10415,9 @@ packages:
micromatch: 4.0.5
normalize-path: 3.0.0
picocolors: 1.0.0
- postcss: 8.4.33
+ postcss: 8.4.34
postcss-resolve-nested-selector: 0.1.1
- postcss-safe-parser: 7.0.0(postcss@8.4.33)
+ postcss-safe-parser: 7.0.0(postcss@8.4.34)
postcss-selector-parser: 6.0.15
postcss-value-parser: 4.2.0
resolve-from: 5.0.0
@@ -10177,10 +10567,6 @@ packages:
tslib: 2.6.2
dev: true
- /systemjs@6.14.3:
- resolution: {integrity: sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==}
- dev: true
-
/table@6.8.1:
resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==}
engines: {node: '>=10.0.0'}
@@ -10204,8 +10590,8 @@ packages:
temp-dir: 3.0.0
dev: true
- /terser@5.27.0:
- resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==}
+ /terser@5.27.2:
+ resolution: {integrity: sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -10266,8 +10652,8 @@ packages:
resolution: {integrity: sha512-uHNGu4evFt/8eNLldazeAM1M8JrMc1jshhJJfVRARTN3yT8HEEibofeQ7QETWQ5ISBjd6fKtTVBCC/+mGS6FpA==}
dev: true
- /tinymce@6.8.2:
- resolution: {integrity: sha512-Lho79o2Y1Yn+XdlTEkHTEkEmzwYWTXz7IUsvPwxJF3VTtgHUIAAuBab29kik+f2KED3rZvQavr9D7sHVMJ9x4A==}
+ /tinymce@6.8.3:
+ resolution: {integrity: sha512-3fCHKAeqT+xNwBVESf6iDbDV0VNwZNmfrkx9c/6Gz5iB8piMfaO6s7FvoiTrj1hf1gVbfyLTnz1DooI6DhgINQ==}
dev: false
/tmp@0.0.33:
@@ -10345,20 +10731,20 @@ packages:
resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==}
dev: true
- /ts-api-utils@1.0.3(typescript@5.2.2):
+ /ts-api-utils@1.0.3(typescript@5.3.3):
resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
engines: {node: '>=16.13.0'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
- typescript: 5.2.2
+ typescript: 5.3.3
dev: true
/ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
dev: true
- /ts-node@10.9.2(@types/node@20.10.8)(typescript@5.2.2):
+ /ts-node@10.9.2(@types/node@20.11.16)(typescript@5.3.3):
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
peerDependencies:
@@ -10377,14 +10763,14 @@ packages:
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 20.10.8
+ '@types/node': 20.11.16
acorn: 8.11.3
acorn-walk: 8.3.2
arg: 4.1.3
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
- typescript: 5.2.2
+ typescript: 5.3.3
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
dev: true
@@ -10409,8 +10795,8 @@ packages:
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
- /tsup@8.0.1(postcss@8.4.33)(ts-node@10.9.2)(typescript@5.2.2):
- resolution: {integrity: sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg==}
+ /tsup@8.0.2(postcss@8.4.34)(ts-node@10.9.2)(typescript@5.3.3):
+ resolution: {integrity: sha512-NY8xtQXdH7hDUAZwcQdY/Vzlw9johQsaqf7iwZ6g1DOUlFYQ5/AtVAjTvihhEyeRlGo4dLRVHtrRaL35M1daqQ==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -10436,14 +10822,14 @@ packages:
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
- postcss: 8.4.33
- postcss-load-config: 4.0.2(postcss@8.4.33)(ts-node@10.9.2)
+ postcss: 8.4.34
+ postcss-load-config: 4.0.2(postcss@8.4.34)(ts-node@10.9.2)
resolve-from: 5.0.0
rollup: 4.9.6
source-map: 0.8.0-beta.0
sucrase: 3.35.0
tree-kill: 1.2.2
- typescript: 5.2.2
+ typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- ts-node
@@ -10557,8 +10943,8 @@ packages:
hasBin: true
dev: true
- /typescript@5.2.2:
- resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+ /typescript@5.3.3:
+ resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
engines: {node: '>=14.17'}
hasBin: true
@@ -10594,7 +10980,6 @@ packages:
/undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- dev: true
/unicode-canonical-property-names-ecmascript@2.0.0:
resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
@@ -10657,16 +11042,20 @@ packages:
'@types/unist': 2.0.10
dev: true
+ /universal-user-agent@6.0.1:
+ resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
+ dev: true
+
/universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
dev: true
- /unocss@0.58.4(postcss@8.4.33)(vite@5.0.12):
- resolution: {integrity: sha512-JYeQddAIObJPr6nuxahOgku0MIzjIaQ2P73KtJr0zSuzx6kiq20jf67FgDIOP1Ks6s7iJd7Ga3yuY2h49XjDjg==}
+ /unocss@0.58.5(postcss@8.4.34)(vite@5.1.4):
+ resolution: {integrity: sha512-0g4P6jLgRRNnhscxw7nQ9RHGrKJ1UPPiHPet+YT3TXUcmy4mTiYgo9+kGQf5bjyrzsELJ10cT6Qz2y6g9Tls4g==}
engines: {node: '>=14'}
peerDependencies:
- '@unocss/webpack': 0.58.4
+ '@unocss/webpack': 0.58.5
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
peerDependenciesMeta:
'@unocss/webpack':
@@ -10674,34 +11063,34 @@ packages:
vite:
optional: true
dependencies:
- '@unocss/astro': 0.58.4(vite@5.0.12)
- '@unocss/cli': 0.58.4
- '@unocss/core': 0.58.4
- '@unocss/extractor-arbitrary-variants': 0.58.4
- '@unocss/postcss': 0.58.4(postcss@8.4.33)
- '@unocss/preset-attributify': 0.58.4
- '@unocss/preset-icons': 0.58.4
- '@unocss/preset-mini': 0.58.4
- '@unocss/preset-tagify': 0.58.4
- '@unocss/preset-typography': 0.58.4
- '@unocss/preset-uno': 0.58.4
- '@unocss/preset-web-fonts': 0.58.4
- '@unocss/preset-wind': 0.58.4
- '@unocss/reset': 0.58.4
- '@unocss/transformer-attributify-jsx': 0.58.4
- '@unocss/transformer-attributify-jsx-babel': 0.58.4
- '@unocss/transformer-compile-class': 0.58.4
- '@unocss/transformer-directives': 0.58.4
- '@unocss/transformer-variant-group': 0.58.4
- '@unocss/vite': 0.58.4(vite@5.0.12)
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
+ '@unocss/astro': 0.58.5(vite@5.1.4)
+ '@unocss/cli': 0.58.5
+ '@unocss/core': 0.58.5
+ '@unocss/extractor-arbitrary-variants': 0.58.5
+ '@unocss/postcss': 0.58.5(postcss@8.4.34)
+ '@unocss/preset-attributify': 0.58.5
+ '@unocss/preset-icons': 0.58.5
+ '@unocss/preset-mini': 0.58.5
+ '@unocss/preset-tagify': 0.58.5
+ '@unocss/preset-typography': 0.58.5
+ '@unocss/preset-uno': 0.58.5
+ '@unocss/preset-web-fonts': 0.58.5
+ '@unocss/preset-wind': 0.58.5
+ '@unocss/reset': 0.58.5
+ '@unocss/transformer-attributify-jsx': 0.58.5
+ '@unocss/transformer-attributify-jsx-babel': 0.58.5
+ '@unocss/transformer-compile-class': 0.58.5
+ '@unocss/transformer-directives': 0.58.5
+ '@unocss/transformer-variant-group': 0.58.5
+ '@unocss/vite': 0.58.5(vite@5.1.4)
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
transitivePeerDependencies:
- postcss
- rollup
- supports-color
dev: true
- /unplugin-vue-components@0.26.0(vue@3.4.15):
+ /unplugin-vue-components@0.26.0(vue@3.4.19):
resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==}
engines: {node: '>=14'}
peerDependencies:
@@ -10724,7 +11113,7 @@ packages:
minimatch: 9.0.3
resolve: 1.22.8
unplugin: 1.6.0
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
transitivePeerDependencies:
- rollup
- supports-color
@@ -10758,6 +11147,17 @@ packages:
picocolors: 1.0.0
dev: true
+ /update-browserslist-db@1.0.13(browserslist@4.23.0):
+ resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.23.0
+ escalade: 3.1.1
+ picocolors: 1.0.0
+ dev: true
+
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
@@ -10813,7 +11213,7 @@ packages:
vfile-message: 2.0.4
dev: true
- /vite-plugin-checker@0.6.4(eslint@8.56.0)(stylelint@16.2.0)(typescript@5.2.2)(vite@5.0.12)(vue-tsc@1.8.27):
+ /vite-plugin-checker@0.6.4(eslint@8.56.0)(stylelint@16.2.1)(typescript@5.3.3)(vite@5.1.4)(vue-tsc@1.8.27):
resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==}
engines: {node: '>=14.16'}
peerDependencies:
@@ -10855,18 +11255,33 @@ packages:
npm-run-path: 4.0.1
semver: 7.5.4
strip-ansi: 6.0.1
- stylelint: 16.2.0(typescript@5.2.2)
+ stylelint: 16.2.1(typescript@5.3.3)
tiny-invariant: 1.3.1
- typescript: 5.2.2
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
+ typescript: 5.3.3
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0
vscode-languageserver-textdocument: 1.0.11
vscode-uri: 3.0.8
- vue-tsc: 1.8.27(typescript@5.2.2)
+ vue-tsc: 1.8.27(typescript@5.3.3)
dev: true
- /vite-plugin-svg-icons@2.0.1(vite@5.0.12):
+ /vite-plugin-mkcert@1.17.3(vite@5.1.4):
+ resolution: {integrity: sha512-C8iLz4Su4kEyJb1GdlGIMfKkYMqfH5qvhqVP1x/hrc+1mo9GOzqU88mevvP5epgoqawkhVpcQVQ+HTFXsRuC0g==}
+ engines: {node: '>=v16.7.0'}
+ peerDependencies:
+ vite: '>=3'
+ dependencies:
+ '@octokit/rest': 20.0.2
+ axios: 1.6.7(debug@4.3.4)
+ debug: 4.3.4
+ picocolors: 1.0.0
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /vite-plugin-svg-icons@2.0.1(vite@5.1.4):
resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
peerDependencies:
vite: '>=2.0.0'
@@ -10879,13 +11294,13 @@ packages:
pathe: 0.2.0
svg-baker: 1.7.0
svgo: 2.8.0
- vite: 5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0)
+ vite: 5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2)
transitivePeerDependencies:
- supports-color
dev: true
- /vite@5.0.12(@types/node@20.10.8)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.0):
- resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==}
+ /vite@5.1.3(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2):
+ resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -10912,13 +11327,52 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 20.10.8
+ '@types/node': 20.11.16
esbuild: 0.19.11
less: 4.2.0
lightningcss: 1.23.0
- postcss: 8.4.33
+ postcss: 8.4.35
rollup: 4.9.6
- terser: 5.27.0
+ terser: 5.27.2
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /vite@5.1.4(@types/node@20.11.16)(less@4.2.0)(lightningcss@1.23.0)(terser@5.27.2):
+ resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ '@types/node': 20.11.16
+ esbuild: 0.19.11
+ less: 4.2.0
+ lightningcss: 1.23.0
+ postcss: 8.4.35
+ rollup: 4.9.6
+ terser: 5.27.2
optionalDependencies:
fsevents: 2.3.3
dev: true
@@ -10963,7 +11417,7 @@ packages:
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
dev: true
- /vue-demi@0.13.11(vue@3.4.15):
+ /vue-demi@0.13.11(vue@3.4.19):
resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
engines: {node: '>=12'}
hasBin: true
@@ -10975,10 +11429,10 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
- /vue-demi@0.14.6(vue@3.4.15):
+ /vue-demi@0.14.6(vue@3.4.19):
resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==}
engines: {node: '>=12'}
hasBin: true
@@ -10990,11 +11444,26 @@ packages:
'@vue/composition-api':
optional: true
dependencies:
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
- /vue-echarts@6.6.8(echarts@5.4.3)(vue@3.4.15):
- resolution: {integrity: sha512-3EGrxKGCGjHnkhudRQQ4fkK5iJxxXNQ1fXvSWA/7mzR/oV7BBSHYvC3gDbG/WIW0A/Fcx2H8k5H3NDyWgjyi8g==}
+ /vue-demi@0.14.7(vue@3.4.19):
+ resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ dependencies:
+ vue: 3.4.19(typescript@5.3.3)
+ dev: false
+
+ /vue-echarts@6.6.9(echarts@5.5.0)(vue@3.4.19):
+ resolution: {integrity: sha512-mojIq3ZvsjabeVmDthhAUDV8Kgf2Rr/X4lV4da7gEFd1fP05gcSJ0j7wa7HQkW5LlFmF2gdCJ8p4Chas6NNIQQ==}
requiresBuild: true
peerDependencies:
'@vue/composition-api': ^1.0.5
@@ -11007,10 +11476,10 @@ packages:
'@vue/runtime-core':
optional: true
dependencies:
- echarts: 5.4.3
+ echarts: 5.5.0
resize-detector: 0.3.0
- vue: 3.4.15(typescript@5.2.2)
- vue-demi: 0.13.11(vue@3.4.15)
+ vue: 3.4.19(typescript@5.3.3)
+ vue-demi: 0.13.11(vue@3.4.19)
dev: false
/vue-eslint-parser@9.4.2(eslint@8.56.0):
@@ -11031,7 +11500,7 @@ packages:
- supports-color
dev: true
- /vue-i18n@9.9.1(vue@3.4.15):
+ /vue-i18n@9.9.1(vue@3.4.19):
resolution: {integrity: sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==}
engines: {node: '>= 16'}
peerDependencies:
@@ -11040,32 +11509,32 @@ packages:
'@intlify/core-base': 9.9.1
'@intlify/shared': 9.9.1
'@vue/devtools-api': 6.5.1
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
- /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.15):
+ /vue-observe-visibility@2.0.0-alpha.1(vue@3.4.19):
resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==}
peerDependencies:
vue: ^3.0.0
dependencies:
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
- /vue-resize@2.0.0-alpha.1(vue@3.4.15):
+ /vue-resize@2.0.0-alpha.1(vue@3.4.19):
resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
peerDependencies:
vue: ^3.0.0
dependencies:
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
- /vue-router@4.2.5(vue@3.4.15):
- resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==}
+ /vue-router@4.3.0(vue@3.4.19):
+ resolution: {integrity: sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==}
peerDependencies:
vue: ^3.2.0
dependencies:
'@vue/devtools-api': 6.5.1
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
/vue-template-compiler@2.7.16:
@@ -11075,29 +11544,29 @@ packages:
he: 1.2.0
dev: true
- /vue-tsc@1.8.27(typescript@5.2.2):
+ /vue-tsc@1.8.27(typescript@5.3.3):
resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
'@volar/typescript': 1.11.1
- '@vue/language-core': 1.8.27(typescript@5.2.2)
+ '@vue/language-core': 1.8.27(typescript@5.3.3)
semver: 7.5.4
- typescript: 5.2.2
+ typescript: 5.3.3
dev: true
- /vue-types@3.0.2(vue@3.4.15):
+ /vue-types@3.0.2(vue@3.4.19):
resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==}
engines: {node: '>=10.15.0'}
peerDependencies:
vue: ^3.0.0
dependencies:
is-plain-object: 3.0.1
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
- /vue-types@5.1.1(vue@3.4.15):
+ /vue-types@5.1.1(vue@3.4.19):
resolution: {integrity: sha512-FMY/JCLWePXgGIcMDqYdJsQm1G0CDxEjq6W0+tZMJZlX37q/61eSGSIa/XFRwa9T7kkKXuxxl94/2kgxyWQqKw==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -11107,34 +11576,34 @@ packages:
optional: true
dependencies:
is-plain-object: 5.0.0
- vue: 3.4.15(typescript@5.2.2)
+ vue: 3.4.19(typescript@5.3.3)
dev: false
- /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.15):
+ /vue-virtual-scroller@2.0.0-beta.8(vue@3.4.19):
resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==}
peerDependencies:
vue: ^3.2.0
dependencies:
mitt: 2.1.0
- vue: 3.4.15(typescript@5.2.2)
- vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.15)
- vue-resize: 2.0.0-alpha.1(vue@3.4.15)
+ vue: 3.4.19(typescript@5.3.3)
+ vue-observe-visibility: 2.0.0-alpha.1(vue@3.4.19)
+ vue-resize: 2.0.0-alpha.1(vue@3.4.19)
dev: false
- /vue@3.4.15(typescript@5.2.2):
- resolution: {integrity: sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==}
+ /vue@3.4.19(typescript@5.3.3):
+ resolution: {integrity: sha512-W/7Fc9KUkajFU8dBeDluM4sRGc/aa4YJnOYck8dkjgZoXtVsn3OeTGni66FV1l3+nvPA7VBFYtPioaGKUmEADw==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@vue/compiler-dom': 3.4.15
- '@vue/compiler-sfc': 3.4.15
- '@vue/runtime-dom': 3.4.15
- '@vue/server-renderer': 3.4.15(vue@3.4.15)
- '@vue/shared': 3.4.15
- typescript: 5.2.2
+ '@vue/compiler-dom': 3.4.19
+ '@vue/compiler-sfc': 3.4.19
+ '@vue/runtime-dom': 3.4.19
+ '@vue/server-renderer': 3.4.19(vue@3.4.19)
+ '@vue/shared': 3.4.19
+ typescript: 5.3.3
/warning@4.0.3:
resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
@@ -11393,12 +11862,8 @@ packages:
engines: {node: '>=12.20'}
dev: true
- /zod@3.22.4:
- resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
- dev: true
-
- /zrender@5.4.4:
- resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==}
+ /zrender@5.5.0:
+ resolution: {integrity: sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==}
dependencies:
tslib: 2.3.0
dev: false
@@ -11407,15 +11872,15 @@ packages:
resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==}
dev: true
- file:packages/vite-plugin-msw(msw@2.1.5):
+ file:packages/vite-plugin-msw(msw@2.2.1):
resolution: {directory: packages/vite-plugin-msw, type: directory}
id: file:packages/vite-plugin-msw
name: '@admin-pkg/vite-plugin-msw'
peerDependencies:
msw: ^2.0.0
dependencies:
- '@mswjs/interceptors': 0.25.15
+ '@mswjs/interceptors': 0.26.5
headers-polyfill: 4.0.2
- msw: 2.1.5(typescript@5.2.2)
+ msw: 2.2.1(typescript@5.3.3)
strict-event-emitter: 0.5.1
dev: false
diff --git a/src/api/backend/api/index.ts b/src/api/backend/api/index.ts
index 5ebc3114..4f4b7e15 100644
--- a/src/api/backend/api/index.ts
+++ b/src/api/backend/api/index.ts
@@ -17,11 +17,13 @@ import * as systemDictItem from './systemDictItem';
import * as systemTask from './systemTask';
import * as systemOnline from './systemOnline';
import * as systemServe from './systemServe';
-import * as systemEmail from './systemEmail';
import * as toolsStorage from './toolsStorage';
+import * as systemEmail from './systemEmail';
import * as toolsUpload from './toolsUpload';
import * as health from './health';
import * as systemSse from './systemSse';
+import * as netDiskManage from './netDiskManage';
+import * as netDiskOverview from './netDiskOverview';
import * as businessTodo from './businessTodo';
export default {
auth,
@@ -39,10 +41,12 @@ export default {
systemTask,
systemOnline,
systemServe,
- systemEmail,
toolsStorage,
+ systemEmail,
toolsUpload,
health,
systemSse,
+ netDiskManage,
+ netDiskOverview,
businessTodo,
};
diff --git a/src/api/backend/api/netDiskManage.ts b/src/api/backend/api/netDiskManage.ts
new file mode 100644
index 00000000..948e1977
--- /dev/null
+++ b/src/api/backend/api/netDiskManage.ts
@@ -0,0 +1,128 @@
+// @ts-ignore
+/* eslint-disable */
+import { request, type RequestOptions } from '@/utils/request';
+
+/** 复制文件或文件夹,支持批量 POST /api/netdisk/manage/copy */
+export async function netDiskManageCopy(body: API.FileOpDto, options?: RequestOptions) {
+ return request('/api/netdisk/manage/copy', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 剪切文件或文件夹,支持批量 POST /api/netdisk/manage/cut */
+export async function netDiskManageCut(body: API.FileOpDto, options?: RequestOptions) {
+ return request('/api/netdisk/manage/cut', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 删除文件或文件夹 POST /api/netdisk/manage/delete */
+export async function netDiskManageDelete(body: API.DeleteDto, options?: RequestOptions) {
+ return request('/api/netdisk/manage/delete', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || { successMsg: '删除成功' }),
+ });
+}
+
+/** 获取下载链接,不支持下载文件夹 GET /api/netdisk/manage/download */
+export async function netDiskManageDownload(
+ // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
+ params: API.NetDiskManageDownloadParams,
+ options?: RequestOptions,
+) {
+ return request('/api/netdisk/manage/download', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
+
+/** 获取文件详细信息 GET /api/netdisk/manage/info */
+export async function netDiskManageInfo(
+ // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
+ params: API.NetDiskManageInfoParams,
+ options?: RequestOptions,
+) {
+ return request('/api/netdisk/manage/info', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
+
+/** 获取文件列表 GET /api/netdisk/manage/list */
+export async function netDiskManageList(
+ // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
+ params: API.NetDiskManageListParams,
+ options?: RequestOptions,
+) {
+ return request('/api/netdisk/manage/list', {
+ method: 'GET',
+ params: {
+ ...params,
+ },
+ ...(options || {}),
+ });
+}
+
+/** 添加文件备注 POST /api/netdisk/manage/mark */
+export async function netDiskManageMark(body: API.MarkFileDto, options?: RequestOptions) {
+ return request('/api/netdisk/manage/mark', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 创建文件夹,支持多级 POST /api/netdisk/manage/mkdir */
+export async function netDiskManageMkdir(body: API.MKDirDto, options?: RequestOptions) {
+ return request('/api/netdisk/manage/mkdir', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || { successMsg: '创建成功' }),
+ });
+}
+
+/** 重命名文件或文件夹 POST /api/netdisk/manage/rename */
+export async function netDiskManageRename(body: API.RenameDto, options?: RequestOptions) {
+ return request('/api/netdisk/manage/rename', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 获取上传Token,无Token前端无法上传 GET /api/netdisk/manage/token */
+export async function netDiskManageToken(options?: RequestOptions) {
+ return request('/api/netdisk/manage/token', {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
diff --git a/src/api/backend/api/netDiskOverview.ts b/src/api/backend/api/netDiskOverview.ts
new file mode 100644
index 00000000..d52a7c80
--- /dev/null
+++ b/src/api/backend/api/netDiskOverview.ts
@@ -0,0 +1,11 @@
+// @ts-ignore
+/* eslint-disable */
+import { request, type RequestOptions } from '@/utils/request';
+
+/** 获取网盘空间数据统计 GET /api/netdisk/overview/desc */
+export async function netDiskOverviewSpace(options?: RequestOptions) {
+ return request('/api/netdisk/overview/desc', {
+ method: 'GET',
+ ...(options || {}),
+ });
+}
diff --git a/src/api/backend/api/systemEmail.ts b/src/api/backend/api/systemEmail.ts
index 9124f695..10a59461 100644
--- a/src/api/backend/api/systemEmail.ts
+++ b/src/api/backend/api/systemEmail.ts
@@ -2,9 +2,9 @@
/* eslint-disable */
import { request, type RequestOptions } from '@/utils/request';
-/** 发送邮件 POST /api/email/send */
+/** 发送邮件 POST /api/tools/email/send */
export async function emailSend(body: API.EmailSendDto, options?: RequestOptions) {
- return request('/api/email/send', {
+ return request('/api/tools/email/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
diff --git a/src/api/backend/api/toolsStorage.ts b/src/api/backend/api/toolsStorage.ts
index 88286e7c..c22e97bc 100644
--- a/src/api/backend/api/toolsStorage.ts
+++ b/src/api/backend/api/toolsStorage.ts
@@ -2,9 +2,9 @@
/* eslint-disable */
import { request, type RequestOptions } from '@/utils/request';
-/** 删除文件 POST /api/storage/delete */
+/** 删除文件 POST /api/tools/storage/delete */
export async function storageDelete(body: API.StorageDeleteDto, options?: RequestOptions) {
- return request('/api/storage/delete', {
+ return request('/api/tools/storage/delete', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -14,7 +14,7 @@ export async function storageDelete(body: API.StorageDeleteDto, options?: Reques
});
}
-/** 获取本地存储列表 GET /api/storage/list */
+/** 获取本地存储列表 GET /api/tools/storage/list */
export async function storageList(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.StorageListParams,
@@ -29,7 +29,7 @@ export async function storageList(
totalPages?: number;
currentPage?: number;
};
- }>('/api/storage/list', {
+ }>('/api/tools/storage/list', {
method: 'GET',
params: {
// page has a default value: 1
diff --git a/src/api/backend/api/toolsUpload.ts b/src/api/backend/api/toolsUpload.ts
index ef915b74..950d49ed 100644
--- a/src/api/backend/api/toolsUpload.ts
+++ b/src/api/backend/api/toolsUpload.ts
@@ -2,7 +2,7 @@
/* eslint-disable */
import { request, type RequestOptions } from '@/utils/request';
-/** 上传 POST /api/upload */
+/** 上传 POST /api/tools/upload */
export async function uploadUpload(body: API.FileUploadDto, file?: File, options?: RequestOptions) {
const formData = new FormData();
@@ -26,7 +26,7 @@ export async function uploadUpload(body: API.FileUploadDto, file?: File, options
}
});
- return request('/api/upload', {
+ return request('/api/tools/upload', {
method: 'POST',
data: formData,
requestType: 'form',
diff --git a/src/api/backend/api/typings.d.ts b/src/api/backend/api/typings.d.ts
index 6e36a57e..aaf506d1 100644
--- a/src/api/backend/api/typings.d.ts
+++ b/src/api/backend/api/typings.d.ts
@@ -101,6 +101,13 @@ declare namespace API {
coresLoad: CoreLoad[];
};
+ type DeleteDto = {
+ /** 需要操作的文件或文件夹 */
+ files: FileOpItem[];
+ /** 所在目录 */
+ path: string;
+ };
+
type DeptDeleteParams = {
id: number;
};
@@ -285,11 +292,34 @@ declare namespace API {
content: string;
};
+ type FileOpDto = {
+ /** 需要操作的文件或文件夹 */
+ files: FileOpItem[];
+ /** 操作前的目录 */
+ originPath: string;
+ /** 操作后的目录 */
+ toPath: string;
+ };
+
+ type FileOpItem = {
+ /** 文件类型 */
+ type: 'file' | 'dir';
+ /** 文件名称 */
+ name: string;
+ };
+
type FileUploadDto = {
/** 文件 */
file: Buffer;
};
+ type FlowInfo = {
+ /** 当月的X号 */
+ times: number[];
+ /** 对应天数的耗费流量 */
+ datas: number[];
+ };
+
type ImageCaptcha = {
/** base64格式的svg图片 */
img: string;
@@ -379,6 +409,15 @@ declare namespace API {
_t?: number;
};
+ type MarkFileDto = {
+ /** 文件名 */
+ name: string;
+ /** 文件所在路径 */
+ path: string;
+ /** 备注信息 */
+ mark: string;
+ };
+
type Memory = {
/** total memory in bytes */
total: number;
@@ -549,6 +588,36 @@ declare namespace API {
id: number;
};
+ type MKDirDto = {
+ /** 文件夹名称 */
+ dirName: string;
+ /** 所属路径 */
+ path: string;
+ };
+
+ type NetDiskManageDownloadParams = {
+ /** 文件名 */
+ name: string;
+ /** 文件所在路径 */
+ path: string;
+ };
+
+ type NetDiskManageInfoParams = {
+ /** 文件名 */
+ name: string;
+ /** 文件所在路径 */
+ path: string;
+ };
+
+ type NetDiskManageListParams = {
+ /** 分页标识 */
+ marker: string;
+ /** 当前路径 */
+ path: string;
+ /** 搜索关键字 */
+ key?: string;
+ };
+
type OnlineUserInfo = {
/** 最近的一条登录日志ID */
id: number;
@@ -568,6 +637,21 @@ declare namespace API {
disable: boolean;
};
+ type OverviewSpaceInfo = {
+ /** 当前使用容量 */
+ spaceSize: number;
+ /** 当前文件数量 */
+ fileSize: number;
+ /** 当天使用流量 */
+ flowSize: number;
+ /** 当天请求次数 */
+ hitSize: number;
+ /** 流量趋势,从当月1号开始计算 */
+ flowTrend: FlowInfo;
+ /** 容量趋势,从当月1号开始计算 */
+ sizeTrend: SpaceInfo;
+ };
+
type Pagination = {};
type ParamConfigDeleteParams = {
@@ -641,6 +725,17 @@ declare namespace API {
lang: string;
};
+ type RenameDto = {
+ /** 文件类型 */
+ type: string;
+ /** 更改的名称 */
+ toName: string;
+ /** 原来的名称 */
+ name: string;
+ /** 路径 */
+ path: string;
+ };
+
type ResOp = {
data: Record;
code: number;
@@ -753,6 +848,56 @@ declare namespace API {
memory: Memory;
};
+ type SFileInfo = {
+ /** 文件id */
+ id: string;
+ /** 文件类型 */
+ type: 'file' | 'dir';
+ /** 文件名称 */
+ name: string;
+ /** 存入时间 */
+ putTime: string;
+ /** 文件大小, byte单位 */
+ fsize: string;
+ /** 文件的mime-type */
+ mimeType: string;
+ /** 所属目录 */
+ belongTo: string;
+ };
+
+ type SFileInfoDetail = {
+ /** 文件大小,int64类型,单位为字节(Byte) */
+ fsize: number;
+ /** 文件HASH值 */
+ hash: string;
+ /** 文件MIME类型,string类型 */
+ mimeType: string;
+ /** 文件存储类型,2 表示归档存储,1 表示低频存储,0表示普通存储。 */
+ type: number;
+ /** 文件上传时间 */
+ putTime: string;
+ /** 文件md5值 */
+ md5: string;
+ /** 上传人 */
+ uploader: string;
+ /** 文件备注 */
+ mark: string;
+ };
+
+ type SFileList = {
+ /** 文件列表 */
+ list: SFileInfo[];
+ /** 分页标志,空则代表加载完毕 */
+ marker: string;
+ };
+
+ type SpaceInfo = {
+ /** 当月的X号 */
+ times: number[];
+ /** 对应天数的容量, byte单位 */
+ datas: number[];
+ };
+
type SseSseParams = {
uid: number;
};
@@ -999,6 +1144,11 @@ declare namespace API {
children: string[];
};
+ type UploadToken = {
+ /** 上传token */
+ token: string;
+ };
+
type UserDeleteParams = {
id: string | number;
};
diff --git a/src/components/basic/tinymce/index.vue b/src/components/basic/tinymce/index.vue
index a7ef5f5a..4da7f187 100644
--- a/src/components/basic/tinymce/index.vue
+++ b/src/components/basic/tinymce/index.vue
@@ -1,18 +1,18 @@
- {
height?: string | number;
@@ -32,3 +33,17 @@ export const tinymceProps = {
default: 'auto',
},
};
+
+// https://www.tiny.cloud/docs/integrations/vue/#eventbinding
+type __TinymceEvents = {
+ [K in keyof Events.EditorEventMap as Uncapitalize]: [
+ event: Events.EditorEventMap[K],
+ editor: Editor,
+ ];
+};
+
+/**
+ * 这里为什么这样写?因为 vue 编译器不支持复杂类型,需要用 @vue-ignore 注释显示跳过编译,否则会报错,但是这样 vue 就不会帮我们生成 emits 定义了
+ * 详见:https://github.com/vuejs/core/issues/8286
+ */
+export interface TinymceEvents extends /** @vue-ignore */ __TinymceEvents {}
diff --git a/src/components/core/dynamic-table/src/components/table-settings/column-setting.vue b/src/components/core/dynamic-table/src/components/table-settings/column-setting.vue
index a3180ab4..1f194991 100644
--- a/src/components/core/dynamic-table/src/components/table-settings/column-setting.vue
+++ b/src/components/core/dynamic-table/src/components/table-settings/column-setting.vue
@@ -1,7 +1,7 @@
- {{ $t('component.table.settingColumn') }}
+ {{ t('component.table.settingColumn') }}
- {{ $t('component.table.settingColumnShow') }}
+ {{ t('component.table.settingColumnShow') }}
- {{ $t('component.table.settingIndexColumnShow') }}
+ {{ t('component.table.settingIndexColumnShow') }}
- {{ $t('component.table.settingBordered') }}
+ {{ t('component.table.settingBordered') }}
- {{ $t('common.resetText') }}
+ {{ t('common.resetText') }}
@@ -41,7 +41,7 @@
- {{ $t('component.table.settingFixedLeft') }}
+ {{ t('component.table.settingFixedLeft') }}
- {{ $t('component.table.settingFixedRight') }}
+ {{ t('component.table.settingFixedRight') }}
(table.columns);
diff --git a/src/components/core/dynamic-table/src/components/table-settings/refresh-setting.vue b/src/components/core/dynamic-table/src/components/table-settings/refresh-setting.vue
index 7be112f9..8e7fc9ff 100644
--- a/src/components/core/dynamic-table/src/components/table-settings/refresh-setting.vue
+++ b/src/components/core/dynamic-table/src/components/table-settings/refresh-setting.vue
@@ -1,7 +1,7 @@
- {{ $t('common.redo') }}
+ {{ t('common.redo') }}
@@ -10,7 +10,9 @@
import { RedoOutlined } from '@ant-design/icons-vue';
import { Tooltip } from 'ant-design-vue';
import { useTableContext } from '../../hooks/useTableContext';
+ import { useI18n } from '@/hooks/useI18n';
+ const { t } = useI18n();
const table = useTableContext();
function redo() {
diff --git a/src/components/core/dynamic-table/src/components/table-settings/size-setting.vue b/src/components/core/dynamic-table/src/components/table-settings/size-setting.vue
index 561fe1fa..07709951 100644
--- a/src/components/core/dynamic-table/src/components/table-settings/size-setting.vue
+++ b/src/components/core/dynamic-table/src/components/table-settings/size-setting.vue
@@ -1,7 +1,7 @@
- {{ $t('component.table.settingDens') }}
+ {{ t('component.table.settingDens') }}
@@ -9,13 +9,13 @@
@@ -29,9 +29,11 @@
import { useTableContext } from '../../hooks/useTableContext';
import type { TableProps } from 'ant-design-vue/es/table/Table';
import type { MenuInfo } from 'ant-design-vue/es/menu/src/interface';
+ import { useI18n } from '@/hooks/useI18n';
type SizeType = NonNullable;
+ const { t } = useI18n();
const table = useTableContext();
const selectedKeysRef = ref([unref(table.getProps)?.size || 'large']);
diff --git a/src/components/core/dynamic-table/src/hooks/useColumns.ts b/src/components/core/dynamic-table/src/hooks/useColumns.ts
index 6479eaad..530ca240 100644
--- a/src/components/core/dynamic-table/src/hooks/useColumns.ts
+++ b/src/components/core/dynamic-table/src/hooks/useColumns.ts
@@ -1,5 +1,6 @@
import { ref, watchEffect, unref, useSlots, h } from 'vue';
import { cloneDeep, isFunction, mergeWith } from 'lodash-es';
+import { Input } from 'ant-design-vue';
import { EditableCell } from '../components';
import { ColumnKeyFlag, type CustomRenderParams } from '../types/column';
import tableConfig from '../dynamic-table.config';
@@ -136,7 +137,7 @@ export const useColumns = ({ state, methods, props, tableAction }: UseTableColum
return {
field: `${record[props.rowKey as string]}.${item.searchField ?? key}`,
- component: 'Input',
+ component: () => Input,
defaultValue: record[key],
colProps: {
span: unref(getProps).editableType === 'cell' ? 20 : 24,
diff --git a/src/components/core/dynamic-table/src/hooks/useTableForm.ts b/src/components/core/dynamic-table/src/hooks/useTableForm.ts
index 7ce4c096..a9629200 100644
--- a/src/components/core/dynamic-table/src/hooks/useTableForm.ts
+++ b/src/components/core/dynamic-table/src/hooks/useTableForm.ts
@@ -47,7 +47,7 @@ export function useTableForm({ tableState, slots, tableMethods }: UseTableFormCo
span: 8,
},
...n.formItemProps,
- };
+ } as FormSchema;
})
.sort((a, b) => Number(a?.order) - Number(b?.order)) as FormSchema[];
});
diff --git a/src/components/core/dynamic-table/src/hooks/useTableMethods.ts b/src/components/core/dynamic-table/src/hooks/useTableMethods.ts
index d4bd6d30..4ea80175 100644
--- a/src/components/core/dynamic-table/src/hooks/useTableMethods.ts
+++ b/src/components/core/dynamic-table/src/hooks/useTableMethods.ts
@@ -1,5 +1,5 @@
import { unref, nextTick, getCurrentInstance, watch } from 'vue';
-import { isObject, isFunction, isBoolean, get } from 'lodash-es';
+import { isObject, isFunction, isBoolean, get, debounce } from 'lodash-es';
import { useInfiniteScroll } from '@vueuse/core';
import tableConfig from '../dynamic-table.config';
import { useEditable } from './useEditable';
@@ -60,7 +60,7 @@ export const useTableMethods = ({ state, props, emit }: UseTableMethodsContext)
* @param {boolean} flush 是否将页数重置到第一页
* @description 获取表格数据
*/
- const fetchData = async (params = {}) => {
+ const fetchData = debounce(async (params = {}) => {
const { dataRequest, dataSource, fetchConfig, searchParams } = props;
if (!dataRequest || !isFunction(dataRequest) || Array.isArray(dataSource)) {
@@ -132,7 +132,7 @@ export const useTableMethods = ({ state, props, emit }: UseTableMethodsContext)
} finally {
loadingRef.value = false;
}
- };
+ });
/**
* @description 刷新表格
diff --git a/src/components/core/schema-form/src/componentMap.ts b/src/components/core/schema-form/src/componentMap.ts
index 7f96484a..7c5c2f27 100644
--- a/src/components/core/schema-form/src/componentMap.ts
+++ b/src/components/core/schema-form/src/componentMap.ts
@@ -19,6 +19,7 @@ import {
Divider,
Upload,
} from 'ant-design-vue';
+import type { Component, VNodeProps } from 'vue';
const componentMap = {
Input,
@@ -48,6 +49,18 @@ const componentMap = {
Divider,
};
-export type ComponentMapType = keyof typeof componentMap;
+type ExtractPropTypes = T extends new (...args: any) => any
+ ? Writable['$props'], keyof VNodeProps>>
+ : never;
+
+type ComponentMapType = typeof componentMap;
+
+export type ComponentType = keyof ComponentMapType;
+
+export type ComponentMapProps = {
+ [K in ComponentType]: ExtractPropTypes;
+};
+
+export type AllComponentProps = ComponentMapProps[ComponentType];
export { componentMap };
diff --git a/src/components/core/schema-form/src/helper.ts b/src/components/core/schema-form/src/helper.ts
index b62497d4..fcc7082b 100644
--- a/src/components/core/schema-form/src/helper.ts
+++ b/src/components/core/schema-form/src/helper.ts
@@ -1,19 +1,19 @@
import dayjs from 'dayjs';
import type { RuleObject } from 'ant-design-vue/es/form/';
-import type { ComponentMapType } from './types/component';
+import type { ComponentType } from './types/component';
import { isNumber } from '@/utils/is';
import { useI18n } from '@/hooks/useI18n';
/**
* @description: 生成placeholder
*/
-export function createPlaceholderMessage(component: ComponentMapType, label = '') {
+export function createPlaceholderMessage(component: ComponentType, label = '') {
const { t } = useI18n();
if (component.includes('Input') || component.includes('Complete')) {
return `${t('common.inputText')}${label}`;
}
- const chooseTypes: ComponentMapType[] = [
+ const chooseTypes: ComponentType[] = [
'Select',
'Cascader',
'Checkbox',
@@ -35,7 +35,7 @@ function genType() {
export function setComponentRuleType(
rule: RuleObject,
- component: ComponentMapType,
+ component: ComponentType,
valueFormat: string,
) {
if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {
@@ -56,7 +56,7 @@ export function processDateValue(attr: Recordable, component: string) {
}
}
-export function handleInputNumberValue(component?: ComponentMapType, val?: any) {
+export function handleInputNumberValue(component?: ComponentType, val?: any) {
if (!component) return val;
if (['Input', 'InputPassword', 'InputSearch', 'InputTextArea'].includes(component)) {
return val && isNumber(val) ? `${val}` : val;
diff --git a/src/components/core/schema-form/src/schema-form-item.vue b/src/components/core/schema-form/src/schema-form-item.vue
index 1985e83e..bc0bfb26 100644
--- a/src/components/core/schema-form/src/schema-form-item.vue
+++ b/src/components/core/schema-form/src/schema-form-item.vue
@@ -69,7 +69,7 @@
import { createPlaceholderMessage } from './helper';
import { useFormContext } from './hooks/useFormContext';
import { schemaFormItemProps } from './schema-form-item';
- import type { ComponentMapType } from './componentMap';
+ import type { ComponentType } from './componentMap';
import type { CustomRenderFn, FormSchema, RenderCallbackParams, ComponentProps } from './types/';
import type { RuleObject } from 'ant-design-vue/es/form/';
import { isBoolean, isNull, isObject, isString, isFunction, isArray } from '@/utils/is';
@@ -298,11 +298,7 @@
);
});
- function setComponentRuleType(
- rule: RuleObject,
- component: ComponentMapType,
- valueFormat: string,
- ) {
+ function setComponentRuleType(rule: RuleObject, component: ComponentType, valueFormat: string) {
if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {
rule.type = valueFormat ? 'string' : 'object';
} else if (['RangePicker', 'Upload', 'CheckboxGroup', 'TimePicker'].includes(component)) {
@@ -465,5 +461,9 @@
:deep(.ant-form-item-control-input-content) {
display: flex;
align-items: center;
+
+ > div {
+ flex: auto;
+ }
}
diff --git a/src/components/core/schema-form/src/types/component.ts b/src/components/core/schema-form/src/types/component.ts
index 71eaa05a..f46a93a6 100644
--- a/src/components/core/schema-form/src/types/component.ts
+++ b/src/components/core/schema-form/src/types/component.ts
@@ -1,25 +1,8 @@
import type { CSSProperties, WatchOptions } from 'vue';
-import type {
- InputNumberProps,
- InputProps,
- SliderProps,
- SelectProps,
- CascaderProps,
- SwitchProps,
- RateProps,
- DividerProps,
- TimePickerProps,
- TreeProps,
- TreeSelectProps,
- RadioGroupProps,
- RadioProps,
- UploadProps,
- DatePickerProps,
- CheckboxProps,
-} from 'ant-design-vue';
import type { RenderCallbackParams } from './form';
+import type { ComponentMapProps, ComponentType } from '../componentMap';
-export type { ComponentMapType } from '../componentMap';
+export type { ComponentType };
type ColSpanType = number | string;
@@ -36,24 +19,7 @@ type RequestConfig =
};
/** 组件属性 */
-export type ComponentProps = (
- | InputProps
- | InputNumberProps
- | SelectProps
- | CascaderProps
- | SwitchProps
- | RateProps
- | DividerProps
- | TimePickerProps
- | TreeProps
- | TreeSelectProps
- | RadioGroupProps
- | RadioProps
- | UploadProps
- | DatePickerProps
- | CheckboxProps
- | SliderProps
-) & {
+export type ComponentProps = ComponentMapProps[T] & {
/** 组件异步请求数据 */
request?: RequestConfig;
/** 组件异步请求数据结果 */
@@ -64,9 +30,6 @@ export type ComponentProps = (
[key: string]: any;
};
-/** 所有组件属性集合 */
-export type AllComponentProps = UnionToIntersection;
-
export interface ColEx {
style?: any;
/**
diff --git a/src/components/core/schema-form/src/types/form.ts b/src/components/core/schema-form/src/types/form.ts
index f3635887..8daf9ecc 100644
--- a/src/components/core/schema-form/src/types/form.ts
+++ b/src/components/core/schema-form/src/types/form.ts
@@ -3,7 +3,7 @@ import type { RuleObject } from 'ant-design-vue/es/form/interface';
import type { FormItemProps } from 'ant-design-vue/es/form/FormItem';
import type { Component, UnwrapRef, VNode } from 'vue';
import type { ButtonProps as AntdButtonProps } from '@/components/basic/button';
-import type { ColEx, ComponentMapType, ComponentProps } from './component';
+import type { ColEx, ComponentType, ComponentProps } from './component';
// import type { TableActionType } from '/@/components/Table/src/types/table'
import type { SchemaFormInstance } from '../schema-form';
import type { SchemaFormType } from '../hooks';
@@ -20,12 +20,17 @@ export type Rule = RuleObject & {
/** 获取所有字段名 */
export type GetFieldKeys = Exclude;
-export interface RenderCallbackParams {
- schema: Omit, 'componentProps'> & {
- componentProps: ComponentProps;
+export interface RenderCallbackParams<
+ T extends object = Recordable,
+ P extends ComponentProps = ComponentProps,
+> {
+ schema: FormSchema & {
+ componentProps: P;
};
+ /** 响应式的表单数据对象 */
formModel: Objectable;
field: GetFieldKeys;
+ /** 非响应式的表单数据对象(最终表单要提交的数据) */
values: any;
/** 动态表单实例 */
formInstance: SchemaFormType;
@@ -49,8 +54,32 @@ export type RegisterFn = (formInstance: SchemaFormInstance) => void;
export type UnwrapFormSchema = UnwrapRef>;
+type ComponentSchema =
+ | {
+ [K in ComponentType]: {
+ /** 表单项对应的组件,eg: Input */
+ component: K;
+ /** 表单组件属性 */
+ componentProps?:
+ | ComponentProps
+ | {
+ (opt: RenderCallbackParams>): ComponentProps;
+ requestResult: ComponentProps['requestResult'];
+ };
+ };
+ }[ComponentType]
+ | {
+ component: CustomRenderFn | ((opt: RenderCallbackParams) => Component);
+ componentProps?:
+ | ComponentProps
+ | {
+ (opt: RenderCallbackParams): ComponentProps;
+ requestResult: ComponentProps['requestResult'];
+ };
+ };
+
/** 表单项 */
-export type FormSchema = {
+export type FormSchema = ComponentSchema & {
/** 字段名 */
field: GetFieldKeys;
// Event name triggered by internal value change, default change
@@ -72,15 +101,7 @@ export type FormSchema = {
labelWidth?: string | number;
// Disable the adjustment of labelWidth with global settings of formModel, and manually set labelCol and wrapperCol by yourself
disabledLabelWidth?: boolean;
- /** 表单项对应的组件,eg: Input */
- component?: ComponentMapType | CustomRenderFn | ((opt: RenderCallbackParams) => Component);
- /** 表单组件属性 */
- componentProps?:
- | ComponentProps
- | {
- (opt: RenderCallbackParams): ComponentProps;
- requestResult: ComponentProps['requestResult'];
- };
+
/** 表单组件slots,例如 a-input 的 suffix slot 可以写成:{ suffix: () => VNode } */
componentSlots?:
| ((renderCallbackParams: RenderCallbackParams) => Recordable>)
diff --git a/src/layout/routerView/index.vue b/src/layout/routerView/index.vue
index d4f03e6c..4a767d98 100644
--- a/src/layout/routerView/index.vue
+++ b/src/layout/routerView/index.vue
@@ -3,12 +3,8 @@
-
-
+
+
@@ -20,15 +16,7 @@
diff --git a/src/locales/index.ts b/src/locales/index.ts
index 5a834522..a7cc4470 100644
--- a/src/locales/index.ts
+++ b/src/locales/index.ts
@@ -29,14 +29,10 @@ async function createI18nOptions() {
};
}
-export const getI18n = (async () => createI18n(await createI18nOptions()))();
-
-export let i18n: Awaited;
-
-getI18n.then((res) => (i18n = res));
+const options = await createI18nOptions();
+export const i18n = createI18n(options);
// setup i18n instance with global
-export async function setupI18n(app: App) {
- await getI18n;
+export function setupI18n(app: App) {
app.use(i18n);
}
diff --git a/src/main.ts b/src/main.ts
index 5f21064a..587b305e 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,5 +1,5 @@
+import './polyfill';
import { createApp } from 'vue';
-import { setupMock } from '../mocks/';
import App from './App.vue';
import { setupRouter } from './router';
import { setupIcons } from './components/basic/icon';
@@ -21,9 +21,12 @@ function setupPlugins() {
}
async function setupApp() {
- // 启用 mock
- await setupMock();
- fetch(`${import.meta.env.VITE_BASE_API_URL}/user/1`).then((r) => r.json());
+ // 通过动态import可生成单独的chunk,结合全局替换变量,可实现按需加载,且不会对代码打包体积造成影响
+ if (import.meta.env.VITE_MOCK_IN_PROD === 'true') {
+ const { setupMock } = await import('../mocks/');
+ // 启用 mock
+ await setupMock();
+ }
// 挂载vuex状态管理
setupStore(app);
diff --git a/src/permission/permCode.ts b/src/permission/permCode.ts
index 4af3b8d6..807ee420 100644
--- a/src/permission/permCode.ts
+++ b/src/permission/permCode.ts
@@ -33,6 +33,18 @@ const permissions = [
'app:health:memory-heap',
'app:health:memory-rss',
'app:health:disk',
+ 'netdisk:manage:list',
+ 'netdisk:manage:create',
+ 'netdisk:manage:info',
+ 'netdisk:manage:update',
+ 'netdisk:manage:delete',
+ 'netdisk:manage:mkdir',
+ 'netdisk:manage:token',
+ 'netdisk:manage:mark',
+ 'netdisk:manage:download',
+ 'netdisk:manage:rename',
+ 'netdisk:manage:cut',
+ 'netdisk:manage:copy',
'system:dept:list',
'system:dept:create',
'system:dept:read',
diff --git a/src/polyfill.ts b/src/polyfill.ts
new file mode 100644
index 00000000..c13d1061
--- /dev/null
+++ b/src/polyfill.ts
@@ -0,0 +1 @@
+import 'core-js/actual/promise/with-resolvers';
diff --git a/src/router/routes/modules/demos.ts b/src/router/routes/modules/demos.ts
index 7c57a6e7..58897bca 100644
--- a/src/router/routes/modules/demos.ts
+++ b/src/router/routes/modules/demos.ts
@@ -173,16 +173,6 @@ const routes: Array = [
},
],
},
- {
- path: 'icons',
- name: `${moduleName}-icons`,
- meta: {
- title: t('routes.demo.icon'),
- icon: 'ant-design:desktop-outlined',
- keepAlive: true,
- },
- component: () => import('@/views/demos/icons/Iconfont.vue'),
- },
{
path: 'nested-routes',
name: `${moduleName}-nested-routes`,
diff --git a/src/styles/variables.less b/src/styles/variables.less
index c42b3892..dc1447d6 100644
--- a/src/styles/variables.less
+++ b/src/styles/variables.less
@@ -2,3 +2,4 @@
@header-height: 64px;
@footer-height: 70px;
+@primary-color: #00b96b;
diff --git a/src/utils/request.ts b/src/utils/request.ts
index d9f27777..8ed167a4 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -1,4 +1,5 @@
import axios, { CanceledError } from 'axios';
+import { isString } from 'lodash-es';
import { message as $message, Modal } from 'ant-design-vue';
import type { AxiosRequestConfig, AxiosResponse } from 'axios';
import { ACCESS_TOKEN_KEY } from '@/enums/cacheEnum';
@@ -6,9 +7,9 @@ import { Storage } from '@/utils/Storage';
import { ResultEnum } from '@/enums/httpEnum';
import { useUserStore } from '@/store/modules/user';
-export interface RequestOptions extends AxiosRequestConfig {
+export interface RequestOptions extends AxiosRequestConfig {
/** 是否直接将数据从响应中提取出,例如直接返回 res.data,而忽略 res.code 等信息 */
- isReturnResult?: Passive;
+ isReturnResult?: boolean;
/** 请求成功是提示信息 */
successMsg?: string;
/** 请求失败是提示信息 */
@@ -23,14 +24,14 @@ export interface RequestOptions extends AxiosReq
const UNKNOWN_ERROR = '未知错误,请重试';
/** 真实请求的路径前缀 */
-const baseApiUrl = import.meta.env.VITE_BASE_API_URL;
+export const baseApiUrl = import.meta.env.VITE_BASE_API_URL;
/** mock请求路径前缀 */
// const baseMockUrl = import.meta.env.VITE_MOCK_API;
const controller = new AbortController();
const service = axios.create({
baseURL: baseApiUrl,
- timeout: 6000,
+ timeout: 10000,
signal: controller.signal,
});
@@ -102,27 +103,29 @@ type BaseResponse = Omit & {
export function request(
url: string,
- config: RequestOptions,
-): Promise['data']>;
-
+ config: { isReturnResult: false } & RequestOptions,
+): Promise>;
export function request(
url: string,
- config: RequestOptions,
+ config: RequestOptions,
+): Promise['data']>;
+export function request(
+ config: { isReturnResult: false } & RequestOptions,
): Promise>;
+export function request(config: RequestOptions): Promise['data']>;
/**
*
* @param url - request url
* @param config - AxiosRequestConfig
*/
-export async function request(
- url: string,
- config: RequestOptions = {},
-) {
+export async function request(_url: string | RequestOptions, _config: RequestOptions = {}) {
+ const url = isString(_url) ? _url : _url.url;
+ const config = isString(_url) ? _config : _url;
try {
// 兼容 from data 文件上传的情况
const { requestType, isReturnResult = true, ...rest } = config;
- const response = (await service.request({
+ const response = (await service.request({
url,
...rest,
headers: {
diff --git a/src/views/demos/form/custom-form/index.vue b/src/views/demos/form/custom-form/index.vue
index d7d26c6c..d54cd813 100644
--- a/src/views/demos/form/custom-form/index.vue
+++ b/src/views/demos/form/custom-form/index.vue
@@ -12,6 +12,7 @@
+
+
+
+
+
+ 至
+
+
+
+
diff --git a/src/views/demos/icons/Iconfont.vue b/src/views/demos/icons/Iconfont.vue
deleted file mode 100644
index 4ac6291d..00000000
--- a/src/views/demos/icons/Iconfont.vue
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
- 示意图:
-
-
-
- (例如://at.alicdn.com/t/font_1166867_7zdsgx6x88l.js)
-
-
-
- (例如:icon-huanfu1、icon-zhutipifu、icon-xinwendongtai1)
-
-
-
- 可以复制示例的地址和图标查看效果
-
-
-
-
-
-
-
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 8d210983..7f16b271 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -16,7 +16,7 @@
v-model:value="state.formInline.password"
size="large"
type="password"
- placeholder="123456"
+ placeholder="a123456"
autocomplete="new-password"
>
diff --git a/src/views/netdisk/columns.tsx b/src/views/netdisk/columns.tsx
new file mode 100644
index 00000000..1aa5ed3f
--- /dev/null
+++ b/src/views/netdisk/columns.tsx
@@ -0,0 +1,81 @@
+import { computed, ref } from 'vue';
+import { isEmpty } from 'lodash-es';
+import type { TableColumn } from '@/components/core/dynamic-table';
+// import { Avatar, Space, Tag } from 'ant-design-vue';
+import { formatSizeUnits } from '@/utils';
+import { hasPermission } from '@/permission';
+import { formatToDateTime } from '@/utils/dateUtil';
+
+export type TableListItem = API.SFileInfo;
+export type TableColumnItem = TableColumn;
+
+const formatSize = (size: string) => {
+ if (size) {
+ return formatSizeUnits(size);
+ }
+ return '-';
+};
+
+export const useColumns = () => {
+ const currentPathList = ref([]);
+ const localSearchKey = ref('');
+ const isSearching = computed(() => !isEmpty(localSearchKey.value));
+
+ const columns = computed(() => [
+ {
+ title: '文件名',
+ dataIndex: 'name',
+ align: 'left',
+ },
+ {
+ title: '大小',
+ width: 120,
+ align: 'center',
+ dataIndex: 'fsize',
+ customRender: ({ record }) => {formatSize(record.fsize)},
+ },
+ {
+ title: '上传时间',
+ dataIndex: 'putTime',
+ align: 'center',
+ width: 220,
+ customRender({ text }) {
+ return formatToDateTime(text);
+ },
+ },
+ {
+ title: '所属目录',
+ dataIndex: 'belongTo',
+ align: 'center',
+ width: 220,
+ hideInTable: !isSearching.value,
+ customRender: ({ record }) => (
+ handleClickBelong(record)}
+ >
+ {record.belongTo ? record.belongTo : '根目录'}
+
+ ),
+ },
+ ]);
+
+ const handleClickBelong = (row) => {
+ // clear search key
+ localSearchKey.value = '';
+ if (isEmpty(row.belongTo)) {
+ // root
+ currentPathList.value = [];
+ } else {
+ currentPathList.value = row.belongTo.split('/');
+ }
+ };
+
+ return {
+ columns,
+ currentPathList,
+ localSearchKey,
+ isSearching,
+ };
+};
diff --git a/src/views/netdisk/components/file-operate-button-list.vue b/src/views/netdisk/components/file-operate-button-list.vue
new file mode 100644
index 00000000..7debc5ee
--- /dev/null
+++ b/src/views/netdisk/components/file-operate-button-list.vue
@@ -0,0 +1,244 @@
+
+
+
+ 粘贴
+
+
+
+
+
+ 批量操作
+
+
+
+
+
+
+
+
+ {{ isSearching ? '取消搜索' : '全盘搜索' }}
+
+
+
+ 上传文件
+
+
+
+ 创建文件夹
+
+
+
+
+
+
diff --git a/src/views/netdisk/components/file-preview-drawer.vue b/src/views/netdisk/components/file-preview-drawer.vue
new file mode 100644
index 00000000..36b46588
--- /dev/null
+++ b/src/views/netdisk/components/file-preview-drawer.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+ {{ detailInfo[key] }}
+
+
+
+
+
+
+ 更新
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/netdisk/components/file-upload-drawer.vue b/src/views/netdisk/components/file-upload-drawer.vue
new file mode 100644
index 00000000..74ba3122
--- /dev/null
+++ b/src/views/netdisk/components/file-upload-drawer.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+
+
+
+
+
+
+
diff --git a/src/views/netdisk/components/overview-header-item.vue b/src/views/netdisk/components/overview-header-item.vue
new file mode 100644
index 00000000..2aec9df1
--- /dev/null
+++ b/src/views/netdisk/components/overview-header-item.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
diff --git a/src/views/netdisk/formSchemas.ts b/src/views/netdisk/formSchemas.ts
new file mode 100644
index 00000000..ddbced75
--- /dev/null
+++ b/src/views/netdisk/formSchemas.ts
@@ -0,0 +1,80 @@
+import type { FormSchema } from '@/components/core/schema-form/';
+import type { TableListItem } from './columns';
+
+export const getRenameSchemas = (row: TableListItem): FormSchema[] => [
+ {
+ field: 'toName',
+ component: 'Input',
+ label: `${row.type === 'dir' ? '文件夹' : '文件'}名称`,
+ defaultValue: row.name,
+ rules: [
+ {
+ required: true,
+ type: 'string',
+ validator: (_, value) => {
+ if (value && value === row.name) {
+ return Promise.reject('修改前后名称一致');
+ } else if (value && !value.includes('/')) {
+ return Promise.resolve();
+ } else {
+ return Promise.reject(`请输入合法${row.type === 'dir' ? '文件夹' : '文件'}的名称`);
+ }
+ },
+ },
+ ],
+ componentProps: {
+ placeholder: '输入重命名后的名称',
+ },
+ },
+];
+
+export const mkdirSchemas: FormSchema[] = [
+ {
+ field: 'dirName',
+ component: 'Input',
+ label: `文件夹名称`,
+ rules: [
+ {
+ required: true,
+ type: 'string',
+ validator: (_, value) => {
+ // 不可同时存在 // 此种路径
+ if (value && !value.includes('/')) {
+ return Promise.resolve();
+ } else {
+ return Promise.reject('请输入合法的文件夹路径');
+ }
+ },
+ },
+ ],
+ componentProps: {
+ placeholder: '请输入文件夹名称',
+ },
+ },
+];
+
+export const searchSchemas: FormSchema[] = [
+ {
+ field: 'key',
+ component: 'Input',
+ label: `关键字`,
+ defaultValue: '',
+ rules: [
+ {
+ required: true,
+ type: 'string',
+ validator: (_, value) => {
+ // 不可同时存在 // 此种路径
+ if (value && !value.includes('/')) {
+ return Promise.resolve();
+ } else {
+ return Promise.reject('请输入合法的名称');
+ }
+ },
+ },
+ ],
+ componentProps: {
+ placeholder: '请输入搜索关键字',
+ },
+ },
+];
diff --git a/src/views/netdisk/manage.vue b/src/views/netdisk/manage.vue
new file mode 100644
index 00000000..bf7c0434
--- /dev/null
+++ b/src/views/netdisk/manage.vue
@@ -0,0 +1,296 @@
+
+
+
+
+
+
+
+ 根目录
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ record.name }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/netdisk/overview.vue b/src/views/netdisk/overview.vue
new file mode 100644
index 00000000..1c29c723
--- /dev/null
+++ b/src/views/netdisk/overview.vue
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/dept/columns.tsx b/src/views/system/dept/columns.tsx
index 902eec78..3ba7cbf1 100644
--- a/src/views/system/dept/columns.tsx
+++ b/src/views/system/dept/columns.tsx
@@ -14,14 +14,12 @@ export const baseColumns: TableColumnItem[] = [
title: '排序',
dataIndex: 'orderNo',
width: 50,
-
hideInSearch: true,
},
{
title: '创建时间',
dataIndex: 'createdAt',
width: 200,
-
hideInSearch: true,
customRender: ({ record }) => formatToDateTime(record.createdAt),
},
diff --git a/src/views/system/dept/formSchemas.ts b/src/views/system/dept/formSchemas.ts
index 056f3c13..66d95e18 100644
--- a/src/views/system/dept/formSchemas.ts
+++ b/src/views/system/dept/formSchemas.ts
@@ -16,7 +16,6 @@ export const roleSchemas: FormSchema[] = [
componentProps: {
fieldNames: {
label: 'name',
- key: 'id',
value: 'id',
},
getPopupContainer: () => document.body,
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
index e66f2c67..b56ae795 100644
--- a/src/views/system/dept/index.vue
+++ b/src/views/system/dept/index.vue
@@ -17,7 +17,7 @@
新增
diff --git a/src/views/system/dict-item/columns.tsx b/src/views/system/dict-item/columns.tsx
index ccea5107..3a04ea4e 100644
--- a/src/views/system/dict-item/columns.tsx
+++ b/src/views/system/dict-item/columns.tsx
@@ -51,7 +51,10 @@ export const baseColumns: TableColumnItem[] = [
},
];
-export const getSearchFormSchemas = (dictTypeList: any[], onChange: Function): FormSchema[] => [
+export const getSearchFormSchemas = (
+ dictTypeList: any[],
+ onChange: (value) => any,
+): FormSchema[] => [
{
field: 'typeId',
label: '字典类型',
diff --git a/src/views/system/menu/formSchemas.tsx b/src/views/system/menu/formSchemas.tsx
index 979b16d1..170be927 100644
--- a/src/views/system/menu/formSchemas.tsx
+++ b/src/views/system/menu/formSchemas.tsx
@@ -47,7 +47,6 @@ export const useMenuSchemas = (): FormSchema[] => [
componentProps: {
fieldNames: {
label: 'name',
- key: 'id',
value: 'id',
},
request: async ({ schema, formModel }) => {
diff --git a/src/views/system/schedule/task/columns.tsx b/src/views/system/schedule/task/columns.tsx
index 2aa87db1..487bf44d 100644
--- a/src/views/system/schedule/task/columns.tsx
+++ b/src/views/system/schedule/task/columns.tsx
@@ -44,7 +44,6 @@ export const baseColumns: TableColumnItem[] = [
{
title: '类型',
width: 80,
-
dataIndex: 'type',
customRender: ({ record }) => (
{record.type === 1 ? 'Interval' : 'Cron'}
@@ -54,19 +53,16 @@ export const baseColumns: TableColumnItem[] = [
title: '调用服务',
dataIndex: 'service',
hideInSearch: true,
-
width: 220,
},
{
title: '执行参数',
dataIndex: 'data',
-
hideInSearch: true,
width: 220,
},
{
title: '备注',
-
dataIndex: 'remark',
},
];
diff --git a/src/views/system/user/columns.tsx b/src/views/system/user/columns.tsx
index 6a738859..2ac9f9e5 100644
--- a/src/views/system/user/columns.tsx
+++ b/src/views/system/user/columns.tsx
@@ -1,17 +1,22 @@
import { Avatar, Space, Tag } from 'ant-design-vue';
import type { TableColumn } from '@/components/core/dynamic-table';
import { formatToDateTime } from '@/utils/dateUtil';
+import { baseApiUrl } from '@/utils/request';
export type TableListItem = API.UserEntity;
export type TableColumnItem = TableColumn;
+const getAvatarUrl = (path: string) => {
+ return /^https?:\/\//.test(path) ? path : baseApiUrl + path;
+};
+
export const baseColumns: TableColumnItem[] = [
{
title: '头像',
width: 80,
dataIndex: 'avatar',
hideInSearch: true,
- customRender: ({ record }) => ,
+ customRender: ({ record }) => ,
},
{
title: '用户名',
diff --git a/src/views/system/user/formSchemas.tsx b/src/views/system/user/formSchemas.tsx
index 43dedbbd..7fd9f543 100644
--- a/src/views/system/user/formSchemas.tsx
+++ b/src/views/system/user/formSchemas.tsx
@@ -15,7 +15,6 @@ export const userSchemas: FormSchema[] = [
componentProps: {
fieldNames: {
label: 'name',
- key: 'id',
value: 'id',
},
getPopupContainer: () => document.body,
diff --git a/src/views/tool/email/formSchemas.tsx b/src/views/tool/email/formSchemas.tsx
index 9926e3b2..afe2f9d2 100644
--- a/src/views/tool/email/formSchemas.tsx
+++ b/src/views/tool/email/formSchemas.tsx
@@ -31,8 +31,8 @@ export const sendSchemas: FormSchema[] = [
},
{
field: 'content',
- component: ({ formModel }) => {
- return ;
+ component: () => {
+ return ;
},
label: '正文',
colProps: { md: 18 },
diff --git a/src/views/tool/storage/columns.tsx b/src/views/tool/storage/columns.tsx
index e11bcf00..bdb2eef6 100644
--- a/src/views/tool/storage/columns.tsx
+++ b/src/views/tool/storage/columns.tsx
@@ -2,6 +2,7 @@ import { Tag, Tooltip, Image, Progress } from 'ant-design-vue';
import type { TableColumn } from '@/components/core/dynamic-table';
import type { FormSchema } from '@/components/core/schema-form';
import { formatToDateTime } from '@/utils/dateUtil';
+import { baseApiUrl } from '@/utils/request';
export type TableListItem = API.StorageInfo;
export type TableColumnItem = TableColumn;
@@ -34,7 +35,7 @@ export const baseColumns: TableColumnItem[] = [
{{
title: () => record.path,
default: () => (
-
+
{record.name}
),
@@ -48,7 +49,7 @@ export const baseColumns: TableColumnItem[] = [
dataIndex: 'path',
width: 150,
customRender({ record }) {
- return ;
+ return ;
},
},
{
diff --git a/types/shims/shims-vue.d.ts b/types/shims/shims-vue.d.ts
index 2e8f83a4..96feec47 100644
--- a/types/shims/shims-vue.d.ts
+++ b/types/shims/shims-vue.d.ts
@@ -1,4 +1,4 @@
-import type { PermissionType } from '@/permission/permCode/';
+import type { PermissionType } from '@/permission/permCode';
// declare module '*.vue' {
// import * as vue from 'vue';
diff --git a/unocss.config.ts b/unocss.config.ts
index 7c1dbba9..d25bfdd5 100644
--- a/unocss.config.ts
+++ b/unocss.config.ts
@@ -9,7 +9,12 @@ import {
// https://github.com/unocss/unocss#readme
export default defineConfig({
- presets: [presetMini({ dark: 'class' }), presetAttributify(), presetUno()],
+ presets: [
+ presetMini({ dark: 'class' }),
+ // https://unocss.dev/presets/attributify#properties-conflicts
+ presetAttributify({ prefix: 'un-', prefixedOnly: true }),
+ presetUno(),
+ ],
transformers: [transformerDirectives(), transformerVariantGroup()],
shortcuts: {
'wh-full': 'w-full h-full',
diff --git a/vite.config.ts b/vite.config.ts
index eb4e9323..2ff91be4 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,7 +1,7 @@
import { resolve } from 'node:path';
import { loadEnv } from 'vite';
import vueJsx from '@vitejs/plugin-vue-jsx';
-import legacy from '@vitejs/plugin-legacy';
+import mkcert from 'vite-plugin-mkcert';
import vue from '@vitejs/plugin-vue';
import checker from 'vite-plugin-checker';
import Components from 'unplugin-vue-components/vite';
@@ -28,11 +28,10 @@ const __APP_INFO__ = {
// https://vitejs.dev/config/
export default ({ command, mode }: ConfigEnv): UserConfig => {
// 环境变量
- const { VITE_BASE_URL, VITE_DROP_CONSOLE } = loadEnv(mode, CWD);
+ const { VITE_BASE_URL, VITE_DROP_CONSOLE, VITE_MOCK_IN_PROD } = loadEnv(mode, CWD);
+ const isDev = command === 'serve';
const isBuild = command === 'build';
- const mainFilePath = resolve(CWD, 'src/main.ts');
- const polyfills = ['es.promise.with-resolvers'];
return {
base: VITE_BASE_URL,
@@ -53,25 +52,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
vueJsx({
// options are passed on to @vue/babel-plugin-jsx
}),
- mockServerPlugin({ build: isBuild }),
- legacy({
- targets: ['defaults', 'not IE 11', 'chrome 79', 'maintained node versions'],
- additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
- // ctrl + p node_modules/core-js/modules
- // 根据你自己需要导入相应的polyfill: https://github.com/vitejs/vite/tree/main/packages/plugin-legacy#polyfill-specifiers
- modernPolyfills: [...polyfills],
- }),
- // 由于 @vitejs/plugin-legacy 只在构建中运行,所以这里手动兼容一下以便于开发环境下也能引入 polyfill
- {
- name: 'dev-auto-import-polyfills',
- apply: 'serve',
- transform(code, id) {
- if (id === mainFilePath) {
- const imports = polyfills.map((n) => `import "core-js/modules/${n}.js"`).join(';');
- return `${imports};${code}`;
- }
- },
- },
+ mkcert(),
+ mockServerPlugin({ build: isBuild && VITE_MOCK_IN_PROD === 'true' }),
createSvgIconsPlugin({
// Specify the icon folder to be cached
iconDirs: [resolve(CWD, 'src/assets/icons')],
@@ -98,13 +80,14 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
],
}),
// https://github.com/fi3ework/vite-plugin-checker
- checker({
- typescript: true,
- vueTsc: true,
- eslint: {
- lintCommand: 'eslint "./src/**/*.{.vue,ts,tsx}"', // for example, lint .ts & .tsx
- },
- }),
+ isDev &&
+ checker({
+ typescript: true,
+ vueTsc: true,
+ eslint: {
+ lintCommand: 'eslint "./src/**/*.{.vue,ts,tsx}"', // for example, lint .ts & .tsx
+ },
+ }),
],
css: {
preprocessorOptions: {
@@ -112,8 +95,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
javascriptEnabled: true,
modifyVars: {},
additionalData: `
- @primary-color: #00b96b;
- @header-height: 60px;
+ @import '@/styles/variables.less';
`,
},
// scss: {
@@ -134,14 +116,9 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
- '/ws-api': {
- target: 'wss://nest-api.buqiyuan.site',
- // target: 'http://127.0.0.1:7002',
- changeOrigin: true, //是否允许跨域
- ws: true,
- },
'/upload': {
- target: 'http://127.0.0.1:7001/upload',
+ target: 'hhttps://nest-api.buqiyuan.site/upload',
+ // target: 'http://127.0.0.1:7001/upload',
changeOrigin: true,
ws: true,
rewrite: (path) => path.replace(new RegExp(`^/upload`), ''),
@@ -159,10 +136,23 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
},
},
build: {
- target: 'es2017',
+ target: 'es2022',
minify: 'esbuild',
- cssTarget: 'chrome79',
+ cssTarget: 'chrome89',
chunkSizeWarningLimit: 2000,
+ rollupOptions: {
+ output: {
+ // minifyInternalExports: false,
+ //TODO fix circular imports
+ manualChunks(id) {
+ if (id.includes('/src/locales/helper.ts')) {
+ return 'vendor';
+ } else if (id.includes('ant-design-vue')) {
+ return 'vendor';
+ }
+ },
+ },
+ },
},
};
};