diff --git a/.editorconfig b/.editorconfig index ddcefeb..0e24323 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,4 +13,4 @@ insert_final_newline = true # 始终在文件末尾插入一个新行 [*.md] # 表示仅 md 文件适用以下规则 max_line_length = off -trim_trailing_whitespace = false +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.env b/.env new file mode 100644 index 0000000..6b0fdd0 --- /dev/null +++ b/.env @@ -0,0 +1,17 @@ +# port +VITE_PORT = 5173 + +# 标题 +VITE_APP_TITLE = 'Vue-Admin' + +# open 运行 npm run dev 时自动打开浏览器 +VITE_OPEN = true + +# 是否生成包预览文件 +VITE_REPORT = false + +# 是否开启gzip压缩 +VITE_BUILD_GZIP = false + +# 是否删除生产环境 console +VITE_DROP_CONSOLE = true diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..3db7fa8 --- /dev/null +++ b/.env.development @@ -0,0 +1,11 @@ +# 本地环境 +NODE_ENV = 'development' + +# 开发环境跨域代理,可以配置多个,请注意不要换行 +# VITE_PROXY=[["/api","http://localhost:3000"]] +# VITE_PROXY = [["/appApi","http://localhost:3000"],["/upload","http://localhost:3000/upload"]] + +# 本地环境接口地址 +# 如果没有跨域问题,直接在这里配置即可 +VITE_APP_BASE_API = 'http://192.168.1.116:8080' +# VITE_APP_BASE_API = 'https://3lp9319797lh.vicp.fun' diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..bd96e6e --- /dev/null +++ b/.env.production @@ -0,0 +1,12 @@ +# 线上环境 +NODE_ENV = "production" + +# 线上环境接口地址 +VITE_APP_BASE_API = '/api' + +# 是否启用 gzip 或 brotli 压缩打包,如果需要多个压缩规则,可以使用 “,” 分隔 +# Optional: gzip | brotli | none +VITE_BUILD_COMPRESS = none + +# 打包压缩后是否删除源文件 +VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false diff --git a/.eslintrc.js b/.eslintrc.js index 09e62f2..a7a4f5b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,31 +1,22 @@ module.exports = { - root: true, env: { browser: true, es2021: true, node: true, }, - // 指定如何解析语法 - parser: 'vue-eslint-parser', - // 优先级低于 parse 的语法解析配置 - parserOptions: { - parser: '@typescript-eslint/parser', - ecmaVersion: 'latest', - sourceType: 'module', - }, - // 继承某些已有的规则 extends: [ 'plugin:vue/vue3-essential', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended', // 添加 prettier 插件 ], - plugins: ['vue', '@typescript-eslint', 'import', 'prettier', 'simple-import-sort'], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parser: '@typescript-eslint/parser', - }, - ], + parser: 'vue-eslint-parser', + overrides: [], + parserOptions: { + ecmaVersion: 'latest', + parser: '@typescript-eslint/parser', + sourceType: 'module', + }, + plugins: ['vue', '@typescript-eslint', 'simple-import-sort'], rules: { '@typescript-eslint/ban-types': 'off', '@typescript-eslint/no-explicit-any': 'off', diff --git a/.husky/commit-msg b/.husky/commit-msg index 1a089f4..5e563eb 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npx --no-install commitlint --edit $1 +npx --no-install commitlint --edit diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..f7e39e6 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,9 @@ +/dist/* +.local +.output.js +/node_modules/** + +**/*.svg +**/*.sh + +/public/* diff --git a/.stylelintrc.js b/.stylelintrc.js index 8819814..e4626ad 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -4,9 +4,9 @@ module.exports = { root: true, // 继承某些已有的规则 extends: [ - 'stylelint-config-html/vue', // 配置 vue 中 template 样式格式化 + 'stylelint-config-standard', // 配置 stylelint 拓展插件 'stylelint-config-standard-scss', // 配置 stylelint scss 插件 - 'stylelint-config-recommended-vue/scss', // 配置 vue 中 scss 样式格式化 + 'stylelint-config-html/vue', // 配置 vue 中 template 样式格式化 'stylelint-config-recess-order', // 配置 stylelint css 属性书写顺序插件, ], overrides: [ diff --git a/LICENSE b/LICENSE index 5e07f00..a3f68cc 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 三棵杨树 +Copyright (c) 2022 三棵杨树 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index d657d3d..7667f1d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,157 @@ -# BoatPlatform +

+ vue-template-admin +

+

使用 Vue3 + TS 构建的后台管理系统

-船货信息智慧共享服务平台 +

+ license + version + languages +

