From 812301d0ced0b75e046b93bcd36c8ee081a9b1de Mon Sep 17 00:00:00 2001 From: buqiyuan <1743369777@qq.com> Date: Thu, 22 Feb 2024 13:01:25 +0800 Subject: [PATCH] chore: sync code --- .env | 9 +- .env.development | 4 +- .env.production | 4 +- .github/workflows/release-package.yml | 6 +- .github/workflows/sync-to-gitee.yml | 5 + .gitignore | 1 - .gitmodules | 4 + .npmrc | 18 + README.md | 24 +- docs/.editorconfig | 10 + docs/.github/workflows/gh-pages.yml | 54 + docs/.gitignore | 118 ++ docs/.npmrc | 2 + docs/.prettierrc | 6 + docs/.vitepress/config.mts | 119 ++ docs/.vitepress/theme/index.ts | 10 + docs/.vitepress/theme/style.css | 108 ++ docs/.vitepress/theme/test.vue | 3 + docs/.vscode/launch.json | 15 + docs/.vscode/settings.json | 47 + docs/.vscode/vue3.3.code-snippets | 20 + docs/README.md | 7 + docs/package.json | 31 + docs/playground/README.md | 19 + docs/playground/index.html | 31 + docs/playground/package.json | 22 + docs/playground/public/logo.png | Bin 0 -> 60745 bytes docs/playground/src/App.vue | 97 + docs/playground/src/components/Header.vue | 284 +++ .../src/components/VersionSelect.vue | 120 ++ docs/playground/src/download/download.ts | 39 + .../src/download/template/README.md | 14 + .../src/download/template/index.html | 16 + docs/playground/src/download/template/main.js | 4 + .../src/download/template/package.json | 17 + .../src/download/template/vite.config.js | 7 + docs/playground/src/icons/Download.vue | 34 + docs/playground/src/icons/GitHub.vue | 12 + docs/playground/src/icons/Moon.vue | 8 + docs/playground/src/icons/Reload.vue | 14 + docs/playground/src/icons/Share.vue | 17 + docs/playground/src/icons/Sun.vue | 40 + docs/playground/src/main.ts | 9 + docs/playground/src/store/index.ts | 146 ++ docs/playground/src/template/global.d.ts | 3 + docs/playground/src/template/main.vue | 9 + docs/playground/src/template/setup.ts | 28 + docs/playground/src/template/tsconfig.json | 14 + docs/playground/src/template/welcome.vue | 48 + docs/playground/vercel.json | 16 + docs/playground/vite.config.ts | 35 + docs/pnpm-lock.yaml | 1717 ++++++++++++++++ docs/pnpm-workspace.yaml | 2 + docs/src/components/form.md | 7 + docs/src/components/table.md | 136 ++ docs/src/guide/api-manage.md | 98 + docs/src/guide/getting-started.md | 39 + docs/src/guide/introduction.md | 29 + docs/src/guide/mock-service.md | 21 + docs/src/index.md | 55 + docs/src/other/donate.md | 7 + docs/src/public/favicon.ico | Bin 0 -> 4286 bytes docs/src/public/logo.png | Bin 0 -> 60745 bytes docs/src/public/msw.svg | 10 + docs/src/public/nestjs.svg | 1 + docs/src/public/pinia.svg | 1 + docs/src/public/typescript.svg | 1 + docs/src/public/unocss.svg | 5 + docs/src/public/vite.svg | 15 + docs/src/public/weixin.jpg | Bin 0 -> 116189 bytes docs/src/public/zhifubao.jpg | Bin 0 -> 136583 bytes docs/tsconfig.json | 18 + mocks/index.ts | 5 +- package.json | 60 +- packages/components/index.ts | 10 + packages/components/package.json | 54 + packages/components/tsconfig.dts.json | 19 + packages/components/tsconfig.json | 10 + packages/components/vite.config.ts | 115 ++ packages/vite-plugin-msw/package.json | 11 +- .../src/browser/enableMocking.ts | 6 +- pnpm-lock.yaml | 1725 +++++++++++------ src/api/backend/api/index.ts | 8 +- src/api/backend/api/netDiskManage.ts | 128 ++ src/api/backend/api/netDiskOverview.ts | 11 + src/api/backend/api/systemEmail.ts | 4 +- src/api/backend/api/toolsStorage.ts | 8 +- src/api/backend/api/toolsUpload.ts | 4 +- src/api/backend/api/typings.d.ts | 150 ++ src/components/basic/tinymce/index.vue | 10 +- src/components/basic/tinymce/props.ts | 15 + .../table-settings/column-setting.vue | 16 +- .../table-settings/refresh-setting.vue | 4 +- .../table-settings/size-setting.vue | 10 +- .../dynamic-table/src/hooks/useColumns.ts | 3 +- .../dynamic-table/src/hooks/useTableForm.ts | 2 +- .../src/hooks/useTableMethods.ts | 6 +- .../core/schema-form/src/componentMap.ts | 15 +- src/components/core/schema-form/src/helper.ts | 10 +- .../core/schema-form/src/schema-form-item.vue | 12 +- .../core/schema-form/src/types/component.ts | 43 +- .../core/schema-form/src/types/form.ts | 49 +- src/layout/routerView/index.vue | 16 +- src/locales/index.ts | 10 +- src/main.ts | 11 +- src/permission/permCode.ts | 12 + src/polyfill.ts | 1 + src/router/routes/modules/demos.ts | 10 - src/styles/variables.less | 1 + src/utils/request.ts | 29 +- src/views/demos/form/custom-form/index.vue | 20 + .../form/custom-form/input-number-range.vue | 41 + src/views/demos/icons/Iconfont.vue | 70 - src/views/login/index.vue | 2 +- src/views/netdisk/columns.tsx | 81 + .../components/file-operate-button-list.vue | 244 +++ .../components/file-preview-drawer.vue | 154 ++ .../netdisk/components/file-upload-drawer.vue | 176 ++ .../components/overview-header-item.vue | 59 + src/views/netdisk/formSchemas.ts | 80 + src/views/netdisk/manage.vue | 296 +++ src/views/netdisk/overview.vue | 226 +++ src/views/system/dept/columns.tsx | 2 - src/views/system/dept/formSchemas.ts | 1 - src/views/system/dept/index.vue | 2 +- src/views/system/dict-item/columns.tsx | 5 +- src/views/system/menu/formSchemas.tsx | 1 - src/views/system/schedule/task/columns.tsx | 4 - src/views/system/user/columns.tsx | 7 +- src/views/system/user/formSchemas.tsx | 1 - src/views/tool/email/formSchemas.tsx | 4 +- src/views/tool/storage/columns.tsx | 5 +- types/shims/shims-vue.d.ts | 2 +- unocss.config.ts | 7 +- vite.config.ts | 72 +- 135 files changed, 7090 insertions(+), 975 deletions(-) create mode 100644 .gitmodules create mode 100644 .npmrc create mode 100644 docs/.editorconfig create mode 100644 docs/.github/workflows/gh-pages.yml create mode 100644 docs/.gitignore create mode 100644 docs/.npmrc create mode 100644 docs/.prettierrc create mode 100644 docs/.vitepress/config.mts create mode 100644 docs/.vitepress/theme/index.ts create mode 100644 docs/.vitepress/theme/style.css create mode 100644 docs/.vitepress/theme/test.vue create mode 100644 docs/.vscode/launch.json create mode 100644 docs/.vscode/settings.json create mode 100644 docs/.vscode/vue3.3.code-snippets create mode 100644 docs/README.md create mode 100644 docs/package.json create mode 100644 docs/playground/README.md create mode 100644 docs/playground/index.html create mode 100644 docs/playground/package.json create mode 100644 docs/playground/public/logo.png create mode 100644 docs/playground/src/App.vue create mode 100644 docs/playground/src/components/Header.vue create mode 100644 docs/playground/src/components/VersionSelect.vue create mode 100644 docs/playground/src/download/download.ts create mode 100644 docs/playground/src/download/template/README.md create mode 100644 docs/playground/src/download/template/index.html create mode 100644 docs/playground/src/download/template/main.js create mode 100644 docs/playground/src/download/template/package.json create mode 100644 docs/playground/src/download/template/vite.config.js create mode 100644 docs/playground/src/icons/Download.vue create mode 100644 docs/playground/src/icons/GitHub.vue create mode 100644 docs/playground/src/icons/Moon.vue create mode 100644 docs/playground/src/icons/Reload.vue create mode 100644 docs/playground/src/icons/Share.vue create mode 100644 docs/playground/src/icons/Sun.vue create mode 100644 docs/playground/src/main.ts create mode 100644 docs/playground/src/store/index.ts create mode 100644 docs/playground/src/template/global.d.ts create mode 100644 docs/playground/src/template/main.vue create mode 100644 docs/playground/src/template/setup.ts create mode 100644 docs/playground/src/template/tsconfig.json create mode 100644 docs/playground/src/template/welcome.vue create mode 100644 docs/playground/vercel.json create mode 100644 docs/playground/vite.config.ts create mode 100644 docs/pnpm-lock.yaml create mode 100644 docs/pnpm-workspace.yaml create mode 100644 docs/src/components/form.md create mode 100644 docs/src/components/table.md create mode 100644 docs/src/guide/api-manage.md create mode 100644 docs/src/guide/getting-started.md create mode 100644 docs/src/guide/introduction.md create mode 100644 docs/src/guide/mock-service.md create mode 100644 docs/src/index.md create mode 100644 docs/src/other/donate.md create mode 100644 docs/src/public/favicon.ico create mode 100644 docs/src/public/logo.png create mode 100644 docs/src/public/msw.svg create mode 100644 docs/src/public/nestjs.svg create mode 100644 docs/src/public/pinia.svg create mode 100644 docs/src/public/typescript.svg create mode 100644 docs/src/public/unocss.svg create mode 100644 docs/src/public/vite.svg create mode 100644 docs/src/public/weixin.jpg create mode 100644 docs/src/public/zhifubao.jpg create mode 100644 docs/tsconfig.json create mode 100644 packages/components/index.ts create mode 100644 packages/components/package.json create mode 100644 packages/components/tsconfig.dts.json create mode 100644 packages/components/tsconfig.json create mode 100644 packages/components/vite.config.ts create mode 100644 src/api/backend/api/netDiskManage.ts create mode 100644 src/api/backend/api/netDiskOverview.ts create mode 100644 src/polyfill.ts create mode 100644 src/views/demos/form/custom-form/input-number-range.vue delete mode 100644 src/views/demos/icons/Iconfont.vue create mode 100644 src/views/netdisk/columns.tsx create mode 100644 src/views/netdisk/components/file-operate-button-list.vue create mode 100644 src/views/netdisk/components/file-preview-drawer.vue create mode 100644 src/views/netdisk/components/file-upload-drawer.vue create mode 100644 src/views/netdisk/components/overview-header-item.vue create mode 100644 src/views/netdisk/formSchemas.ts create mode 100644 src/views/netdisk/manage.vue create mode 100644 src/views/netdisk/overview.vue 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", + "\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 0000000000000000000000000000000000000000..3ac3627baff5df3db601d3f2123fbd2a39021a40 GIT binary patch literal 60745 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
AePrMqu~>O0t#+&N>yL3 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 dx$;9mfw<%Ja6Cx-7>9tDf{e +import Header from './components/Header.vue' +import { Repl, ReplProps } from '@vue/repl' +import { ref, onMounted, computed } from 'vue' +import Monaco from '@vue/repl/monaco-editor' +import { useStore } from './store/' + +const { store, productionMode, antdVersion, adminPkgVersion } = useStore() + +const replRef = ref>() + +console.log('replRef', replRef) + +const setVH = () => { + document.documentElement.style.setProperty( + '--vh', + window.innerHeight + `px` + ) +} +window.addEventListener('resize', setVH) +setVH() + +// console.log('store', store) + +const previewOptions = computed(() => { + return { + customCode: { + importCode: `import { initCustomFormatter } from 'vue'`, + useCode: `initCustomFormatter()` + } + } +}) + +function reloadPage() { + replRef.value?.reload() +} + +const theme = ref<'dark' | 'light'>('dark') +function toggleTheme(isDark: boolean) { + theme.value = isDark ? 'dark' : 'light' +} +onMounted(() => { + const cls = document.documentElement.classList + toggleTheme(cls.contains('dark')) +}) + + + + + 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 @@ + + + + + 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 + +| [IE](http://godban.github.io/browsers-support-badges/)IE | [ Edge](http://godban.github.io/browsers-support-badges/)Edge | [Firefox](http://godban.github.io/browsers-support-badges/)Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)Chrome | [Safari](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 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/docs/src/public/logo.png b/docs/src/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3ac3627baff5df3db601d3f2123fbd2a39021a40 GIT binary patch literal 60745 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
AePrMqu~>O0t#+&N>yL3 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 dx$;9mfw<%Ja6Cx-7>9tDf{e + + msw-logo + + \ 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 0000000000000000000000000000000000000000..6f201cec8b8e597876c863bc3c4f3cf6d60df5a0 GIT binary patch literal 116189 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