+ +--- + +## 简介 + +🚀🚀🚀 **vue-template-admin** 使用了最新的`Vue3.2`、`Vite4`、`Pinia2`、`Typescript`等主流技术开发,集成 `Dark Mode`(暗黑)模式,并且持久化保存,集成了代码规范检查工具`Eslint`、`Prettier`、`Stylelint`。另外本项目还封装了一些常用组件、Hooks、指令、动态路由、按钮级别权限控制等功能。你可以在此之上直接开发你的业务代码!希望你能喜欢。👋👋👋 + +**注 1:如果对您有帮助,您可以点右上角 "Star" 支持一下 谢谢!** + +**注 2:由于本人工作较忙,所以项目更新频率较慢,但是本项目会长期维护,有问题可以提 issue, 同时也欢迎大家来共建此项目,包括但不限于:bug 修复、代码优化、功能开发等等** + +## ✨ 项目功能 + +- 🚀 使用 Vue3.2 + TypeScript 开发,单文件组件**< script setup >** +- 🚀 采用 Vite4 作为项目开发、打包工具(配置 Gzip 打包、TSX 语法、跨域代理…) +- 🚀 整个项目集成了 TypeScript +- 🚀 使用 Pinia 替代 Vuex,轻量、简单、易用,集成 Pinia 持久化插件 +- 🚀 使用 TypeScript 对 Axios 整个二次封装(请求拦截、取消、常用请求封装…) +- 🚀 支持 Element 组件大小切换、暗黑模式、i18n 国际化 +- 🚀 使用 VueRouter 进行路由权限拦截、页面按钮权限配置、路由懒加载 +- 🚀 使用 KeepAlive 对页面进行缓存,支持多级嵌套页面缓存 +- 🚀 常用自定义指令开发(权限、复制、水印、拖拽、节流、防抖、长按…) +- 🚀 使用 Prettier 统一格式化代码,集成 Eslint、Stylelint 代码校验规范(项目规范配置) +- 🚀 使用 husky、lint-staged、commitlint 规范提交信息(项目规范配置) + +## 基础知识 + +提前了解和学习这些知识会对使用本项目有很大的帮助。 + +- [Vue3](https://v3.vuejs.org/) - 熟悉 `Vue3` 基础语法 +- [Vite](https://cn.vitejs.dev/) - 熟悉 `Vite` 特性 +- [Pinia](https://pinia.vuejs.org/) - 熟悉 `Pinia` 特性 +- [TypeScript](https://www.typescriptlang.org/) - 熟悉 `TypeScript` 基本语法 +- [Vue-Router](https://router.vuejs.org/) - 熟悉 `Vue-Router` 基本使用 +- [Element Plus](https://element-plus.org/zh-CN/) - 熟悉 `Element Plus` 组件库基本使用 +- [Es6+](http://es6.ruanyifeng.com/) - 熟悉 `ES6` 基本语法 + +## 配套资源 + +- [nest-template-cms](https://github.com/sankeyangshu/nest-template-cms) - 使用 Nest + TS 构建的 CMS 开发框架 +- [react-template-admin](https://github.com/sankeyangshu/react-template-admin) - 使用 React + TS 构建的后台管理系统 + +## 环境准备 + +本地环境需要安装 [pnpm7.x](https://www.pnpm.cn/)、[Node.js](http://nodejs.org/) 和 [Git](https://git-scm.com/) + +- 必须使用[pnpm7.x](https://www.pnpm.cn/),否则依赖可能安装不上。 +- [Node.js](http://nodejs.org/) 版本要求`12.x`以上,这里推荐 `16.x` 及以上。 + +## Vscode 配套插件 + +如果你使用的 IDE 是[vscode](https://code.visualstudio.com/)(推荐)的话,可以安装以下工具来提高开发效率及代码格式化 + +- [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) - vue 开发必备 +- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - 脚本代码检查 +- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - 代码格式化 +- [Stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint) - css 格式化 + +## 安装和使用 + +### 🚀 使用脚手架 + +[Galaxy-CLI](https://github.com/sankeyangshu/galaxy-cli) 是一个用于快速生成各种**前后端项目模版**的脚手架。 + +```bash +# 选择合适的包管理工具安装脚手架 +npm i -g galaxy-cli-core + +# yarn +yarn global add galaxy-cli-core + +# 推荐使用pnpm进行安装 +pnpm i -g galaxy-cli-core + +# 创建项目,按照脚手架提示,选择vue-template-admin模板 +galaxy init + +# 进入项目目录 +cd + +# 安装依赖 - 推荐使用pnpm +pnpm install + +# 启动服务 +pnpm dev + +# 打包发布 +pnpm build +``` + +### 克隆使用 + +```bash +# 克隆项目 +git clone https://github.com/sankeyangshu/vue-template-admin.git + +# 进入项目目录 +cd vue-template-admin + +# 安装依赖 - 推荐使用pnpm +pnpm install + +# 启动服务 +pnpm dev + +# 打包发布 +pnpm build +``` + +## 如何贡献 + +你可以[提一个 issue](https://github.com/sankeyangshu/vue-template-admin/issues) 或者提交一个 Pull Request。 + +**Pull Request:** + +1. Fork 代码 +2. 创建自己的分支: `git checkout -b feat/xxxx` +3. 提交你的修改: `git commit -am 'feat(function): add xxxxx'` +4. 推送您的分支: `git push origin feat/xxxx` +5. 提交 `pull request` + +## Git 贡献提交规范 + +- `feat`: 新增功能 +- `fix`: 修复 bug +- `docs`: 文档变更 +- `style`: 代码格式(不影响功能,例如空格、分号等格式修正) +- `refactor`: 代码重构(不包括 bug 修复、功能新增) +- `perf`: 性能优化 +- `test`: 添加、修改测试用例 +- `build`: 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等) +- `ci`: 修改 CI 配置、脚本 +- `chore`: 对构建过程或辅助工具和库的更改(不影响源文件、测试用例) +- `revert`: 回滚 commit + +## 浏览器支持 + +- 本地开发推荐使用 Chrome 最新版浏览器 [Download](https://www.google.com/intl/zh-CN/chrome/)。 +- 生产环境支持现代浏览器,不在支持 IE 浏览器,更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ESModule)。 + +| [ 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 | + +## 许可证 + +[MIT License](https://github.com/sankeyangshu/vue-template-admin/blob/master/LICENSE) diff --git a/build/getEnv.ts b/build/getEnv.ts new file mode 100644 index 0000000..69378ab --- /dev/null +++ b/build/getEnv.ts @@ -0,0 +1,51 @@ +import path from 'path'; + +export function isDevFn(mode: string): boolean { + return mode === 'development'; +} + +export function isProdFn(mode: string): boolean { + return mode === 'production'; +} + +export function isTestFn(mode: string): boolean { + return mode === 'test'; +} + +/** + * Whether to generate package preview + */ +export function isReportMode(): boolean { + return process.env.VITE_REPORT === 'true'; +} + +// Read all environment variable configuration files to process.env +// 读取并处理所有环境变量配置文件 .env +export function wrapperEnv(envConf: Recordable): ViteEnv { + const ret: any = {}; + + for (const envName of Object.keys(envConf)) { + // 去除空格 + let realName = envConf[envName].replace(/\\n/g, '\n'); + realName = realName === 'true' ? true : realName === 'false' ? false : realName; + + if (envName === 'VITE_PORT') { + realName = Number(realName); + } + if (envName === 'VITE_PROXY') { + try { + realName = JSON.parse(realName); + } catch (error) {} + } + ret[envName] = realName; + } + return ret; +} + +/** + * Get user root directory + * @param dir file path + */ +export function getRootPath(...dir: string[]) { + return path.resolve(process.cwd(), ...dir); +} diff --git a/build/plugins/compress.ts b/build/plugins/compress.ts new file mode 100644 index 0000000..6d52a62 --- /dev/null +++ b/build/plugins/compress.ts @@ -0,0 +1,37 @@ +/** + * 用于打包和输出gzip。请注意,这在Vite中无法正常工作,具体原因仍在调查中 + * https://github.com/anncwb/vite-plugin-compression + */ +import type { PluginOption } from 'vite'; +import viteCompression from 'vite-plugin-compression'; + +/** + * 根据 compress 配置,生成不同的压缩规则 + */ +export const configCompressPlugin = (viteEnv: ViteEnv): PluginOption | PluginOption[] => { + const { VITE_BUILD_COMPRESS = 'none', VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false } = viteEnv; + const compressList = VITE_BUILD_COMPRESS.split(','); + const plugins: PluginOption[] = []; + + if (compressList.includes('gzip')) { + plugins.push( + viteCompression({ + ext: '.gz', + algorithm: 'gzip', + deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, + }) + ); + } + + if (compressList.includes('brotli')) { + plugins.push( + viteCompression({ + ext: '.br', + algorithm: 'brotliCompress', + deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE, + }) + ); + } + + return plugins; +}; diff --git a/build/plugins/index.ts b/build/plugins/index.ts new file mode 100644 index 0000000..1997b49 --- /dev/null +++ b/build/plugins/index.ts @@ -0,0 +1,37 @@ +import vue from '@vitejs/plugin-vue'; +import type { PluginOption } from 'vite'; +import { configCompressPlugin } from './compress'; +import { configSvgIconsPlugin } from './svgPlugin'; +// 按需加载 Element Plus +// import AutoImport from 'unplugin-auto-import/vite'; +// import Components from 'unplugin-vue-components/vite'; +// import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; + +/** + * 配置 vite 插件 + * @param {ViteEnv} viteEnv vite 环境变量配置文件键值队 object + */ +export const createVitePlugins = (viteEnv: ViteEnv): (PluginOption | PluginOption[])[] => { + return [ + vue(), + // 按需加载 Element Plus + // AutoImport({ + // // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式) + // resolvers: [ElementPlusResolver()], + // dts: resolve('src/types/auto-imports.d.ts'), + // }), + // Components({ + // resolvers: [ + // // 自动导入 Element Plus 组件 + // ElementPlusResolver(), + // ], + // dts: resolve('src/types/components.d.ts'), + // }), + + // 使用 svg 图标 + configSvgIconsPlugin(), + + // 创建打包压缩配置 + configCompressPlugin(viteEnv), + ]; +}; diff --git a/build/plugins/svgPlugin.ts b/build/plugins/svgPlugin.ts new file mode 100644 index 0000000..1a71e2d --- /dev/null +++ b/build/plugins/svgPlugin.ts @@ -0,0 +1,16 @@ +import path from 'path'; +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; + +/** + * 配置svg vite 插件 + */ +export function configSvgIconsPlugin() { + // 使用 svg 图标 + const svgIconsPlugin = createSvgIconsPlugin({ + // 指定需要缓存的图标文件夹 + iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')], + // 指定symbolId格式 + symbolId: 'icon-[dir]-[name]', + }); + return svgIconsPlugin; +} diff --git a/build/proxy.ts b/build/proxy.ts new file mode 100644 index 0000000..336b88c --- /dev/null +++ b/build/proxy.ts @@ -0,0 +1,32 @@ +import type { ProxyOptions } from 'vite'; + +type ProxyItem = [string, string]; + +type ProxyList = ProxyItem[]; + +type ProxyTargetList = Record; + +const httpsRE = /^https:\/\//; + +/** + * 创建代理,用于解析 .env.development 代理配置 + * @param {ProxyList} list 代理地址列表 + */ +export function createProxy(list: ProxyList = []) { + const ret: ProxyTargetList = {}; + for (const [prefix, target] of list) { + const isHttps = httpsRE.test(target); + + // https://github.com/http-party/node-http-proxy#options + ret[prefix] = { + target: target, + changeOrigin: true, + ws: true, + rewrite: (path) => path.replace(new RegExp(`^${prefix}`), ''), + // https is require secure=false + // 如果您secure="true"只允许来自 HTTPS 的请求,则secure="false"意味着允许来自 HTTP 和 HTTPS 的请求。 + ...(isHttps ? { secure: false } : {}), + }; + } + return ret; +} diff --git a/commitlint.config.ts b/commitlint.config.js similarity index 100% rename from commitlint.config.ts rename to commitlint.config.js diff --git a/package.json b/package.json index f5f9587..9061d69 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,15 @@ { - "name": "vue-template-base", - "private": true, - "version": "0.0.0", - "description": "使用 Vue3 + TS 构建的项目基础模版", + "name": "vue-template-admin", + "version": "0.0.1", + "description": "使用 Vue3 + TS 构建的后台管理系统", "author": "sankeyangshu", "license": "MIT", - "keywords": [ - "vue", - "typescript" - ], + "private": true, "scripts": { "dev": "vite", - "build": "vite build", - "type-check": "vue-tsc --noEmit --skipLibCheck", + "build:dev": "vite build --mode development", + "build:prod": "vite build --mode production", + "build:test": "vite build --mode test", "preview": "vite preview", "lint:lint-staged": "lint-staged", "lint:eslint": "eslint \"src/**/*.{vue,ts,tsx}\" --fix", @@ -20,6 +17,19 @@ "lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", "prepare": "husky install" }, + "repository": { + "type": "git", + "url": "git+https://github.com/sankeyangshu/vue-template-admin.git" + }, + "keywords": [ + "vue", + "typescript", + "admin" + ], + "bugs": { + "url": "https://github.com/sankeyangshu/vue-template-admin/issues" + }, + "homepage": "https://github.com/sankeyangshu/vue-template-admin#readme", "lint-staged": { "*.{js,jsx,ts,tsx}": [ "eslint --fix", @@ -46,46 +56,56 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.3.1", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", + "axios": "^1.6.8", + "dayjs": "^1.11.11", "echarts": "^5.5.1", - "element-plus": "^2.8.5", + "element-plus": "^2.7.2", "nprogress": "^0.2.0", "path-browserify": "^1.0.1", "pinia": "^2.1.7", + "pinia-plugin-persistedstate": "^3.2.1", "vue": "^3.4.27", "vue-echarts": "^7.0.3", - "vue-router": "^4.3.3" + "vue-hooks-plus": "^2.0.1", + "vue-router": "^4.3.2" }, "devDependencies": { "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", - "@types/node": "^20.14.2", + "@types/node": "^18.19.33", "@types/nprogress": "^0.2.3", - "@types/path-browserify": "^1.0.3", - "@typescript-eslint/eslint-plugin": "^7.13.0", - "@typescript-eslint/parser": "^7.13.0", - "@vitejs/plugin-vue": "^5.0.5", + "@types/path-browserify": "^1.0.2", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@vitejs/plugin-vue": "^5.0.4", "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", + "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", + "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-simple-import-sort": "^12.1.0", "eslint-plugin-vue": "^9.26.0", "husky": "^9.0.11", - "lint-staged": "^15.2.7", + "lint-staged": "^15.2.2", "postcss": "^8.4.38", "postcss-html": "^1.7.0", - "prettier": "^3.3.2", - "sass": "^1.77.5", - "stylelint": "^16.6.1", + "prettier": "^3.2.5", + "sass": "^1.77.1", + "stylelint": "^16.5.0", "stylelint-config-html": "^1.1.0", "stylelint-config-recess-order": "^5.0.1", - "stylelint-config-recommended-scss": "^14.0.0", - "stylelint-config-recommended-vue": "^1.5.0", + "stylelint-config-standard": "^36.0.0", "stylelint-config-standard-scss": "^13.1.0", "typescript": "^5.4.5", - "vite": "^5.2.13", + "unplugin-auto-import": "^0.17.6", + "unplugin-vue-components": "^0.27.0", + "vite": "^5.2.11", + "vite-plugin-compression": "^0.5.1", "vite-plugin-svg-icons": "^2.0.1", - "vue-tsc": "^2.0.21" + "vue-eslint-parser": "^9.4.2", + "vue-tsc": "^2.0.17" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 48a697f..f388d2c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,12 +11,24 @@ importers: '@element-plus/icons-vue': specifier: ^2.3.1 version: 2.3.1(vue@3.4.27(typescript@5.4.5)) + '@wangeditor/editor': + specifier: ^5.1.23 + version: 5.1.23 + '@wangeditor/editor-for-vue': + specifier: ^5.1.12 + version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.4.27(typescript@5.4.5)) + axios: + specifier: ^1.6.8 + version: 1.6.8 + dayjs: + specifier: ^1.11.11 + version: 1.11.11 echarts: specifier: ^5.5.1 version: 5.5.1 element-plus: - specifier: ^2.8.5 - version: 2.8.5(vue@3.4.27(typescript@5.4.5)) + specifier: ^2.7.2 + version: 2.7.2(vue@3.4.27(typescript@5.4.5)) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -26,55 +38,64 @@ importers: pinia: specifier: ^2.1.7 version: 2.1.7(typescript@5.4.5)(vue@3.4.27(typescript@5.4.5)) + pinia-plugin-persistedstate: + specifier: ^3.2.1 + version: 3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.27(typescript@5.4.5))) vue: specifier: ^3.4.27 version: 3.4.27(typescript@5.4.5) vue-echarts: specifier: ^7.0.3 version: 7.0.3(@vue/runtime-core@3.4.27)(echarts@5.5.1)(vue@3.4.27(typescript@5.4.5)) + vue-hooks-plus: + specifier: ^2.0.1 + version: 2.0.1(vue@3.4.27(typescript@5.4.5)) vue-router: - specifier: ^4.3.3 - version: 4.3.3(vue@3.4.27(typescript@5.4.5)) + specifier: ^4.3.2 + version: 4.3.2(vue@3.4.27(typescript@5.4.5)) devDependencies: '@commitlint/cli': specifier: ^19.3.0 - version: 19.3.0(@types/node@20.14.2)(typescript@5.4.5) + version: 19.3.0(@types/node@18.19.33)(typescript@5.4.5) '@commitlint/config-conventional': specifier: ^19.2.2 version: 19.2.2 '@types/node': - specifier: ^20.14.2 - version: 20.14.2 + specifier: ^18.19.33 + version: 18.19.33 '@types/nprogress': specifier: ^0.2.3 version: 0.2.3 '@types/path-browserify': - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^1.0.2 + version: 1.0.2 '@typescript-eslint/eslint-plugin': - specifier: ^7.13.0 - version: 7.13.0(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.13.0 - version: 7.13.0(eslint@8.57.0)(typescript@5.4.5) + specifier: ^7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) '@vitejs/plugin-vue': - specifier: ^5.0.5 - version: 5.0.5(vite@5.2.13(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.27(typescript@5.4.5)) + specifier: ^5.0.4 + version: 5.0.4(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1))(vue@3.4.27(typescript@5.4.5)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) eslint: - specifier: ^8.57.0 + specifier: ^8.56.0 version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + eslint-plugin-node: + specifier: ^11.1.0 + version: 11.1.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2) + version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-simple-import-sort: specifier: ^12.1.0 version: 12.1.0(eslint@8.57.0) @@ -85,8 +106,8 @@ importers: specifier: ^9.0.11 version: 9.0.11 lint-staged: - specifier: ^15.2.7 - version: 15.2.7 + specifier: ^15.2.2 + version: 15.2.2 postcss: specifier: ^8.4.38 version: 8.4.38 @@ -94,44 +115,56 @@ importers: specifier: ^1.7.0 version: 1.7.0 prettier: - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.2.5 + version: 3.2.5 sass: - specifier: ^1.77.5 - version: 1.77.5 + specifier: ^1.77.1 + version: 1.77.1 stylelint: - specifier: ^16.6.1 - version: 16.6.1(typescript@5.4.5) + specifier: ^16.5.0 + version: 16.5.0(typescript@5.4.5) stylelint-config-html: specifier: ^1.1.0 - version: 1.1.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)) + version: 1.1.0(postcss-html@1.7.0)(stylelint@16.5.0(typescript@5.4.5)) stylelint-config-recess-order: specifier: ^5.0.1 - version: 5.0.1(stylelint@16.6.1(typescript@5.4.5)) - stylelint-config-recommended-scss: - specifier: ^14.0.0 - version: 14.0.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)) - stylelint-config-recommended-vue: - specifier: ^1.5.0 - version: 1.5.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)) + version: 5.0.1(stylelint@16.5.0(typescript@5.4.5)) + stylelint-config-standard: + specifier: ^36.0.0 + version: 36.0.0(stylelint@16.5.0(typescript@5.4.5)) stylelint-config-standard-scss: specifier: ^13.1.0 - version: 13.1.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)) + version: 13.1.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.4.5)) typescript: specifier: ^5.4.5 version: 5.4.5 + unplugin-auto-import: + specifier: ^0.17.6 + version: 0.17.6(@vueuse/core@10.9.0(vue@3.4.27(typescript@5.4.5)))(rollup@4.17.2) + unplugin-vue-components: + specifier: ^0.27.0 + version: 0.27.0(@babel/parser@7.24.5)(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5)) vite: - specifier: ^5.2.13 - version: 5.2.13(@types/node@20.14.2)(sass@1.77.5) + specifier: ^5.2.11 + version: 5.2.11(@types/node@18.19.33)(sass@1.77.1) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1)) vite-plugin-svg-icons: specifier: ^2.0.1 - version: 2.0.1(vite@5.2.13(@types/node@20.14.2)(sass@1.77.5)) + version: 2.0.1(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1)) + vue-eslint-parser: + specifier: ^9.4.2 + version: 9.4.2(eslint@8.57.0) vue-tsc: - specifier: ^2.0.21 - version: 2.0.21(typescript@5.4.5) + specifier: ^2.0.17 + version: 2.0.17(typescript@5.4.5) packages: + '@antfu/utils@0.7.8': + resolution: {integrity: sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==} + '@babel/code-frame@7.21.4': resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} engines: {node: '>=6.9.0'} @@ -148,11 +181,15 @@ packages: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + '@babel/parser@7.24.5': + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@babel/types@7.21.4': resolution: {integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==} engines: {node: '>=6.9.0'} @@ -243,14 +280,14 @@ packages: '@csstools/css-parser-algorithms': ^2.6.3 '@csstools/css-tokenizer': ^2.3.1 - '@csstools/selector-specificity@3.1.1': - resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} + '@csstools/selector-specificity@3.1.0': + resolution: {integrity: sha512-tGDFEHZ4XJeIt5NF7/nAfLGqPckmDZSnYne5gl67p4agQolE5s4rofdQ3e+VkeukfR91lVtSQ/Jt9DqM1ICiIQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 - '@ctrl/tinycolor@3.6.1': - resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + '@ctrl/tinycolor@3.6.0': + resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} engines: {node: '>=10'} '@dual-bundle/import-meta-resolve@4.1.0': @@ -405,8 +442,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': @@ -417,14 +454,11 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@floating-ui/core@1.6.8': - resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + '@floating-ui/core@1.2.6': + resolution: {integrity: sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==} - '@floating-ui/dom@1.6.11': - resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==} - - '@floating-ui/utils@0.2.8': - resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + '@floating-ui/dom@1.2.6': + resolution: {integrity: sha512-02vxFDuvuVPs22iJICacezYJyf7zwwOCWkPNkWNBr1U0Qt1cKFYzWvxts0AmqcOQGwt/3KJWcWIgtbUU38keyw==} '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} @@ -456,98 +490,110 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.17.2': + resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + '@rollup/rollup-android-arm64@4.17.2': + resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + '@rollup/rollup-darwin-arm64@4.17.2': + resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + '@rollup/rollup-darwin-x64@4.17.2': + resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + '@rollup/rollup-linux-arm-gnueabihf@4.17.2': + resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + '@rollup/rollup-linux-arm-musleabihf@4.17.2': + resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + '@rollup/rollup-linux-arm64-gnu@4.17.2': + resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + '@rollup/rollup-linux-arm64-musl@4.17.2': + resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': + resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + '@rollup/rollup-linux-riscv64-gnu@4.17.2': + resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + '@rollup/rollup-linux-s390x-gnu@4.17.2': + resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + '@rollup/rollup-linux-x64-gnu@4.17.2': + resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + '@rollup/rollup-linux-x64-musl@4.17.2': + resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + '@rollup/rollup-win32-arm64-msvc@4.17.2': + resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + '@rollup/rollup-win32-ia32-msvc@4.17.2': + resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + '@rollup/rollup-win32-x64-msvc@4.17.2': + resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} cpu: [x64] os: [win32] '@sxzz/popperjs-es@2.11.7': resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + '@transloadit/prettier-bytes@0.0.7': + resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} + '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -555,26 +601,41 @@ packages: '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/estree@1.0.1': + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/event-emitter@0.3.5': + resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==} + + '@types/js-cookie@3.0.3': + resolution: {integrity: sha512-Xe7IImK09HP1sv2M/aI+48a20VX+TdRJucfq4vfRVy6nWN8PYPOEnlMRSgxJAgYQIXJVL8dZ4/ilAM7dWNaOww==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/lodash-es@4.17.12': - resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + '@types/lodash-es@4.17.7': + resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==} - '@types/lodash@4.17.10': - resolution: {integrity: sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==} + '@types/lodash@4.14.194': + resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==} - '@types/node@20.14.2': - resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} + '@types/node@18.19.33': + resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} '@types/nprogress@0.2.3': resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} - '@types/path-browserify@1.0.3': - resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==} + '@types/path-browserify@1.0.2': + resolution: {integrity: sha512-ZkC5IUqqIFPXx3ASTTybTzmQdwHwe2C0u3eL75ldQ6T9E9IWFJodn6hIfbZGab73DfyiHN4Xw15gNxUq2FbvBA==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} '@types/svgo@2.6.4': resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} @@ -582,8 +643,11 @@ packages: '@types/web-bluetooth@0.0.16': resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} - '@typescript-eslint/eslint-plugin@7.13.0': - resolution: {integrity: sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==} + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + '@typescript-eslint/eslint-plugin@7.8.0': + resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -593,8 +657,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.13.0': - resolution: {integrity: sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA==} + '@typescript-eslint/parser@7.8.0': + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -603,12 +667,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.13.0': - resolution: {integrity: sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==} + '@typescript-eslint/scope-manager@7.8.0': + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.13.0': - resolution: {integrity: sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==} + '@typescript-eslint/type-utils@7.8.0': + resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -617,12 +681,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.13.0': - resolution: {integrity: sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==} + '@typescript-eslint/types@7.8.0': + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.13.0': - resolution: {integrity: sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==} + '@typescript-eslint/typescript-estree@7.8.0': + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -630,34 +694,51 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.13.0': - resolution: {integrity: sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==} + '@typescript-eslint/utils@7.8.0': + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.13.0': - resolution: {integrity: sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==} + '@typescript-eslint/visitor-keys@7.8.0': + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitejs/plugin-vue@5.0.5': - resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==} + '@uppy/companion-client@2.2.2': + resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} + + '@uppy/core@2.3.4': + resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==} + + '@uppy/store-default@2.1.1': + resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==} + + '@uppy/utils@4.1.3': + resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==} + + '@uppy/xhr-upload@2.1.3': + resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==} + peerDependencies: + '@uppy/core': ^2.3.3 + + '@vitejs/plugin-vue@5.0.4': + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 - '@volar/language-core@2.3.0': - resolution: {integrity: sha512-pvhL24WUh3VDnv7Yw5N1sjhPtdx7q9g+Wl3tggmnkMcyK8GcCNElF2zHiKznryn0DiUGk+eez/p2qQhz+puuHw==} + '@volar/language-core@2.2.2': + resolution: {integrity: sha512-GuvEL4JdxbnLVhPLICncCGT+tVW4cIz9GxXNeDofNnJ4iNTKhr5suGVsA1GLOne9PbraSjn8PlLt+pvLxuRVeQ==} - '@volar/source-map@2.3.0': - resolution: {integrity: sha512-G/228aZjAOGhDjhlyZ++nDbKrS9uk+5DMaEstjvzglaAw7nqtDyhnQAsYzUg6BMP9BtwZ59RIw5HGePrutn00Q==} + '@volar/source-map@2.2.2': + resolution: {integrity: sha512-vUwvZuSW6iN4JI9QRinh9EjFasx1TUtnaWMKwgWx08xz1PyYuNkLlWlrZXBZ5GGBhML0u230M/7X+AHY2h9yKg==} - '@volar/typescript@2.3.0': - resolution: {integrity: sha512-PtUwMM87WsKVeLJN33GSTUjBexlKfKgouWlOUIv7pjrOnTwhXHZNSmpc312xgXdTjQPpToK6KXSIcKu9sBQ5LQ==} + '@volar/typescript@2.2.2': + resolution: {integrity: sha512-WcwOREz7+uOrpjUrKhOMaOKKmyPdtqF95HWX7SE0d9hhBB1KkfahxhaAex5U9Bn43LfINHlycLoYCNEtfeKm0g==} '@vue/compiler-core@3.4.27': resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} @@ -674,11 +755,11 @@ packages: '@vue/devtools-api@6.5.0': resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - '@vue/devtools-api@6.6.3': - resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} + '@vue/devtools-api@6.6.1': + resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - '@vue/language-core@2.0.21': - resolution: {integrity: sha512-vjs6KwnCK++kIXT+eI63BGpJHfHNVJcUCr3RnvJsccT3vbJnZV5IhHR2puEkoOkIbDdp0Gqi1wEnv3hEd3WsxQ==} + '@vue/language-core@2.0.17': + resolution: {integrity: sha512-tHw2J6G9yL4kn3jN5MftOHEq86Y6qnuohBQ1OHkJ73fAv3OYgwDI1cfX7ds0OEJEycOMG64BA3ql5bDgDa41zw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -702,15 +783,111 @@ packages: '@vue/shared@3.4.27': resolution: {integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==} + '@vueuse/core@10.9.0': + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} + '@vueuse/core@9.13.0': resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + '@vueuse/metadata@10.9.0': + resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} + '@vueuse/metadata@9.13.0': resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + '@vueuse/shared@10.9.0': + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + '@vueuse/shared@9.13.0': resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + '@wangeditor/basic-modules@1.1.7': + resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/code-highlight@1.0.3': + resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/core@1.1.19': + resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==} + peerDependencies: + '@uppy/core': ^2.1.1 + '@uppy/xhr-upload': ^2.0.3 + dom7: ^3.0.0 + is-hotkey: ^0.2.0 + lodash.camelcase: ^4.3.0 + lodash.clonedeep: ^4.5.0 + lodash.debounce: ^4.0.8 + lodash.foreach: ^4.5.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + lodash.toarray: ^4.4.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/editor-for-vue@5.1.12': + resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==} + peerDependencies: + '@wangeditor/editor': '>=5.1.0' + vue: ^3.0.5 + + '@wangeditor/editor@5.1.23': + resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==} + + '@wangeditor/list-module@1.0.5': + resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/table-module@1.1.4': + resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/upload-image-module@1.0.2': + resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==} + peerDependencies: + '@uppy/core': ^2.0.3 + '@uppy/xhr-upload': ^2.0.3 + '@wangeditor/basic-modules': 1.x + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.foreach: ^4.5.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + + '@wangeditor/video-module@1.1.4': + resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==} + peerDependencies: + '@uppy/core': ^2.1.4 + '@uppy/xhr-upload': ^2.0.7 + '@wangeditor/core': 1.x + dom7: ^3.0.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -725,11 +902,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} - engines: {node: '>=0.4.0'} - hasBin: true - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -833,6 +1005,9 @@ packages: async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + atob@2.1.2: resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} @@ -849,6 +1024,9 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -886,12 +1064,8 @@ packages: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -899,9 +1073,6 @@ packages: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} - call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -910,8 +1081,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001632: - resolution: {integrity: sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==} + caniuse-lite@1.0.30001617: + resolution: {integrity: sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==} chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} @@ -933,6 +1104,10 @@ packages: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} @@ -976,9 +1151,13 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} - engines: {node: '>=18'} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} @@ -990,12 +1169,18 @@ packages: component-emitter@1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + computeds@0.0.1: resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} engines: {node: '>=16'} @@ -1069,6 +1254,10 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} + dargs@8.1.0: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} engines: {node: '>=12'} @@ -1085,8 +1274,8 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + dayjs@1.11.11: + resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -1147,6 +1336,10 @@ packages: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} engines: {node: '>=0.10.0'} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -1168,6 +1361,9 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom7@3.0.0: + resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} + domelementtype@1.3.1: resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} @@ -1201,11 +1397,11 @@ packages: echarts@5.5.1: resolution: {integrity: sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==} - electron-to-chromium@1.4.800: - resolution: {integrity: sha512-G8yyAReBP8m0XaW9BBH5NOJe4ZGYDDsPYkgLCG8xU6HwGKzrT0Jj51uAHkt1D+9ZxHPoGFSSZqqSN7HxAiP+0g==} + electron-to-chromium@1.4.763: + resolution: {integrity: sha512-k4J8NrtJ9QrvHLRo8Q18OncqBCB7tIUyqxRcJnlonQ0ioHKYB988GcDFF3ZePmnb8eHEopDs/wPHR/iGAFgoUQ==} - element-plus@2.8.5: - resolution: {integrity: sha512-Px+kPbRTVvn5oa5+9saa7QEOnUweKXm0JVI7yJHzKF/doQGixwcFMsQEF2+3Fy62EA/7dRRKVuhsNGGZYNk3cw==} + element-plus@2.7.2: + resolution: {integrity: sha512-AdEzBU/A68iUleio0MkQ46JeU5SeQvFFd915GJFScJmUEo5AmYg3OQ4pVjcu+p3b3Nupg9MC5Wa4xjAiC51kUg==} peerDependencies: vue: ^3.2.0 @@ -1266,15 +1462,22 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} + es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + + es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + + es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} + esbuild@0.20.2: resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} hasBin: true - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -1290,6 +1493,10 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + eslint-config-prettier@9.1.0: resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -1299,8 +1506,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + eslint-module-utils@2.8.0: + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1320,6 +1527,12 @@ packages: eslint-import-resolver-webpack: optional: true + eslint-plugin-es@3.0.1: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + eslint-plugin-import@2.29.1: resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} @@ -1330,6 +1543,12 @@ packages: '@typescript-eslint/parser': optional: true + eslint-plugin-node@11.1.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + eslint-plugin-prettier@5.1.3: resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1355,14 +1574,22 @@ packages: peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + + eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + eslint-visitor-keys@3.4.0: resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1376,6 +1603,10 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true + esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + espree@9.5.1: resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1399,6 +1630,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -1407,6 +1641,9 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -1418,6 +1655,9 @@ packages: resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} engines: {node: '>=0.10.0'} + ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -1457,9 +1697,9 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@9.0.0: - resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} - engines: {node: '>=18'} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} fill-range@4.0.0: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} @@ -1469,9 +1709,9 @@ packages: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -1481,20 +1721,26 @@ packages: resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} engines: {node: '>=18'} - flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@5.0.0: - resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} - engines: {node: '>=18'} - - flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -1502,6 +1748,10 @@ packages: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -1526,9 +1776,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -1547,9 +1794,6 @@ packages: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} - get-intrinsic@1.2.0: - resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} - get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -1581,7 +1825,6 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported global-directory@4.0.1: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} @@ -1595,10 +1838,6 @@ packages: resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} engines: {node: '>=6'} - globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -1642,16 +1881,9 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} @@ -1700,6 +1932,9 @@ packages: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} + html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + htmlparser2@3.10.1: resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} @@ -1715,6 +1950,9 @@ packages: engines: {node: '>=18'} hasBin: true + i18next@20.6.1: + resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==} + ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -1728,6 +1966,9 @@ packages: engines: {node: '>=0.10.0'} hasBin: true + immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + immutable@4.3.0: resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} @@ -1744,7 +1985,6 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -1848,6 +2088,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hotkey@0.2.0: + resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -1912,6 +2155,9 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} + is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -1936,13 +2182,17 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true js-base64@2.6.4: resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1998,33 +2248,37 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - known-css-properties@0.31.0: - resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} + known-css-properties@0.30.0: + resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.7: - resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} + lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} engines: {node: '>=18.12.0'} hasBin: true - listr2@8.2.1: - resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} + listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} engines: {node: '>=18.0.0'} loader-utils@1.4.2: resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} engines: {node: '>=4.0.0'} + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -2046,6 +2300,18 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -2064,6 +2330,12 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + + lodash.toarray@4.4.0: + resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} + lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} @@ -2130,10 +2402,21 @@ packages: resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} engines: {node: '>=0.10.0'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-match@1.0.2: + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -2156,15 +2439,24 @@ packages: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} engines: {node: '>=0.10.0'} + mlly@1.7.0: + resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + namespace-emitter@2.0.1: + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2177,6 +2469,9 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} @@ -2316,8 +2611,11 @@ packages: pathe@0.2.0: resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2328,6 +2626,11 @@ packages: engines: {node: '>=0.10'} hasBin: true + pinia-plugin-persistedstate@3.2.1: + resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==} + peerDependencies: + pinia: ^2.0.0 + pinia@2.1.7: resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} peerDependencies: @@ -2340,6 +2643,9 @@ packages: typescript: optional: true + pkg-types@1.1.1: + resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -2381,8 +2687,8 @@ packages: peerDependencies: postcss: ^8.4.29 - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} postcss-sorting@8.0.2: @@ -2418,6 +2724,9 @@ packages: resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} engines: {node: '>=0.10.0'} + preact@10.24.3: + resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2426,19 +2735,34 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} + qs@6.11.1: + resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==} + engines: {node: '>=0.6'} + query-string@4.3.4: resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} engines: {node: '>=0.10.0'} + query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2450,6 +2774,9 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regex-not@1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} engines: {node: '>=0.10.0'} @@ -2458,6 +2785,10 @@ packages: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} + regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + repeat-element@1.1.4: resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} engines: {node: '>=0.10.0'} @@ -2486,6 +2817,10 @@ packages: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated + resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + hasBin: true + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -2502,16 +2837,15 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + rollup@4.17.2: + resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2532,17 +2866,31 @@ packages: safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - sass@1.77.5: - resolution: {integrity: sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==} + sass@1.77.1: + resolution: {integrity: sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==} engines: {node: '>=14.0.0'} hasBin: true + screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + + scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + semver@7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} engines: {node: '>=10'} hasBin: true @@ -2577,10 +2925,6 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} - engines: {node: '>=14'} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -2589,6 +2933,14 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slate-history@0.66.0: + resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==} + peerDependencies: + slate: '>=0.65.3' + + slate@0.72.8: + resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==} + slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -2601,6 +2953,10 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + snabbdom@3.6.2: + resolution: {integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==} + engines: {node: '>=12.17.0'} + snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} engines: {node: '>=0.10.0'} @@ -2637,6 +2993,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + split-string@3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} @@ -2645,6 +3005,9 @@ packages: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + ssr-window@3.0.0: + resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} + stable@0.1.8: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' @@ -2657,6 +3020,10 @@ packages: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} engines: {node: '>=0.10.0'} + strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -2707,6 +3074,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + stylelint-config-html@1.1.0: resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} engines: {node: ^12 || >=14} @@ -2729,19 +3099,6 @@ packages: postcss: optional: true - stylelint-config-recommended-vue@1.5.0: - resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==} - engines: {node: ^12 || >=14} - peerDependencies: - postcss-html: ^1.0.0 - stylelint: '>=14.0.0' - - stylelint-config-recommended@13.0.0: - resolution: {integrity: sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==} - engines: {node: ^14.13.1 || >=16.0.0} - peerDependencies: - stylelint: ^15.10.0 - stylelint-config-recommended@14.0.0: resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} engines: {node: '>=18.12.0'} @@ -2769,14 +3126,14 @@ packages: peerDependencies: stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 - stylelint-scss@6.3.1: - resolution: {integrity: sha512-w/czBoWUZxJNk5fBRPODcXSN4qcPv3WHjTSSpFovVY+TE3MZTMR0yRlbmaDYrm8tTWHvpwQAuEBZ0lk2wwkboQ==} + stylelint-scss@6.3.0: + resolution: {integrity: sha512-8OSpiuf1xC7f8kllJsBOFAOYp/mR/C1FXMVeOFjtJPw+AFvEmC93FaklHt7MlOqU4poxuQ1TkYMyfI0V+1SxjA==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 - stylelint@16.6.1: - resolution: {integrity: sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==} + stylelint@16.5.0: + resolution: {integrity: sha512-IlCBtVrG+qTy3v+tZTk50W8BIomjY/RUuzdrDqdnlCYwVuzXtPbiGfxYqtyYAyOMcb+195zRsuHn6tgfPmFfbw==} engines: {node: '>=18.12.0'} hasBin: true @@ -2833,6 +3190,9 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -2868,8 +3228,8 @@ packages: tslib@2.3.0: resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -2879,6 +3239,9 @@ packages: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} + typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -2900,6 +3263,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -2910,6 +3276,9 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + unimport@3.7.1: + resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} + union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -2918,12 +3287,41 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} + unplugin-auto-import@0.17.6: + resolution: {integrity: sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + + unplugin-vue-components@0.27.0: + resolution: {integrity: sha512-77eTEy23sQ0UpzGWnZ9I2mY3cnmXwklz4ITcn3JfxjCoX643ghImkiZ4nFm58sxbdVcc4Fo/o4LIoFnlqEqsSg==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + + unplugin@1.10.1: + resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} + engines: {node: '>=14.0.0'} + unset-value@1.0.0: resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} engines: {node: '>=0.10.0'} - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + update-browserslist-db@1.0.15: + resolution: {integrity: sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2946,13 +3344,18 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vite-plugin-compression@0.5.1: + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + vite-plugin-svg-icons@2.0.1: resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} peerDependencies: vite: '>=2.0.0' - vite@5.2.13: - resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==} + vite@5.2.11: + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2979,9 +3382,6 @@ packages: terser: optional: true - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - vue-demi@0.13.11: resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} @@ -2993,8 +3393,8 @@ packages: '@vue/composition-api': optional: true - vue-demi@0.14.8: - resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} + vue-demi@0.14.7: + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} hasBin: true peerDependencies: @@ -3014,22 +3414,27 @@ packages: '@vue/runtime-core': optional: true - vue-eslint-parser@9.4.3: - resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + vue-eslint-parser@9.4.2: + resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' - vue-router@4.3.3: - resolution: {integrity: sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==} + vue-hooks-plus@2.0.1: + resolution: {integrity: sha512-19EszfkhNz6kj/dBi7cW2MphURqw7jNt5cRb/CduslZUWK0QqJsamRWenciPzZbix+qcbv8FfvOymY0UUGLO7Q==} + peerDependencies: + vue: ^3.2.25 + + vue-router@4.3.2: + resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==} peerDependencies: vue: ^3.2.0 vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} - vue-tsc@2.0.21: - resolution: {integrity: sha512-E6x1p1HaHES6Doy8pqtm7kQern79zRtIewkf9fiv7Y43Zo4AFDS5hKi+iHi2RwEhqRmuiwliB1LCEFEGwvxQnw==} + vue-tsc@2.0.17: + resolution: {integrity: sha512-RRZsiCBD1hvATQb321xV+SkRDKsK5hgFQ4WXy5wuYsyyjz8xAK4DjxHkpH7PFoJKUbZTbeW8KzhejzXZS49Tzw==} hasBin: true peerDependencies: typescript: '*' @@ -3042,6 +3447,13 @@ packages: typescript: optional: true + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -3058,6 +3470,9 @@ packages: engines: {node: '>= 8'} hasBin: true + wildcard@1.1.2: + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -3088,10 +3503,9 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} - hasBin: true yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} @@ -3114,6 +3528,8 @@ packages: snapshots: + '@antfu/utils@0.7.8': {} + '@babel/code-frame@7.21.4': dependencies: '@babel/highlight': 7.18.6 @@ -3128,21 +3544,25 @@ snapshots: chalk: 2.4.2 js-tokens: 4.0.0 - '@babel/parser@7.24.7': + '@babel/parser@7.24.5': dependencies: '@babel/types': 7.21.4 + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/types@7.21.4': dependencies: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 - '@commitlint/cli@19.3.0(@types/node@20.14.2)(typescript@5.4.5)': + '@commitlint/cli@19.3.0(@types/node@18.19.33)(typescript@5.4.5)': dependencies: '@commitlint/format': 19.3.0 '@commitlint/lint': 19.2.2 - '@commitlint/load': 19.2.0(@types/node@20.14.2)(typescript@5.4.5) + '@commitlint/load': 19.2.0(@types/node@18.19.33)(typescript@5.4.5) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -3189,7 +3609,7 @@ snapshots: '@commitlint/rules': 19.0.3 '@commitlint/types': 19.0.3 - '@commitlint/load@19.2.0(@types/node@20.14.2)(typescript@5.4.5)': + '@commitlint/load@19.2.0(@types/node@18.19.33)(typescript@5.4.5)': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 @@ -3197,7 +3617,7 @@ snapshots: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.4.5) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.14.2)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.19.33)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -3260,11 +3680,11 @@ snapshots: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 - '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.0)': + '@csstools/selector-specificity@3.1.0(postcss-selector-parser@6.0.16)': dependencies: - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.0.16 - '@ctrl/tinycolor@3.6.1': {} + '@ctrl/tinycolor@3.6.0': {} '@dual-bundle/import-meta-resolve@4.1.0': {} @@ -3346,15 +3766,15 @@ snapshots: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.1': {} + '@eslint-community/regexpp@4.10.0': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 + globals: 13.24.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -3364,16 +3784,11 @@ snapshots: '@eslint/js@8.57.0': {} - '@floating-ui/core@1.6.8': - dependencies: - '@floating-ui/utils': 0.2.8 + '@floating-ui/core@1.2.6': {} - '@floating-ui/dom@1.6.11': + '@floating-ui/dom@1.2.6': dependencies: - '@floating-ui/core': 1.6.8 - '@floating-ui/utils': 0.2.8 - - '@floating-ui/utils@0.2.8': {} + '@floating-ui/core': 1.2.6 '@humanwhocodes/config-array@0.11.14': dependencies: @@ -3403,110 +3818,135 @@ snapshots: '@pkgr/core@0.1.1': {} - '@rollup/rollup-android-arm-eabi@4.18.0': + '@rollup/pluginutils@5.1.0(rollup@4.17.2)': + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.17.2 + + '@rollup/rollup-android-arm-eabi@4.17.2': optional: true - '@rollup/rollup-android-arm64@4.18.0': + '@rollup/rollup-android-arm64@4.17.2': optional: true - '@rollup/rollup-darwin-arm64@4.18.0': + '@rollup/rollup-darwin-arm64@4.17.2': optional: true - '@rollup/rollup-darwin-x64@4.18.0': + '@rollup/rollup-darwin-x64@4.17.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + '@rollup/rollup-linux-arm-gnueabihf@4.17.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': + '@rollup/rollup-linux-arm-musleabihf@4.17.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': + '@rollup/rollup-linux-arm64-gnu@4.17.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': + '@rollup/rollup-linux-arm64-musl@4.17.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': + '@rollup/rollup-linux-riscv64-gnu@4.17.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': + '@rollup/rollup-linux-s390x-gnu@4.17.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': + '@rollup/rollup-linux-x64-gnu@4.17.2': optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': + '@rollup/rollup-linux-x64-musl@4.17.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': + '@rollup/rollup-win32-arm64-msvc@4.17.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': + '@rollup/rollup-win32-ia32-msvc@4.17.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': + '@rollup/rollup-win32-x64-msvc@4.17.2': optional: true '@sxzz/popperjs-es@2.11.7': {} + '@transloadit/prettier-bytes@0.0.7': {} + '@trysound/sax@0.2.0': {} '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 20.14.2 + '@types/node': 18.19.33 + + '@types/estree@1.0.1': {} '@types/estree@1.0.5': {} + '@types/event-emitter@0.3.5': {} + + '@types/js-cookie@3.0.3': {} + + '@types/json-schema@7.0.15': {} + '@types/json5@0.0.29': {} - '@types/lodash-es@4.17.12': + '@types/lodash-es@4.17.7': dependencies: - '@types/lodash': 4.17.10 + '@types/lodash': 4.14.194 - '@types/lodash@4.17.10': {} + '@types/lodash@4.14.194': {} - '@types/node@20.14.2': + '@types/node@18.19.33': dependencies: undici-types: 5.26.5 '@types/nprogress@0.2.3': {} - '@types/path-browserify@1.0.3': {} + '@types/path-browserify@1.0.2': {} + + '@types/semver@7.5.8': {} '@types/svgo@2.6.4': dependencies: - '@types/node': 20.14.2 + '@types/node': 18.19.33 '@types/web-bluetooth@0.0.16': {} - '@typescript-eslint/eslint-plugin@7.13.0(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + '@types/web-bluetooth@0.0.20': + optional: true + + '@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.13.0 - '@typescript-eslint/type-utils': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.13.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.13.0 + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/type-utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 + debug: 4.3.4 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 + semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.13.0 - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.13.0 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 eslint: 8.57.0 optionalDependencies: @@ -3514,15 +3954,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.13.0': + '@typescript-eslint/scope-manager@7.8.0': dependencies: - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/visitor-keys': 7.13.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 - '@typescript-eslint/type-utils@7.13.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.13.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.5) @@ -3531,12 +3971,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.13.0': {} + '@typescript-eslint/types@7.8.0': {} - '@typescript-eslint/typescript-estree@7.13.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/visitor-keys': 7.13.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3548,46 +3988,77 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.13.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.13.0 - '@typescript-eslint/types': 7.13.0 - '@typescript-eslint/typescript-estree': 7.13.0(typescript@5.4.5) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) eslint: 8.57.0 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.13.0': + '@typescript-eslint/visitor-keys@7.8.0': dependencies: - '@typescript-eslint/types': 7.13.0 + '@typescript-eslint/types': 7.8.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.0.5(vite@5.2.13(@types/node@20.14.2)(sass@1.77.5))(vue@3.4.27(typescript@5.4.5))': + '@uppy/companion-client@2.2.2': dependencies: - vite: 5.2.13(@types/node@20.14.2)(sass@1.77.5) + '@uppy/utils': 4.1.3 + namespace-emitter: 2.0.1 + + '@uppy/core@2.3.4': + dependencies: + '@transloadit/prettier-bytes': 0.0.7 + '@uppy/store-default': 2.1.1 + '@uppy/utils': 4.1.3 + lodash.throttle: 4.1.1 + mime-match: 1.0.2 + namespace-emitter: 2.0.1 + nanoid: 3.3.7 + preact: 10.24.3 + + '@uppy/store-default@2.1.1': {} + + '@uppy/utils@4.1.3': + dependencies: + lodash.throttle: 4.1.1 + + '@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4)': + dependencies: + '@uppy/companion-client': 2.2.2 + '@uppy/core': 2.3.4 + '@uppy/utils': 4.1.3 + nanoid: 3.3.7 + + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1))(vue@3.4.27(typescript@5.4.5))': + dependencies: + vite: 5.2.11(@types/node@18.19.33)(sass@1.77.1) vue: 3.4.27(typescript@5.4.5) - '@volar/language-core@2.3.0': + '@volar/language-core@2.2.2': dependencies: - '@volar/source-map': 2.3.0 + '@volar/source-map': 2.2.2 - '@volar/source-map@2.3.0': + '@volar/source-map@2.2.2': dependencies: muggle-string: 0.4.1 - '@volar/typescript@2.3.0': + '@volar/typescript@2.2.2': dependencies: - '@volar/language-core': 2.3.0 + '@volar/language-core': 2.2.2 path-browserify: 1.0.1 - vscode-uri: 3.0.8 '@vue/compiler-core@3.4.27': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.5 '@vue/shared': 3.4.27 entities: 4.5.0 estree-walker: 2.0.2 @@ -3600,7 +4071,7 @@ snapshots: '@vue/compiler-sfc@3.4.27': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.5 '@vue/compiler-core': 3.4.27 '@vue/compiler-dom': 3.4.27 '@vue/compiler-ssr': 3.4.27 @@ -3617,11 +4088,11 @@ snapshots: '@vue/devtools-api@6.5.0': {} - '@vue/devtools-api@6.6.3': {} + '@vue/devtools-api@6.6.1': {} - '@vue/language-core@2.0.21(typescript@5.4.5)': + '@vue/language-core@2.0.17(typescript@5.4.5)': dependencies: - '@volar/language-core': 2.3.0 + '@volar/language-core': 2.2.2 '@vue/compiler-dom': 3.4.27 '@vue/shared': 3.4.27 computeds: 0.0.1 @@ -3654,24 +4125,154 @@ snapshots: '@vue/shared@3.4.27': {} + '@vueuse/core@10.9.0(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + optional: true + '@vueuse/core@9.13.0(vue@3.4.27(typescript@5.4.5))': dependencies: '@types/web-bluetooth': 0.0.16 '@vueuse/metadata': 9.13.0 '@vueuse/shared': 9.13.0(vue@3.4.27(typescript@5.4.5)) - vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue + '@vueuse/metadata@10.9.0': + optional: true + '@vueuse/metadata@9.13.0': {} - '@vueuse/shared@9.13.0(vue@3.4.27(typescript@5.4.5))': + '@vueuse/shared@10.9.0(vue@3.4.27(typescript@5.4.5))': dependencies: - vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue + optional: true + + '@vueuse/shared@9.13.0(vue@3.4.27(typescript@5.4.5))': + dependencies: + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + is-url: 1.2.4 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + prismjs: 1.29.0 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@types/event-emitter': 0.3.5 + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + dom7: 3.0.0 + event-emitter: 0.3.5 + html-void-elements: 2.0.1 + i18next: 20.6.1 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + scroll-into-view-if-needed: 2.2.31 + slate: 0.72.8 + slate-history: 0.66.0(slate@0.72.8) + snabbdom: 3.6.2 + + '@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.4.27(typescript@5.4.5))': + dependencies: + '@wangeditor/editor': 5.1.23 + vue: 3.4.27(typescript@5.4.5) + + '@wangeditor/editor@5.1.23': + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + lodash.foreach: 4.5.0 + slate: 0.72.8 + snabbdom: 3.6.2 + + '@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2)': + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.6.2) + dom7: 3.0.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.6.2 JSONStream@1.3.5: dependencies: @@ -3682,14 +4283,8 @@ snapshots: dependencies: acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.8.2): - dependencies: - acorn: 8.8.2 - acorn@8.11.3: {} - acorn@8.8.2: {} - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -3768,14 +4363,14 @@ snapshots: array.prototype.flat@1.3.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 define-properties: 1.2.0 es-abstract: 1.23.3 es-shim-unscopables: 1.0.0 array.prototype.flatmap@1.3.2: dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 define-properties: 1.2.0 es-abstract: 1.23.3 es-shim-unscopables: 1.0.0 @@ -3797,15 +4392,17 @@ snapshots: async-validator@4.2.5: {} + asynckit@0.4.0: {} + atob@2.1.2: {} autoprefixer@10.4.19(postcss@8.4.38): dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001632 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001617 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 + picocolors: 1.0.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 @@ -3813,6 +4410,14 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 + axios@1.6.8: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + balanced-match@1.0.2: {} balanced-match@2.0.0: {} @@ -3863,16 +4468,12 @@ snapshots: dependencies: fill-range: 7.0.1 - braces@3.0.3: + browserslist@4.23.0: dependencies: - fill-range: 7.1.1 - - browserslist@4.23.1: - dependencies: - caniuse-lite: 1.0.30001632 - electron-to-chromium: 1.4.800 + caniuse-lite: 1.0.30001617 + electron-to-chromium: 1.4.763 node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) + update-browserslist-db: 1.0.15(browserslist@4.23.0) cache-base@1.0.1: dependencies: @@ -3886,11 +4487,6 @@ snapshots: union-value: 1.0.1 unset-value: 1.0.0 - call-bind@1.0.2: - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.0 - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -3901,7 +4497,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001632: {} + caniuse-lite@1.0.30001617: {} chalk@1.1.3: dependencies: @@ -3936,6 +4532,18 @@ snapshots: optionalDependencies: fsevents: 2.3.2 + chokidar@3.6.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.2 + class-utils@0.3.6: dependencies: arr-union: 3.1.0 @@ -3981,7 +4589,11 @@ snapshots: colorette@2.0.20: {} - commander@12.1.0: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@11.1.0: {} commander@7.2.0: {} @@ -3992,10 +4604,14 @@ snapshots: component-emitter@1.3.0: {} + compute-scroll-into-view@1.0.20: {} + computeds@0.0.1: {} concat-map@0.0.1: {} + confbox@0.1.7: {} + conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 @@ -4018,11 +4634,11 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@5.0.0(@types/node@20.14.2)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): + cosmiconfig-typescript-loader@5.0.0(@types/node@18.19.33)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): dependencies: - '@types/node': 20.14.2 + '@types/node': 18.19.33 cosmiconfig: 9.0.0(typescript@5.4.5) - jiti: 1.21.6 + jiti: 1.21.0 typescript: 5.4.5 cosmiconfig@9.0.0(typescript@5.4.5): @@ -4070,6 +4686,11 @@ snapshots: csstype@3.1.3: {} + d@1.0.2: + dependencies: + es5-ext: 0.10.64 + type: 2.7.3 + dargs@8.1.0: {} data-view-buffer@1.0.1: @@ -4090,7 +4711,7 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - dayjs@1.11.13: {} + dayjs@1.11.11: {} de-indent@1.0.2: {} @@ -4100,7 +4721,7 @@ snapshots: debug@3.2.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 debug@4.3.4: dependencies: @@ -4118,13 +4739,13 @@ snapshots: define-properties@1.2.0: dependencies: - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 define-properties@1.2.1: dependencies: define-data-property: 1.1.4 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 define-property@0.2.5: @@ -4140,6 +4761,8 @@ snapshots: is-descriptor: 1.0.2 isobject: 3.0.1 + delayed-stream@1.0.0: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -4169,6 +4792,10 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 + dom7@3.0.0: + dependencies: + ssr-window: 3.0.0 + domelementtype@1.3.1: {} domelementtype@2.3.0: {} @@ -4211,23 +4838,23 @@ snapshots: tslib: 2.3.0 zrender: 5.6.0 - electron-to-chromium@1.4.800: {} + electron-to-chromium@1.4.763: {} - element-plus@2.8.5(vue@3.4.27(typescript@5.4.5)): + element-plus@2.7.2(vue@3.4.27(typescript@5.4.5)): dependencies: - '@ctrl/tinycolor': 3.6.1 + '@ctrl/tinycolor': 3.6.0 '@element-plus/icons-vue': 2.3.1(vue@3.4.27(typescript@5.4.5)) - '@floating-ui/dom': 1.6.11 + '@floating-ui/dom': 1.2.6 '@popperjs/core': '@sxzz/popperjs-es@2.11.7' - '@types/lodash': 4.17.10 - '@types/lodash-es': 4.17.12 + '@types/lodash': 4.14.194 + '@types/lodash-es': 4.17.7 '@vueuse/core': 9.13.0(vue@3.4.27(typescript@5.4.5)) async-validator: 4.2.5 - dayjs: 1.11.13 + dayjs: 1.11.11 escape-html: 1.0.3 lodash: 4.17.21 lodash-es: 4.17.21 - lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) + lodash-unified: 1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21) memoize-one: 6.0.0 normalize-wheel-es: 1.2.0 vue: 3.4.27(typescript@5.4.5) @@ -4331,6 +4958,24 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 + es5-ext@0.10.64: + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 + next-tick: 1.1.0 + + es6-iterator@2.0.3: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 + + es6-symbol@3.1.4: + dependencies: + d: 1.0.2 + ext: 1.7.0 + esbuild@0.20.2: optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 @@ -4357,8 +5002,6 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - escalade@3.1.1: {} - escalade@3.1.2: {} escape-html@1.0.3: {} @@ -4367,6 +5010,8 @@ snapshots: escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + eslint-config-prettier@9.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 @@ -4379,17 +5024,23 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.13.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): + eslint-plugin-es@3.0.1(eslint@8.57.0): + dependencies: + eslint: 8.57.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -4399,7 +5050,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.13.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -4410,16 +5061,26 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.13.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.2): + eslint-plugin-node@11.1.0(eslint@8.57.0): dependencies: eslint: 8.57.0 - prettier: 3.3.2 + eslint-plugin-es: 3.0.1(eslint@8.57.0) + eslint-utils: 2.1.0 + ignore: 5.2.4 + minimatch: 3.1.2 + resolve: 1.22.2 + semver: 6.3.0 + + eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): + dependencies: + eslint: 8.57.0 + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 optionalDependencies: @@ -4436,14 +5097,14 @@ snapshots: globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.0.16 semver: 7.6.2 - vue-eslint-parser: 9.4.3(eslint@8.57.0) + vue-eslint-parser: 9.4.2(eslint@8.57.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-scope@7.1.1: + eslint-scope@7.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -4453,6 +5114,12 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-utils@2.1.0: + dependencies: + eslint-visitor-keys: 1.3.0 + + eslint-visitor-keys@1.3.0: {} + eslint-visitor-keys@3.4.0: {} eslint-visitor-keys@3.4.3: {} @@ -4460,7 +5127,7 @@ snapshots: eslint@8.57.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 @@ -4482,9 +5149,9 @@ snapshots: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -4500,11 +5167,18 @@ snapshots: transitivePeerDependencies: - supports-color + esniff@2.0.1: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.3 + espree@9.5.1: dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) - eslint-visitor-keys: 3.4.0 + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 espree@9.6.1: dependencies: @@ -4524,10 +5198,19 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.1 + esutils@2.0.3: {} etag@1.8.1: {} + event-emitter@0.3.5: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + eventemitter3@5.0.1: {} execa@8.0.1: @@ -4554,6 +5237,10 @@ snapshots: transitivePeerDependencies: - supports-color + ext@1.7.0: + dependencies: + type: 2.7.3 + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -4586,7 +5273,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.5 fast-json-stable-stringify@2.1.0: {} @@ -4600,11 +5287,11 @@ snapshots: file-entry-cache@6.0.1: dependencies: - flat-cache: 3.0.4 + flat-cache: 3.2.0 - file-entry-cache@9.0.0: + file-entry-cache@8.0.0: dependencies: - flat-cache: 5.0.0 + flat-cache: 4.0.1 fill-range@4.0.0: dependencies: @@ -4617,9 +5304,7 @@ snapshots: dependencies: to-regex-range: 5.0.1 - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 + filter-obj@1.1.0: {} find-up@5.0.0: dependencies: @@ -4632,26 +5317,33 @@ snapshots: path-exists: 5.0.0 unicorn-magic: 0.1.0 - flat-cache@3.0.4: + flat-cache@3.2.0: dependencies: - flatted: 3.2.7 + flatted: 3.3.1 + keyv: 4.5.4 rimraf: 3.0.2 - flat-cache@5.0.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - flatted@3.2.7: {} - flatted@3.3.1: {} + follow-redirects@1.15.6: {} + for-each@0.3.3: dependencies: is-callable: 1.2.7 for-in@1.0.2: {} + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + fraction.js@4.3.7: {} fragment-cache@0.2.1: @@ -4672,8 +5364,6 @@ snapshots: fsevents@2.3.3: optional: true - function-bind@1.1.1: {} - function-bind@1.1.2: {} function.prototype.name@1.1.6: @@ -4689,17 +5379,11 @@ snapshots: get-east-asian-width@1.2.0: {} - get-intrinsic@1.2.0: - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 hasown: 2.0.2 @@ -4750,10 +5434,6 @@ snapshots: kind-of: 6.0.3 which: 1.3.1 - globals@13.20.0: - dependencies: - type-fest: 0.20.2 - globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -4793,16 +5473,10 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 - has-proto@1.0.1: {} - has-proto@1.0.3: {} has-symbols@1.0.3: {} @@ -4836,7 +5510,7 @@ snapshots: has@1.0.3: dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 hasown@2.0.2: dependencies: @@ -4846,6 +5520,8 @@ snapshots: html-tags@3.3.1: {} + html-void-elements@2.0.1: {} + htmlparser2@3.10.1: dependencies: domelementtype: 1.3.1 @@ -4866,12 +5542,18 @@ snapshots: husky@9.0.11: {} + i18next@20.6.1: + dependencies: + '@babel/runtime': 7.26.0 + ignore@5.2.4: {} ignore@5.3.1: {} image-size@0.5.5: {} + immer@9.0.21: {} + immutable@4.3.0: {} import-fresh@3.3.0: @@ -4984,6 +5666,8 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-hotkey@0.2.0: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -5035,6 +5719,8 @@ snapshots: dependencies: which-typed-array: 1.1.15 + is-url@1.2.4: {} + is-weakref@1.0.2: dependencies: call-bind: 1.0.7 @@ -5053,10 +5739,12 @@ snapshots: isobject@3.0.1: {} - jiti@1.21.6: {} + jiti@1.21.0: {} js-base64@2.6.4: {} + js-cookie@3.0.5: {} + js-tokens@4.0.0: {} js-tokens@9.0.0: {} @@ -5103,39 +5791,39 @@ snapshots: kind-of@6.0.3: {} - known-css-properties@0.31.0: {} + known-css-properties@0.30.0: {} levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.2: {} + lilconfig@3.0.0: {} lines-and-columns@1.2.4: {} - lint-staged@15.2.7: + lint-staged@15.2.2: dependencies: chalk: 5.3.0 - commander: 12.1.0 + commander: 11.1.0 debug: 4.3.4 execa: 8.0.1 - lilconfig: 3.1.2 - listr2: 8.2.1 - micromatch: 4.0.7 + lilconfig: 3.0.0 + listr2: 8.0.1 + micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.4.5 + yaml: 2.3.4 transitivePeerDependencies: - supports-color - listr2@8.2.1: + listr2@8.0.1: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 6.0.0 - rfdc: 1.4.1 + rfdc: 1.3.0 wrap-ansi: 9.0.0 loader-utils@1.4.2: @@ -5144,6 +5832,11 @@ snapshots: emojis-list: 3.0.0 json5: 1.0.2 + local-pkg@0.5.0: + dependencies: + mlly: 1.7.0 + pkg-types: 1.1.1 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -5154,14 +5847,22 @@ snapshots: lodash-es@4.17.21: {} - lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): + lodash-unified@1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21): dependencies: - '@types/lodash-es': 4.17.12 + '@types/lodash-es': 4.17.7 lodash: 4.17.21 lodash-es: 4.17.21 lodash.camelcase@4.3.0: {} + lodash.clonedeep@4.5.0: {} + + lodash.debounce@4.0.8: {} + + lodash.foreach@4.5.0: {} + + lodash.isequal@4.5.0: {} + lodash.isplainobject@4.0.6: {} lodash.kebabcase@4.1.1: {} @@ -5174,6 +5875,10 @@ snapshots: lodash.startcase@4.4.0: {} + lodash.throttle@4.1.1: {} + + lodash.toarray@4.4.0: {} + lodash.truncate@4.4.2: {} lodash.uniq@4.5.0: {} @@ -5242,11 +5947,21 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.7: + micromatch@4.0.5: dependencies: - braces: 3.0.3 + braces: 3.0.2 picomatch: 2.3.1 + mime-db@1.52.0: {} + + mime-match@1.0.2: + dependencies: + wildcard: 1.1.2 + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -5266,12 +5981,23 @@ snapshots: for-in: 1.0.2 is-extendable: 1.0.1 + mlly@1.7.0: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.1 + ufo: 1.5.3 + ms@2.0.0: {} ms@2.1.2: {} + ms@2.1.3: {} + muggle-string@0.4.1: {} + namespace-emitter@2.0.1: {} + nanoid@3.3.7: {} nanomatch@1.2.13: @@ -5292,6 +6018,8 @@ snapshots: natural-compare@1.4.0: {} + next-tick@1.1.0: {} + node-releases@2.0.14: {} normalize-path@3.0.0: {} @@ -5424,20 +6152,32 @@ snapshots: pathe@0.2.0: {} - picocolors@1.0.1: {} + pathe@1.1.2: {} + + picocolors@1.0.0: {} picomatch@2.3.1: {} pidtree@0.6.0: {} + pinia-plugin-persistedstate@3.2.1(pinia@2.1.7(typescript@5.4.5)(vue@3.4.27(typescript@5.4.5))): + dependencies: + pinia: 2.1.7(typescript@5.4.5)(vue@3.4.27(typescript@5.4.5)) + pinia@2.1.7(typescript@5.4.5)(vue@3.4.27(typescript@5.4.5)): dependencies: '@vue/devtools-api': 6.5.0 vue: 3.4.27(typescript@5.4.5) - vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) optionalDependencies: typescript: 5.4.5 + pkg-types@1.1.1: + dependencies: + confbox: 0.1.7 + mlly: 1.7.0 + pathe: 1.1.2 + posix-character-classes@0.1.1: {} possible-typed-array-names@1.0.0: {} @@ -5469,7 +6209,7 @@ snapshots: dependencies: postcss: 8.4.38 - postcss-selector-parser@6.1.0: + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -5490,7 +6230,7 @@ snapshots: postcss@8.4.38: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 + picocolors: 1.0.0 source-map-js: 1.2.0 posthtml-parser@0.2.1: @@ -5516,21 +6256,38 @@ snapshots: posthtml-parser: 0.2.1 posthtml-render: 1.4.0 + preact@10.24.3: {} + prelude-ls@1.2.1: {} prettier-linter-helpers@1.0.0: dependencies: fast-diff: 1.2.0 - prettier@3.3.2: {} + prettier@3.2.5: {} + + prismjs@1.29.0: {} + + proxy-from-env@1.1.0: {} punycode@2.3.0: {} + qs@6.11.1: + dependencies: + side-channel: 1.0.4 + query-string@4.3.4: dependencies: object-assign: 4.1.1 strict-uri-encode: 1.1.0 + query-string@7.1.3: + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + queue-microtask@1.2.3: {} readable-stream@3.6.2: @@ -5543,6 +6300,8 @@ snapshots: dependencies: picomatch: 2.3.1 + regenerator-runtime@0.14.1: {} + regex-not@1.0.2: dependencies: extend-shallow: 3.0.2 @@ -5555,6 +6314,8 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 + regexpp@3.2.0: {} + repeat-element@1.1.4: {} repeat-string@1.6.1: {} @@ -5569,6 +6330,12 @@ snapshots: resolve-url@0.2.1: {} + resolve@1.22.2: + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: dependencies: is-core-module: 2.13.1 @@ -5584,32 +6351,32 @@ snapshots: reusify@1.0.4: {} - rfdc@1.4.1: {} + rfdc@1.3.0: {} rimraf@3.0.2: dependencies: glob: 7.2.3 - rollup@4.18.0: + rollup@4.17.2: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.17.2 + '@rollup/rollup-android-arm64': 4.17.2 + '@rollup/rollup-darwin-arm64': 4.17.2 + '@rollup/rollup-darwin-x64': 4.17.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 + '@rollup/rollup-linux-arm-musleabihf': 4.17.2 + '@rollup/rollup-linux-arm64-gnu': 4.17.2 + '@rollup/rollup-linux-arm64-musl': 4.17.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 + '@rollup/rollup-linux-riscv64-gnu': 4.17.2 + '@rollup/rollup-linux-s390x-gnu': 4.17.2 + '@rollup/rollup-linux-x64-gnu': 4.17.2 + '@rollup/rollup-linux-x64-musl': 4.17.2 + '@rollup/rollup-win32-arm64-msvc': 4.17.2 + '@rollup/rollup-win32-ia32-msvc': 4.17.2 + '@rollup/rollup-win32-x64-msvc': 4.17.2 fsevents: 2.3.3 run-parallel@1.2.0: @@ -5635,15 +6402,25 @@ snapshots: dependencies: ret: 0.1.15 - sass@1.77.5: + sass@1.77.1: dependencies: chokidar: 3.5.3 immutable: 4.3.0 source-map-js: 1.0.2 + screenfull@5.2.0: {} + + scroll-into-view-if-needed@2.2.31: + dependencies: + compute-scroll-into-view: 1.0.20 + + scule@1.3.0: {} + + semver@6.3.0: {} + semver@6.3.1: {} - semver@7.3.8: + semver@7.5.0: dependencies: lru-cache: 6.0.0 @@ -5686,12 +6463,21 @@ snapshots: signal-exit@3.0.7: {} - signal-exit@4.0.2: {} - signal-exit@4.1.0: {} slash@3.0.0: {} + slate-history@0.66.0(slate@0.72.8): + dependencies: + is-plain-object: 5.0.0 + slate: 0.72.8 + + slate@0.72.8: + dependencies: + immer: 9.0.21 + is-plain-object: 5.0.0 + tiny-warning: 1.0.3 + slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -5708,6 +6494,8 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + snabbdom@3.6.2: {} + snapdragon-node@2.1.1: dependencies: define-property: 1.0.0 @@ -5749,12 +6537,16 @@ snapshots: source-map@0.6.1: {} + split-on-first@1.1.0: {} + split-string@3.1.0: dependencies: extend-shallow: 3.0.2 split2@4.2.0: {} + ssr-window@3.0.0: {} + stable@0.1.8: {} static-extend@0.1.2: @@ -5764,6 +6556,8 @@ snapshots: strict-uri-encode@1.1.0: {} + strict-uri-encode@2.0.0: {} + string-argv@0.3.2: {} string-width@4.2.3: @@ -5819,75 +6613,67 @@ snapshots: strip-json-comments@3.1.1: {} - stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)): + strip-literal@1.3.0: + dependencies: + acorn: 8.11.3 + + stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss-html: 1.7.0 - stylelint: 16.6.1(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-config-recess-order@5.0.1(stylelint@16.6.1(typescript@5.4.5)): + stylelint-config-recess-order@5.0.1(stylelint@16.5.0(typescript@5.4.5)): dependencies: - stylelint: 16.6.1(typescript@5.4.5) - stylelint-order: 6.0.4(stylelint@16.6.1(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-order: 6.0.4(stylelint@16.5.0(typescript@5.4.5)) - stylelint-config-recommended-scss@14.0.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)): + stylelint-config-recommended-scss@14.0.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss-scss: 4.0.9(postcss@8.4.38) - stylelint: 16.6.1(typescript@5.4.5) - stylelint-config-recommended: 14.0.0(stylelint@16.6.1(typescript@5.4.5)) - stylelint-scss: 6.3.1(stylelint@16.6.1(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-config-recommended: 14.0.0(stylelint@16.5.0(typescript@5.4.5)) + stylelint-scss: 6.3.0(stylelint@16.5.0(typescript@5.4.5)) optionalDependencies: postcss: 8.4.38 - stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)): + stylelint-config-recommended@14.0.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: - postcss-html: 1.7.0 - semver: 7.3.8 - stylelint: 16.6.1(typescript@5.4.5) - stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)) - stylelint-config-recommended: 13.0.0(stylelint@16.6.1(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-config-recommended@13.0.0(stylelint@16.6.1(typescript@5.4.5)): + stylelint-config-standard-scss@13.1.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.4.5)): dependencies: - stylelint: 16.6.1(typescript@5.4.5) - - stylelint-config-recommended@14.0.0(stylelint@16.6.1(typescript@5.4.5)): - dependencies: - stylelint: 16.6.1(typescript@5.4.5) - - stylelint-config-standard-scss@13.1.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)): - dependencies: - stylelint: 16.6.1(typescript@5.4.5) - stylelint-config-recommended-scss: 14.0.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)) - stylelint-config-standard: 36.0.0(stylelint@16.6.1(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-config-recommended-scss: 14.0.0(postcss@8.4.38)(stylelint@16.5.0(typescript@5.4.5)) + stylelint-config-standard: 36.0.0(stylelint@16.5.0(typescript@5.4.5)) optionalDependencies: postcss: 8.4.38 - stylelint-config-standard@36.0.0(stylelint@16.6.1(typescript@5.4.5)): + stylelint-config-standard@36.0.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: - stylelint: 16.6.1(typescript@5.4.5) - stylelint-config-recommended: 14.0.0(stylelint@16.6.1(typescript@5.4.5)) + stylelint: 16.5.0(typescript@5.4.5) + stylelint-config-recommended: 14.0.0(stylelint@16.5.0(typescript@5.4.5)) - stylelint-order@6.0.4(stylelint@16.6.1(typescript@5.4.5)): + stylelint-order@6.0.4(stylelint@16.5.0(typescript@5.4.5)): dependencies: postcss: 8.4.38 postcss-sorting: 8.0.2(postcss@8.4.38) - stylelint: 16.6.1(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint-scss@6.3.1(stylelint@16.6.1(typescript@5.4.5)): + stylelint-scss@6.3.0(stylelint@16.5.0(typescript@5.4.5)): dependencies: - known-css-properties: 0.31.0 + known-css-properties: 0.30.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 - stylelint: 16.6.1(typescript@5.4.5) + stylelint: 16.5.0(typescript@5.4.5) - stylelint@16.6.1(typescript@5.4.5): + stylelint@16.5.0(typescript@5.4.5): dependencies: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 '@csstools/media-query-list-parser': 2.1.11(@csstools/css-parser-algorithms@2.6.3(@csstools/css-tokenizer@2.3.1))(@csstools/css-tokenizer@2.3.1) - '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.0) + '@csstools/selector-specificity': 3.1.0(postcss-selector-parser@6.0.16) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 @@ -5897,7 +6683,7 @@ snapshots: debug: 4.3.4 fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 - file-entry-cache: 9.0.0 + file-entry-cache: 8.0.0 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -5905,16 +6691,16 @@ snapshots: ignore: 5.3.1 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.31.0 + known-css-properties: 0.30.0 mathml-tag-names: 2.1.3 meow: 13.2.0 - micromatch: 4.0.7 + micromatch: 4.0.5 normalize-path: 3.0.0 - picocolors: 1.0.1 + picocolors: 1.0.0 postcss: 8.4.38 postcss-resolve-nested-selector: 0.1.1 postcss-safe-parser: 7.0.0(postcss@8.4.38) - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -5975,13 +6761,13 @@ snapshots: css-select: 4.3.0 css-tree: 1.1.3 csso: 4.2.0 - picocolors: 1.0.1 + picocolors: 1.0.0 stable: 0.1.8 synckit@0.8.8: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.3 + tslib: 2.6.2 table@6.8.2: dependencies: @@ -5997,6 +6783,8 @@ snapshots: through@2.3.8: {} + tiny-warning@1.0.3: {} + to-fast-properties@2.0.0: {} to-object-path@0.3.0: @@ -6034,7 +6822,7 @@ snapshots: tslib@2.3.0: {} - tslib@2.6.3: {} + tslib@2.6.2: {} type-check@0.4.0: dependencies: @@ -6042,6 +6830,8 @@ snapshots: type-fest@0.20.2: {} + type@2.7.3: {} + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 @@ -6076,6 +6866,8 @@ snapshots: typescript@5.4.5: {} + ufo@1.5.3: {} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 @@ -6087,6 +6879,24 @@ snapshots: unicorn-magic@0.1.0: {} + unimport@3.7.1(rollup@4.17.2): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + acorn: 8.11.3 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.10 + mlly: 1.7.0 + pathe: 1.1.2 + pkg-types: 1.1.1 + scule: 1.3.0 + strip-literal: 1.3.0 + unplugin: 1.10.1 + transitivePeerDependencies: + - rollup + union-value@1.0.1: dependencies: arr-union: 3.1.0 @@ -6096,16 +6906,57 @@ snapshots: universalify@2.0.0: {} + unplugin-auto-import@0.17.6(@vueuse/core@10.9.0(vue@3.4.27(typescript@5.4.5)))(rollup@4.17.2): + dependencies: + '@antfu/utils': 0.7.8 + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.10 + minimatch: 9.0.4 + unimport: 3.7.1(rollup@4.17.2) + unplugin: 1.10.1 + optionalDependencies: + '@vueuse/core': 10.9.0(vue@3.4.27(typescript@5.4.5)) + transitivePeerDependencies: + - rollup + + unplugin-vue-components@0.27.0(@babel/parser@7.24.5)(rollup@4.17.2)(vue@3.4.27(typescript@5.4.5)): + dependencies: + '@antfu/utils': 0.7.8 + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) + chokidar: 3.6.0 + debug: 4.3.4 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.10 + minimatch: 9.0.4 + resolve: 1.22.8 + unplugin: 1.10.1 + vue: 3.4.27(typescript@5.4.5) + optionalDependencies: + '@babel/parser': 7.24.5 + transitivePeerDependencies: + - rollup + - supports-color + + unplugin@1.10.1: + dependencies: + acorn: 8.11.3 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + unset-value@1.0.0: dependencies: has-value: 0.3.1 isobject: 3.0.1 - update-browserslist-db@1.0.16(browserslist@4.23.1): + update-browserslist-db@1.0.15(browserslist@4.23.0): dependencies: - browserslist: 4.23.1 + browserslist: 4.23.0 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.0.0 uri-js@4.4.1: dependencies: @@ -6119,7 +6970,16 @@ snapshots: vary@1.1.2: {} - vite-plugin-svg-icons@2.0.1(vite@5.2.13(@types/node@20.14.2)(sass@1.77.5)): + vite-plugin-compression@0.5.1(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1)): + dependencies: + chalk: 4.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + vite: 5.2.11(@types/node@18.19.33)(sass@1.77.1) + transitivePeerDependencies: + - supports-color + + vite-plugin-svg-icons@2.0.1(vite@5.2.11(@types/node@18.19.33)(sass@1.77.1)): dependencies: '@types/svgo': 2.6.4 cors: 2.8.5 @@ -6129,27 +6989,25 @@ snapshots: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 5.2.13(@types/node@20.14.2)(sass@1.77.5) + vite: 5.2.11(@types/node@18.19.33)(sass@1.77.1) transitivePeerDependencies: - supports-color - vite@5.2.13(@types/node@20.14.2)(sass@1.77.5): + vite@5.2.11(@types/node@18.19.33)(sass@1.77.1): dependencies: esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.18.0 + rollup: 4.17.2 optionalDependencies: - '@types/node': 20.14.2 + '@types/node': 18.19.33 fsevents: 2.3.3 - sass: 1.77.5 - - vscode-uri@3.0.8: {} + sass: 1.77.1 vue-demi@0.13.11(vue@3.4.27(typescript@5.4.5)): dependencies: vue: 3.4.27(typescript@5.4.5) - vue-demi@0.14.8(vue@3.4.27(typescript@5.4.5)): + vue-demi@0.14.7(vue@3.4.27(typescript@5.4.5)): dependencies: vue: 3.4.27(typescript@5.4.5) @@ -6163,22 +7021,33 @@ snapshots: transitivePeerDependencies: - '@vue/composition-api' - vue-eslint-parser@9.4.3(eslint@8.57.0): + vue-eslint-parser@9.4.2(eslint@8.57.0): dependencies: debug: 4.3.4 eslint: 8.57.0 - eslint-scope: 7.1.1 + eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.0 espree: 9.5.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.6.2 + semver: 7.5.0 transitivePeerDependencies: - supports-color - vue-router@4.3.3(vue@3.4.27(typescript@5.4.5)): + vue-hooks-plus@2.0.1(vue@3.4.27(typescript@5.4.5)): dependencies: - '@vue/devtools-api': 6.6.3 + '@types/js-cookie': 3.0.3 + '@vue/devtools-api': 6.6.1 + js-cookie: 3.0.5 + lodash: 4.17.21 + qs: 6.11.1 + query-string: 7.1.3 + screenfull: 5.2.0 + vue: 3.4.27(typescript@5.4.5) + + vue-router@4.3.2(vue@3.4.27(typescript@5.4.5)): + dependencies: + '@vue/devtools-api': 6.6.1 vue: 3.4.27(typescript@5.4.5) vue-template-compiler@2.7.14: @@ -6186,10 +7055,10 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - vue-tsc@2.0.21(typescript@5.4.5): + vue-tsc@2.0.17(typescript@5.4.5): dependencies: - '@volar/typescript': 2.3.0 - '@vue/language-core': 2.0.21(typescript@5.4.5) + '@volar/typescript': 2.2.2 + '@vue/language-core': 2.0.17(typescript@5.4.5) semver: 7.6.2 typescript: 5.4.5 @@ -6203,6 +7072,10 @@ snapshots: optionalDependencies: typescript: 5.4.5 + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.6.1: {} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 @@ -6227,6 +7100,8 @@ snapshots: dependencies: isexe: 2.0.0 + wildcard@1.1.2: {} + word-wrap@1.2.5: {} wrap-ansi@7.0.0: @@ -6246,7 +7121,7 @@ snapshots: write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 - signal-exit: 4.0.2 + signal-exit: 4.1.0 xml-name-validator@4.0.0: {} @@ -6254,14 +7129,14 @@ snapshots: yallist@4.0.0: {} - yaml@2.4.5: {} + yaml@2.3.4: {} yargs-parser@21.1.1: {} yargs@17.7.1: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/src/App.vue b/src/App.vue index 36059cc..8ceafc3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,30 @@ + + diff --git a/src/api/ApiManage/index.ts b/src/api/ApiManage/index.ts new file mode 100644 index 0000000..de4f417 --- /dev/null +++ b/src/api/ApiManage/index.ts @@ -0,0 +1,56 @@ +import { PageRowsResult, PageRowsType } from '@/types'; +import { ApiManageType, StatisticsType } from '@/types/help'; +import http from '@/utils/request'; + +// api接口 +const api = { + apiDel: '/cargo/api/delete', // 删除 + apiGet: '/cargo/api/get', // 获取 + apiPage: '/cargo/api/page', // 分页列表 + apiSave: '/cargo/api/save', // 保存 + statistics: '/cargo/statistics/', // 首页数据统计 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postApiDeleteAPI(data: number[]) { + return http.post(api.apiDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postApiGetAPI(data: { id: number | string }) { + return http.postParams(api.apiGet, data); +} + +/** + * 分页列表 + * @param {PageRowsType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postApiPageAPI(data: Partial) { + return http.post>(api.apiPage, data); +} + +/** + * 保存 + * @param {ApiManageType} data 保存参数 + * @return 返回接口的结果 + */ +export function postApiSaveAPI(data: Partial) { + return http.post(api.apiSave, data); +} + +/** + * 首页数据统计 + * @return 返回接口的结果 + */ +export function getStatisticsAPI() { + return http.get(api.statistics); +} diff --git a/src/api/Boat/info.ts b/src/api/Boat/info.ts new file mode 100644 index 0000000..fd7e8d0 --- /dev/null +++ b/src/api/Boat/info.ts @@ -0,0 +1,82 @@ +import { PageRowsResult } from '@/types'; +import { BoatInfoPageType, BoatInfoType } from '@/types/boatInfo'; +import http from '@/utils/request'; + +// api接口 +const api = { + sailScheduleDelete: '/cargo/sail_schedule/delete', // 删除 + sailScheduleGet: '/cargo/sail_schedule/get', // 获取 + sailSchedulePage: '/cargo/sail_schedule/page', // 分页列表 + sailScheduleSave: '/cargo/sail_schedule/save', // 保存 + sailScheduleTmpExport: '/cargo/sail_schedule/tmp/export', // 船期模板下载 + sailScheduleImport: '/cargo/sail_schedule/import', // 导入 + historyList: '/cargo/sail_schedule/history/page', // 历史数据 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function getSailScheduleDeleteAPI(data: number[]) { + return http.post(api.sailScheduleDelete, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function getSailScheduleGetAPI(data: { id: number | string }) { + return http.postParams(api.sailScheduleGet, data); +} + +/** + * 分页列表 + * @param {getUserListType} data 分页信息 + * @return 返回请求分页列表接口的结果 + */ +export function getSailSchedulePageAPI(data: Partial) { + return http.post>(api.sailSchedulePage, data); +} + +/** + * 保存 + * @param {BoatInfoType} data 船期信息 + * @return 返回请求保存接口的结果 + */ +export function getSailScheduleSaveAPI(data: Partial) { + return http.post(api.sailScheduleSave, data); +} + +/** + * 船期模板下载 + * @return 返回请求下载接口的结果 + */ +export function getSailScheduleTmpExportAPI() { + return http.get( + api.sailScheduleTmpExport, + {}, + { + responseType: 'arraybuffer', + } + ); +} + +/** + * 导入 + * @param {File} data 文件 + * @return 返回请求导入接口的结果 + */ +export function getSailScheduleImportAPI(data: { file: File }) { + return http.post(api.sailScheduleImport, data); +} + +/** + * 历史数据 + * @param {BoatInfoPageType} data 分页信息 + * @return 返回请求分页列表接口的结果 + */ +export function getHistoryListAPI(data: Partial) { + return http.post>(api.historyList, data); +} diff --git a/src/api/BoatRoute/index.ts b/src/api/BoatRoute/index.ts new file mode 100644 index 0000000..a2421ab --- /dev/null +++ b/src/api/BoatRoute/index.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { BoatRoutePageType, BoatRouteType } from '@/types/boatInfo'; +import http from '@/utils/request'; + +// api接口 +const api = { + routeDel: '/cargo/route/delete', // 删除 + routeGet: '/cargo/route/get', // 获取 + routePage: '/cargo/route/page', // 分页列表 + routeList: '/cargo/route/list', // 字典列表 + routeSave: '/cargo/route/save', // 保存 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postRouteDeleteAPI(data: number[]) { + return http.post(api.routeDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postRouteGetAPI(data: { id: number | string }) { + return http.postParams(api.routeGet, data); +} + +/** + * 分页列表 + * @param {BoatRoutePageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postRoutePageAPI(data: Partial) { + return http.post>(api.routePage, data); +} + +/** + * 字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postRouteListAPI(data: dictionaryType) { + return http.postParams(api.routeList, data); +} + +/** + * 保存 + * @param {BoatRouteType} data 航线信息 + * @return 返回请求保存接口的结果 + */ +export function postRouteSaveAPI(data: Partial) { + return http.post(api.routeSave, data); +} diff --git a/src/api/Brand/index.ts b/src/api/Brand/index.ts new file mode 100644 index 0000000..0e5867e --- /dev/null +++ b/src/api/Brand/index.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { BrandPageType, BrandType } from '@/types/platform'; +import http from '@/utils/request'; + +// api接口 +const api = { + brandDel: '/cargo/brand/delete', // 删除 + brandGet: '/cargo/brand/get', // 获取 + brandList: '/cargo/brand/list', // 字典列表 + brandPage: '/cargo/brand/page', // 分页列表 + brandSave: '/cargo/brand/save', // 保存 +}; + +/** + * 品牌删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postBrandDeleteAPI(data: number[]) { + return http.post(api.brandDel, data); +} + +/** + * 品牌获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postBrandGetAPI(data: { id: number | string }) { + return http.postParams(api.brandGet, data); +} + +/** + * 品牌字典列表 + * @param {dictionaryType} data 查询条件 + * @return 返回请求列表接口的结果 + */ +export function postBrandListAPI(data: dictionaryType) { + return http.postParams(api.brandList, data); +} + +/** + * 品牌分页列表 + * @param {BrandPageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postBrandPageAPI(data: Partial) { + return http.post>(api.brandPage, data); +} + +/** + * 品牌保存 + * @param {BrandType} data 保存参数 + * @return 返回请求保存接口的结果 + */ +export function postBrandSaveAPI(data: Partial) { + return http.post(api.brandSave, data); +} diff --git a/src/api/Enterprise/company.ts b/src/api/Enterprise/company.ts new file mode 100644 index 0000000..c957136 --- /dev/null +++ b/src/api/Enterprise/company.ts @@ -0,0 +1,169 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { EnterpriseType } from '@/types/boatInfo'; +import { EmployeeType, EnterprisePageType, EnterpriseRegisterType } from '@/types/Enterprise'; +import http from '@/utils/request'; + +// api接口 +const api = { + enterpriseDel: '/cargo/enterprise/delete', // 删除 + enterpriseDisable: '/cargo/enterprise/disable', // 禁用 + enterpriseEnable: '/cargo/enterprise/enable', // 启用 + employeeAdd: '/cargo/enterprise/employee/add', // 添加员工 + enterpriseGet: '/cargo/enterprise/get', // 获取 + enterpriseIDImg: '/cargo/enterprise/image/id', // 获取身份证照片 + enterpriseLicenseImg: '/cargo/enterprise/image/license', // 获取营业执照照片 + enterprisePage: '/cargo/enterprise/page', // 分页列表 + enterpriseList: '/cargo/enterprise/list', // 字典列表 + enterpriseReg: '/cargo/enterprise/reg', // 企业注册 + enterpriseRegCount: '/cargo/enterprise/reg/audit/count', // 企业注册待审核数量 + enterpriseRegPass: '/cargo/enterprise/reg/audit/pass', // 企业注册审核通过 + enterpriseSave: '/cargo/enterprise/save', // 保存 + enterpriseUpload: '/cargo/enterprise/upload', // 文件上传 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postEnterpriseDeleteAPI(data: number[]) { + return http.post(api.enterpriseDel, data); +} + +/** + * 禁用 + * @param {number} data id + * @return 返回请求禁用接口的结果 + */ +export function postEnterpriseDisableAPI(data: number[]) { + return http.post(api.enterpriseDisable, data); +} + +/** + * 启用 + * @param {number} data id + * @return 返回请求启用接口的结果 + */ +export function postEnterpriseEnableAPI(data: number[]) { + return http.post(api.enterpriseEnable, data); +} + +/** + * 添加员工 + * @param {EmployeeType} data 员工信息 + * @return 返回请求添加员工接口的结果 + */ +export function postEmployeeAddAPI(data: Partial) { + return http.post(api.employeeAdd, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postEnterpriseGetAPI(data: { id: number | string }) { + return http.postParams(api.enterpriseGet, data); +} + +/** + * 获取身份证照片 + * @param {number|string} id id + * @return 返回请求获取身份证照片接口的结果 + */ +export function getEnterpriseIDImgAPI(id: number | string) { + return http.get( + `${api.enterpriseIDImg}/${id}`, + {}, + { + responseType: 'arraybuffer', + } + ); +} + +/** + * 获取营业执照照片 + * @param {number|string} id id + * @return 返回请求获取营业执照照片接口的结果 + */ +export function getEnterpriseLicenseImgAPI(id: number | string) { + return http.get( + `${api.enterpriseLicenseImg}/${id}`, + {}, + { + responseType: 'arraybuffer', + } + ); +} + +/** + * 分页列表 + * @param {EnterprisePageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postEnterprisePageAPI(data: Partial) { + return http.post>(api.enterprisePage, data); +} + +/** + * 字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postEnterpriseListAPI(data: dictionaryType) { + return http.postParams(api.enterpriseList, data); +} + +/** + * 企业注册 + * @param {EnterpriseRegisterType} data 企业信息 + * @return 返回请求企业注册接口的结果 + */ +export function postEnterpriseRegAPI(data: Partial) { + return http.post(api.enterpriseReg, data); +} + +/** + * 企业注册待审核数量 + * @return 返回请求企业注册待审核数量接口的结果 + */ +export function getEnterpriseRegCountAPI() { + return http.post(api.enterpriseRegCount); +} + +/** + * 企业注册审核通过 + * @param {number} data id + * @return 返回请求企业注册审核通过接口的结果 + */ +export function postEnterpriseRegPassAPI(data: number[]) { + return http.post(api.enterpriseRegPass, data); +} + +/** + * 保存 + * @param {EnterpriseType} data 企业信息 + * @return 返回请求保存接口的结果 + */ +export function postEnterpriseSaveAPI(data: Partial) { + return http.post(api.enterpriseSave, data); +} + +/** + * 文件上传 + * @param {File} data 文件 + * @return 返回请求文件上传接口的结果 + */ +export function postEnterpriseUploadAPI( + data: { file: File }, + config: { type: number; no: string | number } +) { + return http.post(api.enterpriseUpload, data, { + headers: { + 'Content-Type': 'multipart/form-data', + }, + params: { + ...config, + }, + }); +} diff --git a/src/api/Enterprise/employee.ts b/src/api/Enterprise/employee.ts new file mode 100644 index 0000000..e5ba1e5 --- /dev/null +++ b/src/api/Enterprise/employee.ts @@ -0,0 +1,77 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { EmployeePageType, EmployeeType } from '@/types/Enterprise'; +import http from '@/utils/request'; + +// api接口 +const api = { + employeeDel: '/cargo/employee/delete', // 删除 + employeeDisable: '/cargo/employee/disable', // 禁用 + employeeEnable: '/cargo/employee/enable', // 启用 + employeeGet: '/cargo/employee/get', // 获取 + employeeList: '/cargo/employee/list', // 字典列表 + employeePage: '/cargo/employee/page', // 分页列表 + employeeSave: '/cargo/enterprise/employee/add', // 保存 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postEmployeeDeleteAPI(data: number[]) { + return http.post(api.employeeDel, data); +} + +/** + * 禁用 + * @param {number} data id + * @return 返回请求禁用接口的结果 + */ +export function postEmployeeDisableAPI(data: number[]) { + return http.post(api.employeeDisable, data); +} + +/** + * 启用 + * @param {number} data id + * @return 返回请求启用接口的结果 + */ +export function postEmployeeEnableAPI(data: number[]) { + return http.post(api.employeeEnable, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postEmployeeGetAPI(data: { id: number | string }) { + return http.postParams(api.employeeGet, data); +} + +/** + * 分页列表 + * @param {EmployeePageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postEmployeePageAPI(data: Partial) { + return http.post>(api.employeePage, data); +} + +/** + * 字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postEmployeeListAPI(data: dictionaryType) { + return http.postParams(api.employeeList, data); +} + +/** + * 保存 + * @param {EmployeeType} data 员工信息 + * @return 返回请求保存接口的结果 + */ +export function postEmployeeSaveAPI(data: Partial) { + return http.post(api.employeeSave, data); +} diff --git a/src/api/Help/index.ts b/src/api/Help/index.ts new file mode 100644 index 0000000..8bce31f --- /dev/null +++ b/src/api/Help/index.ts @@ -0,0 +1,47 @@ +import { PageRowsResult, PageRowsType } from '@/types'; +import { HelpType } from '@/types/help'; +import http from '@/utils/request'; + +// api接口 +const api = { + helpDel: '/cargo/help/delete', // 删除 + helpGet: '/cargo/help/get', // 获取 + helpPage: '/cargo/help/page', // 分页列表 + helpSave: '/cargo/help/save', // 保存 +}; + +/** + * 帮助文档删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postHelpDeleteAPI(data: number[]) { + return http.post(api.helpDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postHelpGetAPI(data: { id: number | string }) { + return http.postParams(api.helpGet, data); +} + +/** + * 分页列表 + * @param {PageRowsType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postHelpPageAPI(data: Partial) { + return http.post>(api.helpPage, data); +} + +/** + * 保存帮助中心 + * @param {HelpType} data 参数 + * @return 返回请求保存接口的结果 + */ +export function postHelpSaveAPI(data: Partial) { + return http.post(api.helpSave, data); +} diff --git a/src/api/Manifest/detail.ts b/src/api/Manifest/detail.ts new file mode 100644 index 0000000..2be4794 --- /dev/null +++ b/src/api/Manifest/detail.ts @@ -0,0 +1,72 @@ +import { PageRowsResult } from '@/types'; +import { ManifestDetailPageType, ManifestDetailType } from '@/types/manifest'; +import http from '@/utils/request'; + +// api接口 +const api = { + manifestDel: '/cargo/manifest/detail/delete', // 删除 + manifestGet: '/cargo/manifest/detail/get', // 获取 + manifestPage: '/cargo/manifest/detail/page', // 分页列表 + manifestSave: '/cargo/manifest/detail/save', // 保存 + manifestImport: '/cargo/manifest/detail/import', // 舱单导入 + manifestExport: '/cargo/manifest/detail/tmp/export', // 下载模版 +}; + +/** + * 舱单详情删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postManifestDetailDeleteAPI(data: number[]) { + return http.post(api.manifestDel, data); +} + +/** + * 舱单详情获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function getManifestDetailGetAPI(data: { id: number | string }) { + return http.postParams(api.manifestGet, data); +} + +/** + * 舱单详情分页列表 + * @param {ManifestDetailPageType} data 查询参数 + * @return 返回请求分页列表接口的结果 + */ +export function getManifestDetailPageAPI(data: Partial) { + return http.post>(api.manifestPage, data); +} + +/** + * 舱单明细保存 + * @param {ManifestDetailType} data 参数 + * @return 返回请求保存接口的结果 + */ +export function postManifestDetailSaveAPI(data: Partial) { + return http.post(api.manifestSave, data); +} + +/** + * 导入 + * @param {File} data 文件 + * @return 返回请求导入接口的结果 + */ +export function getManifestDetailImportAPI(data: { file?: File; scheduleId: number | string }) { + return http.post(api.manifestImport, data); +} + +/** + * 模板下载 + * @return 返回请求下载接口的结果 + */ +export function getManifestDetailTmpExportAPI() { + return http.get( + api.manifestExport, + {}, + { + responseType: 'arraybuffer', + } + ); +} diff --git a/src/api/Manifest/index.ts b/src/api/Manifest/index.ts new file mode 100644 index 0000000..1587920 --- /dev/null +++ b/src/api/Manifest/index.ts @@ -0,0 +1,72 @@ +import { PageRowsResult } from '@/types'; +import { ManifestPageType, ManifestType } from '@/types/manifest'; +import http from '@/utils/request'; + +// api接口 +const api = { + manifestDel: '/cargo/manifest/delete', // 删除 + manifestGet: '/cargo/manifest/get', // 获取 + manifestPage: '/cargo/manifest/page', // 分页列表 + manifestSave: '/cargo/manifest/save', // 保存 + manifestImport: '/cargo/manifest/import', // 舱单导入 + manifestExport: '/cargo/manifest/tmp/export', // 下载模版 +}; + +/** + * 舱单删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postManifestDeleteAPI(data: number[]) { + return http.post(api.manifestDel, data); +} + +/** + * 舱单获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function getManifestGetAPI(data: { id: number | string }) { + return http.postParams(api.manifestGet, data); +} + +/** + * 舱单分页列表 + * @param {ManifestPageType} data 查询参数 + * @return 返回请求分页列表接口的结果 + */ +export function getManifestPageAPI(data: Partial) { + return http.post>(api.manifestPage, data); +} + +/** + * 舱单保存 + * @param {ManifestType} data 参数 + * @return 返回请求保存接口的结果 + */ +export function postManifestSaveAPI(data: Partial) { + return http.post(api.manifestSave, data); +} + +/** + * 导入 + * @param {File} data 文件 + * @return 返回请求导入接口的结果 + */ +export function getManifestImportAPI(data: { file?: File; scheduleId: number | string }) { + return http.post(api.manifestImport, data); +} + +/** + * 模板下载 + * @return 返回请求下载接口的结果 + */ +export function getManifestTmpExportAPI() { + return http.get( + api.manifestExport, + {}, + { + responseType: 'arraybuffer', + } + ); +} diff --git a/src/api/Notice/index.ts b/src/api/Notice/index.ts new file mode 100644 index 0000000..5afe7b4 --- /dev/null +++ b/src/api/Notice/index.ts @@ -0,0 +1,56 @@ +import { PageRowsResult } from '@/types'; +import { NoticePageType, NoticeType } from '@/types/notice'; +import http from '@/utils/request'; + +// api接口 +const api = { + noticeCount: '/cargo/notice/count', // 公告数量 + noticeDel: '/cargo/notice/delete', // 删除 + noticeGet: '/cargo/notice/get', // 获取 + noticePage: '/cargo/notice/page', // 分页列表 + noticeSave: '/cargo/notice/save', // 保存 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function noticeDeleteAPI(data: number[]) { + return http.post(api.noticeDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function noticeGetAPI(data: { id: number | string }) { + return http.postParams(api.noticeGet, data); +} + +/** + * 公告分页列表 + * @param {NoticePageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function noticePageAPI(data: Partial) { + return http.post>(api.noticePage, data); +} + +/** + * 保存 + * @param {NoticeType} data 企业信息 + * @return 返回请求保存接口的结果 + */ +export function noticeSaveAPI(data: Partial) { + return http.post(api.noticeSave, data); +} + +/** + * 公告数量 + * @return 返回请求公告数量接口的结果 + */ +export function noticeCountAPI() { + return http.get(api.noticeCount); +} diff --git a/src/api/Port/index.ts b/src/api/Port/index.ts new file mode 100644 index 0000000..bcedf76 --- /dev/null +++ b/src/api/Port/index.ts @@ -0,0 +1,67 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { PortPageType, PortType, ProvinceCityType } from '@/types/boatInfo'; +import http from '@/utils/request'; + +// api接口 +const api = { + portDel: '/cargo/port/delete', // 删除 + portGet: '/cargo/port/get', // 获取 + portList: '/cargo/port/list', // 字典列表 + portPage: '/cargo/port/page', // 分页列表 + portSave: '/cargo/port/save', // 保存 + cityList: '/cargo/city/list', // 城市列表 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postPortDeleteAPI(data: number[]) { + return http.post(api.portDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postPortGetAPI(data: { id: number | string }) { + return http.postParams(api.portGet, data); +} + +/** + * 字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postPortListAPI(data: dictionaryType) { + return http.postParams(api.portList, data); +} + +/** + * 分页列表 + * @param {PortPageType} data 分页参数 + * @return 返回请求分页列表接口的结果 + */ +export function postPortPageAPI(data: Partial) { + return http.post>(api.portPage, data); +} + +/** + * 保存 + * @param {PortType} data 企业信息 + * @return 返回请求保存接口的结果 + */ +export function postPortSaveAPI(data: Partial) { + return http.post(api.portSave, data); +} + +/** + * 城市列表 + * @param {number|string} id 城市id + * @return 返回请求城市列表接口的结果 + */ +export function getCityListAPI(id?: number | string) { + return http.get(api.cityList, { id }); +} diff --git a/src/api/Ship/index.ts b/src/api/Ship/index.ts new file mode 100644 index 0000000..b380883 --- /dev/null +++ b/src/api/Ship/index.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { ShipPageType, ShipType } from '@/types/boatInfo'; +import http from '@/utils/request'; + +// api接口 +const api = { + shipDel: '/cargo/ship/delete', // 删除 + shipGet: '/cargo/ship/get', // 获取 + shipList: '/cargo/ship/list', // 字典列表 + shipPage: '/cargo/ship/page', // 分页列表 + shipSave: '/cargo/ship/save', // 保存 +}; + +/** + * 船舶删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postShipDeleteAPI(data: number[]) { + return http.post(api.shipDel, data); +} + +/** + * 船舶获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postShipGetAPI(data: { id: number | string }) { + return http.postParams(api.shipGet, data); +} + +/** + * 船舶字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postShipListAPI(data: dictionaryType) { + return http.postParams(api.shipList, data); +} + +/** + * 船舶分页列表 + * @param {ShipPageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postShipPageAPI(data: Partial) { + return http.post>(api.shipPage, data); +} + +/** + * 船舶保存 + * @param {ShipType} data 保存参数 + * @return 返回请求保存接口的结果 + */ +export function postShipSaveAPI(data: Partial) { + return http.post(api.shipSave, data); +} diff --git a/src/api/ShipChart/index.ts b/src/api/ShipChart/index.ts new file mode 100644 index 0000000..0384b30 --- /dev/null +++ b/src/api/ShipChart/index.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { ShipChartPageType, ShipChartType } from '@/types/boatInfo'; +import http from '@/utils/request'; + +// api接口 +const api = { + shipChartDel: '/cargo/ship/chart/delete', // 删除 + shipChartGet: '/cargo/ship/chart/get', // 获取 + shipChartList: '/cargo/ship/chart/list', // 字典列表 + shipChartPage: '/cargo/ship/chart/page', // 分页列表 + shipChartSave: '/cargo/ship/chart/save', // 保存 +}; + +/** + * 船图删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postShipChartDeleteAPI(data: number[]) { + return http.post(api.shipChartDel, data); +} + +/** + * 船图获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postShipChartGetAPI(data: { id: number | string }) { + return http.postParams(api.shipChartGet, data); +} + +/** + * 船图字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postShipChartListAPI(data: dictionaryType) { + return http.postParams(api.shipChartList, data); +} + +/** + * 船图分页列表 + * @param {ShipChartPageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postShipChartPageAPI(data: Partial) { + return http.post>(api.shipChartPage, data); +} + +/** + * 船图保存 + * @param {ShipChartType} data 保存参数 + * @return 返回请求保存接口的结果 + */ +export function postShipChartSaveAPI(data: Partial) { + return http.post(api.shipChartSave, data); +} diff --git a/src/api/Subscription/index.ts b/src/api/Subscription/index.ts new file mode 100644 index 0000000..6466e54 --- /dev/null +++ b/src/api/Subscription/index.ts @@ -0,0 +1,77 @@ +import { PageRowsResult } from '@/types'; +import { SubscribePageType, SubscriptionType } from '@/types/subscription'; +import http from '@/utils/request'; + +// api接口 +const api = { + subscriptionDel: '/cargo/subscribe/delete', // 删除 + subscriptionGet: '/cargo/subscribe/get', // 获取 + subscriptionPage: '/cargo/subscribe/page', // 分页列表 + publishPage: '/cargo/subscribe/publish/page', // 我发布订阅分页列表 + receivePage: '/cargo/subscribe/receive/page', // 我接受订阅分页列表 + subscriptionSave: '/cargo/subscribe/save', // 保存 + editStatus: '/cargo/subscribe/update', // 修改状态 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function subscriptionDeleteAPI(data: number[]) { + return http.post(api.subscriptionDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function subscriptionGetAPI(data: { id: number | string }) { + return http.postParams(api.subscriptionGet, data); +} + +/** + * 分页列表 + * @param {SubscribePageType} data 分页查询参数 + * @return 返回请求分页列表接口的结果 + */ +export function subscriptionPageAPI(data: Partial) { + return http.post>(api.subscriptionPage, data); +} + +/** + * 我发布订阅分页列表 + * @param {SubscribePageType} data 分页查询参数 + * @return 返回请求分页列表接口的结果 + */ +export function publishPageAPI(data: Partial) { + return http.post>(api.publishPage, data); +} + +/** + * 我接受订阅分页列表 + * @param {SubscribePageType} data 分页查询参数 + * @return 返回请求分页列表接口的结果 + */ +export function receivePageAPI(data: Partial) { + return http.post>(api.receivePage, data); +} + +/** + * 保存 + * @param {SubscriptionType} data + * @return 返回请求保存接口的结果 + */ +export function subscriptionSaveAPI(data: SubscriptionType) { + return http.post(api.subscriptionSave, data); +} + +/** + * 修改状态 + * @param data + * @return 返回请求保存接口的结果 + */ +export function editStatusAPI(data: { id: string | number; status: string }) { + return http.get(api.editStatus, data); +} diff --git a/src/api/System/menu.ts b/src/api/System/menu.ts new file mode 100644 index 0000000..385dcfa --- /dev/null +++ b/src/api/System/menu.ts @@ -0,0 +1,25 @@ +import { menuParamsType, menuType } from '@/types/menu'; +import http from '@/utils/request'; + +// api接口 +const api = { + appList: '/admin/app/list', // 系统列表 + menuTree: '/admin/menu/tree', // 系统操作权限树 +}; + +/** + * 获取系统列表 + * @return 返回请求获取系统列表接口的结果 + */ +export function getAppListAPI() { + return http.post(api.appList); +} + +/** + * 获取系统操作权限树 + * @param {menuParamsType} data 系统参数 + * @return 返回请求获取系统操作权限树接口的结果 + */ +export function getMenuTreeAPI(data: menuParamsType) { + return http.post(api.menuTree, data); +} diff --git a/src/api/System/role.ts b/src/api/System/role.ts new file mode 100644 index 0000000..acf2ed4 --- /dev/null +++ b/src/api/System/role.ts @@ -0,0 +1,77 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { getRoleListType, rolePremType, roleType } from '@/types/role'; +import http from '@/utils/request'; + +// api接口 +const api = { + roleSave: '/admin/role/save', // 角色保存 + rolePremSave: '/admin/role/perm/save', // 添加角色操作权限 + rolePage: '/admin/role/page', // 角色分页列表 + roleList: '/admin/role/list', // 角色字典列表 + roleGet: '/admin/role/get', // 角色详情 + roleDelete: '/admin/role/delete', // 角色删除 + roleMenuList: '/admin/role/perm/list', // 角色菜单列表 +}; + +/** + * 角色保存 + * @param {roleType} data 角色信息 + * @return 返回请求角色保存接口的结果 + */ +export function postRoleSaveAPI(data: roleType) { + return http.post(api.roleSave, data); +} + +/** + * 角色操作权限 + * @param {rolePremType} data 角色权限 + * @return 返回请求角色操作权限接口的结果 + */ +export function postRolePremSaveAPI(data: rolePremType) { + return http.post(api.rolePremSave, data); +} + +/** + * 角色分页列表 + * @param {getUserListType} data 分页信息 + * @return 返回请求角色分页列表接口的结果 + */ +export function postRolePageAPI(data: Partial) { + return http.post>(api.rolePage, data); +} + +/** + * 角色字典列表 + * @param {dictionaryType} data 字典信息 + * @return 返回请求角色字典列表接口的结果 + */ +export function getRoleListAPI(data: dictionaryType) { + return http.postParams(api.roleList, data); +} + +/** + * 角色详情 + * @param {string|number} data 角色id + * @return 返回请求角色详情接口的结果 + */ +export function getRoleGetAPI(data: { id: number | string }) { + return http.postParams(api.roleGet, data); +} + +/** + * 角色删除 + * @param {number} data 角色id + * @return 返回请求角色删除接口的结果 + */ +export function getRoleDeleteAPI(data: number[]) { + return http.post(api.roleDelete, data); +} + +/** + * 角色菜单列表 + * @param {string|number} data 角色id + * @return 返回请求角色菜单列表接口的结果 + */ +export function getRoleMenuListAPI(data: { roleId: number | string }) { + return http.postParams(api.roleMenuList, data); +} diff --git a/src/api/System/user.ts b/src/api/System/user.ts new file mode 100644 index 0000000..076125a --- /dev/null +++ b/src/api/System/user.ts @@ -0,0 +1,109 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { roleType } from '@/types/role'; +import { + getUserListType, + loginDataType, + userInfoRepType, + userPasswordType, + userRoleType, + userType, +} from '@/types/user'; +import http from '@/utils/request'; + +// api接口 +const api = { + login: '/admin/user/login', // 用户登录接口 + userSave: '/admin/user/save', // 用户保存 + userPassword: '/admin/user/password', // 用户修改密码 + userPage: '/admin/user/page', // 用户分页列表 + userList: '/admin/user/list', // 用户字典列表 + userGet: '/admin/user/get', // 用户详情 + userDelete: '/admin/user/delete', // 用户删除 + userRole: '/admin/user/role/add', // 用户添加角色 + userRoleList: '/admin/user/role/list', // 用户角色列表 +}; + +/** + * 用户登录 + * @param {loginDataType} data 登录参数 + * @return 返回请求登录接口的结果 + */ +export function postLoginAPI(data: loginDataType) { + return http.post(api.login, data, { + headers: { + Authorization: 'Basic ' + btoa('oauth2-client:123456'), + }, + }); +} + +/** + * 用户保存 + * @param {userType} data 用户信息 + * @return 返回请求保存接口的结果 + */ +export function postUserSaveAPI(data: userType) { + return http.post(api.userSave, data); +} + +/** + * 用户修改密码 + * @param {userPasswordType} data 用户修改密码信息 + * @return 返回请求修改密码接口的结果 + */ +export function postUserPasswordAPI(data: userPasswordType) { + return http.post(api.userPassword, data); +} + +/** + * 用户分页列表 + * @param {getUserListType} data 分页信息 + * @return 返回请求分页列表接口的结果 + */ +export function postUserPageAPI(data: Partial) { + return http.post>(api.userPage, data); +} + +/** + * 用户字典列表 + * @param {dictionaryType} data 字典信息 + * @return 返回请求用户字典列表接口的结果 + */ +export function getUserListAPI(data: dictionaryType) { + return http.postParams(api.userList, data); +} + +/** + * 用户详情 + * @param {string|number} data 用户id + * @return 返回请求用户详情接口的结果 + */ +export function getUserGetAPI(data: { id: number | string }) { + return http.postParams(api.userGet, data); +} + +/** + * 用户删除 + * @param {number} data 用户id + * @return 返回请求用户删除接口的结果 + */ +export function getUserDeleteAPI(data: number[]) { + return http.post(api.userDelete, data); +} + +/** + * 用户添加角色 + * @param {userRoleType} data 用户角色 + * @return 返回请求用户添加角色接口的结果 + */ +export function postUserRoleAPI(data: userRoleType) { + return http.post(api.userRole, data); +} + +/** + * 用户角色列表 + * @param {string|number} data 用户id + * @return 返回请求用户角色列表接口的结果 + */ +export function getUserRoleListAPI(data: { userId: number | string }) { + return http.postParams(api.userRoleList, data); +} diff --git a/src/api/Vehicle/detail.ts b/src/api/Vehicle/detail.ts new file mode 100644 index 0000000..ad75ec9 --- /dev/null +++ b/src/api/Vehicle/detail.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { VehicleDetailType, vehiclePageType } from '@/types/manifest'; +import http from '@/utils/request'; + +// api接口 +const api = { + vehicleDel: '/cargo/vehicle_type/detail/delete', // 删除 + vehicleGet: '/cargo/vehicle_type/detail/get', // 获取 + vehiclePage: '/cargo/vehicle_type/detail/page', // 分页列表 + vehicleList: '/cargo/vehicle_type/detail/list', // 车型列表 + vehicleSave: '/cargo/vehicle_type/detail/save', // 保存 +}; + +/** + * 车型明细删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postVehicleDetailDeleteAPI(data: number[]) { + return http.post(api.vehicleDel, data); +} + +/** + * 车型明细获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postVehicleDetailGetAPI(data: { id: number | string }) { + return http.postParams(api.vehicleGet, data); +} + +/** + * 车型明细分页列表 + * @param data + * @returns + */ +export function postVehicleDetailPageAPI(data: Partial) { + return http.post>(api.vehiclePage, data); +} + +/** + * 车型明细字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postVehicleDetailListAPI(data: dictionaryType) { + return http.postParams(api.vehicleList, data); +} + +/** + * 车型明细保存 + * @param {VehicleType} data 保存参数 + * @return 返回请求保存接口的结果 + */ +export function postVehicleDetailSaveAPI(data: Partial) { + return http.post(api.vehicleSave, data); +} diff --git a/src/api/Vehicle/index.ts b/src/api/Vehicle/index.ts new file mode 100644 index 0000000..e0a5ff1 --- /dev/null +++ b/src/api/Vehicle/index.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { vehiclePageType, VehicleType } from '@/types/manifest'; +import http from '@/utils/request'; + +// api接口 +const api = { + vehicleDel: '/cargo/vehicle_type/delete', // 删除 + vehicleGet: '/cargo/vehicle_type/get', // 获取 + vehiclePage: '/cargo/vehicle_type/page', // 分页列表 + vehicleList: '/cargo/vehicle_type/list', // 车型列表 + vehicleSave: '/cargo/vehicle_type/save', // 保存 +}; + +/** + * 车型删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postVehicleDeleteAPI(data: number[]) { + return http.post(api.vehicleDel, data); +} + +/** + * 车型获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postVehicleGetAPI(data: { id: number | string }) { + return http.postParams(api.vehicleGet, data); +} + +/** + * 车型分页列表 + * @param data + * @returns + */ +export function postVehiclePageAPI(data: Partial) { + return http.post>(api.vehiclePage, data); +} + +/** + * 车型字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postVehicleListAPI(data: dictionaryType) { + return http.postParams(api.vehicleList, data); +} + +/** + * 车型保存 + * @param {VehicleType} data 保存参数 + * @return 返回请求保存接口的结果 + */ +export function postVehicleSaveAPI(data: Partial) { + return http.post(api.vehicleSave, data); +} diff --git a/src/api/Wharf/index.ts b/src/api/Wharf/index.ts new file mode 100644 index 0000000..3f2f847 --- /dev/null +++ b/src/api/Wharf/index.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { LoadWharfPageType, LoadWharfType } from '@/types/boatInfo'; +import http from '@/utils/request'; + +// api接口 +const api = { + wharfDel: '/cargo/wharf/delete', // 删除 + wharfGet: '/cargo/wharf/get', // 获取 + wharfList: '/cargo/wharf/list', // 字典列表 + wharfPage: '/cargo/wharf/page', // 分页列表 + wharfSave: '/cargo/wharf/save', // 保存 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postWharfDeleteAPI(data: number[]) { + return http.post(api.wharfDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function postWharfGetAPI(data: { id: number | string }) { + return http.postParams(api.wharfGet, data); +} + +/** + * 字典列表 + * @param {dictionaryType} data 字典参数 + * @return 返回请求字典列表接口的结果 + */ +export function postWharfListAPI(data: dictionaryType) { + return http.postParams(api.wharfList, data); +} + +/** + * 分页列表 + * @param {LoadWharfPageType} data 查询参数 + * @return 返回请求分页列表接口的结果 + */ +export function postWharfPageAPI(data: Partial) { + return http.post>(api.wharfPage, data); +} + +/** + * 保存 + * @param {LoadWharfType} data 保存参数 + * @return 返回请求保存接口的结果 + */ +export function postWharfSaveAPI(data: Partial) { + return http.post(api.wharfSave, data); +} diff --git a/src/api/WharfRoute/index.ts b/src/api/WharfRoute/index.ts new file mode 100644 index 0000000..5810033 --- /dev/null +++ b/src/api/WharfRoute/index.ts @@ -0,0 +1,57 @@ +import { dictionaryListType, dictionaryType, PageRowsResult } from '@/types'; +import { WharfRoutePageType, WharfRouteType } from '@/types/boatInfo'; +import http from '@/utils/request'; + +// api接口 +const api = { + wharfRouteDel: '/cargo/route/wharf/delete', // 删除 + wharfRouteGet: '/cargo/route/wharf/get', // 获取 + wharfRoutePage: '/cargo/route/wharf/page', // 分页列表 + wharfRouteList: '/cargo/route/wharf/list', // 字典列表 + wharfRouteSave: '/cargo/route/wharf/save', // 保存 +}; + +/** + * 删除 + * @param {number} data id + * @return 返回请求删除接口的结果 + */ +export function postWharfRouteDeleteAPI(data: number[]) { + return http.post(api.wharfRouteDel, data); +} + +/** + * 获取 + * @param {number|string} data id + * @return 返回请求获取接口的结果 + */ +export function wharfRouteGetAPI(data: { id: number | string }) { + return http.postParams(api.wharfRouteGet, data); +} + +/** + * 分页列表 + * @param {WharfRoutePageType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function postWharfRoutePageAPI(data: Partial) { + return http.post>(api.wharfRoutePage, data); +} + +/** + * 字典列表 + * @param {dictionaryType} data 查询条件 + * @return 返回请求分页列表接口的结果 + */ +export function wharfRouteListAPI(data: dictionaryType) { + return http.postParams(api.wharfRouteList, data); +} + +/** + * 保存 + * @param {WharfRouteType} data 航线信息 + * @return 返回请求保存接口的结果 + */ +export function postWharfRouteSaveAPI(data: Partial) { + return http.post(api.wharfRouteSave, data); +} diff --git a/src/assets/icons/Moon.svg b/src/assets/icons/Moon.svg deleted file mode 100644 index 55116e6..0000000 --- a/src/assets/icons/Moon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/Sunny.svg b/src/assets/icons/Sunny.svg deleted file mode 100644 index 21959d5..0000000 --- a/src/assets/icons/Sunny.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/icons/article-create.svg b/src/assets/icons/article-create.svg new file mode 100644 index 0000000..dcbaa18 --- /dev/null +++ b/src/assets/icons/article-create.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/article-ranking.svg b/src/assets/icons/article-ranking.svg new file mode 100644 index 0000000..ab72104 --- /dev/null +++ b/src/assets/icons/article-ranking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/article.svg b/src/assets/icons/article.svg new file mode 100644 index 0000000..1d36e79 --- /dev/null +++ b/src/assets/icons/article.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/change-theme.svg b/src/assets/icons/change-theme.svg new file mode 100644 index 0000000..74b6949 --- /dev/null +++ b/src/assets/icons/change-theme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/componentsize.svg b/src/assets/icons/componentsize.svg new file mode 100644 index 0000000..c48c811 --- /dev/null +++ b/src/assets/icons/componentsize.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/dashboard.svg b/src/assets/icons/dashboard.svg new file mode 100644 index 0000000..5317d37 --- /dev/null +++ b/src/assets/icons/dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/example.svg b/src/assets/icons/example.svg new file mode 100644 index 0000000..46f42b5 --- /dev/null +++ b/src/assets/icons/example.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/exit-fullscreen.svg b/src/assets/icons/exit-fullscreen.svg new file mode 100644 index 0000000..0b1603b --- /dev/null +++ b/src/assets/icons/exit-fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/eye-open.svg b/src/assets/icons/eye-open.svg new file mode 100644 index 0000000..88dcc98 --- /dev/null +++ b/src/assets/icons/eye-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/eye.svg b/src/assets/icons/eye.svg new file mode 100644 index 0000000..16ed2d8 --- /dev/null +++ b/src/assets/icons/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/fullscreen.svg b/src/assets/icons/fullscreen.svg new file mode 100644 index 0000000..655f0b6 --- /dev/null +++ b/src/assets/icons/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/guide.svg b/src/assets/icons/guide.svg new file mode 100644 index 0000000..179ad17 --- /dev/null +++ b/src/assets/icons/guide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/hamburger-closed.svg b/src/assets/icons/hamburger-closed.svg new file mode 100644 index 0000000..4a70141 --- /dev/null +++ b/src/assets/icons/hamburger-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/hamburger-opened.svg b/src/assets/icons/hamburger-opened.svg new file mode 100644 index 0000000..f76a055 --- /dev/null +++ b/src/assets/icons/hamburger-opened.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/international.svg b/src/assets/icons/international.svg new file mode 100644 index 0000000..e9b56ee --- /dev/null +++ b/src/assets/icons/international.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/introduce.svg b/src/assets/icons/introduce.svg new file mode 100644 index 0000000..7b9862e --- /dev/null +++ b/src/assets/icons/introduce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/language.svg b/src/assets/icons/language.svg new file mode 100644 index 0000000..d837c51 --- /dev/null +++ b/src/assets/icons/language.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/link.svg b/src/assets/icons/link.svg new file mode 100644 index 0000000..48197ba --- /dev/null +++ b/src/assets/icons/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/nested.svg b/src/assets/icons/nested.svg new file mode 100644 index 0000000..06713a8 --- /dev/null +++ b/src/assets/icons/nested.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/password.svg b/src/assets/icons/password.svg new file mode 100644 index 0000000..e291d85 --- /dev/null +++ b/src/assets/icons/password.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/permission.svg b/src/assets/icons/permission.svg new file mode 100644 index 0000000..947c983 --- /dev/null +++ b/src/assets/icons/permission.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/personnel-info.svg b/src/assets/icons/personnel-info.svg new file mode 100644 index 0000000..d51fc08 --- /dev/null +++ b/src/assets/icons/personnel-info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/personnel-manage.svg b/src/assets/icons/personnel-manage.svg new file mode 100644 index 0000000..9aaedac --- /dev/null +++ b/src/assets/icons/personnel-manage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/personnel.svg b/src/assets/icons/personnel.svg new file mode 100644 index 0000000..0b146de --- /dev/null +++ b/src/assets/icons/personnel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/reward.svg b/src/assets/icons/reward.svg new file mode 100644 index 0000000..5626794 --- /dev/null +++ b/src/assets/icons/reward.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/role.svg b/src/assets/icons/role.svg new file mode 100644 index 0000000..bfacc9e --- /dev/null +++ b/src/assets/icons/role.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/search.svg b/src/assets/icons/search.svg new file mode 100644 index 0000000..84233dd --- /dev/null +++ b/src/assets/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/table.svg b/src/assets/icons/table.svg new file mode 100644 index 0000000..0e3dc9d --- /dev/null +++ b/src/assets/icons/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/tree.svg b/src/assets/icons/tree.svg new file mode 100644 index 0000000..dd4b7dd --- /dev/null +++ b/src/assets/icons/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/user.svg b/src/assets/icons/user.svg new file mode 100644 index 0000000..0ba0716 --- /dev/null +++ b/src/assets/icons/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/403.png b/src/assets/images/403.png new file mode 100644 index 0000000..314caa6 Binary files /dev/null and b/src/assets/images/403.png differ diff --git a/src/assets/images/404_bg.png b/src/assets/images/404_bg.png new file mode 100644 index 0000000..1d34d79 Binary files /dev/null and b/src/assets/images/404_bg.png differ diff --git a/src/assets/images/error_cloud.png b/src/assets/images/error_cloud.png new file mode 100644 index 0000000..c6281d0 Binary files /dev/null and b/src/assets/images/error_cloud.png differ diff --git a/src/assets/images/login_bg.svg b/src/assets/images/login_bg.svg new file mode 100644 index 0000000..34f498d --- /dev/null +++ b/src/assets/images/login_bg.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/imgs/logo.png b/src/assets/images/logo.png similarity index 100% rename from src/assets/imgs/logo.png rename to src/assets/images/logo.png diff --git a/src/assets/images/noMessage.png b/src/assets/images/noMessage.png new file mode 100644 index 0000000..033d7b7 Binary files /dev/null and b/src/assets/images/noMessage.png differ diff --git a/src/assets/images/welcome.png b/src/assets/images/welcome.png new file mode 100644 index 0000000..e4129da Binary files /dev/null and b/src/assets/images/welcome.png differ diff --git a/src/assets/vue.svg b/src/assets/vue.svg index ca8129c..770e9d3 100644 --- a/src/assets/vue.svg +++ b/src/assets/vue.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/src/components/ImpordFile/index.vue b/src/components/ImpordFile/index.vue new file mode 100644 index 0000000..4a6b854 --- /dev/null +++ b/src/components/ImpordFile/index.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/Pagination.vue similarity index 93% rename from src/components/Pagination/index.vue rename to src/components/Pagination/Pagination.vue index 0f054dd..779ea7c 100644 --- a/src/components/Pagination/index.vue +++ b/src/components/Pagination/Pagination.vue @@ -15,7 +15,7 @@ + + diff --git a/src/components/SwitchDark/index.vue b/src/components/SwitchDark/index.vue index c0fe263..111e8e3 100644 --- a/src/components/SwitchDark/index.vue +++ b/src/components/SwitchDark/index.vue @@ -1,35 +1,31 @@ - + diff --git a/src/components/Upload/img.vue b/src/components/Upload/img.vue new file mode 100644 index 0000000..3b6dd1d --- /dev/null +++ b/src/components/Upload/img.vue @@ -0,0 +1,339 @@ + + + + + diff --git a/src/components/WangEditor/index.vue b/src/components/WangEditor/index.vue new file mode 100644 index 0000000..3a028db --- /dev/null +++ b/src/components/WangEditor/index.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/config/constant.ts b/src/config/constant.ts new file mode 100644 index 0000000..6befdb8 --- /dev/null +++ b/src/config/constant.ts @@ -0,0 +1,4 @@ +/** + * 菜单列表 + */ +export const MENU_LIST = 'menuList'; diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 0000000..62a0db6 --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1,26 @@ +// 全局默认配置项 + +/** + * 首页地址(默认) + */ +export const HOME_URL = '/home'; + +/** + * 登录页地址(默认) + */ +export const LOGIN_URL = '/login'; + +/** + * 默认主题颜色 + */ +export const DEFAULT_THEMECOLOR = '#409eff'; + +/** + * 高德地图 key + */ +export const AMAP_MAP_KEY = ''; + +/** + * 百度地图 key + */ +export const BAIDU_MAP_KEY = ''; diff --git a/src/router/permission.ts b/src/config/permission.ts similarity index 62% rename from src/router/permission.ts rename to src/config/permission.ts index 80a7bec..22df4c3 100644 --- a/src/router/permission.ts +++ b/src/config/permission.ts @@ -1,5 +1,7 @@ import NProgress from 'nprogress'; // 进度条 import { router } from '@/router'; +import { usePermissionStore } from '@/store/modules/permission'; +import { useUserStore } from '@/store/modules/user'; import 'nprogress/nprogress.css'; // 进度条样式 // 进度条配置 @@ -24,36 +26,35 @@ router.beforeEach(async (to, from, next) => { } // 获取用户信息 store - // const userStore = useUserStore(); + const userStore = useUserStore(); // 获取用户是否登录状态,确定用户是否已登录过,存在Token - // const hasToken = userStore.token; + const hasToken = userStore.token; - if (false) { + if (hasToken) { // 用户登录 if (to.path === '/login') { // 如果已登录,重定向到主页 next({ path: '/' }); } else { // 获取用户权限 store - // const permissionStore = usePermissionStore(); + const permissionStore = usePermissionStore(); // 确定用户是否已通过getInfo获得其权限角色 // const hasRoles = userStore.roles && userStore.roles.length > 0; try { - // // 路由添加进去了没有及时更新 需要重新进去一次拦截 - // if (!permissionStore.routes.length) { - // // 获取权限列表进行接口访问 因为这里页面要切换权限 - // const accessRoutes = await permissionStore.generateRoutes(userStore.roles); + // 路由添加进去了没有及时更新 需要重新进去一次拦截 + if (!permissionStore.routes.length) { + // 获取权限列表进行接口访问 因为这里页面要切换权限 + const accessRoutes = await permissionStore.generateRoutes(userStore.roles); - // // 动态添加访问路由表 - // accessRoutes.forEach((item) => router.addRoute(item)); + // 动态添加访问路由表 + accessRoutes.forEach((item) => router.addRoute(item)); - // // 这里相当于push到一个页面 不在进入路由拦截 - // next({ ...to, replace: true }); - // } else { - // // 如果不传参数就会重新执行路由拦截,重新进到这里 - // next(); - // } - next(); + // 这里相当于push到一个页面 不在进入路由拦截 + next({ ...to, replace: true }); + } else { + // 如果不传参数就会重新执行路由拦截,重新进到这里 + next(); + } } catch (error) { next(`/login?redirect=${to.path}`); } diff --git a/src/directives/index.ts b/src/directives/index.ts new file mode 100644 index 0000000..a06e699 --- /dev/null +++ b/src/directives/index.ts @@ -0,0 +1,22 @@ +import { App, Directive } from 'vue'; +import auth from './modules/auth'; + +const directivesList: { [key: string]: Directive } = { + auth, +}; + +const directives = { + install: function (app: App) { + Object.keys(directivesList).forEach((key) => { + app.directive(key, directivesList[key]); + }); + }, +}; + +/** + * 配置directives + * @param app vue实例 + */ +export function setupDirectives(app: App) { + app.use(directives); +} diff --git a/src/directives/modules/auth.ts b/src/directives/modules/auth.ts new file mode 100644 index 0000000..acdd3a5 --- /dev/null +++ b/src/directives/modules/auth.ts @@ -0,0 +1,27 @@ +import type { Directive, DirectiveBinding } from 'vue'; +import { useUserStore } from '@/store/modules/user'; +import { getAuthButtonsList } from '@/utils/routers'; + +/** + * v-auth 按钮权限指令 + */ +const auth: Directive = { + mounted(el: HTMLElement, binding: DirectiveBinding) { + const { value } = binding; + + // 获取用户菜单权限 + const userStore = useUserStore(); + + // 用户按钮权限 + const currentPageRoles = getAuthButtonsList(userStore.menus, userStore.routeName); + + if (value instanceof Array && value.length) { + const hasPermission = value.every((item) => currentPageRoles.includes(item)); + if (!hasPermission) el.remove(); + } else { + if (!currentPageRoles.includes(value)) el.remove(); + } + }, +}; + +export default auth; diff --git a/src/hooks/useAuthButton.ts b/src/hooks/useAuthButton.ts new file mode 100644 index 0000000..0ef0710 --- /dev/null +++ b/src/hooks/useAuthButton.ts @@ -0,0 +1,32 @@ +import { computed } from 'vue'; +import { useRoute } from 'vue-router'; +import { useUserStore } from '@/store/modules/user'; +import { getAuthButtonsList } from '@/utils/routers'; + +/** + * 页面按钮权限 + */ +export const useAuthButton = () => { + // 获取用户菜单权限 + const userStore = useUserStore(); + + // 获取路由对象 + const route = useRoute(); + + // 用户按钮权限 + const authButtonsList = getAuthButtonsList(userStore.menus, route.path); + + // 控制用户按钮权限显示和隐藏 + const authButtons = computed(() => { + // 当前页面按钮权限 + const currentPageAuthButton: { [key: string]: boolean } = {}; + + authButtonsList.forEach((item) => (currentPageAuthButton[item] = true)); + + return currentPageAuthButton; + }); + + return { + authButtons, + }; +}; diff --git a/src/hooks/useTable.ts b/src/hooks/useTable.ts new file mode 100644 index 0000000..fffb9a8 --- /dev/null +++ b/src/hooks/useTable.ts @@ -0,0 +1,206 @@ +import { computed, ref } from 'vue'; + +/** + * 分页参数类型 + */ +interface pageAbleType { + total: number; + page: number; + rows: number; +} + +/** + * 表格类型 + */ +interface tableStateType { + tableData: any[]; + pageAble: pageAbleType; + searchParam: Record; + searchInitParam: Record; + totalParam: Record; + icon?: Record; +} + +/** + * useTable参数类型 + */ +interface tableParamsType { + /** + * 获取表格数据 api 方法 (必传) + */ + api: (params: any) => Promise; + + /** + * 获取数据初始化参数 (非必传,默认为{}) + */ + initParam?: object; + + /** + * 是否有分页 (非必传,默认为true) + */ + isPageAble?: boolean; + + /** + * 对后台返回的数据进行处理的方法 (非必传) + */ + dataCallBack?: (data: any) => any; + + /** + * 异常处理方法 (非必传) + */ + requestError?: (error: any) => void; +} + +/** + * table 页面操作方法封装 + * @param {tableParamsType} option 配置参数 + * @return 表格处理函数 + * */ +export const useTable = (option: tableParamsType) => { + const { api, initParam, isPageAble = true, dataCallBack, requestError } = option; + + // 表格数据对象 + const tableState = ref({ + // 表格数据 + tableData: [], + // 分页数据 + pageAble: { + // 当前页数 + page: 1, + // 每页显示条数 + rows: 10, + // 总条数 + total: 0, + }, + // 查询参数(只包括查询) + searchParam: {}, + // 初始化默认的查询参数 + searchInitParam: {}, + // 总参数(包含分页和查询参数) + totalParam: {}, + }); + + /** + * 分页查询参数(只包括分页和表格字段排序,其他排序方式可自行配置) + */ + const pageParam = computed(() => ({ + page: tableState.value.pageAble.page, + rows: tableState.value.pageAble.rows, + })); + + /** + * 获取表格数据 + */ + const getTableList = async () => { + // 判断获取表格数据api方法是否存在 + if (!api) return; + + try { + // 先把初始化参数和分页参数放到总参数里面 + Object.assign(tableState.value.totalParam, initParam, isPageAble ? pageParam.value : {}); + + // 请求表格数据 + let { data } = await api({ + ...tableState.value.searchInitParam, + ...tableState.value.totalParam, + }); + + // 判断数据处理函数是否存在,并处理数据 + dataCallBack && (data = dataCallBack(data)); + + // 获取从后端返回的表格数据 + tableState.value.tableData = isPageAble ? data.records : data; + + // 解构后台返回的分页数据 (如果有分页更新分页信息) + const { current: page, size: rows, total } = data; + isPageAble && + updatePageAble({ page: Number(page), rows: Number(rows), total: Number(total) }); + } catch (error) { + requestError && requestError(error); + } + }; + + /** + * 更新分页信息 + * @param {pageAbleType} resPageAble 后台返回的分页数据 + * */ + const updatePageAble = (resPageAble: pageAbleType) => { + Object.assign(tableState.value.pageAble, resPageAble); + }; + + /** + * 更新查询参数 + */ + const updatedTotalParam = () => { + // 清空上一次查询的参数 + tableState.value.totalParam = {}; + // 处理查询参数,可以给查询参数加自定义前缀操作 + const nowSearchParam: Record = {}; + // 防止手动清空输入框携带参数(这里可以自定义查询参数前缀) + for (const key in tableState.value.searchParam) { + // 某些情况下参数为 false/0 也应该携带参数 + if ( + tableState.value.searchParam[key] || + tableState.value.searchParam[key] === false || + tableState.value.searchParam[key] === 0 + ) { + nowSearchParam[key] = tableState.value.searchParam[key]; + } + } + Object.assign(tableState.value.totalParam, nowSearchParam, isPageAble ? pageParam.value : {}); + }; + + /** + * 表格数据查询 + */ + const searchTable = async () => { + // 重置分页数据 + tableState.value.pageAble.page = 1; + updatedTotalParam(); + await getTableList(); + }; + + /** + * 表格数据重置 + */ + const resetTable = async () => { + // 重置分页数据 + tableState.value.pageAble.page = 1; + tableState.value.searchParam = {}; + // 重置搜索表单的时,如果有默认搜索参数,则重置默认的搜索参数 + Object.keys(tableState.value.searchInitParam).forEach((key) => { + tableState.value.searchParam[key] = tableState.value.searchInitParam[key]; + }); + updatedTotalParam(); + await getTableList(); + }; + + /** + * 每页条数改变 + * @param {Number} val 当前条数 + */ + const tableChangeSize = async (val: number) => { + tableState.value.pageAble.page = 1; + tableState.value.pageAble.rows = val; + await getTableList(); + }; + + /** + * 当前页改变 + * @param {Number} val 当前页 + */ + const tableChangeCurrent = async (val: number) => { + tableState.value.pageAble.page = val; + await getTableList(); + }; + + return { + tableState, + getTableList, + updatedTotalParam, + searchTable, + resetTable, + tableChangeSize, + tableChangeCurrent, + }; +}; diff --git a/src/hooks/useTheme.ts b/src/hooks/useTheme.ts index 3c1525a..ac38771 100644 --- a/src/hooks/useTheme.ts +++ b/src/hooks/useTheme.ts @@ -1,26 +1,160 @@ +import { ElMessage } from 'element-plus'; import { computed } from 'vue'; +import { DEFAULT_THEMECOLOR } from '@/config'; import { useSettingStore } from '@/store/modules/setting'; +import { headerTheme, menuTheme, sidebarTheme } from '@/styles/theme'; +import { getDarkColor, getLightColor } from '@/utils/color'; /** - * @description: 全局主题设置 + * 主题类型 + */ +export type ThemeType = 'light' | 'inverted' | 'dark'; + +/** + * 灰色和弱色类型 + */ +export type GreyOrWeakType = 'grey' | 'weak'; + +/** + * 全局主题设置 */ export const useTheme = () => { // 获取全局状态管理仓库中系统设置状态 const settingStore = useSettingStore(); - const isDark = computed(() => settingStore.isDark); + const themeConfig = computed(() => settingStore.themeConfig); // 切换暗黑模式 const switchDark = () => { const body = document.documentElement; - if (isDark.value) { + if (themeConfig.value.isDark) { body.setAttribute('class', 'dark'); } else { body.setAttribute('class', ''); } + + // 同时修改主题色、侧边栏、头部颜色 + changeThemeColor(themeConfig.value.themeColor); + changeSideBarTheme(); + changeHeaderTheme(); + }; + + /** + * 修改主题颜色 + * @param {string} val 主题色 + */ + const changeThemeColor = (val: string | null) => { + if (!val) { + val = DEFAULT_THEMECOLOR; + ElMessage({ type: 'success', message: `主题颜色已重置为 ${DEFAULT_THEMECOLOR}` }); + } + // 计算主题颜色变化 + document.documentElement.style.setProperty('--el-color-primary', val); + document.documentElement.style.setProperty( + '--el-color-primary-dark-2', + themeConfig.value.isDark ? `${getLightColor(val, 0.2)}` : `${getDarkColor(val, 0.3)}` + ); + for (let i = 1; i <= 9; i++) { + const primaryColor = themeConfig.value.isDark + ? `${getDarkColor(val, i / 10)}` + : `${getLightColor(val, i / 10)}`; + document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, primaryColor); + } + settingStore.setThemeConfig('themeColor', val); + }; + + /** + * 灰色和弱色切换 + * @param {GreyOrWeakType} type 类型 + * @param {boolean} value 值 + */ + const changeGreyOrWeak = (type: GreyOrWeakType, value: boolean) => { + const body = document.body as HTMLElement; + if (!value) return body.removeAttribute('style'); + const styles: Record = { + grey: 'filter: grayscale(1)', + weak: 'filter: invert(80%)', + }; + body.setAttribute('style', styles[type]); + const propName = type === 'grey' ? 'isWeak' : 'isGrey'; + settingStore.setThemeConfig(propName, false); + }; + + /** + * 设置菜单样式 + */ + const changeMenuTheme = () => { + let type: ThemeType = 'light'; + + // 判断是否是暗黑主题 + if (themeConfig.value.isDark) { + type = 'dark'; + } + + const theme = menuTheme[type]; + // 遍历写入样式 + for (const [key, value] of Object.entries(theme)) { + document.documentElement.style.setProperty(key, value); + } + }; + + /** + * 设置侧边栏样式 + */ + const changeSideBarTheme = () => { + let type: ThemeType = 'light'; + + // 判断是否是暗黑主题 + if (themeConfig.value.isDark) { + type = 'dark'; + } + + const theme = sidebarTheme[type]; + // 遍历写入样式 + for (const [key, value] of Object.entries(theme)) { + document.documentElement.style.setProperty(key, value); + } + + changeMenuTheme(); + }; + + /** + * 设置头部样式 + */ + const changeHeaderTheme = () => { + let type: ThemeType = 'light'; + + // 判断是否是暗黑主题 + if (themeConfig.value.isDark) { + type = 'dark'; + } + + const theme = headerTheme[type]; + // 遍历写入样式 + for (const [key, value] of Object.entries(theme)) { + document.documentElement.style.setProperty(key, value); + } + + changeMenuTheme(); + }; + + // 初始化主题 + const initTheme = () => { + switchDark(); + + // 判断是否是灰色模式 + if (themeConfig.value.isGrey) changeGreyOrWeak('grey', true); + + // 判断是否色弱模式 + if (themeConfig.value.isWeak) changeGreyOrWeak('weak', true); }; return { switchDark, + changeThemeColor, + changeGreyOrWeak, + initTheme, + changeSideBarTheme, + changeHeaderTheme, }; }; diff --git a/src/layouts/Header/index.vue b/src/layouts/Header/index.vue index 08e64bd..add17a1 100644 --- a/src/layouts/Header/index.vue +++ b/src/layouts/Header/index.vue @@ -1,40 +1,105 @@ - + diff --git a/src/views/ApiManage/components/ApiTable.vue b/src/views/ApiManage/components/ApiTable.vue new file mode 100644 index 0000000..6a239be --- /dev/null +++ b/src/views/ApiManage/components/ApiTable.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/ApiManage/index.vue b/src/views/ApiManage/index.vue new file mode 100644 index 0000000..db2accc --- /dev/null +++ b/src/views/ApiManage/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/Boat/Info/components/InfoTable.vue b/src/views/Boat/Info/components/InfoTable.vue deleted file mode 100644 index 1bd6803..0000000 --- a/src/views/Boat/Info/components/InfoTable.vue +++ /dev/null @@ -1,117 +0,0 @@ - - - - - diff --git a/src/views/Boat/Info/index.vue b/src/views/Boat/Info/index.vue deleted file mode 100644 index c400b6b..0000000 --- a/src/views/Boat/Info/index.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/src/views/Boat/Infos/components/BoatTable.vue b/src/views/Boat/Infos/components/BoatTable.vue new file mode 100644 index 0000000..aeff074 --- /dev/null +++ b/src/views/Boat/Infos/components/BoatTable.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/src/views/Boat/Infos/index.vue b/src/views/Boat/Infos/index.vue new file mode 100644 index 0000000..065b15a --- /dev/null +++ b/src/views/Boat/Infos/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/Boat/Query/index.vue b/src/views/Boat/Query/index.vue deleted file mode 100644 index 6038aa4..0000000 --- a/src/views/Boat/Query/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/views/Boat/Track/index.vue b/src/views/Boat/Track/index.vue deleted file mode 100644 index a13c33c..0000000 --- a/src/views/Boat/Track/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/views/Enterprise/Company/index.vue b/src/views/Enterprise/Company/index.vue new file mode 100644 index 0000000..b048309 --- /dev/null +++ b/src/views/Enterprise/Company/index.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/Enterprise/Employee/components/EmployeeDialog.vue b/src/views/Enterprise/Employee/components/EmployeeDialog.vue new file mode 100644 index 0000000..e53eb58 --- /dev/null +++ b/src/views/Enterprise/Employee/components/EmployeeDialog.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/Enterprise/Employee/components/EmployeeTable.vue b/src/views/Enterprise/Employee/components/EmployeeTable.vue new file mode 100644 index 0000000..b313615 --- /dev/null +++ b/src/views/Enterprise/Employee/components/EmployeeTable.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/src/views/Enterprise/Employee/index.vue b/src/views/Enterprise/Employee/index.vue new file mode 100644 index 0000000..b6e3d47 --- /dev/null +++ b/src/views/Enterprise/Employee/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/Enterprise/Manage/components/CompanyDialog.vue b/src/views/Enterprise/Manage/components/CompanyDialog.vue new file mode 100644 index 0000000..cac4413 --- /dev/null +++ b/src/views/Enterprise/Manage/components/CompanyDialog.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/src/views/Enterprise/Manage/components/CompanyTable.vue b/src/views/Enterprise/Manage/components/CompanyTable.vue new file mode 100644 index 0000000..46643ce --- /dev/null +++ b/src/views/Enterprise/Manage/components/CompanyTable.vue @@ -0,0 +1,300 @@ + + + + + diff --git a/src/views/Enterprise/Manage/index.vue b/src/views/Enterprise/Manage/index.vue new file mode 100644 index 0000000..b5332d2 --- /dev/null +++ b/src/views/Enterprise/Manage/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/ErrorPages/403.vue b/src/views/ErrorPages/403.vue new file mode 100644 index 0000000..7140a61 --- /dev/null +++ b/src/views/ErrorPages/403.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/src/views/ErrorPages/404.vue b/src/views/ErrorPages/404.vue new file mode 100644 index 0000000..8e55a69 --- /dev/null +++ b/src/views/ErrorPages/404.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/src/views/Help/components/HelpDialog.vue b/src/views/Help/components/HelpDialog.vue new file mode 100644 index 0000000..cc8bfae --- /dev/null +++ b/src/views/Help/components/HelpDialog.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/views/Help/components/HelpTable.vue b/src/views/Help/components/HelpTable.vue new file mode 100644 index 0000000..fa419c1 --- /dev/null +++ b/src/views/Help/components/HelpTable.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/views/Help/index.vue b/src/views/Help/index.vue new file mode 100644 index 0000000..e4ad769 --- /dev/null +++ b/src/views/Help/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/History/Mine/index.vue b/src/views/History/Mine/index.vue deleted file mode 100644 index 8bf2edb..0000000 --- a/src/views/History/Mine/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/views/History/Receive/index.vue b/src/views/History/Receive/index.vue deleted file mode 100644 index 1b87da3..0000000 --- a/src/views/History/Receive/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/views/History/components/HistoryTable.vue b/src/views/History/components/HistoryTable.vue new file mode 100644 index 0000000..6cee631 --- /dev/null +++ b/src/views/History/components/HistoryTable.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/views/History/index.vue b/src/views/History/index.vue new file mode 100644 index 0000000..7caf008 --- /dev/null +++ b/src/views/History/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/Home/components/Card.vue b/src/views/Home/components/Card.vue index 5cb2671..94301f7 100644 --- a/src/views/Home/components/Card.vue +++ b/src/views/Home/components/Card.vue @@ -1,22 +1,20 @@ diff --git a/src/views/Home/index.vue b/src/views/Home/index.vue index 94c0560..ae2d4c1 100644 --- a/src/views/Home/index.vue +++ b/src/views/Home/index.vue @@ -1,6 +1,6 @@ - diff --git a/src/views/Login/index.vue b/src/views/Login/index.vue new file mode 100644 index 0000000..c6cc493 --- /dev/null +++ b/src/views/Login/index.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/src/views/Login/register.vue b/src/views/Login/register.vue new file mode 100644 index 0000000..6c87ef9 --- /dev/null +++ b/src/views/Login/register.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/src/views/Manifest/Detail/components/ManifestDetailTable.vue b/src/views/Manifest/Detail/components/ManifestDetailTable.vue new file mode 100644 index 0000000..0828feb --- /dev/null +++ b/src/views/Manifest/Detail/components/ManifestDetailTable.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/src/views/Manifest/Detail/index.vue b/src/views/Manifest/Detail/index.vue index 33bbf3c..785ca6d 100644 --- a/src/views/Manifest/Detail/index.vue +++ b/src/views/Manifest/Detail/index.vue @@ -1,11 +1,17 @@ - + diff --git a/src/views/Manifest/Manage/index.vue b/src/views/Manifest/Manage/index.vue index a2b3542..40cc505 100644 --- a/src/views/Manifest/Manage/index.vue +++ b/src/views/Manifest/Manage/index.vue @@ -1,11 +1,17 @@ - + diff --git a/src/views/Notice/index.vue b/src/views/Notice/index.vue new file mode 100644 index 0000000..58e84fc --- /dev/null +++ b/src/views/Notice/index.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/Notify/index.vue b/src/views/Notify/index.vue deleted file mode 100644 index 958d3a4..0000000 --- a/src/views/Notify/index.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - - - diff --git a/src/views/Resource/index.vue b/src/views/Resource/index.vue deleted file mode 100644 index cd8745f..0000000 --- a/src/views/Resource/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/views/Send/components/BoatInfoSend.vue b/src/views/Send/components/BoatInfoSend.vue new file mode 100644 index 0000000..592afbb --- /dev/null +++ b/src/views/Send/components/BoatInfoSend.vue @@ -0,0 +1,299 @@ + + + + + diff --git a/src/views/Send/components/ManifestDetailSend.vue b/src/views/Send/components/ManifestDetailSend.vue new file mode 100644 index 0000000..1ac4ade --- /dev/null +++ b/src/views/Send/components/ManifestDetailSend.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/src/views/Send/components/ManifestSend.vue b/src/views/Send/components/ManifestSend.vue new file mode 100644 index 0000000..733bfe7 --- /dev/null +++ b/src/views/Send/components/ManifestSend.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/src/views/Send/index.vue b/src/views/Send/index.vue index 5dcff0c..1e01565 100644 --- a/src/views/Send/index.vue +++ b/src/views/Send/index.vue @@ -1,12 +1,84 @@ - + diff --git a/src/views/Subscribe/Mine/index.vue b/src/views/Subscribe/Mine/index.vue deleted file mode 100644 index 8bf2edb..0000000 --- a/src/views/Subscribe/Mine/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/views/Subscribe/Receive/index.vue b/src/views/Subscribe/Receive/index.vue deleted file mode 100644 index 1b87da3..0000000 --- a/src/views/Subscribe/Receive/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/views/Subscription/Publish/components/PublishDialog.vue b/src/views/Subscription/Publish/components/PublishDialog.vue new file mode 100644 index 0000000..2b8beea --- /dev/null +++ b/src/views/Subscription/Publish/components/PublishDialog.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/src/views/Subscription/Publish/components/PublishTable.vue b/src/views/Subscription/Publish/components/PublishTable.vue new file mode 100644 index 0000000..cef5f7c --- /dev/null +++ b/src/views/Subscription/Publish/components/PublishTable.vue @@ -0,0 +1,340 @@ + + + + + diff --git a/src/views/Subscription/Publish/index.vue b/src/views/Subscription/Publish/index.vue new file mode 100644 index 0000000..b7d6265 --- /dev/null +++ b/src/views/Subscription/Publish/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/Subscription/Receive/components/ReceiveTable.vue b/src/views/Subscription/Receive/components/ReceiveTable.vue new file mode 100644 index 0000000..607ff72 --- /dev/null +++ b/src/views/Subscription/Receive/components/ReceiveTable.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/src/views/Subscription/Receive/index.vue b/src/views/Subscription/Receive/index.vue new file mode 100644 index 0000000..d9ef943 --- /dev/null +++ b/src/views/Subscription/Receive/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/System/Roles/components/RoleDrawer.vue b/src/views/System/Roles/components/RoleDrawer.vue new file mode 100644 index 0000000..c83e6ec --- /dev/null +++ b/src/views/System/Roles/components/RoleDrawer.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/views/System/Roles/components/RoleMenuTree.vue b/src/views/System/Roles/components/RoleMenuTree.vue new file mode 100644 index 0000000..2e681c3 --- /dev/null +++ b/src/views/System/Roles/components/RoleMenuTree.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/views/System/Roles/components/RoleTable.vue b/src/views/System/Roles/components/RoleTable.vue new file mode 100644 index 0000000..aa18dcb --- /dev/null +++ b/src/views/System/Roles/components/RoleTable.vue @@ -0,0 +1,319 @@ + + + + + diff --git a/src/views/System/Roles/index.vue b/src/views/System/Roles/index.vue new file mode 100644 index 0000000..02bea73 --- /dev/null +++ b/src/views/System/Roles/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/views/System/Users/components/UserDrawer.vue b/src/views/System/Users/components/UserDrawer.vue new file mode 100644 index 0000000..13cb1ab --- /dev/null +++ b/src/views/System/Users/components/UserDrawer.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/System/Users/components/UserRoleDialog.vue b/src/views/System/Users/components/UserRoleDialog.vue new file mode 100644 index 0000000..5173440 --- /dev/null +++ b/src/views/System/Users/components/UserRoleDialog.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/views/System/Users/components/UserTable.vue b/src/views/System/Users/components/UserTable.vue new file mode 100644 index 0000000..f005fe1 --- /dev/null +++ b/src/views/System/Users/components/UserTable.vue @@ -0,0 +1,245 @@ + + + + + diff --git a/src/views/System/Users/index.vue b/src/views/System/Users/index.vue new file mode 100644 index 0000000..cdb09bd --- /dev/null +++ b/src/views/System/Users/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/tsconfig.json b/tsconfig.json index 67ce0b0..95de483 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,21 +1,40 @@ { "compilerOptions": { - "target": "ESNext", + "target": "ES2020", "useDefineForClassFields": true, "module": "ESNext", - "moduleResolution": "Node", - "strict": true, - "jsx": "preserve", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, - "esModuleInterop": true, - "lib": ["ESNext", "DOM"], - "skipLibCheck": true, + "noEmit": true, + "jsx": "preserve", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "baseUrl": ".", + "types": ["element-plus/global", "node"], "paths": { + "@": ["src"], "@/*": ["src/*"] } }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], - "references": [{ "path": "./tsconfig.node.json" }] + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "build/**/*.ts", + "build/**/*.d.ts", + "vite.config.ts" + ], + "exclude": ["node_modules", "dist", "**/*.js"] } diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index 9d31e2a..0000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "module": "ESNext", - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/vite.config.ts b/vite.config.ts index 590a4ae..0582d9d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,28 +1,95 @@ -import vue from '@vitejs/plugin-vue'; +import dayjs from 'dayjs'; import path from 'path'; -import { defineConfig } from 'vite'; -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; +import { ConfigEnv, defineConfig, loadEnv, UserConfig } from 'vite'; +import { wrapperEnv } from './build/getEnv'; +import { createVitePlugins } from './build/plugins'; +import { createProxy } from './build/proxy'; +import pkg from './package.json'; function resolve(dir: string) { return path.join(__dirname, '.', dir); } +const { dependencies, devDependencies, name, version } = pkg; +const __APP_INFO__ = { + // APP 后台管理信息 + pkg: { dependencies, devDependencies, name, version }, + // 最后编译时间 + lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), +}; + // https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - vue(), - // 使用 svg 图标 - createSvgIconsPlugin({ - // 指定需要缓存的图标文件夹 - iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')], - // 指定symbolId格式 - symbolId: 'icon-[dir]-[name]', - }), - ], - // 配置别名 - resolve: { - alias: { - '@': resolve('src'), // 设置 `@` 指向 `src` 目录 +export default defineConfig((config: ConfigEnv): UserConfig => { + // process.cwd() 方法返回 Node.js 进程的当前工作目录 + const root = process.cwd(); + // mode 返回应用的环境模式 development(开发环境) 或者 production(生产环境) + const { mode } = config; + // loadEnv() 根据 mode 检查 root(项目根路径) 路径下 .env、.env.development 环境文件,输出 NODE_ENV 和 VITE_ 开头的键值队 + const env = loadEnv(mode, process.cwd()); + // 读取并处理所有环境变量配置文件 .env + const viteEnv = wrapperEnv(env); + + return { + base: viteEnv.VITE_PUBLIC_PATH, + root, + + // 加载插件 + plugins: createVitePlugins(viteEnv), + // 配置别名 + resolve: { + alias: { + '@': resolve('src'), + }, }, - }, + css: { + preprocessorOptions: { + scss: { + javascriptEnabled: true, + additionalData: `@use "./src/styles/variables.scss" as *;`, + }, + }, + }, + + // 跨域代理 + server: { + host: true, + // port: viteEnv.VITE_PORT, + open: viteEnv.VITE_OPEN, + cors: true, + proxy: createProxy(viteEnv.VITE_PROXY), + }, + + // 定义全局常量替换方式 + define: { + __APP_INFO__: JSON.stringify(__APP_INFO__), + }, + + esbuild: { + // 使用 esbuild 压缩 剔除 console.log + pure: viteEnv.VITE_DROP_CONSOLE ? ['console.log', 'debugger'] : [], + }, + + build: { + minify: 'esbuild', + // 构建后是否生成 source map 文件(用于线上报错代码报错映射对应代码) + sourcemap: false, + // 指定输出路径(相对于 项目根目录) + outDir: 'dist', + // 只有 minify 为 terser 的时候, 本配置项才能起作用 + // esbuild 打包更快,但是不能去除 console.log,terser打包慢,但能去除 console.log + // minify: 'terser', + // terserOptions: { + // compress: { + // // 防止 Infinity 被压缩成 1/0,这可能会导致 Chrome 上的性能问题 + // keep_infinity: true, + // // 打包是否自动删除 console + // drop_console: viteEnv.VITE_DROP_CONSOLE, + // }, + // }, + // 启用/禁用 gzip 压缩大小报告 - 压缩大型输出文件可能会很慢,因此禁用该功能可能会提高大型项目的构建性能 + reportCompressedSize: false, + // chunk 大小警告的限制(以 kbs 为单位) + chunkSizeWarningLimit: 2000, + }, + }; });