nLlcJW!!V<#kgdo

SoJO>&?ouMKUyKr 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

WDAR5*b=K1QuA^^%Qz$FhWHz^B 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

^OPV?l7*cCcjw+(OE8#g}m;o02* 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

LGbm%EGL+wVH=)e-CbVKE6AjH4gh5dmRtOdm6|) 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℞v7%xwZZ14YyzD*^VjVrY9pEfohkP+VW`Oy&0yt!yy&WDh9QP zQ!>QKnZ!vBdaZ_qh9jxOscUd`w~)j(PF5h79og5a>lbhH`k7+W>dtqD^S&)oTk8=% zJ4<&3Wnzqr4rpM%Zkt7lmD&jmF~pX1e^@e@j6ukzGl-eNb9b7jfjyos_>y|ywLfGF zO%5rACGpyK&7zit()Dr`4t>p8^2=>T$J^%gKEkhxIv1-Zf<@JiOZ?%@fiWC854`ws zOAwpauq)WssnW^Q`ikq5$1Z}>aMfEodtM|$+k7vg!s1U6O;uCGv2@xIniGwB;4{rv z&_^HHo3)0S)2R}CRH`I?+*WGwt~cSkWWvf^n1z4VJPiK;PyHpvcm&~mAS)s|$VOn4 zAnQgEHmi=aIdEY2LxJY$_{7vpna&>TjZSFEv~AFj`=-md;_4yc07Jx-kk4Qz*Fx-- zcN(wZ62dT%3M3@qRtSGBGA7H~Nd9{JhpbkBaE=e8^~CcMo-rXIEz*w!$CGXj2QeLL zAMn>ueLoBq50o0YBg!oF7I|_3H-Yqhj|UwJ{$<1!ZQ>*x+d~~FR2F9c_#7Bg1kqq4 z9Oy54v?Iu;4fl|D20%kw0u(`#@S0D31inT~BpC;B%l0JLY_NGB42lqpmtW@o6dn9= zp{#$tQ0oZ7mrR_zVz2sRb)&{Ez&1H-JqQBc-x-tp1V<#=F>+m8+xm)%hRU$Rl2zp) zl-Et2lCigjX05*Lk{AC+0Qa+0_ebziK$)9nUi5To=F5-bC!v9_EGpCKz*TJ7;>+7g z174IIYeUvmuiZl?nHFmO$Mcw*Bv*!>oVBux`2gW}vd{=B-2gfi$tCy$R4Exz#D{yS z8tx4_w8%DpuQ^0xllcBdSL*)2^qtOown;*-est@P$cNA(>yi0V;F%Og0gBxaW@Uz7 z#D8tk>@;iC?QEq7`}9`qwsX7aiKT8iEK)^6ZNRR(qmXj)CAUTfXkI| zQ(?r3LtY;W0jE!B!?re!TIC2?j&uHiPt;oELnTTg>>jy`Z1{@!|0!Cy5_MPU3q z5~u;xDS>Bwr8j;H<;3Zi-Sx1w$Q^ic_Y&gn?j3gc#D%QXWBZmYJ*d5PuL_a>O|&Z1 zYH)9$Lac%Jc*B?5G8gN}KSqxvkT-?Fj*Sz&AL8%XV*&e8KXd^}&tZ#8oX&D5SrZkJ zNF*0}8n70uR01qPaw%SpYNU|Yln?ZhHS8Td80YTyPe_i&X09<)-ZwqQV$N!T3$!)5 znEg5+03fOg_KNdZJf9@8!Vq~KSv`ouX9ugAzR7sAE{K)ov+JWcFr) zvQf9vzaAUrmuA7mI@BD$i!+;xWK8q4=9BBrsuu~veqF}9dMxjdseF|56_MuX`xTUL zOk5~YYv7ANh0EQ8&WwXWlTMC}&IjrB(rRBnC#om6wRtVkUXkfLZ_W_qm!9V16r4@^ zAvI99G@XQo17Ce67yo&(gujV_>D@+ipt;cO32VZ$k9GUQ&Nlo;j)#GJ@#E$%MM8t_ zy>Vx38Z2w253Js_*6YU9*eWVhJ`GqFKjpzharj3K3}eOwb@GR?7aIDQTMc3NCg>AS zwZV3KbldjV`D-f6qE@w}MMK-p_T(Z%g$oaWP`uua@YN$uUZxA({&B7$CjMbT?)Rrw+G^+#D=bk;BZp?~&QAl0{wk}9W4l|j+`_p%^LN7sF>ByduG zyx0n1&hNq_zk?M1Auj`%1)H#QF88_5Ve3|HB*o)fNB$?BD;r n|NdDY`YSlf|G>-qt9Iu9z{~ur-qQcT%lxaN;QzqOeE0tW{(SM0 literal 0 HcmV?d00001 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 @@