diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 02bb57fb..00000000 --- a/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -# Editor configuration, see http://editorconfig.org - -root = true - -[*] -charset = utf-8 -indent_style = tab -indent_size = 2 -end_of_line = lf -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/.env b/.env index 2f3df55d..f929146c 100644 --- a/.env +++ b/.env @@ -1,20 +1,21 @@ VITE_BASE_URL=/ -VITE_APP_NAME=SoybeanAdmin +VITE_APP_TITLE=SoybeanAdmin -VITE_APP_TITLE=Soybean管理系统 +VITE_APP_DESC=SoybeanAdmin is a fresh and elegant admin template -VITE_APP_DESC=SoybeanAdmin是一个中后台管理系统模版 - -# 权限路由模式: static | dynamic -VITE_AUTH_ROUTE_MODE=static - -# 路由首页(根路由重定向), 用于static模式的权限路由,dynamic模式取决于后端返回的路由首页 -VITE_ROUTE_HOME_PATH=/dashboard/analysis - -# iconify图标作为组件的前缀 +# the prefix of the icon name VITE_ICON_PREFIX=icon -# 本地SVG图标作为组件的前缀, 请注意一定要包含 VITE_ICON_PREFIX -# 格式 {VITE_ICON_PREFIX}-{本地图标集合名称} +# the prefix of the local svg icon component, must include VITE_ICON_PREFIX +# format {VITE_ICON_PREFIX}-{local icon name} VITE_ICON_LOCAL_PREFIX=icon-local + +# auth route mode: static | dynamic +VITE_AUTH_ROUTE_MODE=static + +# static auth route home +VITE_ROUTE_HOME=home + +# default menu icon +VITE_MENU_ICON=mdi:menu \ No newline at end of file diff --git a/.env-config.ts b/.env-config.ts deleted file mode 100644 index 1485bc4b..00000000 --- a/.env-config.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** 请求服务的环境配置 */ -type ServiceEnv = Record; - -/** 不同请求服务的环境配置 */ -const serviceEnv: ServiceEnv = { - dev: { - url: 'http://localhost:8080' - }, - test: { - url: 'http://localhost:8080' - }, - prod: { - url: 'http://localhost:8080' - } -}; - -/** - * 获取当前环境模式下的请求服务的配置 - * @param env 环境 - */ -export function getServiceEnvConfig(env: ImportMetaEnv): ServiceEnvConfigWithProxyPattern { - const { VITE_SERVICE_ENV = 'dev' } = env; - - const config = serviceEnv[VITE_SERVICE_ENV]; - - return { - ...config, - proxyPattern: '/proxy-pattern' - }; -} diff --git a/.env.development b/.env.development index d123065a..e980e585 100644 --- a/.env.development +++ b/.env.development @@ -1,2 +1,2 @@ VITE_HTTP_PROXY=Y -VITE_SOYBEAN_ROUTE_PLUGIN=Y + diff --git a/.env.production b/.env.production index e87a07f3..3b8d6a56 100644 --- a/.env.production +++ b/.env.production @@ -1,10 +1,2 @@ -VITE_VISUALIZER=N - -VITE_COMPRESS=N - -# gzip | brotliCompress | deflate | deflateRaw -VITE_COMPRESS_TYPE=gzip - -VITE_PWA=N - -VITE_PROD_MOCK=Y +VITE_ROUTER_HISTORY_MODE=history +VITE_SOURCE_MAP=N \ No newline at end of file diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 8d668b80..00000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -!.env-config.ts -router-page.d.ts - diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..c75f79aa --- /dev/null +++ b/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "sa/vue", + "settings": { + "import/core-modules": ["uno.css", "~icons/*", "virtual:svg-icons-register"] + } +} diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index a47b0631..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,133 +0,0 @@ -module.exports = { - extends: ['soybeanjs/vue'], - overrides: [ - { - files: ['./scripts/*.ts'], - rules: { - 'no-unused-expressions': 'off' - } - }, - { - files: ['*.vue'], - rules: { - 'no-undef': 'off', // use tsc to check the ts code of the vue - 'vue/no-setup-props-destructure': 'off' // wait to fix this rule - } - } - ], - settings: { - 'import/core-modules': ['uno.css', '~icons/*', 'virtual:svg-icons-register'] - }, - rules: { - 'import/order': [ - 'error', - { - 'newlines-between': 'never', - groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], - pathGroups: [ - { - pattern: 'vue', - group: 'external', - position: 'before' - }, - { - pattern: 'vue-router', - group: 'external', - position: 'before' - }, - { - pattern: 'pinia', - group: 'external', - position: 'before' - }, - { - pattern: 'naive-ui', - group: 'external', - position: 'before' - }, - { - pattern: '@/constants', - group: 'internal', - position: 'before' - }, - { - pattern: '@/config', - group: 'internal', - position: 'before' - }, - { - pattern: '@/settings', - group: 'internal', - position: 'before' - }, - { - pattern: '@/plugins', - group: 'internal', - position: 'before' - }, - { - pattern: '@/layouts', - group: 'internal', - position: 'before' - }, - { - pattern: '@/views', - group: 'internal', - position: 'before' - }, - { - pattern: '@/components', - group: 'internal', - position: 'before' - }, - { - pattern: '@/router', - group: 'internal', - position: 'before' - }, - { - pattern: '@/service', - group: 'internal', - position: 'before' - }, - { - pattern: '@/store', - group: 'internal', - position: 'before' - }, - { - pattern: '@/context', - group: 'internal', - position: 'before' - }, - { - pattern: '@/composables', - group: 'internal', - position: 'before' - }, - { - pattern: '@/hooks', - group: 'internal', - position: 'before' - }, - { - pattern: '@/utils', - group: 'internal', - position: 'before' - }, - { - pattern: '@/assets', - group: 'internal', - position: 'before' - }, - { - pattern: '@/**', - group: 'internal', - position: 'before' - } - ], - pathGroupsExcludedImportTypes: ['vue', 'vue-router', 'pinia', 'naive-ui'] - } - ] - } -}; diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index f8f6bf68..00000000 --- a/.gitattributes +++ /dev/null @@ -1,17 +0,0 @@ -"*.vue" eol=lf -"*.js" eol=lf -"*.ts" eol=lf -"*.jsx" eol=lf -"*.tsx" eol=lf -"*.cjs" eol=lf -"*.cts" eol=lf -"*.mjs" eol=lf -"*.mts" eol=lf -"*.json" eol=lf -"*.html" eol=lf -"*.css" eol=lf -"*.less" eol=lf -"*.scss" eol=lf -"*.sass" eol=lf -"*.styl" eol=lf -"*.md" eol=lf diff --git a/.github/ISSUE_TEMPLATE/bug-report.yaml b/.github/ISSUE_TEMPLATE/bug-report.yaml deleted file mode 100644 index 92b74d5e..00000000 --- a/.github/ISSUE_TEMPLATE/bug-report.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Bug提交 -description: 在使用软件或功能的过程中遇到了错误 -title: '[Bug]: ' -labels: [ "bug?" ] - -body: - - type: markdown - attributes: - value: | - ## 请按照以下要求进行提交 - ### 1. 提交后需要指定标签和截止时间。 - --- - - - type: markdown - attributes: - value: | - ## 环境信息 - 请根据实际使用环境修改以下信息。 - - - type: input - id: env-program-ver - attributes: - label: 软件版本 - validations: - required: true - - - type: dropdown - id: env-vm-ver - attributes: - label: 运行环境 - description: 选择运行软件的系统版本 - options: - - Windows (64) - - Windows (32/x84) - - MacOS - - Linux - - Ubuntu - - CentOS - - ArchLinux - - UNIX (Android) - - 其它(请在下方说明) - validations: - required: true - - - type: dropdown - id: env-vm-arch - attributes: - label: 运行架构 - description: (可选) 选择运行软件的系统架构 - options: - - AMD64 - - x86 - - ARM [32] (别名:AArch32 / ARMv7) - - ARM [64] (别名:AArch64 / ARMv8) - - 其它 - - - type: textarea - id: reproduce-steps - attributes: - label: 重现步骤 - description: | - 我们需要执行哪些操作才能让 bug 出现? - 简洁清晰的重现步骤能够帮助我们更迅速地定位问题所在。 - validations: - required: true - - - type: textarea - id: expected - attributes: - label: 期望的结果是什么? - validations: - required: true - - - type: textarea - id: actual - attributes: - label: 实际的结果是什么? - validations: - required: true - - - type: textarea - id: logging - attributes: - label: 日志记录(可选) - render: golang - - - type: textarea - id: extra-desc - attributes: - label: 补充说明(可选) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index dbce67ad..00000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,11 +0,0 @@ -## Pull Request 详情 - -请根据实际使用情况修改以下信息。 - -## 版本信息 - -## 解决了哪些问题 - -## 是否关闭了某个 Issue - -Closes # diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml deleted file mode 100644 index 450ec865..00000000 --- a/.github/workflows/linter.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: Lint Code - -permissions: - contents: write - -on: - pull_request: - branches: [main] - -jobs: - lint: - name: Lint All Code - runs-on: ubuntu-latest - - steps: - - name: Checkout Code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Lint Code Base - uses: github/super-linter@v4 - env: - VALIDATE_ALL_CODEBASE: false - DEFAULT_BRANCH: main - # To change branch master or main - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - FILTER_REGEX_EXCLUDE: (docs|.github) - VALIDATE_MARKDOWN: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 300102e7..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Release - -permissions: - contents: write - -on: - push: - tags: - - "v*" - -jobs: - release: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - uses: actions/setup-node@v3 - with: - node-version: 16.x - - - run: npx githublogen - env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.gitignore b/.gitignore index aca8680b..fdd159a9 100644 --- a/.gitignore +++ b/.gitignore @@ -11,10 +11,8 @@ node_modules .DS_Store dist dist-ssr -dist.zip coverage *.local -stats.html /cypress/videos/ /cypress/screenshots/ @@ -22,8 +20,8 @@ stats.html # Editor directories and files .vscode/* !.vscode/extensions.json -!.vscode/launch.json !.vscode/settings.json +!.vscode/launch.json .idea *.suo *.ntvs* @@ -31,7 +29,7 @@ stats.html *.sln *.sw? -/src/typings/components.d.ts package-lock.json yarn.lock -pnpm-lock.yaml + +.VSCodeCounter diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 94dc4320..7980cb0f 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -8,11 +8,9 @@ "formulahendry.auto-close-tag", "formulahendry.auto-rename-tag", "kisstkondoros.vscode-gutter-preview", - "lokalise.i18n-ally", "mariusalchimavicius.json-to-ts", "mhutchie.git-graph", "sdras.vue-vscode-snippets", - "streetsidesoftware.code-spell-checker", "vue.volar", "vue.vscode-typescript-vue-plugin" ] diff --git a/.vscode/launch.json b/.vscode/launch.json index 0d22284f..b1cb49a7 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,7 @@ "type": "chrome", "request": "launch", "name": "Vue debugger", - "url": "http://localhost:3200", + "url": "http://localhost:9527", "webRoot": "${workspaceFolder}" }, { diff --git a/.vscode/settings.json b/.vscode/settings.json index 75b9ec18..a7a8d86b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,51 +1,46 @@ { - "cSpell.ignorePaths": [ - "package.json", - "package-lock.json", - "yarn.lock", - "pnpm-lock.yaml", - "node_modules", - "vscode-extension", - ".git/objects", - ".vscode", - ".vscode-insiders", - "CHANGELOG.md", - "dist", - "public", - "styles" - ], "cSpell.words": [ - "AMAP", - "antdesign", - "antv", - "apacheecharts", - "areaspline", - "bmapgl", + "apifox", + "clickoutside", + "clsx", "colord", - "echarts", + "consola", + "Destructurable", + "EDITMSG", + "espree", + "execa", "gitee", "gridicons", + "heroicons", + "HEXA", + "hexcode", "iconify", - "jsapi", - "naiveui", - "Popconfirm", - "Posva", - "Shenzhen", - "Sider", + "INDEXEDDB", + "jiti", + "kolorist", + "Laba", + "localforage", + "LOCALSTORAGE", + "majesticons", + "MEDZ", + "nocheck", + "nprogress", + "ofetch", + "pickr", + "preflights", + "sider", + "simonwep", + "simplebar", + "tada", "tauri", + "Uncapitalize", "unocss", "unplugin", - "vditor", - "VERCEL", - "Vite", - "vitejs", - "vuedraggable", + "VITE", + "vitepress", "vueuse", - "wangeditor", - "wechat", - "xgplayer", - "yanbowe", - "ភាសាខ្មែរ" + "WEBSQL", + "wechat" ], "editor.codeActionsOnSave": { "source.fixAll.eslint": true @@ -56,22 +51,20 @@ "strings": true }, "editor.tabSize": 2, - "eslint.validate": ["json"], "files.associations": { "*.env.*": "dotenv", "*.svg": "html" }, "files.eol": "\n", - "i18n-ally.displayLanguage": "zh-CN", + "i18n-ally.displayLanguage": "zh-cn", "i18n-ally.enabledParsers": ["ts"], "i18n-ally.enabledFrameworks": ["vue"], "i18n-ally.editor.preferEditor": true, "i18n-ally.keystyle": "nested", "i18n-ally.localesPaths": ["src/locales/lang"], - "material-icon-theme.activeIconPack": "vue", - "[html][css][less][scss][sass][markdown][yaml][yml][jsonc]": { + "unocss.root": ["./"], + "[html][css][less][scss][sass][markdown][yaml][yml][json][jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true - }, - "prettier": {} + } } diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 9769b629..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,1275 +0,0 @@ -# Changelog - - -## [v0.10.4](https://github.com/honghuangdc/soybean-admin/compare/v0.10.3...v0.10.4) (23-09-20) - -###    🚀 Features - -- **auth**: - - 防止多次刷新token  -  by @eAliwei [(0eaa3)](https://github.com/honghuangdc/soybean-admin/commit/0eaa327) -- **hooks**: - - add useHookTable  -  by @honghuangdc [(b3ae7)](https://github.com/honghuangdc/soybean-admin/commit/b3ae760) -- **projects**: - - add websocket demo  -  by @honghuangdc [(af53e)](https://github.com/honghuangdc/soybean-admin/commit/af53ec7) - - add switch for customize darkmode transition  -  by @honghuangdc [(6e0cc)](https://github.com/honghuangdc/soybean-admin/commit/6e0cce4) - - new i18n function $t & login page and setting drawer config i18n  -  by @honghuangdc [(854d0)](https://github.com/honghuangdc/soybean-admin/commit/854d0bc) - - add plugin-web-update-notification  -  by @honghuangdc [(c9164)](https://github.com/honghuangdc/soybean-admin/commit/c91644b) - -###    🐞 Bug Fixes - -- **components**: - - 修复动态路由主页404  -  by @lapislazulisch [(3ae19)](https://github.com/honghuangdc/soybean-admin/commit/3ae1952) - - 修复动态路由home页404  -  by @lapislazulisch [(ad6ac)](https://github.com/honghuangdc/soybean-admin/commit/ad6ac72) -- **projects**: - - fix set tab title (fixed #256)  -  by @honghuangdc in https://github.com/honghuangdc/soybean-admin/issues/256 [(13f6c)](https://github.com/honghuangdc/soybean-admin/commit/13f6cd8) - - correct the lang file name & add recommend vscode plugin i18n-ally  -  by @honghuangdc [(864ec)](https://github.com/honghuangdc/soybean-admin/commit/864ec47) - - fix reload button animate  -  by @honghuangdc [(41f23)](https://github.com/honghuangdc/soybean-admin/commit/41f2338) -- **styles**: - - 用户管理页面布局自适应屏幕高度 (fixed #253)  -  by @honghuangdc in https://github.com/honghuangdc/soybean-admin/issues/253 [(0f7b9)](https://github.com/honghuangdc/soybean-admin/commit/0f7b9d5) - -###    🔥 Performance - -- **hooks**: - - perf use-table  -  by @honghuangdc [(33180)](https://github.com/honghuangdc/soybean-admin/commit/3318041) - - perf useHookTable  -  by @honghuangdc [(809fa)](https://github.com/honghuangdc/soybean-admin/commit/809fa85) -- **projects**: - - add type declaration for document startViewTransition  -  by @honghuangdc [(d3ebe)](https://github.com/honghuangdc/soybean-admin/commit/d3ebe95) - -###    💅 Refactors - -- **projects**: - - 生产环境缓存主题变更为sessionStorage  -  by @honghuangdc [(c46a5)](https://github.com/honghuangdc/soybean-admin/commit/c46a592) - - add reCacheRoute method  -  by @honghuangdc [(f92ee)](https://github.com/honghuangdc/soybean-admin/commit/f92ee77) - - update soybean domain  -  by @honghuangdc [(073fd)](https://github.com/honghuangdc/soybean-admin/commit/073fd16) - -###    📖 Documentation - -- **projects**: - - update README.md logo  -  by @honghuangdc [(19141)](https://github.com/honghuangdc/soybean-admin/commit/19141a7) - - update Docker deployment method  -  by @snowords [(00da0)](https://github.com/honghuangdc/soybean-admin/commit/00da000) - - update git hooks init command  -  by @snowords [(7f35e)](https://github.com/honghuangdc/soybean-admin/commit/7f35e87) - - update README.md  -  by @eltociear [(93ed5)](https://github.com/honghuangdc/soybean-admin/commit/93ed5ad) - -###    🏡 Chore - -- **deps**: - - update deps  -  by @honghuangdc [(bba68)](https://github.com/honghuangdc/soybean-admin/commit/bba68bf) - - update deps  -  by @honghuangdc [(0e6d2)](https://github.com/honghuangdc/soybean-admin/commit/0e6d289) - - update deps  -  by @honghuangdc [(135ce)](https://github.com/honghuangdc/soybean-admin/commit/135ce77) - - update deps  -  by @honghuangdc [(44ba3)](https://github.com/honghuangdc/soybean-admin/commit/44ba327) - - update deps  -  by @honghuangdc [(9296e)](https://github.com/honghuangdc/soybean-admin/commit/9296e69) - - update deps  -  by @honghuangdc [(751de)](https://github.com/honghuangdc/soybean-admin/commit/751ded4) - - update deps  -  by @honghuangdc [(305d9)](https://github.com/honghuangdc/soybean-admin/commit/305d956) -- **projects**: - - update deps and fix swiper  -  by @honghuangdc [(9d105)](https://github.com/honghuangdc/soybean-admin/commit/9d1051b) - - update package.json  -  by @honghuangdc [(d7aea)](https://github.com/honghuangdc/soybean-admin/commit/d7aea9d) - - update deps & fix eslint code  -  by @honghuangdc [(08e0c)](https://github.com/honghuangdc/soybean-admin/commit/08e0cf5) - - update pnpm-lock.yaml  -  by @honghuangdc [(94644)](https://github.com/honghuangdc/soybean-admin/commit/9464473) - - update VSCode setting  -  by @honghuangdc [(56c77)](https://github.com/honghuangdc/soybean-admin/commit/56c770c) - - correct the word spell  -  by @honghuangdc [(458e3)](https://github.com/honghuangdc/soybean-admin/commit/458e387) - - correct word spell & eslint fix code  -  by @honghuangdc [(cffc3)](https://github.com/honghuangdc/soybean-admin/commit/cffc30a) - - When tab is switched, keep the page without refreshing  -  by @linjiangl [(83f25)](https://github.com/honghuangdc/soybean-admin/commit/83f2514) - -###    🎨 Styles - -- **projects**: - - unify card border radius, 16px to 8px  -  by @honghuangdc [(cbda4)](https://github.com/honghuangdc/soybean-admin/commit/cbda4a3) - - update default theme color  -  by @honghuangdc [(43ac2)](https://github.com/honghuangdc/soybean-admin/commit/43ac23f) - - prettier format code  -  by @honghuangdc [(24cf1)](https://github.com/honghuangdc/soybean-admin/commit/24cf1d9) - -###    ❤️ Contributors - -[![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![eltociear](https://github.com/eltociear.png?size=48)](https://github.com/eltociear)  [![linjiangl](https://github.com/linjiangl.png?size=48)](https://github.com/linjiangl)  [![lapislazulisch](https://github.com/lapislazulisch.png?size=48)](https://github.com/lapislazulisch)  [![snowords](https://github.com/snowords.png?size=48)](https://github.com/snowords)  [![eAliwei](https://github.com/eAliwei.png?size=48)](https://github.com/eAliwei)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   - -## [v0.10.3](https://github.com/honghuangdc/soybean-admin/compare/v0.10.2...v0.10.3) (23-06-15) - -###    🐞 Bug Fixes - -- **projects**: fix userRoleOptions  -  by @soybeanjs [(2ca2b)](https://github.com/honghuangdc/soybean-admin/commit/2ca2b76) -- **styles**: fix toggle-lang bg  -  by @soybeanjs [(47309)](https://github.com/honghuangdc/soybean-admin/commit/473095b) - -###    🔥 Performance - -- **projects**: - - remove useless code  -  by @soybeanjs [(eb8e4)](https://github.com/honghuangdc/soybean-admin/commit/eb8e49e) - - use transformObjectToOption to generate option of object labels  -  by @soybeanjs [(da611)](https://github.com/honghuangdc/soybean-admin/commit/da611fb) - -###    📖 Documentation - -- **projects**: - - CHANGELOG.md  -  by @soybeanjs [(ff5bf)](https://github.com/honghuangdc/soybean-admin/commit/ff5bf62) - - generate full CHANGELOG.md  -  by @soybeanjs [(055d4)](https://github.com/honghuangdc/soybean-admin/commit/055d4cc) - - update README.md  -  by @soybeanjs [(3c7e1)](https://github.com/honghuangdc/soybean-admin/commit/3c7e1cf) - - update README.md  -  by @soybeanjs [(1681c)](https://github.com/honghuangdc/soybean-admin/commit/1681c34) - - update README.md picture url  -  by @soybeanjs [(4eefc)](https://github.com/honghuangdc/soybean-admin/commit/4eefc95) - - update README.md  -  by @soybeanjs [(8f24a)](https://github.com/honghuangdc/soybean-admin/commit/8f24a94) - - update CHANGELOG.md by regenerate changelog  -  by @soybeanjs [(2a9b7)](https://github.com/honghuangdc/soybean-admin/commit/2a9b725) - -###    🏡 Chore - -- **deps**: - - update deps  -  by @soybeanjs [(f9d47)](https://github.com/honghuangdc/soybean-admin/commit/f9d47c0) - - update deps  -  by @soybeanjs [(47ab0)](https://github.com/honghuangdc/soybean-admin/commit/47ab018) - - decrease vite-plugin-page-route  -  by @soybeanjs [(882f2)](https://github.com/honghuangdc/soybean-admin/commit/882f281) - - update deps  -  by @soybeanjs [(e6abf)](https://github.com/honghuangdc/soybean-admin/commit/e6abf93) -- **projects**: - - remove bumpp & add release script  -  by @soybeanjs [(a3dfe)](https://github.com/honghuangdc/soybean-admin/commit/a3dfe61) - - update @soybeanjs/cli and generate total changelog  -  by @soybeanjs [(58591)](https://github.com/honghuangdc/soybean-admin/commit/58591f6) - - update deps & update unocss deprecated api exclude  -  by @soybeanjs [(0907d)](https://github.com/honghuangdc/soybean-admin/commit/0907d38) - - update deps & update package.json  -  by @soybeanjs [(0b2f6)](https://github.com/honghuangdc/soybean-admin/commit/0b2f68a) - - add vite-plugin-vue-devtools  -  by @soybeanjs [(c1bee)](https://github.com/honghuangdc/soybean-admin/commit/c1bee40) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - -## [v0.10.2](https://github.com/honghuangdc/soybean-admin/compare/v0.10.1...v0.10.2) (2023-06-01) - -###    🐞 Bug Fixes - -- **components**: fix mix-menu layout when the locale is English (fixed 241)  -  by @soybeanjs [(5c085)](https://github.com/honghuangdc/soybean-admin/commit/5c085a1) - -###    📖 Documentation - -- **projects**: - - CHANGELOG.md  -  by @soybeanjs [(bb2ea)](https://github.com/honghuangdc/soybean-admin/commit/bb2eab6) - - update README.md: update example image url [更新示例图片的链接]  -  by @soybeanjs [(4f512)](https://github.com/honghuangdc/soybean-admin/commit/4f51263) - - fix README.md: example image link  -  by @soybeanjs [(56ea8)](https://github.com/honghuangdc/soybean-admin/commit/56ea893) - -###    🏡 Chore - -- release v0.10.2  -  by @soybeanjs [(1f6d0)](https://github.com/honghuangdc/soybean-admin/commit/1f6d079) -- **projects**: update deps and use soy lint-staged replace lint-staged  -  by @soybeanjs [(9a238)](https://github.com/honghuangdc/soybean-admin/commit/9a23817) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - -## [v0.10.1](https://github.com/honghuangdc/soybean-admin/compare/v0.10.0...v0.10.1) (2023-05-31) - -###    📖 Documentation - -- **projects**: - - CHANGELOG.md  -  by @soybeanjs [(a2521)](https://github.com/honghuangdc/soybean-admin/commit/a252138) - - update README.md  -  by @soybeanjs [(b5839)](https://github.com/honghuangdc/soybean-admin/commit/b5839ea) - -###    🏡 Chore - -- release v0.10.1  -  by @soybeanjs [(44e4c)](https://github.com/honghuangdc/soybean-admin/commit/44e4c04) -- **projects**: add switch for pageRoute plugin [添加自动生成路由的插件的开关]  -  by @soybeanjs [(780ac)](https://github.com/honghuangdc/soybean-admin/commit/780ac75) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - -## [v0.10.0](https://github.com/honghuangdc/soybean-admin/compare/v0.9.9...v0.10.0) (2023-05-31) - -###    🚀 Features - -- **components**: - - Add tree related component instances  -  by **small_happy** [(d203a)](https://github.com/honghuangdc/soybean-admin/commit/d203a35) - - Add routing data related to tree components and page display optimization  -  by **small_happy** [(a0f55)](https://github.com/honghuangdc/soybean-admin/commit/a0f55ac) -- **projects**: - - 返回顶部功能适配新布局  -  by @yanbowe [(54e2c)](https://github.com/honghuangdc/soybean-admin/commit/54e2cb5) - - 增加i18n支持翻译菜单,tab,title  -  by **cc** [(3d48a)](https://github.com/honghuangdc/soybean-admin/commit/3d48aa8) - - add menu translate [翻译菜单]  -  by @soybeanjs [(f6828)](https://github.com/honghuangdc/soybean-admin/commit/f68285f) - - 增加主题切换过渡效果  -  by **cc** [(8da88)](https://github.com/honghuangdc/soybean-admin/commit/8da8843) - - support mobile layout [支持移动端布局]  -  by @soybeanjs [(f2b51)](https://github.com/honghuangdc/soybean-admin/commit/f2b518e) - -###    🐞 Bug Fixes - -- **projects**: - - fix router guide [修复路由跳转异常] fixed #216  -  by @soybeanjs in https://github.com/honghuangdc/soybean-admin/issues/216 [(59578)](https://github.com/honghuangdc/soybean-admin/commit/5957833) - - fix better-mock usage [修复better-mock用法]  -  by @soybeanjs [(c5764)](https://github.com/honghuangdc/soybean-admin/commit/c57640a) - - tsconfig missing isolatedModules  -  by @kirklin [(ab49a)](https://github.com/honghuangdc/soybean-admin/commit/ab49afd) - - fix mockjs [修复mockjs]  -  by @soybeanjs [(9b19f)](https://github.com/honghuangdc/soybean-admin/commit/9b19f96) - - add prod mockjs switch [添加生产模式的mockjs的开关]  -  by @soybeanjs [(9f563)](https://github.com/honghuangdc/soybean-admin/commit/9f5638f) - - 修复面包屑导航下拉菜单语言显示问题  -  by **cc** [(ee8fa)](https://github.com/honghuangdc/soybean-admin/commit/ee8fa04) - - hide the drawer when it is initial mobile mode [初始化时为移动端布局则隐藏侧边栏] fixed #238  -  by @soybeanjs in https://github.com/honghuangdc/soybean-admin/issues/238 [(0abde)](https://github.com/honghuangdc/soybean-admin/commit/0abde46) - -###    🔥 Performance - -- **projects**: - - complete dynamic route translate [补充动态路由的翻译]  -  by @soybeanjs [(7b746)](https://github.com/honghuangdc/soybean-admin/commit/7b746fa) - - move changing document title by locale to global event of composables & add appLoading unmount  -  by @soybeanjs [(08e19)](https://github.com/honghuangdc/soybean-admin/commit/08e194e) - -###    💅 Refactors - -- **projects**: - - update useTable  -  by @soybeanjs [(211ae)](https://github.com/honghuangdc/soybean-admin/commit/211ae1f) - - remove page examples: tree [去除tree相关示例页面]  -  by @soybeanjs [(f3090)](https://github.com/honghuangdc/soybean-admin/commit/f309003) - - use better-mock replace mockjs [用better-mock替换mockjs]  -  by @soybeanjs [(9d3c7)](https://github.com/honghuangdc/soybean-admin/commit/9d3c732) - - upgrade vue3.3, official support defineOptions  -  by @kirklin [(86a37)](https://github.com/honghuangdc/soybean-admin/commit/86a370f) - -###    📖 Documentation - -- **projects**: - - add qq to README.md [文档添加QQ群]  -  by @soybeanjs [(f74a6)](https://github.com/honghuangdc/soybean-admin/commit/f74a642) - - update README.md [更新README.md]  -  by @soybeanjs [(39709)](https://github.com/honghuangdc/soybean-admin/commit/397092c) - - update README.md [更新README.md]  -  by @soybeanjs [(5a4f8)](https://github.com/honghuangdc/soybean-admin/commit/5a4f842) - - update README.md [更新README.md]  -  by @soybeanjs [(a765d)](https://github.com/honghuangdc/soybean-admin/commit/a765da6) - - update README.md [更新README.md]  -  by @soybeanjs [(a989b)](https://github.com/honghuangdc/soybean-admin/commit/a989b44) - - 优化README.md  -  by @greper [(6ea75)](https://github.com/honghuangdc/soybean-admin/commit/6ea755f) - - readme.md 二次开发的项目内容换行  -  by @greper [(f3a17)](https://github.com/honghuangdc/soybean-admin/commit/f3a1707) - - update CHANGELOG.md  -  by @soybeanjs [(5f6ca)](https://github.com/honghuangdc/soybean-admin/commit/5f6caab) - -###    📦 Build - -- **deps**: - - update deps  -  by @soybeanjs [(db629)](https://github.com/honghuangdc/soybean-admin/commit/db62959) - - update deps [升级依赖]  -  by @soybeanjs [(f2e82)](https://github.com/honghuangdc/soybean-admin/commit/f2e82da) - - update deps and remove vite-plugin-html [升级依赖,去除vite-plugin-html]  -  by @soybeanjs [(eaf36)](https://github.com/honghuangdc/soybean-admin/commit/eaf3678) - - update deps [升级依赖]  -  by @soybeanjs [(bae17)](https://github.com/honghuangdc/soybean-admin/commit/bae1767) - - update deps [升级依赖]  -  by @soybeanjs [(c2642)](https://github.com/honghuangdc/soybean-admin/commit/c264216) - - update deps [升级依赖]  -  by @soybeanjs [(40f85)](https://github.com/honghuangdc/soybean-admin/commit/40f8587) -- **projects**: - - remove old layout,tab package [去除旧的布局和页签依赖]  -  by @soybeanjs [(42e6d)](https://github.com/honghuangdc/soybean-admin/commit/42e6de3) - - update deps and fix type error [升级依赖并修复类型问题]  -  by @soybeanjs [(34f02)](https://github.com/honghuangdc/soybean-admin/commit/34f023c) - - update deps and fix style [升级依赖&修复代码格式]  -  by @soybeanjs [(c1c43)](https://github.com/honghuangdc/soybean-admin/commit/c1c4335) - -###    🏡 Chore - -- release v0.10.0  -  by @soybeanjs [(270a0)](https://github.com/honghuangdc/soybean-admin/commit/270a055) -- **deps**: update deps  -  by @soybeanjs [(cebbe)](https://github.com/honghuangdc/soybean-admin/commit/cebbef6) -- **projects**: remove useless packages, update lint-staged config, add githublogen  -  by @soybeanjs [(5aaa3)](https://github.com/honghuangdc/soybean-admin/commit/5aaa318) - -###    🎨 Styles - -- **projects**: per style [完善样式]  -  by @soybeanjs [(209ef)](https://github.com/honghuangdc/soybean-admin/commit/209ef3d) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![greper](https://github.com/greper.png?size=48)](https://github.com/greper)  [![kirklin](https://github.com/kirklin.png?size=48)](https://github.com/kirklin)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)   -[cc](mailto:cc@qq.com), [small_happy](mailto:5304122+small_happy@user.noreply.gitee.com),  - -## [v0.9.9](https://github.com/honghuangdc/soybean-admin/compare/v0.9.8...v0.9.9) (2023-03-13) - -###    🚀 Features - -- **hooks**: - - add useNaiveTable  -  by @soybeanjs [(cc13f)](https://github.com/honghuangdc/soybean-admin/commit/cc13fcc) -- **projects**: - - custom unocss colors support opacity  -  by @soybeanjs [(488e6)](https://github.com/honghuangdc/soybean-admin/commit/488e6e3) - - new layout,tab and add update theme settings  -  by @soybeanjs [(912c3)](https://github.com/honghuangdc/soybean-admin/commit/912c353) - -###    🐞 Bug Fixes - -- **components**: - - 页面跳转被拦截, 则会出现 tab 页签与页面不一致的问题  -  by @taisha [(bd5dd)](https://github.com/honghuangdc/soybean-admin/commit/bd5dd2c) - - 修复iconSelect选择器点击事件失效  -  by @yanbowe [(7e505)](https://github.com/honghuangdc/soybean-admin/commit/7e505f9) - - refresh cached routes  -  by @taisha [(b0f98)](https://github.com/honghuangdc/soybean-admin/commit/b0f98e4) -- **projects**: - - fix eslint svg cause incorrect icon render  -  by @soybeanjs [(0b5af)](https://github.com/honghuangdc/soybean-admin/commit/0b5afda) - - sortRoutes recursively  -  by @sunhao1256 [(91889)](https://github.com/honghuangdc/soybean-admin/commit/9188941) - - not only `/login` claim dynamic path scenario , but also others , eg:/user/1  -  by @sunhao1256 [(60598)](https://github.com/honghuangdc/soybean-admin/commit/6059891) - - the length of routes children list should greater than 0  -  by @Shadowsight9 [(e1afc)](https://github.com/honghuangdc/soybean-admin/commit/e1afc10) - - fix pwa logo  -  by @soybeanjs [(bf2f6)](https://github.com/honghuangdc/soybean-admin/commit/bf2f617) - - fix github bug-report  -  by @soybeanjs [(f73e3)](https://github.com/honghuangdc/soybean-admin/commit/f73e3f6) -- **utils**: - - make AxiosRequestConfig optional for request.handleDelete()  -  by @guuuuo [(4a6fe)](https://github.com/honghuangdc/soybean-admin/commit/4a6fec8) - -###    💅 Refactors - -- **projects**: - - all file and folder use kebab-case  -  by @soybeanjs [(cea60)](https://github.com/honghuangdc/soybean-admin/commit/cea600f) - - update service and proxy config  -  by @soybeanjs [(8debf)](https://github.com/honghuangdc/soybean-admin/commit/8debfe7) - - remove enum  -  by @soybeanjs [(21d52)](https://github.com/honghuangdc/soybean-admin/commit/21d5214) - - rename union key  -  by @soybeanjs [(e2b32)](https://github.com/honghuangdc/soybean-admin/commit/e2b320a) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @soybeanjs [(cf8c7)](https://github.com/honghuangdc/soybean-admin/commit/cf8c7cb) - - update README.md  -  by @soybeanjs [(1ef1b)](https://github.com/honghuangdc/soybean-admin/commit/1ef1b6b) - - update README.md  -  by @soybeanjs [(aaef0)](https://github.com/honghuangdc/soybean-admin/commit/aaef0be) - -###    📦 Build - -- **deps**: - - update deps  -  by @soybeanjs [(61998)](https://github.com/honghuangdc/soybean-admin/commit/6199888) -- **projects**: - - update deps and fix project config  -  by @soybeanjs [(da521)](https://github.com/honghuangdc/soybean-admin/commit/da521b3) - - perf logo  -  by @soybeanjs [(a8a6e)](https://github.com/honghuangdc/soybean-admin/commit/a8a6ed9) - - update vscode config  -  by @soybeanjs [(608d7)](https://github.com/honghuangdc/soybean-admin/commit/608d7fb) - - update unocss config  -  by @soybeanjs [(3503d)](https://github.com/honghuangdc/soybean-admin/commit/3503dff) - - update deps, add prettier format command  -  by @soybeanjs [(36e5f)](https://github.com/honghuangdc/soybean-admin/commit/36e5fea) - -###    🏡 Chore - -- **projects**: - - add github action  -  by @lixin59 [(f355a)](https://github.com/honghuangdc/soybean-admin/commit/f355a69) - - 修复issue模板格式问题  -  by @lixin59 [(d8bab)](https://github.com/honghuangdc/soybean-admin/commit/d8baba5) -- **release**: - - 0.9.9  -  by @soybeanjs [(c0066)](https://github.com/honghuangdc/soybean-admin/commit/c0066b2) - -###    🎨 Styles - -- **projects**: format yaml  -  by @soybeanjs [(fb46d)](https://github.com/honghuangdc/soybean-admin/commit/fb46d7e) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![guuuuo](https://github.com/guuuuo.png?size=48)](https://github.com/guuuuo)  [![lixin59](https://github.com/lixin59.png?size=48)](https://github.com/lixin59)  [![taisha](https://github.com/taisha.png?size=48)](https://github.com/taisha)  [![Shadowsight9](https://github.com/Shadowsight9.png?size=48)](https://github.com/Shadowsight9)  [![sunhao1256](https://github.com/sunhao1256.png?size=48)](https://github.com/sunhao1256)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)   - -## [v0.9.8](https://github.com/honghuangdc/soybean-admin/compare/v0.9.7...v0.9.8) (2023-01-15) - -###    🚀 Features - -- setting 页面新增 是否显示footer的开关  -  by @zuihou [(d064f)](https://github.com/honghuangdc/soybean-admin/commit/d064f62) -- 新增 affix 属性,用于将其固定在tab卡  -  by @zuihou [(e772f)](https://github.com/honghuangdc/soybean-admin/commit/e772ff0) -- **projects**: - - add compress script [添加压缩命令]  -  by @soybeanjs [(be6d4)](https://github.com/honghuangdc/soybean-admin/commit/be6d431) - - add script about generating png logo from [添加根据svg生成png图标的命令]  -  by @soybeanjs [(70aee)](https://github.com/honghuangdc/soybean-admin/commit/70aeefe) - - add generate logo script  -  by @soybeanjs [(25daa)](https://github.com/honghuangdc/soybean-admin/commit/25daa23) - - add new route plugin @soybeanjs/vite-plugin-vue-page-route [集成新的路由插件]  -  by @soybeanjs [(3131e)](https://github.com/honghuangdc/soybean-admin/commit/3131e00) - -###    🐞 Bug Fixes - -- remove height limit h-360px  -  by @codearhat [(b5c57)](https://github.com/honghuangdc/soybean-admin/commit/b5c570a) -- set password attributes  -  by @codearhat [(a9a37)](https://github.com/honghuangdc/soybean-admin/commit/a9a3703) -- **components**: - - 修复路由在path中包含重复路单词径菜单时,被激活会错误展开  -  by @shabby2333 [(264da)](https://github.com/honghuangdc/soybean-admin/commit/264da00) -- **projects**: - - fix vite-pwa plugin config  -  by @soybeanjs [(94098)](https://github.com/honghuangdc/soybean-admin/commit/94098d0) - - add router-page.d.ts to git [将router-page.d.ts添加git提交]  -  by @soybeanjs [(7a580)](https://github.com/honghuangdc/soybean-admin/commit/7a58035) - - fix router when the dynamic routes api was failed [修复当动态路由接口失败后路由异常问题]  -  by @soybeanjs [(f2b58)](https://github.com/honghuangdc/soybean-admin/commit/f2b580f) - - fix login success message [修复登录成功的消息提示]  -  by @soybeanjs [(81039)](https://github.com/honghuangdc/soybean-admin/commit/810398a) - - 修复tabs在static路由模式下可以关闭首页  -  by @yanbowe [(7211a)](https://github.com/honghuangdc/soybean-admin/commit/7211a17) - - 修复动态路由模式下路由不排序的问题  -  by @HnyLi [(58b27)](https://github.com/honghuangdc/soybean-admin/commit/58b27c9) - -###    💅 Refactors - -- **czg**: - - update cz-git,czg breaking changes  -  by @yanbowe [(fcb7a)](https://github.com/honghuangdc/soybean-admin/commit/fcb7ad9) -- **hooks**: - - 重构hook函数取消监听方式  -  by @yanbowe [(fd948)](https://github.com/honghuangdc/soybean-admin/commit/fd94886) -- **projects**: - - format code style [调整代码格式]  -  by @soybeanjs [(a9d58)](https://github.com/honghuangdc/soybean-admin/commit/a9d58f8) - - import cz-git, czg replace @soybeanjs/cli [引入cz-git、czg替换@soybeanjs/cli]  -  by @soybeanjs [(1bdd8)](https://github.com/honghuangdc/soybean-admin/commit/1bdd81a) - - perfect scrollbar style [完善滚动条]  -  by @soybeanjs [(1a02c)](https://github.com/honghuangdc/soybean-admin/commit/1a02cab) - - refactor app init loading [重构系统初始化的加载]  -  by @soybeanjs [(57bfe)](https://github.com/honghuangdc/soybean-admin/commit/57bfe27) - - new storage system [新的本地数据存储系统]  -  by @soybeanjs [(97191)](https://github.com/honghuangdc/soybean-admin/commit/9719159) - - add simple-git-hooks replace husky  -  by @soybeanjs [(9110d)](https://github.com/honghuangdc/soybean-admin/commit/9110d87) - -###    📖 Documentation - -- **projects**: - - update README  -  by @soybeanjs [(828a2)](https://github.com/honghuangdc/soybean-admin/commit/828a2f5) - - update README  -  by @soybeanjs [(a3562)](https://github.com/honghuangdc/soybean-admin/commit/a3562d9) - -###    📦 Build - -- **deps**: - - update deps  -  by @soybeanjs [(84567)](https://github.com/honghuangdc/soybean-admin/commit/8456750) - - update deps  -  by @soybeanjs [(fcc65)](https://github.com/honghuangdc/soybean-admin/commit/fcc65c3) - - update deps  -  by @soybeanjs [(c097b)](https://github.com/honghuangdc/soybean-admin/commit/c097b56) -- **projects**: - - update plugin config  -  by @soybeanjs [(6a344)](https://github.com/honghuangdc/soybean-admin/commit/6a344ff) - - update deps and perfect the details [升级依赖,完善细节]  -  by @soybeanjs [(61a43)](https://github.com/honghuangdc/soybean-admin/commit/61a43b8) - - update deps and update config  -  by @soybeanjs [(b08c3)](https://github.com/honghuangdc/soybean-admin/commit/b08c389) - - update lint-staged config  -  by @soybeanjs [(0882c)](https://github.com/honghuangdc/soybean-admin/commit/0882c25) - - add VSCode debug config file  -  by @soybeanjs [(0c126)](https://github.com/honghuangdc/soybean-admin/commit/0c12665) - - update deps  -  by @soybeanjs [(f7181)](https://github.com/honghuangdc/soybean-admin/commit/f71812d) - -###    🏡 Chore - -- **release**: 0.9.8  -  by @soybeanjs [(34ffd)](https://github.com/honghuangdc/soybean-admin/commit/34ffd9c) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![shabby2333](https://github.com/shabby2333.png?size=48)](https://github.com/shabby2333)  [![HnyLi](https://github.com/HnyLi.png?size=48)](https://github.com/HnyLi)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)  [![zuihou](https://github.com/zuihou.png?size=48)](https://github.com/zuihou)  [![codearhat](https://github.com/codearhat.png?size=48)](https://github.com/codearhat)  [![RockerHX](https://github.com/RockerHX.png?size=48)](https://github.com/RockerHX)   - -## [v0.9.7](https://github.com/honghuangdc/soybean-admin/compare/v0.9.6...v0.9.7) (2022-11-08) - -###    🚀 Features - -- **projects**: - - 增加系统消息组件  -  by @yanbowe [(afa01)](https://github.com/honghuangdc/soybean-admin/commit/afa0134) - - 系统消息组件代码优化  -  by @yanbowe [(95183)](https://github.com/honghuangdc/soybean-admin/commit/9518372) - - 增加返回顶部功能  -  by @yanbowe [(894b0)](https://github.com/honghuangdc/soybean-admin/commit/894b0f1) - - 添加生产的主题配置缓存  -  by @soybeanjs [(718c3)](https://github.com/honghuangdc/soybean-admin/commit/718c362) - - 添加provide、inject上下文示例  -  by @soybeanjs [(a4447)](https://github.com/honghuangdc/soybean-admin/commit/a444731) - - 添加组件名称,调整vue文件里面的类型声明位置  -  by @soybeanjs [(f64bc)](https://github.com/honghuangdc/soybean-admin/commit/f64bc91) - - 适配移动端,修复Tab关闭图标的bug  -  by @soybeanjs [(296b1)](https://github.com/honghuangdc/soybean-admin/commit/296b154) - - 添加系统管理的页面  -  by @soybeanjs [(c33b5)](https://github.com/honghuangdc/soybean-admin/commit/c33b5eb) - - useNaiveTable函数:类型部分  -  by @soybeanjs [(02992)](https://github.com/honghuangdc/soybean-admin/commit/02992dc) - - 添加请求适配adapter层应用的示例页面  -  by @soybeanjs [(8d11a)](https://github.com/honghuangdc/soybean-admin/commit/8d11a6a) - - 实现用户管理页面  -  by @soybeanjs [(472f9)](https://github.com/honghuangdc/soybean-admin/commit/472f93b) - - 全局搜索菜单及消息通知适配移动端  -  by @yanbowe [(97e2f)](https://github.com/honghuangdc/soybean-admin/commit/97e2ffd) - - support constant route without login status[支持未登录状态下访问自定义的固定路由]  -  by @soybeanjs [(a5391)](https://github.com/honghuangdc/soybean-admin/commit/a539112) - - add pinia setup syntax example: setup-store[添加setup syntax的pinia示例setup-store]  -  by @soybeanjs [(82c4b)](https://github.com/honghuangdc/soybean-admin/commit/82c4b09) - - add constant route page without login status[添加未登录可访问的固定路由示例页面]  -  by @soybeanjs [(78efd)](https://github.com/honghuangdc/soybean-admin/commit/78efd77) - - refactor icon system, unify icon usage [重构图标系统,统一图标用法]  -  by @soybeanjs [(811f8)](https://github.com/honghuangdc/soybean-admin/commit/811f820) - - import i18n [引入i18n]  -  by @soybeanjs [(b632b)](https://github.com/honghuangdc/soybean-admin/commit/b632b7f) - - new router system [新的路由系统]  -  by @soybeanjs [(c7b6a)](https://github.com/honghuangdc/soybean-admin/commit/c7b6a3f) -- **tabs**: - - 多页签增加关闭所有  -  by @yanbowe [(8237a)](https://github.com/honghuangdc/soybean-admin/commit/8237adb) - -###    🐞 Bug Fixes - -- **deps**: - - decrease @types/node version to fix TS type error [降低@types/node版本修复TS的类型错误]  -  by @soybeanjs [(149d2)](https://github.com/honghuangdc/soybean-admin/commit/149d22a) -- **projects**: - - 修复tab不显示路由首页的问题  -  by @soybeanjs [(a792b)](https://github.com/honghuangdc/soybean-admin/commit/a792bb5) - - 修复多个后端服务时的本地代理  -  by @soybeanjs [(2aba5)](https://github.com/honghuangdc/soybean-admin/commit/2aba58c) - - 修复图标的TS类型  -  by @soybeanjs [(dbd67)](https://github.com/honghuangdc/soybean-admin/commit/dbd6760) - - 修复import.meta.env的TS类型  -  by @soybeanjs [(19942)](https://github.com/honghuangdc/soybean-admin/commit/1994262) - - 修复构建后mockjs对xhr的影响问题  -  by @soybeanjs [(77572)](https://github.com/honghuangdc/soybean-admin/commit/7757285) - - 修复TS类型问题  -  by @soybeanjs [(16dce)](https://github.com/honghuangdc/soybean-admin/commit/16dce9a) - - 修复eslint规则  -  by @soybeanjs [(d7f5b)](https://github.com/honghuangdc/soybean-admin/commit/d7f5bf3) - - add iconify json  -  by @soybeanjs [(8a1ec)](https://github.com/honghuangdc/soybean-admin/commit/8a1ec93) -- **svg-icon**: - - 自定义图标在Dropdown组件下hover状态无法显示图标  -  by @yanbowe [(0523f)](https://github.com/honghuangdc/soybean-admin/commit/0523f08) -- **utils**: - - 修复iconifyRender  -  by @soybeanjs [(c37d0)](https://github.com/honghuangdc/soybean-admin/commit/c37d0ac) - -###    🔥 Performance - -- **components**: - - 添加更多主题颜色设置模态窗的层级  -  by @xiaotao2018 [(ee7eb)](https://github.com/honghuangdc/soybean-admin/commit/ee7eb3a) - - 添加更多主题颜色设置模态窗的层级,z-index为int  -  by @xiaotao2018 [(e2d65)](https://github.com/honghuangdc/soybean-admin/commit/e2d6554) - -###    💅 Refactors - -- **projects**: - - 代码优化  -  by @yanbowe [(41147)](https://github.com/honghuangdc/soybean-admin/commit/41147b3) - - 添加subscribeAppStore  -  by @soybeanjs [(aa2f7)](https://github.com/honghuangdc/soybean-admin/commit/aa2f78a) - - 代码优化  -  by @soybeanjs [(b60db)](https://github.com/honghuangdc/soybean-admin/commit/b60db89) - - 代码优化  -  by @soybeanjs [(61436)](https://github.com/honghuangdc/soybean-admin/commit/6143605) - - 请求适配器函数范型重构、优化请求相关的命名  -  by @soybeanjs [(7f9c9)](https://github.com/honghuangdc/soybean-admin/commit/7f9c98a) - - 更新搜索弹窗的图标  -  by @soybeanjs [(ed9cd)](https://github.com/honghuangdc/soybean-admin/commit/ed9cd6c) - - 抽离格式化相关依赖配置  -  by @soybeanjs [(f4d37)](https://github.com/honghuangdc/soybean-admin/commit/f4d37cf) - - 代码优化  -  by @soybeanjs [(49f95)](https://github.com/honghuangdc/soybean-admin/commit/49f95c4) - - cancel autoinstall @iconify-json [取消@iconify-json自动安装]  -  by @soybeanjs [(c29b8)](https://github.com/honghuangdc/soybean-admin/commit/c29b887) - - refactor page: user-management [重构用户管理页面]  -  by @soybeanjs [(468b4)](https://github.com/honghuangdc/soybean-admin/commit/468b4bb) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @soybeanjs [(e2727)](https://github.com/honghuangdc/soybean-admin/commit/e2727e6) - - revert docs  -  by @soybeanjs [(2c562)](https://github.com/honghuangdc/soybean-admin/commit/2c56233) - -###    📦 Build - -- **deps**: - - update deps  -  by @soybeanjs [(69e39)](https://github.com/honghuangdc/soybean-admin/commit/69e39c1) - - update deps  -  by @soybeanjs [(ea1a3)](https://github.com/honghuangdc/soybean-admin/commit/ea1a336) - - update deps  -  by @soybeanjs [(73fa3)](https://github.com/honghuangdc/soybean-admin/commit/73fa3d1) - - update deps  -  by @soybeanjs [(973ab)](https://github.com/honghuangdc/soybean-admin/commit/973ab14) - - update deps  -  by @soybeanjs [(75000)](https://github.com/honghuangdc/soybean-admin/commit/750000e) - - update deps  -  by @soybeanjs [(8dcfb)](https://github.com/honghuangdc/soybean-admin/commit/8dcfbb2) - - update deps  -  by @soybeanjs [(1523c)](https://github.com/honghuangdc/soybean-admin/commit/1523c7b) - - update deps  -  by @soybeanjs [(da407)](https://github.com/honghuangdc/soybean-admin/commit/da407b6) - - update deps  -  by @soybeanjs [(cec0f)](https://github.com/honghuangdc/soybean-admin/commit/cec0f25) - - update deps  -  by @soybeanjs [(d9cfe)](https://github.com/honghuangdc/soybean-admin/commit/d9cfeab) - - update deps  -  by @soybeanjs [(dd113)](https://github.com/honghuangdc/soybean-admin/commit/dd11324) - - update deps  -  by @soybeanjs [(d0823)](https://github.com/honghuangdc/soybean-admin/commit/d0823b0) - - update deps  -  by @soybeanjs [(94ff7)](https://github.com/honghuangdc/soybean-admin/commit/94ff787) - - update deps  -  by @soybeanjs [(b32bc)](https://github.com/honghuangdc/soybean-admin/commit/b32bca4) - - update deps  -  by @soybeanjs [(f6b61)](https://github.com/honghuangdc/soybean-admin/commit/f6b6141) - - update deps  -  by @soybeanjs [(0f0cd)](https://github.com/honghuangdc/soybean-admin/commit/0f0cd0b) - - 更新@soybeanjs/eslint-config  -  by @soybeanjs [(36f06)](https://github.com/honghuangdc/soybean-admin/commit/36f06bc) - - update deps  -  by @soybeanjs [(d9324)](https://github.com/honghuangdc/soybean-admin/commit/d9324f0) - - update deps  -  by @soybeanjs [(1ad92)](https://github.com/honghuangdc/soybean-admin/commit/1ad92a2) - - 升级依赖  -  by @soybeanjs [(7240b)](https://github.com/honghuangdc/soybean-admin/commit/7240be8) - - update deps  -  by @soybeanjs [(c5ba6)](https://github.com/honghuangdc/soybean-admin/commit/c5ba631) - - update deps  -  by @soybeanjs [(3e0cc)](https://github.com/honghuangdc/soybean-admin/commit/3e0cc8c) - - update deps  -  by @soybeanjs [(21b6f)](https://github.com/honghuangdc/soybean-admin/commit/21b6fb6) - - update deps  -  by @soybeanjs [(d823e)](https://github.com/honghuangdc/soybean-admin/commit/d823ee5) - - unplugin-vue-define-options替换为unplugin-vue-macros  -  by @soybeanjs [(22c90)](https://github.com/honghuangdc/soybean-admin/commit/22c9025) - - update deps  -  by @soybeanjs [(7dd7c)](https://github.com/honghuangdc/soybean-admin/commit/7dd7c71) - - update deps  -  by @soybeanjs [(fe8ca)](https://github.com/honghuangdc/soybean-admin/commit/fe8cab3) - - unplugin-icon autoinstall @iconify-json [unplugin-icon自动安装@iconify-json]  -  by @soybeanjs [(c045e)](https://github.com/honghuangdc/soybean-admin/commit/c045e3f) - - update deps [升级依赖]  -  by @soybeanjs [(331b1)](https://github.com/honghuangdc/soybean-admin/commit/331b14e) - - update deps  -  by @soybeanjs [(88e53)](https://github.com/honghuangdc/soybean-admin/commit/88e535f) - - update deps  -  by @soybeanjs [(89985)](https://github.com/honghuangdc/soybean-admin/commit/8998581) - - update deps  -  by @soybeanjs [(65ac6)](https://github.com/honghuangdc/soybean-admin/commit/65ac69e) - - update deps  -  by @soybeanjs [(abd02)](https://github.com/honghuangdc/soybean-admin/commit/abd02d1) - - update deps  -  by @soybeanjs [(d6b15)](https://github.com/honghuangdc/soybean-admin/commit/d6b1530) - - update deps  -  by @soybeanjs [(8e801)](https://github.com/honghuangdc/soybean-admin/commit/8e801dd) - - update deps  -  by @soybeanjs [(41b3b)](https://github.com/honghuangdc/soybean-admin/commit/41b3bcb) - - update deps  -  by @soybeanjs [(1f3e6)](https://github.com/honghuangdc/soybean-admin/commit/1f3e6e4) - - update deps  -  by @soybeanjs [(74772)](https://github.com/honghuangdc/soybean-admin/commit/74772a1) -- **projects**: - - 代码优化  -  by @soybeanjs [(5c1b0)](https://github.com/honghuangdc/soybean-admin/commit/5c1b086) - - update tsconfig  -  by @soybeanjs [(9ce58)](https://github.com/honghuangdc/soybean-admin/commit/9ce5807) - - update vscode settings  -  by @soybeanjs [(3fe4e)](https://github.com/honghuangdc/soybean-admin/commit/3fe4e92) - - 添加.gitattributes  -  by @soybeanjs [(896e6)](https://github.com/honghuangdc/soybean-admin/commit/896e6f2) - - 代码优化  -  by @soybeanjs [(6a9a3)](https://github.com/honghuangdc/soybean-admin/commit/6a9a362) - - 升级依赖,添加对json的eslint检测及格式化  -  by @soybeanjs [(711a4)](https://github.com/honghuangdc/soybean-admin/commit/711a4ae) - - update deps and README.md  -  by @soybeanjs [(35aee)](https://github.com/honghuangdc/soybean-admin/commit/35aeedf) - - 升级依赖、vite配置optimizeDeps  -  by @soybeanjs [(ee434)](https://github.com/honghuangdc/soybean-admin/commit/ee434b4) - - 去除prettier,已集成进@soybeanjs/eslint-config  -  by @soybeanjs [(182da)](https://github.com/honghuangdc/soybean-admin/commit/182dac0) - - update eslint  -  by @soybeanjs [(907cf)](https://github.com/honghuangdc/soybean-admin/commit/907cf44) - - 引入pwa插件,更新配置  -  by @soybeanjs [(695ec)](https://github.com/honghuangdc/soybean-admin/commit/695ec7e) - - 更新依赖、调整页面  -  by @soybeanjs [(40ecc)](https://github.com/honghuangdc/soybean-admin/commit/40ecc32) - - 引入vite-plugin-progress  -  by @soybeanjs [(44ab0)](https://github.com/honghuangdc/soybean-admin/commit/44ab077) - - 升级依赖、修复T标签右键菜单连续显示问题  -  by @soybeanjs [(639c4)](https://github.com/honghuangdc/soybean-admin/commit/639c445) - - 引入TS高级类型库  -  by @soybeanjs [(71a75)](https://github.com/honghuangdc/soybean-admin/commit/71a753f) - - 更换eslint依赖为eslint-config-soybeanjs-vue  -  by @soybeanjs [(07325)](https://github.com/honghuangdc/soybean-admin/commit/07325a4) - - 升级依赖,降低naive-ui版本修复打包问题  -  by @soybeanjs [(f408e)](https://github.com/honghuangdc/soybean-admin/commit/f408ea0) - - 升级依赖,修复TS类型  -  by @soybeanjs [(73ce5)](https://github.com/honghuangdc/soybean-admin/commit/73ce53a) - - 引入@unocss/vite替换unocss,精简体积  -  by @soybeanjs [(3540b)](https://github.com/honghuangdc/soybean-admin/commit/3540b75) - - update deps, update logos  -  by @soybeanjs [(22c05)](https://github.com/honghuangdc/soybean-admin/commit/22c0567) - - add constant page content  -  by @soybeanjs [(13d0c)](https://github.com/honghuangdc/soybean-admin/commit/13d0c41) - - add tauri scripts, change tauri icon, fix mockjs [添加tauri相关的命令,变更tauri图标,修复mockjs]  -  by @soybeanjs [(1b45b)](https://github.com/honghuangdc/soybean-admin/commit/1b45b71) - - use @soybeanjs/cli replace commitizen  -  by @soybeanjs [(428d4)](https://github.com/honghuangdc/soybean-admin/commit/428d41b) - - use pnpm patch replace @milahu/patch-package  -  by @soybeanjs [(9455a)](https://github.com/honghuangdc/soybean-admin/commit/9455ad9) - - remove useless file: commitlint.config.js  -  by @soybeanjs [(67736)](https://github.com/honghuangdc/soybean-admin/commit/6773659) - - move tauri to branch tauri  -  by @soybeanjs [(6c14b)](https://github.com/honghuangdc/soybean-admin/commit/6c14bfe) - - update deps and update config  -  by @soybeanjs [(7d699)](https://github.com/honghuangdc/soybean-admin/commit/7d69992) - - new router branch  -  by @soybeanjs [(288d5)](https://github.com/honghuangdc/soybean-admin/commit/288d586) - - add vite plugin @soybeanjs/router-page  -  by @soybeanjs [(40c1e)](https://github.com/honghuangdc/soybean-admin/commit/40c1e13) - -###    🏡 Chore - -- **other**: - - release v0.9.7  -  by @soybeanjs [(cc00c)](https://github.com/honghuangdc/soybean-admin/commit/cc00c8f) -- **projects**: - - 更新.cz-config  -  by @soybeanjs [(b18c4)](https://github.com/honghuangdc/soybean-admin/commit/b18c49e) - - 更新eslint配置  -  by @soybeanjs [(872bb)](https://github.com/honghuangdc/soybean-admin/commit/872bb84) - -###    🤖 CI - -- add docker build  -  by @zq-xu [(af740)](https://github.com/honghuangdc/soybean-admin/commit/af74046) -- change docker image name  -  by @zq-xu [(6fbde)](https://github.com/honghuangdc/soybean-admin/commit/6fbde1e) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![hhstore](https://github.com/hhstore.png?size=48)](https://github.com/hhstore)  [![zq-xu](https://github.com/zq-xu.png?size=48)](https://github.com/zq-xu)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)  [![xiaotao2018](https://github.com/xiaotao2018.png?size=48)](https://github.com/xiaotao2018)   - -## [v0.9.6](https://github.com/honghuangdc/soybean-admin/compare/v0.9.5...v0.9.6) (2022-06-16) - -###    🚀 Features - -- **projects**: - - 新增Antv G2图表示例  -  by @soybeanjs [(2d64a)](https://github.com/honghuangdc/soybean-admin/commit/2d64a2e) - - 上下结构,菜单支持横向滚动  -  by @suiyingsky [(80805)](https://github.com/honghuangdc/soybean-admin/commit/808051b) - - 增加设置当前Tab页签名称功能  -  by @yanbowe [(48721)](https://github.com/honghuangdc/soybean-admin/commit/487213b) - - 本地svg动态渲染图标  -  by @soybeanjs [(c3c97)](https://github.com/honghuangdc/soybean-admin/commit/c3c975e) - -###    🐞 Bug Fixes - -- **projects**: - - 修复顶部菜单的位置失效问题  -  by @honghuangdc [(4ee0d)](https://github.com/honghuangdc/soybean-admin/commit/4ee0d94) - - 设置tab标题导致meta属性丢失  -  by @yanbowe [(efcfa)](https://github.com/honghuangdc/soybean-admin/commit/efcfa57) - -###    💅 Refactors - -- **projects**: - - 优化菜单支持横向滚动  -  by @soybeanjs [(8f3e8)](https://github.com/honghuangdc/soybean-admin/commit/8f3e855) - - 代码优化  -  by @honghuangdc [(5fa82)](https://github.com/honghuangdc/soybean-admin/commit/5fa822f) - -###    📖 Documentation - -- **projects**: update README.md  -  by @soybeanjs [(0c70a)](https://github.com/honghuangdc/soybean-admin/commit/0c70a9e) - -###    📦 Build - -- **deps**: - - update deps  -  by @soybeanjs [(906ae)](https://github.com/honghuangdc/soybean-admin/commit/906aed5) - - update deps  -  by @soybeanjs [(9917b)](https://github.com/honghuangdc/soybean-admin/commit/9917b5e) - - update deps  -  by @soybeanjs [(83301)](https://github.com/honghuangdc/soybean-admin/commit/833018a) -- **projects**: - - update deps, update config  -  by @honghuangdc [(8e6e7)](https://github.com/honghuangdc/soybean-admin/commit/8e6e787) - -###    🏡 Chore - -- **release**: 0.9.6  -  by @soybeanjs [(65c21)](https://github.com/honghuangdc/soybean-admin/commit/65c2181) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![suiyingsky](https://github.com/suiyingsky.png?size=48)](https://github.com/suiyingsky)   - -## [v0.9.5](https://github.com/honghuangdc/soybean-admin/compare/v0.9.4...v0.9.5) (2022-06-07) - -###    🚀 Features - -- **projects**: - - 添加自动跟随系统主题设置  -  by @toolvcn [(ba07b)](https://github.com/honghuangdc/soybean-admin/commit/ba07b69) - - 引入echarts替换antvG2plot  -  by @soybeanjs [(e7ad0)](https://github.com/honghuangdc/soybean-admin/commit/e7ad086) - - 添加百度地图、升级依赖  -  by @soybeanjs [(39854)](https://github.com/honghuangdc/soybean-admin/commit/39854a4) - - 添加插件页面:图表  -  by @soybeanjs [(0a46e)](https://github.com/honghuangdc/soybean-admin/commit/0a46ea0) - - 添加antv g2图表示例  -  by @soybeanjs [(44b02)](https://github.com/honghuangdc/soybean-admin/commit/44b022a) - - 补充更多的ECharts示例  -  by @soybeanjs [(c7762)](https://github.com/honghuangdc/soybean-admin/commit/c776249) - - 动态路由根路由重定向只需取决于后端返回的路由首页  -  by @soybeanjs [(434ab)](https://github.com/honghuangdc/soybean-admin/commit/434ab1c) - - 支持同一路由根据不同query和hash同时显示不同Tab  -  by @soybeanjs [(41226)](https://github.com/honghuangdc/soybean-admin/commit/4122685) -- **route**: - - 路由meta新增activeMenu属性  -  by @yanbowe [(ebd16)](https://github.com/honghuangdc/soybean-admin/commit/ebd16a4) - -###    🐞 Bug Fixes - -- **projects**: - - 修复插件不存在的错误提示  -  by @ThinkDevelop [(71652)](https://github.com/honghuangdc/soybean-admin/commit/7165282) - - 修复权限切换路由数据未更新的问题  -  by @soybeanjs [(60f91)](https://github.com/honghuangdc/soybean-admin/commit/60f9125) - - 修复页面切换时导致的溢出滚动条  -  by @soybeanjs [(e0233)](https://github.com/honghuangdc/soybean-admin/commit/e023306) - - 修复@antv/g2生产环境报错  -  by @soybeanjs [(4558c)](https://github.com/honghuangdc/soybean-admin/commit/4558c24) -- **route**: - - 当为左侧混合菜单时activeMenu无效情况  -  by @yanbowe [(3e4f9)](https://github.com/honghuangdc/soybean-admin/commit/3e4f9e2) - -###    💅 Refactors - -- **layouts**: - - layout/header 反转色样式补充  -  by **元家怿** [(01d0b)](https://github.com/honghuangdc/soybean-admin/commit/01d0bcb) -- **projects**: - - 代码优化  -  by @honghuangdc [(14c14)](https://github.com/honghuangdc/soybean-admin/commit/14c145e) - - 代码优化  -  by @soybeanjs [(3590b)](https://github.com/honghuangdc/soybean-admin/commit/3590b65) - - 代码优化  -  by @soybeanjs [(a1c7e)](https://github.com/honghuangdc/soybean-admin/commit/a1c7e10) - - 代码优化  -  by @soybeanjs [(44ab5)](https://github.com/honghuangdc/soybean-admin/commit/44ab55d) - - 代码优化  -  by @soybeanjs [(095c4)](https://github.com/honghuangdc/soybean-admin/commit/095c432) - - 代码优化  -  by @soybeanjs [(d28b9)](https://github.com/honghuangdc/soybean-admin/commit/d28b903) - - 代码优化  -  by @soybeanjs [(4c2f5)](https://github.com/honghuangdc/soybean-admin/commit/4c2f535) - - 代码优化  -  by @soybeanjs [(d9ac7)](https://github.com/honghuangdc/soybean-admin/commit/d9ac7e4) -- **styles**: - - 代码格式  -  by @soybeanjs [(8f6d6)](https://github.com/honghuangdc/soybean-admin/commit/8f6d6ce) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @soybeanjs [(3d8be)](https://github.com/honghuangdc/soybean-admin/commit/3d8befa) - - update README.md  -  by @honghuangdc [(21e63)](https://github.com/honghuangdc/soybean-admin/commit/21e6399) - - update README.md  -  by @honghuangdc [(0811f)](https://github.com/honghuangdc/soybean-admin/commit/0811ffa) - - update README.md  -  by @soybeanjs [(84cb0)](https://github.com/honghuangdc/soybean-admin/commit/84cb07b) - - update README.md  -  by @soybeanjs [(4b80a)](https://github.com/honghuangdc/soybean-admin/commit/4b80a66) - - update docs  -  by @honghuangdc [(e9656)](https://github.com/honghuangdc/soybean-admin/commit/e9656c6) - - update README.md  -  by @honghuangdc [(ae99e)](https://github.com/honghuangdc/soybean-admin/commit/ae99e57) - -###    📦 Build - -- **deps**: - - update deps  -  by @honghuangdc [(518f7)](https://github.com/honghuangdc/soybean-admin/commit/518f7ee) - - update deps  -  by @soybeanjs [(92b84)](https://github.com/honghuangdc/soybean-admin/commit/92b8406) - - update deps  -  by @soybeanjs [(50d7c)](https://github.com/honghuangdc/soybean-admin/commit/50d7ccd) - - update deps  -  by @soybeanjs [(3f822)](https://github.com/honghuangdc/soybean-admin/commit/3f822a7) - - update deps  -  by @soybeanjs [(02809)](https://github.com/honghuangdc/soybean-admin/commit/028096e) - - update deps  -  by @soybeanjs [(be45d)](https://github.com/honghuangdc/soybean-admin/commit/be45d83) - - update deps  -  by @soybeanjs [(6a5a3)](https://github.com/honghuangdc/soybean-admin/commit/6a5a357) - - 依赖升级  -  by @honghuangdc [(e3c4a)](https://github.com/honghuangdc/soybean-admin/commit/e3c4a6e) -- **other**: - - update cz config  -  by @honghuangdc [(07baa)](https://github.com/honghuangdc/soybean-admin/commit/07baac7) -- **projects**: - - update config  -  by @soybeanjs [(a0c40)](https://github.com/honghuangdc/soybean-admin/commit/a0c405d) - - 代码优化  -  by @soybeanjs [(de09f)](https://github.com/honghuangdc/soybean-admin/commit/de09f82) - - 配置优化  -  by @honghuangdc [(fd787)](https://github.com/honghuangdc/soybean-admin/commit/fd78791) - - 配置更改  -  by @honghuangdc [(c8717)](https://github.com/honghuangdc/soybean-admin/commit/c8717c2) - -###    🏡 Chore - -- **deps**: - - update deps  -  by @soybeanjs [(a70e4)](https://github.com/honghuangdc/soybean-admin/commit/a70e416) - - update deps  -  by @soybeanjs [(7487a)](https://github.com/honghuangdc/soybean-admin/commit/7487ab7) -- **release**: - - 0.9.5  -  by @soybeanjs [(08d83)](https://github.com/honghuangdc/soybean-admin/commit/08d83ec) - -###    🎨 Styles - -- **GlobalBreadcrumb**: 代码格式fix  -  by @tclyjy [(0243b)](https://github.com/honghuangdc/soybean-admin/commit/0243b27) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)  [![ThinkDevelop](https://github.com/ThinkDevelop.png?size=48)](https://github.com/ThinkDevelop)  [![tclyjy](https://github.com/tclyjy.png?size=48)](https://github.com/tclyjy)  [![toolvcn](https://github.com/toolvcn.png?size=48)](https://github.com/toolvcn)   -[元家怿](mailto:jiayi.yuan@lkcoffee.com),  - -## [v0.9.4](https://github.com/honghuangdc/soybean-admin/compare/main-0428...v0.9.4) (2022-04-29) - -###    🚀 Features - -- **layouts**: - - 添加侧边栏/头部的反转模式来增加对比度  -  by **元家怿** [(861c8)](https://github.com/honghuangdc/soybean-admin/commit/861c8b9) -- **projects**: - - 引入unocss替换windicss  -  by @honghuangdc [(c9d3e)](https://github.com/honghuangdc/soybean-admin/commit/c9d3e5a) - - HTML lang 修改为 zh-cmn-Hans  -  by @toolvcn [(b9c5c)](https://github.com/honghuangdc/soybean-admin/commit/b9c5c34) - - 权限完善及权限示例页面  -  by @soybeanjs [(80744)](https://github.com/honghuangdc/soybean-admin/commit/807448a) - - mock添加权限过滤  -  by @soybeanjs [(7f435)](https://github.com/honghuangdc/soybean-admin/commit/7f4350a) - -###    🐞 Bug Fixes - -- **projects**: - - 添加.npmrc修复无法获取自动引入的全局组件声明类型  -  by @honghuangdc [(e8488)](https://github.com/honghuangdc/soybean-admin/commit/e8488e4) - - 修复样式  -  by @honghuangdc [(e8999)](https://github.com/honghuangdc/soybean-admin/commit/e899914) - -###    💅 Refactors - -- **projects**: - - mock权限相关数据优化  -  by @soybeanjs [(41e46)](https://github.com/honghuangdc/soybean-admin/commit/41e46a5) - - 代码优化  -  by @soybeanjs [(251b5)](https://github.com/honghuangdc/soybean-admin/commit/251b5b9) - - 代码优化  -  by @honghuangdc [(a7824)](https://github.com/honghuangdc/soybean-admin/commit/a782461) - - 细节优化  -  by @soybeanjs [(c275f)](https://github.com/honghuangdc/soybean-admin/commit/c275f26) - - layout和tab组件依赖名称变更、样式修复  -  by @soybeanjs [(de5fb)](https://github.com/honghuangdc/soybean-admin/commit/de5fb84) - - merge branch unocss to main  -  by @soybeanjs [(69d51)](https://github.com/honghuangdc/soybean-admin/commit/69d5131) - - 动态路由权限完善  -  by @soybeanjs [(55ddc)](https://github.com/honghuangdc/soybean-admin/commit/55ddc9c) - -###    📖 Documentation - -- **projects**: update README.md  -  by @soybeanjs [(d5c75)](https://github.com/honghuangdc/soybean-admin/commit/d5c7511) - -###    📦 Build - -- **deps**: update deps  -  by @honghuangdc [(5c75e)](https://github.com/honghuangdc/soybean-admin/commit/5c75e9d) -- **projects**: 细节调整  -  by @soybeanjs [(401f0)](https://github.com/honghuangdc/soybean-admin/commit/401f0c7) - -###    🏡 Chore - -- **release**: 0.9.4  -  by @soybeanjs [(97c92)](https://github.com/honghuangdc/soybean-admin/commit/97c9262) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![toolvcn](https://github.com/toolvcn.png?size=48)](https://github.com/toolvcn)   -[元家怿](mailto:jiayi.yuan@luckincoffee.com),  - -## [v0.10.2](https://github.com/honghuangdc/soybean-admin/compare/v0.9.3...main-0428) (23-06-07) - -###    🚀 Features - -- **layouts**: - - 添加侧边栏/头部的反转模式来增加对比度  -  by **元家怿** [(3c8dd)](https://github.com/honghuangdc/soybean-admin/commit/3c8dd77) -- **projects**: - - 新增静态路由  -  by @soybeanjs [(ca2df)](https://github.com/honghuangdc/soybean-admin/commit/ca2dfa6) - - 插件方式按需引入naiveUI  -  by @soybeanjs [(6bed9)](https://github.com/honghuangdc/soybean-admin/commit/6bed9ea) - - 添加请求适配器的请求示例  -  by @soybeanjs [(bed42)](https://github.com/honghuangdc/soybean-admin/commit/bed4292) - - 登录页面适配移动端  -  by @soybeanjs [(ec077)](https://github.com/honghuangdc/soybean-admin/commit/ec0776e) - - 登录页背景图片位置适配移动端  -  by @soybeanjs [(24010)](https://github.com/honghuangdc/soybean-admin/commit/24010d0) - - HTML lang 修改为 zh-cmn-Hans  -  by @toolvcn [(dbeb5)](https://github.com/honghuangdc/soybean-admin/commit/dbeb595) - -###    🐞 Bug Fixes - -- **projects**: - - 修复vite alias  -  by @soybeanjs [(cd7ca)](https://github.com/honghuangdc/soybean-admin/commit/cd7ca8f) - - 修复路由守卫的动态路由逻辑  -  by @soybeanjs [(e6c26)](https://github.com/honghuangdc/soybean-admin/commit/e6c26fc) - - 全局搜索弹窗弹出时动画闪屏问题  -  by @yanbowe [(bb1bb)](https://github.com/honghuangdc/soybean-admin/commit/bb1bbf2) - - 去除从环境文件引入端口号导致的错误  -  by @soybeanjs [(2d6d1)](https://github.com/honghuangdc/soybean-admin/commit/2d6d179) - - 修复在新版vite下环境变量获取不到的问题  -  by @soybeanjs [(3fb13)](https://github.com/honghuangdc/soybean-admin/commit/3fb13ca) - - 修复获取vite环境变量的方式  -  by @soybeanjs [(46e1a)](https://github.com/honghuangdc/soybean-admin/commit/46e1ae7) - - 添加获取路由组件文件未找到时的错误提示  -  by @honghuangdc [(219f8)](https://github.com/honghuangdc/soybean-admin/commit/219f87f) - -###    🔥 Performance - -- refresh-koken命名  -  by @southliu [(17155)](https://github.com/honghuangdc/soybean-admin/commit/1715504) - -###    💅 Refactors - -- **projects**: - - lint命令修改  -  by @soybeanjs [(20911)](https://github.com/honghuangdc/soybean-admin/commit/20911dd) - - 代码优化  -  by @soybeanjs [(e8b53)](https://github.com/honghuangdc/soybean-admin/commit/e8b534b) - - 去除在pinia的getters的函数调用副作用,用watch代替  -  by @soybeanjs [(b35ed)](https://github.com/honghuangdc/soybean-admin/commit/b35ed89) - - 代码优化  -  by @honghuangdc [(5e276)](https://github.com/honghuangdc/soybean-admin/commit/5e27642) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @honghuangdc [(21645)](https://github.com/honghuangdc/soybean-admin/commit/2164553) - - update README.md  -  by @honghuangdc [(9a90f)](https://github.com/honghuangdc/soybean-admin/commit/9a90f18) - - update README.md  -  by @honghuangdc [(60a55)](https://github.com/honghuangdc/soybean-admin/commit/60a55a7) - -###    📦 Build - -- **deps**: update deps  -  by @soybeanjs [(cecce)](https://github.com/honghuangdc/soybean-admin/commit/cecce83) -- **projects**: vite.config代码优化  -  by @soybeanjs [(ca707)](https://github.com/honghuangdc/soybean-admin/commit/ca707a4) - -###    🏡 Chore - -- **deps**: update deps  -  by @soybeanjs [(4eb46)](https://github.com/honghuangdc/soybean-admin/commit/4eb46ea) - -###    🎨 Styles - -- **projects**: update prettier config  -  by @honghuangdc [(df56a)](https://github.com/honghuangdc/soybean-admin/commit/df56abe) - -###    ❤️ Contributors - -[![toolvcn](https://github.com/toolvcn.png?size=48)](https://github.com/toolvcn)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)  [![southliu](https://github.com/southliu.png?size=48)](https://github.com/southliu)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   -[元家怿](mailto:jiayi.yuan@luckincoffee.com),  - -## [v0.9.3](https://github.com/honghuangdc/soybean-admin/compare/old-version...v0.9.3) (2022-03-12) - -###    🚀 Features - -- **components**: - - svgIcon,添加type,调整size方案  -  by @Lsq128 [(ce4e0)](https://github.com/honghuangdc/soybean-admin/commit/ce4e039) -- **projects**: - - 路由页面跳转权限完成  -  by @soybeanjs [(0d2a5)](https://github.com/honghuangdc/soybean-admin/commit/0d2a562) - - 集成naiveUI主题配置,将css vars添加至html  -  by @soybeanjs [(2c196)](https://github.com/honghuangdc/soybean-admin/commit/2c19684) - - 初始化加载效果:应用主题颜色  -  by @honghuangdc [(035fa)](https://github.com/honghuangdc/soybean-admin/commit/035fa11) - - 登录页面开始迁移  -  by @honghuangdc [(f5a36)](https://github.com/honghuangdc/soybean-admin/commit/f5a36a0) - - 迁移登录完成  -  by @soybeanjs [(b93b8)](https://github.com/honghuangdc/soybean-admin/commit/b93b80c) - - 添加NaiveProvider组件  -  by @honghuangdc [(c804b)](https://github.com/honghuangdc/soybean-admin/commit/c804b21) - - 多级路由的所有子路由转换成二级路由  -  by @honghuangdc [(85b55)](https://github.com/honghuangdc/soybean-admin/commit/85b55bb) - - 新增BasicLayout布局  -  by @soybeanjs [(00646)](https://github.com/honghuangdc/soybean-admin/commit/006467a) - - 创建自定义布局组件SoybeanLayout  -  by @honghuangdc [(0653f)](https://github.com/honghuangdc/soybean-admin/commit/0653fb1) - - 添加抽屉  -  by @honghuangdc [(10e4d)](https://github.com/honghuangdc/soybean-admin/commit/10e4d81) - - theme store完成  -  by @soybeanjs [(bf020)](https://github.com/honghuangdc/soybean-admin/commit/bf020a8) - - 主题配置抽屉:迁移暗黑模式、布局模式、添加颜色选择面板  -  by @soybeanjs [(912bf)](https://github.com/honghuangdc/soybean-admin/commit/912bfdf) - - 主题配置抽屉: 迁移其他功能  -  by @soybeanjs [(6d132)](https://github.com/honghuangdc/soybean-admin/commit/6d132c5) - - 添加头部折叠按钮  -  by @honghuangdc [(a090d)](https://github.com/honghuangdc/soybean-admin/commit/a090d39) - - 添加侧边菜单  -  by @soybeanjs [(e25af)](https://github.com/honghuangdc/soybean-admin/commit/e25afe2) - - 面包屑  -  by @honghuangdc [(09c76)](https://github.com/honghuangdc/soybean-admin/commit/09c7658) - - 请求拦截器添加刷新token  -  by @honghuangdc [(839b8)](https://github.com/honghuangdc/soybean-admin/commit/839b82b) - - 细节完善  -  by @soybeanjs [(cc290)](https://github.com/honghuangdc/soybean-admin/commit/cc290ac) - - 迁移多页签  -  by @soybeanjs [(28efb)](https://github.com/honghuangdc/soybean-admin/commit/28efbdb) - - 细节完善、迁移页面  -  by @soybeanjs [(ce531)](https://github.com/honghuangdc/soybean-admin/commit/ce531ce) - - 添加页面缓存、记录在tab中的缓存页面的滚动条位置  -  by @soybeanjs [(1d63a)](https://github.com/honghuangdc/soybean-admin/commit/1d63a83) - - 添加缓存主题色  -  by @soybeanjs [(37092)](https://github.com/honghuangdc/soybean-admin/commit/3709297) - - 新版重构完成  -  by @soybeanjs [(68b42)](https://github.com/honghuangdc/soybean-admin/commit/68b4230) - - 迁移全局搜索菜单功能  -  by @yanbowe [(554d7)](https://github.com/honghuangdc/soybean-admin/commit/554d7fd) - - 添加naiveUI按需引入  -  by @soybeanjs [(a810e)](https://github.com/honghuangdc/soybean-admin/commit/a810ef8) - - 添加SvgIcon,配置vite plugin  -  by **Liushengqun** [(378d5)](https://github.com/honghuangdc/soybean-admin/commit/378d55a) - - 引入soybean-admin-tab、去除vite-plugin-svg-icons,用unplugin-icons实现自定义svg的iconify写法、代码优化  -  by @soybeanjs [(a1a57)](https://github.com/honghuangdc/soybean-admin/commit/a1a57a1) - - 新增子菜单图标和多页签图标  -  by @soybeanjs [(f5c56)](https://github.com/honghuangdc/soybean-admin/commit/f5c56c3) - - 重构项目的TS类型架构,去除interface文件夹  -  by @soybeanjs [(81914)](https://github.com/honghuangdc/soybean-admin/commit/8191490) - - 添加网络代理  -  by @soybeanjs [(094dc)](https://github.com/honghuangdc/soybean-admin/commit/094dca9) - - 添加全局组件自动引入注册  -  by @soybeanjs [(f5a04)](https://github.com/honghuangdc/soybean-admin/commit/f5a043b) - - 新增自定义svg图标动态渲染  -  by @soybeanjs [(f83c7)](https://github.com/honghuangdc/soybean-admin/commit/f83c7b5) - -###    🐞 Bug Fixes - -- **components**: - - 修复Tab在移动端设备无法点击的问题  -  by @honghuangdc [(2c966)](https://github.com/honghuangdc/soybean-admin/commit/2c9660f) - - 修复组件LoadingEmptyWrapper适应暗黑模式  -  by @soybeanjs [(811b1)](https://github.com/honghuangdc/soybean-admin/commit/811b15e) - - 组件LoadingEmptyWrapper添加背景颜色动画过渡  -  by @soybeanjs [(7add5)](https://github.com/honghuangdc/soybean-admin/commit/7add5c2) -- **projects**: - - 修复redirect-not-found子路由  -  by @honghuangdc [(5bfb8)](https://github.com/honghuangdc/soybean-admin/commit/5bfb819) - - 去除Layout组件冗余代码  -  by @honghuangdc [(0e783)](https://github.com/honghuangdc/soybean-admin/commit/0e783bc) - - 修复面包屑数据  -  by @honghuangdc [(28b5d)](https://github.com/honghuangdc/soybean-admin/commit/28b5d22) - - 修复vertical-mix布局、重构初始化的loading  -  by @soybeanjs [(579e0)](https://github.com/honghuangdc/soybean-admin/commit/579e074) - - 修复未登录时会调用获取用户路由的接口  -  by @soybeanjs [(21bab)](https://github.com/honghuangdc/soybean-admin/commit/21bab1f) - - 修复路由守卫的动态路由逻辑  -  by @soybeanjs [(b61b0)](https://github.com/honghuangdc/soybean-admin/commit/b61b0ce) - - vite配置修复  -  by @soybeanjs [(facc0)](https://github.com/honghuangdc/soybean-admin/commit/facc00e) - - 修复分析页和工作台的布局问题  -  by @honghuangdc [(e93b9)](https://github.com/honghuangdc/soybean-admin/commit/e93b94c) - - 修复项目配置拷贝功能  -  by @soybeanjs [(a7a26)](https://github.com/honghuangdc/soybean-admin/commit/a7a269d) - - 修复页面切换动画无变化  -  by @soybeanjs [(c4546)](https://github.com/honghuangdc/soybean-admin/commit/c4546bd) - - 修复页面切换动画开关不生效  -  by @bundlejs [(9d4ed)](https://github.com/honghuangdc/soybean-admin/commit/9d4ed61) - - 修复 BASE_URL 没有生效的问题  -  by @pany-ang [(72d7d)](https://github.com/honghuangdc/soybean-admin/commit/72d7dcf) - -###    💅 Refactors - -- **components**: - - 去除packages的soybean-layout,通过npm的方式引入  -  by @soybeanjs [(c1182)](https://github.com/honghuangdc/soybean-admin/commit/c1182fe) -- **projects**: - - 精简版+动态路由权限初步  -  by @soybeanjs [(de205)](https://github.com/honghuangdc/soybean-admin/commit/de2057f) - - 单独一级路由相关逻辑重构  -  by @honghuangdc [(ab9a6)](https://github.com/honghuangdc/soybean-admin/commit/ab9a6a2) - - 单独路由逻辑重构、路由转换函数优化  -  by @soybeanjs [(b36a6)](https://github.com/honghuangdc/soybean-admin/commit/b36a62b) - - 恢复pinia默认写法  -  by @soybeanjs [(b2a4d)](https://github.com/honghuangdc/soybean-admin/commit/b2a4ddf) - - 请求构造函数适配不同后端接口的数据结构  -  by @soybeanjs [(4f9d5)](https://github.com/honghuangdc/soybean-admin/commit/4f9d544) - - 细节完善  -  by @soybeanjs [(651e5)](https://github.com/honghuangdc/soybean-admin/commit/651e58d) - - 重构路由页面组件的导入  -  by @honghuangdc [(e6503)](https://github.com/honghuangdc/soybean-admin/commit/e65034d) - - 代码优化  -  by @soybeanjs [(4e31a)](https://github.com/honghuangdc/soybean-admin/commit/4e31abd) - -###    📖 Documentation - -- **other**: - - 注释文案修改  -  by **毛博文** [(d0064)](https://github.com/honghuangdc/soybean-admin/commit/d00643c) -- **projects**: - - update README.md  -  by @soybeanjs [(5eddb)](https://github.com/honghuangdc/soybean-admin/commit/5eddb49) - - update README.md  -  by @soybeanjs [(02c51)](https://github.com/honghuangdc/soybean-admin/commit/02c51e6) - - update README.md  -  by @honghuangdc [(47f28)](https://github.com/honghuangdc/soybean-admin/commit/47f2871) - - update README.md  -  by @honghuangdc [(7ed5d)](https://github.com/honghuangdc/soybean-admin/commit/7ed5d0d) - - update README.md  -  by @honghuangdc [(3befb)](https://github.com/honghuangdc/soybean-admin/commit/3befb22) - - update README.md  -  by @honghuangdc [(e856c)](https://github.com/honghuangdc/soybean-admin/commit/e856cdb) - - update README.md  -  by @soybeanjs [(3aded)](https://github.com/honghuangdc/soybean-admin/commit/3aded40) - - update README.md  -  by @soybeanjs [(225e7)](https://github.com/honghuangdc/soybean-admin/commit/225e712) - - update README.md  -  by @honghuangdc [(5b401)](https://github.com/honghuangdc/soybean-admin/commit/5b401a7) - - update README.md  -  by @honghuangdc [(8cdad)](https://github.com/honghuangdc/soybean-admin/commit/8cdad54) - - update README.md  -  by @soybeanjs [(a0dfa)](https://github.com/honghuangdc/soybean-admin/commit/a0dfa3d) - - update README.md  -  by @soybeanjs [(b8db2)](https://github.com/honghuangdc/soybean-admin/commit/b8db211) - -###    📦 Build - -- **deps**: - - 升级依赖  -  by @soybeanjs [(284af)](https://github.com/honghuangdc/soybean-admin/commit/284af63) - - 升级依赖  -  by @soybeanjs [(57c69)](https://github.com/honghuangdc/soybean-admin/commit/57c692b) - - 升级依赖  -  by @soybeanjs [(7ba33)](https://github.com/honghuangdc/soybean-admin/commit/7ba332c) - - upgrade deps  -  by @soybeanjs [(50c8b)](https://github.com/honghuangdc/soybean-admin/commit/50c8b9d) - - upgrade deps  -  by @soybeanjs [(8d00b)](https://github.com/honghuangdc/soybean-admin/commit/8d00b23) - - upgrade deps  -  by @soybeanjs [(b298a)](https://github.com/honghuangdc/soybean-admin/commit/b298af1) -- **projects**: - - 修改vscode配置  -  by @honghuangdc [(0c577)](https://github.com/honghuangdc/soybean-admin/commit/0c5770d) - - 添加vercel打包的环境  -  by @honghuangdc [(371fa)](https://github.com/honghuangdc/soybean-admin/commit/371fad4) - - add license  -  by @soybeanjs [(b1672)](https://github.com/honghuangdc/soybean-admin/commit/b16721b) - - 更新tsconfig.json  -  by @soybeanjs [(f42ee)](https://github.com/honghuangdc/soybean-admin/commit/f42ee9d) - - update tsconfig、eslintrc  -  by @soybeanjs [(75de2)](https://github.com/honghuangdc/soybean-admin/commit/75de2b0) - -###    🏡 Chore - -- **release**: - - 0.1.1 精简版发布  -  by @soybeanjs [(db3c2)](https://github.com/honghuangdc/soybean-admin/commit/db3c25e) - - 0.1.2  -  by @soybeanjs [(db75c)](https://github.com/honghuangdc/soybean-admin/commit/db75c91) - - 0.1.3  -  by @soybeanjs [(32a7c)](https://github.com/honghuangdc/soybean-admin/commit/32a7cc4) - - 0.9.1  -  by @soybeanjs [(be374)](https://github.com/honghuangdc/soybean-admin/commit/be37408) - - 0.9.2  -  by @honghuangdc [(11407)](https://github.com/honghuangdc/soybean-admin/commit/1140722) - - 0.9.3  -  by @soybeanjs [(d0522)](https://github.com/honghuangdc/soybean-admin/commit/d0522ce) - -###    🎨 Styles - -- **components**: 代码优化  -  by @soybeanjs [(1e2fd)](https://github.com/honghuangdc/soybean-admin/commit/1e2fdda) -- **projects**: 路由相关文件夹简化  -  by @honghuangdc [(e5793)](https://github.com/honghuangdc/soybean-admin/commit/e5793e1) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![pany-ang](https://github.com/pany-ang.png?size=48)](https://github.com/pany-ang)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![bundlejs](https://github.com/bundlejs.png?size=48)](https://github.com/bundlejs)  [![Lsq128](https://github.com/Lsq128.png?size=48)](https://github.com/Lsq128)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)   -[毛博文](mailto:maobowen@bonc.com.cn), [Liushengqun](mailto:18232366809@163.com),  - -## [v0.10.2](https://github.com/honghuangdc/soybean-admin/compare/v0.9.2...old-version) (23-06-07) - -###    🚀 Features - -- **projects**: - - 路由页面跳转权限完成  -  by @soybeanjs [(0d2a5)](https://github.com/honghuangdc/soybean-admin/commit/0d2a562) - - 集成naiveUI主题配置,将css vars添加至html  -  by @soybeanjs [(2c196)](https://github.com/honghuangdc/soybean-admin/commit/2c19684) - - 初始化加载效果:应用主题颜色  -  by @honghuangdc [(035fa)](https://github.com/honghuangdc/soybean-admin/commit/035fa11) - - 登录页面开始迁移  -  by @honghuangdc [(f5a36)](https://github.com/honghuangdc/soybean-admin/commit/f5a36a0) - - 迁移登录完成  -  by @soybeanjs [(b93b8)](https://github.com/honghuangdc/soybean-admin/commit/b93b80c) - - 添加NaiveProvider组件  -  by @honghuangdc [(c804b)](https://github.com/honghuangdc/soybean-admin/commit/c804b21) - - 多级路由的所有子路由转换成二级路由  -  by @honghuangdc [(85b55)](https://github.com/honghuangdc/soybean-admin/commit/85b55bb) - - 新增BasicLayout布局  -  by @soybeanjs [(00646)](https://github.com/honghuangdc/soybean-admin/commit/006467a) - - 创建自定义布局组件SoybeanLayout  -  by @honghuangdc [(0653f)](https://github.com/honghuangdc/soybean-admin/commit/0653fb1) - - 添加抽屉  -  by @honghuangdc [(10e4d)](https://github.com/honghuangdc/soybean-admin/commit/10e4d81) - - theme store完成  -  by @soybeanjs [(bf020)](https://github.com/honghuangdc/soybean-admin/commit/bf020a8) - - 主题配置抽屉:迁移暗黑模式、布局模式、添加颜色选择面板  -  by @soybeanjs [(912bf)](https://github.com/honghuangdc/soybean-admin/commit/912bfdf) - - 主题配置抽屉: 迁移其他功能  -  by @soybeanjs [(6d132)](https://github.com/honghuangdc/soybean-admin/commit/6d132c5) - - 添加头部折叠按钮  -  by @honghuangdc [(a090d)](https://github.com/honghuangdc/soybean-admin/commit/a090d39) - - 添加侧边菜单  -  by @soybeanjs [(e25af)](https://github.com/honghuangdc/soybean-admin/commit/e25afe2) - - 面包屑  -  by @honghuangdc [(09c76)](https://github.com/honghuangdc/soybean-admin/commit/09c7658) - - 请求拦截器添加刷新token  -  by @honghuangdc [(839b8)](https://github.com/honghuangdc/soybean-admin/commit/839b82b) - - 细节完善  -  by @soybeanjs [(cc290)](https://github.com/honghuangdc/soybean-admin/commit/cc290ac) - - 迁移多页签  -  by @soybeanjs [(28efb)](https://github.com/honghuangdc/soybean-admin/commit/28efbdb) - - 细节完善、迁移页面  -  by @soybeanjs [(ce531)](https://github.com/honghuangdc/soybean-admin/commit/ce531ce) - - 添加页面缓存、记录在tab中的缓存页面的滚动条位置  -  by @soybeanjs [(1d63a)](https://github.com/honghuangdc/soybean-admin/commit/1d63a83) - - 添加缓存主题色  -  by @soybeanjs [(37092)](https://github.com/honghuangdc/soybean-admin/commit/3709297) - - 新版重构完成  -  by @soybeanjs [(68b42)](https://github.com/honghuangdc/soybean-admin/commit/68b4230) - - 迁移全局搜索菜单功能  -  by @yanbowe [(554d7)](https://github.com/honghuangdc/soybean-admin/commit/554d7fd) - -###    🐞 Bug Fixes - -- **components**: - - 修复Tab在移动端设备无法点击的问题  -  by @honghuangdc [(2c966)](https://github.com/honghuangdc/soybean-admin/commit/2c9660f) -- **projects**: - - 修复redirect-not-found子路由  -  by @honghuangdc [(5bfb8)](https://github.com/honghuangdc/soybean-admin/commit/5bfb819) - - 去除Layout组件冗余代码  -  by @honghuangdc [(0e783)](https://github.com/honghuangdc/soybean-admin/commit/0e783bc) - - 修复面包屑数据  -  by @honghuangdc [(28b5d)](https://github.com/honghuangdc/soybean-admin/commit/28b5d22) - - 修复vertical-mix布局、重构初始化的loading  -  by @soybeanjs [(579e0)](https://github.com/honghuangdc/soybean-admin/commit/579e074) - - 修复未登录时会调用获取用户路由的接口  -  by @soybeanjs [(21bab)](https://github.com/honghuangdc/soybean-admin/commit/21bab1f) - - 修复路由守卫的动态路由逻辑  -  by @soybeanjs [(b61b0)](https://github.com/honghuangdc/soybean-admin/commit/b61b0ce) - - vite配置修复  -  by @soybeanjs [(facc0)](https://github.com/honghuangdc/soybean-admin/commit/facc00e) - - 修复分析页和工作台的布局问题  -  by @honghuangdc [(e93b9)](https://github.com/honghuangdc/soybean-admin/commit/e93b94c) - - 修复项目配置拷贝功能  -  by @soybeanjs [(a7a26)](https://github.com/honghuangdc/soybean-admin/commit/a7a269d) - -###    💅 Refactors - -- **projects**: - - 精简版+动态路由权限初步  -  by @soybeanjs [(de205)](https://github.com/honghuangdc/soybean-admin/commit/de2057f) - - 单独一级路由相关逻辑重构  -  by @honghuangdc [(ab9a6)](https://github.com/honghuangdc/soybean-admin/commit/ab9a6a2) - - 单独路由逻辑重构、路由转换函数优化  -  by @soybeanjs [(b36a6)](https://github.com/honghuangdc/soybean-admin/commit/b36a62b) - - 恢复pinia默认写法  -  by @soybeanjs [(b2a4d)](https://github.com/honghuangdc/soybean-admin/commit/b2a4ddf) - - 请求构造函数适配不同后端接口的数据结构  -  by @soybeanjs [(4f9d5)](https://github.com/honghuangdc/soybean-admin/commit/4f9d544) - - 细节完善  -  by @soybeanjs [(651e5)](https://github.com/honghuangdc/soybean-admin/commit/651e58d) - - 重构路由页面组件的导入  -  by @honghuangdc [(e6503)](https://github.com/honghuangdc/soybean-admin/commit/e65034d) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @soybeanjs [(5eddb)](https://github.com/honghuangdc/soybean-admin/commit/5eddb49) - - update README.md  -  by @soybeanjs [(02c51)](https://github.com/honghuangdc/soybean-admin/commit/02c51e6) - - update README.md  -  by @honghuangdc [(47f28)](https://github.com/honghuangdc/soybean-admin/commit/47f2871) - - update README.md  -  by @honghuangdc [(7ed5d)](https://github.com/honghuangdc/soybean-admin/commit/7ed5d0d) - - update README.md  -  by @honghuangdc [(3befb)](https://github.com/honghuangdc/soybean-admin/commit/3befb22) - -###    📦 Build - -- **projects**: - - 修改vscode配置  -  by @honghuangdc [(0c577)](https://github.com/honghuangdc/soybean-admin/commit/0c5770d) - - 添加vercel打包的环境  -  by @honghuangdc [(371fa)](https://github.com/honghuangdc/soybean-admin/commit/371fad4) - - add license  -  by @soybeanjs [(b1672)](https://github.com/honghuangdc/soybean-admin/commit/b16721b) - -###    🏡 Chore - -- **release**: - - 0.1.1 精简版发布  -  by @soybeanjs [(db3c2)](https://github.com/honghuangdc/soybean-admin/commit/db3c25e) - - 0.1.2  -  by @soybeanjs [(db75c)](https://github.com/honghuangdc/soybean-admin/commit/db75c91) - - 0.1.3  -  by @soybeanjs [(32a7c)](https://github.com/honghuangdc/soybean-admin/commit/32a7cc4) - - 0.9.1  -  by @soybeanjs [(be374)](https://github.com/honghuangdc/soybean-admin/commit/be37408) - - 0.9.2  -  by @honghuangdc [(11407)](https://github.com/honghuangdc/soybean-admin/commit/1140722) - -###    🎨 Styles - -- **projects**: 路由相关文件夹简化  -  by @honghuangdc [(e5793)](https://github.com/honghuangdc/soybean-admin/commit/e5793e1) - -###    ❤️ Contributors - -[![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)   - -## [v0.9.2](https://github.com/honghuangdc/soybean-admin/compare/v0.9.1...v0.9.2) (2022-02-11) - -###    🚀 Features - -- **projects**: 迁移全局搜索菜单功能  -  by @yanbowe [(554d7)](https://github.com/honghuangdc/soybean-admin/commit/554d7fd) - -###    🐞 Bug Fixes - -- **components**: - - 修复Tab在移动端设备无法点击的问题  -  by @honghuangdc [(2c966)](https://github.com/honghuangdc/soybean-admin/commit/2c9660f) -- **projects**: - - vite配置修复  -  by @soybeanjs [(facc0)](https://github.com/honghuangdc/soybean-admin/commit/facc00e) - - 修复分析页和工作台的布局问题  -  by @honghuangdc [(e93b9)](https://github.com/honghuangdc/soybean-admin/commit/e93b94c) - - 修复项目配置拷贝功能  -  by @soybeanjs [(a7a26)](https://github.com/honghuangdc/soybean-admin/commit/a7a269d) - -###    💅 Refactors - -- **projects**: 重构路由页面组件的导入  -  by @honghuangdc [(e6503)](https://github.com/honghuangdc/soybean-admin/commit/e65034d) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @soybeanjs [(02c51)](https://github.com/honghuangdc/soybean-admin/commit/02c51e6) - - update README.md  -  by @honghuangdc [(47f28)](https://github.com/honghuangdc/soybean-admin/commit/47f2871) - - update README.md  -  by @honghuangdc [(7ed5d)](https://github.com/honghuangdc/soybean-admin/commit/7ed5d0d) - - update README.md  -  by @honghuangdc [(3befb)](https://github.com/honghuangdc/soybean-admin/commit/3befb22) - -###    📦 Build - -- **projects**: add license  -  by @soybeanjs [(b1672)](https://github.com/honghuangdc/soybean-admin/commit/b16721b) - -###    🏡 Chore - -- **release**: 0.9.2  -  by @honghuangdc [(11407)](https://github.com/honghuangdc/soybean-admin/commit/1140722) - -###    ❤️ Contributors - -[![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)   - -## [v0.9.1](https://github.com/honghuangdc/soybean-admin/compare/v0.1.3...v0.9.1) (2022-01-24) - -###    🚀 Features - -- **projects**: 新版重构完成  -  by @soybeanjs [(68b42)](https://github.com/honghuangdc/soybean-admin/commit/68b4230) - -###    🏡 Chore - -- **release**: 0.9.1  -  by @soybeanjs [(be374)](https://github.com/honghuangdc/soybean-admin/commit/be37408) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - -## [v0.1.3](https://github.com/honghuangdc/soybean-admin/compare/v0.1.2...v0.1.3) (2022-01-24) - -###    🐞 Bug Fixes - -- **projects**: - - 修复未登录时会调用获取用户路由的接口  -  by @soybeanjs [(21bab)](https://github.com/honghuangdc/soybean-admin/commit/21bab1f) - - 修复路由守卫的动态路由逻辑  -  by @soybeanjs [(b61b0)](https://github.com/honghuangdc/soybean-admin/commit/b61b0ce) - -###    💅 Refactors - -- **projects**: - - 请求构造函数适配不同后端接口的数据结构  -  by @soybeanjs [(4f9d5)](https://github.com/honghuangdc/soybean-admin/commit/4f9d544) - - 细节完善  -  by @soybeanjs [(651e5)](https://github.com/honghuangdc/soybean-admin/commit/651e58d) - -###    🏡 Chore - -- **release**: 0.1.3  -  by @soybeanjs [(32a7c)](https://github.com/honghuangdc/soybean-admin/commit/32a7cc4) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - -## [v0.1.2](https://github.com/honghuangdc/soybean-admin/compare/v0.1.1...v0.1.2) (2022-01-22) - -###    🚀 Features - -- **projects**: - - 添加页面缓存、记录在tab中的缓存页面的滚动条位置  -  by @soybeanjs [(1d63a)](https://github.com/honghuangdc/soybean-admin/commit/1d63a83) - - 添加缓存主题色  -  by @soybeanjs [(37092)](https://github.com/honghuangdc/soybean-admin/commit/3709297) - -###    🏡 Chore - -- **release**: 0.1.2  -  by @soybeanjs [(db75c)](https://github.com/honghuangdc/soybean-admin/commit/db75c91) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - -## [v0.1.1](https://github.com/honghuangdc/soybean-admin/compare/v0.0.5...v0.1.1) (2022-01-20) - -###    🚀 Features - -- **projects**: - - 添加路由跳转浏览器新标签  -  by @honghuangdc [(987ce)](https://github.com/honghuangdc/soybean-admin/commit/987cef3) - - 添加常用组件、composables函数  -  by @soybeanjs [(230a5)](https://github.com/honghuangdc/soybean-admin/commit/230a50a) - - 添加表格页面示例  -  by @soybeanjs [(51c74)](https://github.com/honghuangdc/soybean-admin/commit/51c744c) - - 增加Icon选择器组件  -  by @yanbowe [(9472b)](https://github.com/honghuangdc/soybean-admin/commit/9472b51) - - 图标选择器增加扩展树形  -  by @yanbowe [(04101)](https://github.com/honghuangdc/soybean-admin/commit/041012b) - - 增加项目文档外链  -  by @yanbowe [(1901a)](https://github.com/honghuangdc/soybean-admin/commit/1901a0b) - - 引入mockjs  -  by @soybeanjs [(9bc68)](https://github.com/honghuangdc/soybean-admin/commit/9bc682d) - - 增加全局搜索菜单功能  -  by @yanbowe [(b9ce6)](https://github.com/honghuangdc/soybean-admin/commit/b9ce691) - - 菜单搜索增加大小写转换  -  by @yanbowe [(29078)](https://github.com/honghuangdc/soybean-admin/commit/2907868) - - 添加cryptojs,对本地缓存数据进行加密  -  by @soybeanjs [(7a064)](https://github.com/honghuangdc/soybean-admin/commit/7a0648d) - - 路由页面跳转权限完成  -  by @soybeanjs [(0d2a5)](https://github.com/honghuangdc/soybean-admin/commit/0d2a562) - - 集成naiveUI主题配置,将css vars添加至html  -  by @soybeanjs [(2c196)](https://github.com/honghuangdc/soybean-admin/commit/2c19684) - - 初始化加载效果:应用主题颜色  -  by @honghuangdc [(035fa)](https://github.com/honghuangdc/soybean-admin/commit/035fa11) - - 登录页面开始迁移  -  by @honghuangdc [(f5a36)](https://github.com/honghuangdc/soybean-admin/commit/f5a36a0) - - 迁移登录完成  -  by @soybeanjs [(b93b8)](https://github.com/honghuangdc/soybean-admin/commit/b93b80c) - - 添加NaiveProvider组件  -  by @honghuangdc [(c804b)](https://github.com/honghuangdc/soybean-admin/commit/c804b21) - - 多级路由的所有子路由转换成二级路由  -  by @honghuangdc [(85b55)](https://github.com/honghuangdc/soybean-admin/commit/85b55bb) - - 新增BasicLayout布局  -  by @soybeanjs [(00646)](https://github.com/honghuangdc/soybean-admin/commit/006467a) - - 创建自定义布局组件SoybeanLayout  -  by @honghuangdc [(0653f)](https://github.com/honghuangdc/soybean-admin/commit/0653fb1) - - 添加抽屉  -  by @honghuangdc [(10e4d)](https://github.com/honghuangdc/soybean-admin/commit/10e4d81) - - theme store完成  -  by @soybeanjs [(bf020)](https://github.com/honghuangdc/soybean-admin/commit/bf020a8) - - 主题配置抽屉:迁移暗黑模式、布局模式、添加颜色选择面板  -  by @soybeanjs [(912bf)](https://github.com/honghuangdc/soybean-admin/commit/912bfdf) - - 主题配置抽屉: 迁移其他功能  -  by @soybeanjs [(6d132)](https://github.com/honghuangdc/soybean-admin/commit/6d132c5) - - 添加头部折叠按钮  -  by @honghuangdc [(a090d)](https://github.com/honghuangdc/soybean-admin/commit/a090d39) - - 添加侧边菜单  -  by @soybeanjs [(e25af)](https://github.com/honghuangdc/soybean-admin/commit/e25afe2) - - 面包屑  -  by @honghuangdc [(09c76)](https://github.com/honghuangdc/soybean-admin/commit/09c7658) - - 请求拦截器添加刷新token  -  by @honghuangdc [(839b8)](https://github.com/honghuangdc/soybean-admin/commit/839b82b) - - 细节完善  -  by @soybeanjs [(cc290)](https://github.com/honghuangdc/soybean-admin/commit/cc290ac) - - 迁移多页签  -  by @soybeanjs [(28efb)](https://github.com/honghuangdc/soybean-admin/commit/28efbdb) - - 细节完善、迁移页面  -  by @soybeanjs [(ce531)](https://github.com/honghuangdc/soybean-admin/commit/ce531ce) - -###    🐞 Bug Fixes - -- **deps**: - - 降低vite版本  -  by @honghuangdc [(c9c5c)](https://github.com/honghuangdc/soybean-admin/commit/c9c5ca9) -- **projects**: - - 修复网络请求错误空信息的提示  -  by @honghuangdc [(ff921)](https://github.com/honghuangdc/soybean-admin/commit/ff9216b) - - 请求相关细节修复  -  by @honghuangdc [(2ad1a)](https://github.com/honghuangdc/soybean-admin/commit/2ad1ad3) - - 修复redirect-not-found子路由  -  by @honghuangdc [(5bfb8)](https://github.com/honghuangdc/soybean-admin/commit/5bfb819) - - 去除Layout组件冗余代码  -  by @honghuangdc [(0e783)](https://github.com/honghuangdc/soybean-admin/commit/0e783bc) - - 修复面包屑数据  -  by @honghuangdc [(28b5d)](https://github.com/honghuangdc/soybean-admin/commit/28b5d22) - - 修复vertical-mix布局、重构初始化的loading  -  by @soybeanjs [(579e0)](https://github.com/honghuangdc/soybean-admin/commit/579e074) - -###    💅 Refactors - -- **projects**: - - 登录模块由query变更为动态路由params  -  by @honghuangdc [(225c4)](https://github.com/honghuangdc/soybean-admin/commit/225c4fe) - - 精简版+动态路由权限初步  -  by @soybeanjs [(de205)](https://github.com/honghuangdc/soybean-admin/commit/de2057f) - - 单独一级路由相关逻辑重构  -  by @honghuangdc [(ab9a6)](https://github.com/honghuangdc/soybean-admin/commit/ab9a6a2) - - 单独路由逻辑重构、路由转换函数优化  -  by @soybeanjs [(b36a6)](https://github.com/honghuangdc/soybean-admin/commit/b36a62b) - - 恢复pinia默认写法  -  by @soybeanjs [(b2a4d)](https://github.com/honghuangdc/soybean-admin/commit/b2a4ddf) -- **styles**: - - 样式调整  -  by @honghuangdc [(f2910)](https://github.com/honghuangdc/soybean-admin/commit/f29106e) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @honghuangdc [(659e4)](https://github.com/honghuangdc/soybean-admin/commit/659e460) - - update README.md  -  by @honghuangdc [(90ddf)](https://github.com/honghuangdc/soybean-admin/commit/90ddf98) - - update README.md  -  by @soybeanjs [(5eddb)](https://github.com/honghuangdc/soybean-admin/commit/5eddb49) - -###    📦 Build - -- **deps**: - - 升级依赖  -  by @soybeanjs [(ae7ec)](https://github.com/honghuangdc/soybean-admin/commit/ae7ec99) - - 升级依赖  -  by @soybeanjs [(e755c)](https://github.com/honghuangdc/soybean-admin/commit/e755caa) - - 升级依赖  -  by @honghuangdc [(f3c86)](https://github.com/honghuangdc/soybean-admin/commit/f3c86ef) - - 升级依赖  -  by @honghuangdc [(e776d)](https://github.com/honghuangdc/soybean-admin/commit/e776df4) - - 升级依赖  -  by @soybeanjs [(777cf)](https://github.com/honghuangdc/soybean-admin/commit/777cf8e) -- **projects**: - - 环境变量获取方式变更  -  by @honghuangdc [(21c2f)](https://github.com/honghuangdc/soybean-admin/commit/21c2f5a) - - 修改vscode配置  -  by @honghuangdc [(0c577)](https://github.com/honghuangdc/soybean-admin/commit/0c5770d) - - 添加vercel打包的环境  -  by @honghuangdc [(371fa)](https://github.com/honghuangdc/soybean-admin/commit/371fad4) - -###    🏡 Chore - -- **release**: 0.1.1 精简版发布  -  by @soybeanjs [(db3c2)](https://github.com/honghuangdc/soybean-admin/commit/db3c25e) - -###    🎨 Styles - -- **projects**: 路由相关文件夹简化  -  by @honghuangdc [(e5793)](https://github.com/honghuangdc/soybean-admin/commit/e5793e1) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)   - -## [v0.0.5](https://github.com/honghuangdc/soybean-admin/compare/v0.0.4...v0.0.5) (2021-11-28) - -###    🚀 Features - -- **projects**: 新增组件页面:按钮、卡片示例  -  by @soybeanjs [(bdc39)](https://github.com/honghuangdc/soybean-admin/commit/bdc39af) - -###    🐞 Bug Fixes - -- **components**: 修复HorizontalLayout布局  -  by @soybeanjs [(9fb64)](https://github.com/honghuangdc/soybean-admin/commit/9fb641f) - -###    💅 Refactors - -- **projects**: - - 重构路由类型和路由元数据类型,重构多级菜单路由写法  -  by @soybeanjs [(d6838)](https://github.com/honghuangdc/soybean-admin/commit/d683894) - - 优化路由导入页面写法,页面路由调整  -  by @soybeanjs [(0b10b)](https://github.com/honghuangdc/soybean-admin/commit/0b10b50) - -###    📦 Build - -- **deps**: 升级依赖  -  by @soybeanjs [(a6bdc)](https://github.com/honghuangdc/soybean-admin/commit/a6bdc38) - -###    🏡 Chore - -- **release**: 0.0.5  -  by @soybeanjs [(e53e7)](https://github.com/honghuangdc/soybean-admin/commit/e53e793) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - -## [v0.0.4](https://github.com/honghuangdc/soybean-admin/compare/v0.0.3...v0.0.4) (2021-11-25) - -###    🚀 Features - -- **components**: 添加多页签Tab点击后自动往中间滚动  -  by @soybeanjs [(8ce62)](https://github.com/honghuangdc/soybean-admin/commit/8ce627a) -- **projects**: 新增网址导航页面  -  by @honghuangdc [(32aa5)](https://github.com/honghuangdc/soybean-admin/commit/32aa5ee) -- **storage**: local存储增加有效期  -  by @yanbowe [(e6c9b)](https://github.com/honghuangdc/soybean-admin/commit/e6c9b35) - -###    🐞 Bug Fixes - -- **components**: - - 修复多页签Tab自动滚动问题  -  by @soybeanjs [(20aa3)](https://github.com/honghuangdc/soybean-admin/commit/20aa39f) - - 修复多页签按钮风格的tab滚动问题  -  by @soybeanjs [(c429c)](https://github.com/honghuangdc/soybean-admin/commit/c429cd0) -- **projects**: - - 修复打包构建时图标错误  -  by @soybeanjs [(93f9a)](https://github.com/honghuangdc/soybean-admin/commit/93f9aa9) - - 添加西瓜视频实例在onUnMounted的销毁,多页签居中距离精确  -  by @soybeanjs [(73896)](https://github.com/honghuangdc/soybean-admin/commit/738964a) -- **types**: - - 添加dotEnv类型的非空判断  -  by @soybeanjs [(cff11)](https://github.com/honghuangdc/soybean-admin/commit/cff11d9) - -###    💅 Refactors - -- **components**: - - blankLayout引入GlobalContent  -  by @soybeanjs [(1ffb7)](https://github.com/honghuangdc/soybean-admin/commit/1ffb75a) -- **projects**: - - axios处理的请求结果去除网路状态  -  by @honghuangdc [(05696)](https://github.com/honghuangdc/soybean-admin/commit/0569666) - - 文件夹位置规范  -  by @honghuangdc [(f5a5f)](https://github.com/honghuangdc/soybean-admin/commit/f5a5f44) - - 细节完善  -  by @honghuangdc [(62611)](https://github.com/honghuangdc/soybean-admin/commit/6261156) - -###    📖 Documentation - -- **projects**: - - update README.md  -  by @soybeanjs [(54577)](https://github.com/honghuangdc/soybean-admin/commit/54577f1) - - update README.md  -  by @honghuangdc [(1b346)](https://github.com/honghuangdc/soybean-admin/commit/1b3463d) - - update README.md  -  by @honghuangdc [(98a7d)](https://github.com/honghuangdc/soybean-admin/commit/98a7d25) - -###    🏡 Chore - -- **release**: 0.0.4  -  by @soybeanjs [(8b27f)](https://github.com/honghuangdc/soybean-admin/commit/8b27fc8) - -###    ❤️ Contributors - -[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![yanbowe](https://github.com/yanbowe.png?size=48)](https://github.com/yanbowe)   - -## [v0.0.3](https://github.com/honghuangdc/soybean-admin/compare/v0.0.2...v0.0.3) (2021-11-23) - -###    💅 Refactors - -- **projects**: - - 请求函数重构初步  -  by @soybeanjs [(9f643)](https://github.com/honghuangdc/soybean-admin/commit/9f64321) - - axios封装:文件夹规范,错误处理完善  -  by @honghuangdc [(451c7)](https://github.com/honghuangdc/soybean-admin/commit/451c754) - - axios封装完成  -  by @soybeanjs [(03b39)](https://github.com/honghuangdc/soybean-admin/commit/03b398a) - -###    📦 Build - -- **deps**: - - 升级依赖  -  by @soybeanjs [(4e04a)](https://github.com/honghuangdc/soybean-admin/commit/4e04a8f) - - 升级依赖  -  by @soybeanjs [(c8122)](https://github.com/honghuangdc/soybean-admin/commit/c81221e) - -###    🏡 Chore - -- **release**: 0.0.3  -  by @honghuangdc [(e1dac)](https://github.com/honghuangdc/soybean-admin/commit/e1dacdb) - -###    ❤️ Contributors - -[![honghuangdc](https://github.com/honghuangdc.png?size=48)](https://github.com/honghuangdc)  [![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   - - - diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 20547de8..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Soybean - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/Makefile b/Makefile deleted file mode 100644 index c3c21981..00000000 --- a/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -ImageTag ?=v0.9.6 -SoybeanAdminImg ?= soybeanjs/soybean-admin:$(ImageTag) - -VERSION=$(shell git rev-parse --short HEAD) - -soybean-admin: soybean-admin-build soybean-admin-push - -soybean-admin-build: - docker build --build-arg version=$(VERSION) -t ${SoybeanAdminImg} -f docker/Dockerfile . - -soybean-admin-push: - docker push ${SoybeanAdminImg} - -# run tauri app: -run: - pnpm tauri dev diff --git a/build/config/define.ts b/build/config/define.ts deleted file mode 100644 index cacf7054..00000000 --- a/build/config/define.ts +++ /dev/null @@ -1,8 +0,0 @@ -import dayjs from 'dayjs'; - -/** 项目构建时间 */ -const PROJECT_BUILD_TIME = JSON.stringify(dayjs().format('YYYY-MM-DD HH:mm:ss')); - -export const viteDefine = { - PROJECT_BUILD_TIME -}; diff --git a/build/config/index.ts b/build/config/index.ts index 3ed6c24f..9bcd8689 100644 --- a/build/config/index.ts +++ b/build/config/index.ts @@ -1,2 +1 @@ -export * from './define'; export * from './proxy'; diff --git a/build/config/proxy.ts b/build/config/proxy.ts index a220e9d8..edc7ce04 100644 --- a/build/config/proxy.ts +++ b/build/config/proxy.ts @@ -1,20 +1,38 @@ import type { ProxyOptions } from 'vite'; +import { createServiceConfig, createProxyPattern } from '../../env.config'; /** - * 设置网络代理 - * @param isOpenProxy - 是否开启代理 - * @param envConfig - env环境配置 + * set http proxy + * @param env - the current env */ -export function createViteProxy(isOpenProxy: boolean, envConfig: ServiceEnvConfigWithProxyPattern) { - if (!isOpenProxy) return undefined; +export function createViteProxy(env: Env.ImportMeta) { + const isEnableHttpProxy = env.VITE_HTTP_PROXY === 'Y'; - const proxy: Record = { - [envConfig.proxyPattern]: { - target: envConfig.url, + if (!isEnableHttpProxy) return undefined; + + const { baseURL, otherBaseURL } = createServiceConfig(env); + + const defaultProxyPattern = createProxyPattern(); + + const proxy: Record = { + [defaultProxyPattern]: { + target: baseURL, changeOrigin: true, - rewrite: path => path.replace(new RegExp(`^${envConfig.proxyPattern}`), '') + rewrite: path => path.replace(new RegExp(`^${defaultProxyPattern}`), '') } }; + const otherURLEntries = Object.entries(otherBaseURL); + + for (const [key, url] of otherURLEntries) { + const proxyPattern = createProxyPattern(key); + + proxy[proxyPattern] = { + target: url, + changeOrigin: true, + rewrite: path => path.replace(new RegExp(`^${proxyPattern}`), '') + }; + } + return proxy; } diff --git a/build/index.ts b/build/index.ts deleted file mode 100644 index cd9f55ed..00000000 --- a/build/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './plugins'; -export * from './config'; -export * from './utils'; diff --git a/build/plugins/compress.ts b/build/plugins/compress.ts deleted file mode 100644 index 886eb0f7..00000000 --- a/build/plugins/compress.ts +++ /dev/null @@ -1,6 +0,0 @@ -import ViteCompression from 'vite-plugin-compression'; - -export default (viteEnv: ImportMetaEnv) => { - const { VITE_COMPRESS_TYPE = 'gzip' } = viteEnv; - return ViteCompression({ algorithm: VITE_COMPRESS_TYPE }); -}; diff --git a/build/plugins/index.ts b/build/plugins/index.ts index 97fc3e2d..d437da70 100644 --- a/build/plugins/index.ts +++ b/build/plugins/index.ts @@ -1,22 +1,14 @@ import type { PluginOption } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; -import unocss from '@unocss/vite'; -import progress from 'vite-plugin-progress'; import VueDevtools from 'vite-plugin-vue-devtools'; -import pageRoute from '@soybeanjs/vite-plugin-vue-page-route'; -import unplugin from './unplugin'; -import mock from './mock'; -import visualizer from './visualizer'; -import compress from './compress'; -import pwa from './pwa'; +import progress from 'vite-plugin-progress'; +import { setupElegantRouter } from './router'; +import { setupUnocss } from './unocss'; +import { setupUnplugin } from './unplugin'; -/** - * vite插件 - * @param viteEnv - 环境变量配置 - */ -export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] { - const plugins = [ +export function setupVitePlugins(viteEnv: Env.ImportMeta) { + const plugins: PluginOption = [ vue({ script: { defineModel: true @@ -24,24 +16,11 @@ export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | Plugin }), vueJsx(), VueDevtools(), - ...unplugin(viteEnv), - unocss(), - mock(viteEnv), + setupElegantRouter(), + setupUnocss(viteEnv), + ...setupUnplugin(viteEnv), progress() ]; - if (viteEnv.VITE_VISUALIZER === 'Y') { - plugins.push(visualizer as PluginOption); - } - if (viteEnv.VITE_COMPRESS === 'Y') { - plugins.push(compress(viteEnv)); - } - if (viteEnv.VITE_PWA === 'Y' || viteEnv.VITE_VERCEL === 'Y') { - plugins.push(pwa()); - } - if (viteEnv.VITE_SOYBEAN_ROUTE_PLUGIN === 'Y') { - plugins.push(pageRoute()); - } - return plugins; } diff --git a/build/plugins/mock.ts b/build/plugins/mock.ts deleted file mode 100644 index 7c8d8f52..00000000 --- a/build/plugins/mock.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { viteMockServe } from 'vite-plugin-mock'; - -export default (viteEnv: ImportMetaEnv) => { - const prodMock = viteEnv.VITE_PROD_MOCK === 'Y'; - - return viteMockServe({ - mockPath: 'mock', - prodEnabled: prodMock, - injectCode: ` - import { setupMockServer } from '../mock'; - setupMockServer(); - ` - }); -}; diff --git a/build/plugins/pwa.ts b/build/plugins/pwa.ts deleted file mode 100644 index 25c9f9b7..00000000 --- a/build/plugins/pwa.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { VitePWA } from 'vite-plugin-pwa'; - -export default function setupVitePwa() { - return VitePWA({ - registerType: 'autoUpdate', - includeAssets: ['favicon.ico'], - manifest: { - name: 'SoybeanAdmin', - short_name: 'SoybeanAdmin', - theme_color: '#fff', - icons: [ - { - src: '/logo.png', - sizes: '192x192', - type: 'image/png' - }, - { - src: '/logo.png', - sizes: '512x512', - type: 'image/png' - }, - { - src: '/logo.png', - sizes: '512x512', - type: 'image/png', - purpose: 'any maskable' - } - ] - } - }); -} diff --git a/build/plugins/router.ts b/build/plugins/router.ts new file mode 100644 index 00000000..3d6917e7 --- /dev/null +++ b/build/plugins/router.ts @@ -0,0 +1,41 @@ +import type { RouteMeta } from 'vue-router'; +import ElegantVueRouter from '@elegant-router/vue/vite'; +import type { RouteKey } from '@elegant-router/types'; + +export function setupElegantRouter() { + return ElegantVueRouter({ + layouts: { + base: 'src/layouts/base-layout/index.vue', + blank: 'src/layouts/blank-layout/index.vue' + }, + routePathTransformer(routeName, routePath) { + const key = routeName as RouteKey; + + if (key === 'login') { + const modules: UnionKey.LoginModule[] = ['pwd-login', 'code-login', 'register', 'reset-pwd', 'bind-wechat']; + + const moduleReg = modules.join('|'); + + return `/login/:module(${moduleReg})?`; + } + + return routePath; + }, + onRouteMetaGen(routeName) { + const key = routeName as RouteKey; + + const constantRoutes: RouteKey[] = ['login', '403', '404', '500']; + + const meta: Partial = { + title: key, + i18nKey: `route.${key}` as App.I18n.I18nKey + }; + + if (constantRoutes.includes(key)) { + meta.constant = true; + } + + return meta; + } + }); +} diff --git a/build/plugins/unocss.ts b/build/plugins/unocss.ts new file mode 100644 index 00000000..a81a210d --- /dev/null +++ b/build/plugins/unocss.ts @@ -0,0 +1,33 @@ +import path from 'node:path'; +import unocss from '@unocss/vite'; +import presetIcons from '@unocss/preset-icons'; +import { FileSystemIconLoader } from '@iconify/utils/lib/loader/node-loaders'; + +export function setupUnocss(viteEnv: Env.ImportMeta) { + const { VITE_ICON_PREFIX, VITE_ICON_LOCAL_PREFIX } = viteEnv; + + const localIconPath = path.join(process.cwd(), 'src/assets/svg-icon'); + + /** + * the name of the local icon collection + */ + const collectionName = VITE_ICON_LOCAL_PREFIX.replace(`${VITE_ICON_PREFIX}-`, ''); + + return unocss({ + presets: [ + presetIcons({ + prefix: `${VITE_ICON_PREFIX}-`, + scale: 1, + extraProperties: { + display: 'inline-block' + }, + collections: { + [collectionName]: FileSystemIconLoader(localIconPath, svg => + svg.replace(/^ - + - - - - - %VITE_APP_NAME% - - -
-
-
- - + + + + + %VITE_APP_TITLE% + + +
+
+
+ + diff --git a/mock/api/auth.ts b/mock/api/auth.ts deleted file mode 100644 index 8435b747..00000000 --- a/mock/api/auth.ts +++ /dev/null @@ -1,128 +0,0 @@ -import type { MockMethod } from 'vite-plugin-mock'; -import { userModel } from '../model'; - -/** 参数错误的状态码 */ -const ERROR_PARAM_CODE = 10000; - -const ERROR_PARAM_MSG = '参数校验失败!'; - -const apis: MockMethod[] = [ - // 获取验证码 - { - url: '/mock/getSmsCode', - method: 'post', - response: (): Service.MockServiceResult => { - return { - code: 200, - message: 'ok', - data: true - }; - } - }, - // 用户+密码 登录 - { - url: '/mock/login', - method: 'post', - response: (options: Service.MockOption): Service.MockServiceResult => { - const { userName = undefined, password = undefined } = options.body; - - if (!userName || !password) { - return { - code: ERROR_PARAM_CODE, - message: ERROR_PARAM_MSG, - data: null - }; - } - - const findItem = userModel.find(item => item.userName === userName && item.password === password); - - if (findItem) { - return { - code: 200, - message: 'ok', - data: { - token: findItem.token, - refreshToken: findItem.refreshToken - } - }; - } - return { - code: 1000, - message: '用户名或密码错误!', - data: null - }; - } - }, - // 获取用户信息(请求头携带token, 根据token获取用户信息) - { - url: '/mock/getUserInfo', - method: 'get', - response: (options: Service.MockOption): Service.MockServiceResult => { - // 这里的mock插件得到的字段是authorization, 前端传递的是Authorization字段 - const { authorization = '' } = options.headers; - const REFRESH_TOKEN_CODE = 66666; - - if (!authorization) { - return { - code: REFRESH_TOKEN_CODE, - message: '用户已失效或不存在!', - data: null - }; - } - const userInfo: Auth.UserInfo = { - userId: '', - userName: '', - userRole: 'user' - }; - const isInUser = userModel.some(item => { - const flag = item.token === authorization; - if (flag) { - const { userId: itemUserId, userName, userRole } = item; - Object.assign(userInfo, { userId: itemUserId, userName, userRole }); - } - return flag; - }); - - if (isInUser) { - return { - code: 200, - message: 'ok', - data: userInfo - }; - } - - return { - code: REFRESH_TOKEN_CODE, - message: '用户信息异常!', - data: null - }; - } - }, - { - url: '/mock/updateToken', - method: 'post', - response: (options: Service.MockOption): Service.MockServiceResult => { - const { refreshToken = '' } = options.body; - - const findItem = userModel.find(item => item.refreshToken === refreshToken); - - if (findItem) { - return { - code: 200, - message: 'ok', - data: { - token: findItem.token, - refreshToken: findItem.refreshToken - } - }; - } - return { - code: 3000, - message: '用户已失效或不存在!', - data: null - }; - } - } -]; - -export default apis; diff --git a/mock/api/index.ts b/mock/api/index.ts deleted file mode 100644 index 32a3dcce..00000000 --- a/mock/api/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import auth from './auth'; -import route from './route'; -import management from './management'; - -export default [...auth, ...route, ...management]; diff --git a/mock/api/management.ts b/mock/api/management.ts deleted file mode 100644 index 189b93d9..00000000 --- a/mock/api/management.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { mock } from 'mockjs'; -import type { MockMethod } from 'vite-plugin-mock'; - -const apis: MockMethod[] = [ - { - url: '/mock/getAllUserList', - method: 'post', - response: (): Service.MockServiceResult => { - const data = mock({ - 'list|1000': [ - { - id: '@id', - userName: '@cname', - 'age|18-56': 56, - 'gender|1': ['0', '1', null], - phone: - /^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/, - 'email|1': ['@email("qq.com")', null], - 'userStatus|1': ['1', '2', '3', '4', null] - } - ] - }); - - return { - code: 200, - message: 'ok', - data: data.list - }; - } - } -]; - -export default apis; diff --git a/mock/api/route.ts b/mock/api/route.ts deleted file mode 100644 index ded8a577..00000000 --- a/mock/api/route.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { MockMethod } from 'vite-plugin-mock'; -import { routeModel, userModel } from '../model'; - -const apis: MockMethod[] = [ - { - url: '/mock/getUserRoutes', - method: 'post', - response: (options: Service.MockOption): Service.MockServiceResult => { - const { userId = undefined } = options.body; - - const routeHomeName: AuthRoute.LastDegreeRouteKey = 'dashboard_analysis'; - - const role = userModel.find(item => item.userId === userId)?.userRole || 'user'; - - const filterRoutes = routeModel[role]; - - return { - code: 200, - message: 'ok', - data: { - routes: filterRoutes, - home: routeHomeName - } - }; - } - } -]; - -export default apis; diff --git a/mock/index.ts b/mock/index.ts deleted file mode 100644 index 9c264fd2..00000000 --- a/mock/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; -import api from './api'; - -export function setupMockServer() { - createProdMockServer(api); -} diff --git a/mock/model/auth.ts b/mock/model/auth.ts deleted file mode 100644 index eb72554a..00000000 --- a/mock/model/auth.ts +++ /dev/null @@ -1,40 +0,0 @@ -interface UserModel extends Auth.UserInfo { - token: string; - refreshToken: string; - password: string; -} - -export const userModel: UserModel[] = [ - { - token: '__TOKEN_SOYBEAN__', - refreshToken: '__REFRESH_TOKEN_SOYBEAN__', - userId: '0', - userName: 'Soybean', - userRole: 'super', - password: 'soybean123' - }, - { - token: '__TOKEN_SUPER__', - refreshToken: '__REFRESH_TOKEN_SUPER__', - userId: '1', - userName: 'Super', - userRole: 'super', - password: 'super123' - }, - { - token: '__TOKEN_ADMIN__', - refreshToken: '__REFRESH_TOKEN_ADMIN__', - userId: '2', - userName: 'Admin', - userRole: 'admin', - password: 'admin123' - }, - { - token: '__TOKEN_USER01__', - refreshToken: '__REFRESH_TOKEN_USER01__', - userId: '3', - userName: 'User01', - userRole: 'user', - password: 'user01123' - } -]; diff --git a/mock/model/index.ts b/mock/model/index.ts deleted file mode 100644 index 89f4e581..00000000 --- a/mock/model/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './auth'; -export * from './route'; diff --git a/mock/model/route.ts b/mock/model/route.ts deleted file mode 100644 index bc927d93..00000000 --- a/mock/model/route.ts +++ /dev/null @@ -1,1263 +0,0 @@ -export const routeModel: Record = { - super: [ - { - name: 'dashboard', - path: '/dashboard', - component: 'basic', - children: [ - { - name: 'dashboard_analysis', - path: '/dashboard/analysis', - component: 'self', - meta: { - title: '分析页', - requiresAuth: true, - icon: 'icon-park-outline:analysis', - i18nTitle: 'routes.dashboard.analysis' - } - }, - { - name: 'dashboard_workbench', - path: '/dashboard/workbench', - component: 'self', - meta: { - title: '工作台', - requiresAuth: true, - icon: 'icon-park-outline:workbench', - i18nTitle: 'routes.dashboard.workbench' - } - } - ], - meta: { - title: '仪表盘', - icon: 'mdi:monitor-dashboard', - order: 1, - i18nTitle: 'routes.dashboard._value' - } - }, - { - name: 'document', - path: '/document', - component: 'basic', - children: [ - { - name: 'document_vue', - path: '/document/vue', - component: 'self', - meta: { - title: 'vue文档', - i18nTitle: 'routes.document.vue', - requiresAuth: true, - icon: 'logos:vue' - } - }, - { - name: 'document_vite', - path: '/document/vite', - component: 'self', - meta: { - title: 'vite文档', - i18nTitle: 'routes.document.vite', - requiresAuth: true, - icon: 'logos:vitejs' - } - }, - { - name: 'document_naive', - path: '/document/naive', - component: 'self', - meta: { - title: 'naive文档', - i18nTitle: 'routes.document.naive', - requiresAuth: true, - icon: 'logos:naiveui' - } - }, - { - name: 'document_project', - path: '/document/project', - component: 'self', - meta: { - title: '项目文档', - i18nTitle: 'routes.document.project', - requiresAuth: true, - localIcon: 'logo' - } - }, - { - name: 'document_project-link', - path: '/document/project-link', - meta: { - title: '项目文档(外链)', - i18nTitle: 'routes.document.project-link', - requiresAuth: true, - localIcon: 'logo', - href: 'https://admin-docs.soybeanjs.cn/' - } - } - ], - meta: { - title: '文档', - i18nTitle: 'routes.document._value', - icon: 'mdi:file-document-multiple-outline', - order: 2 - } - }, - { - name: 'component', - path: '/component', - component: 'basic', - children: [ - { - name: 'component_button', - path: '/component/button', - component: 'self', - meta: { - title: '按钮', - i18nTitle: 'routes.component.button', - requiresAuth: true, - icon: 'mdi:button-cursor' - } - }, - { - name: 'component_card', - path: '/component/card', - component: 'self', - meta: { - title: '卡片', - i18nTitle: 'routes.component.card', - requiresAuth: true, - icon: 'mdi:card-outline' - } - }, - { - name: 'component_table', - path: '/component/table', - component: 'self', - meta: { - title: '表格', - i18nTitle: 'routes.component.table', - requiresAuth: true, - icon: 'mdi:table-large' - } - } - ], - meta: { - title: '组件示例', - i18nTitle: 'routes.component._value', - icon: 'cib:app-store', - order: 3 - } - }, - { - name: 'plugin', - path: '/plugin', - component: 'basic', - children: [ - { - name: 'plugin_charts', - path: '/plugin/charts', - component: 'multi', - children: [ - { - name: 'plugin_charts_echarts', - path: '/plugin/charts/echarts', - component: 'self', - meta: { - title: 'ECharts', - i18nTitle: 'routes.plugin.charts.echarts', - requiresAuth: true, - icon: 'simple-icons:apacheecharts' - } - }, - { - name: 'plugin_charts_antv', - path: '/plugin/charts/antv', - component: 'self', - meta: { - title: 'AntV', - i18nTitle: 'routes.plugin.charts.antv', - requiresAuth: true, - icon: 'simple-icons:antdesign' - } - } - ], - meta: { - title: '图表', - i18nTitle: 'routes.plugin.charts._value', - icon: 'mdi:chart-areaspline' - } - }, - { - name: 'plugin_map', - path: '/plugin/map', - component: 'self', - meta: { - title: '地图', - i18nTitle: 'routes.plugin.map', - requiresAuth: true, - icon: 'mdi:map' - } - }, - { - name: 'plugin_video', - path: '/plugin/video', - component: 'self', - meta: { - title: '视频', - i18nTitle: 'routes.plugin.video', - requiresAuth: true, - icon: 'mdi:video' - } - }, - { - name: 'plugin_editor', - path: '/plugin/editor', - component: 'multi', - children: [ - { - name: 'plugin_editor_quill', - path: '/plugin/editor/quill', - component: 'self', - meta: { - title: '富文本编辑器', - i18nTitle: 'routes.plugin.editor.quill', - requiresAuth: true, - icon: 'mdi:file-document-edit-outline' - } - }, - { - name: 'plugin_editor_markdown', - path: '/plugin/editor/markdown', - component: 'self', - meta: { - title: 'markdown编辑器', - i18nTitle: 'routes.plugin.editor.markdown', - requiresAuth: true, - icon: 'ri:markdown-line' - } - } - ], - meta: { - title: '编辑器', - i18nTitle: 'routes.plugin.editor._value', - icon: 'icon-park-outline:editor' - } - }, - { - name: 'plugin_swiper', - path: '/plugin/swiper', - component: 'self', - meta: { - title: 'Swiper插件', - i18nTitle: 'routes.plugin.swiper', - requiresAuth: true, - icon: 'simple-icons:swiper' - } - }, - { - name: 'plugin_copy', - path: '/plugin/copy', - component: 'self', - meta: { - title: '剪贴板', - i18nTitle: 'routes.plugin.copy', - requiresAuth: true, - icon: 'mdi:clipboard-outline' - } - }, - { - name: 'plugin_icon', - path: '/plugin/icon', - component: 'self', - meta: { - title: '图标', - i18nTitle: 'routes.plugin.icon', - requiresAuth: true, - localIcon: 'custom-icon' - } - }, - { - name: 'plugin_print', - path: '/plugin/print', - component: 'self', - meta: { - title: '打印', - i18nTitle: 'routes.plugin.print', - requiresAuth: true, - icon: 'mdi:printer' - } - } - ], - meta: { - title: '插件示例', - i18nTitle: 'routes.plugin._value', - icon: 'clarity:plugin-line', - order: 4 - } - }, - { - name: 'auth-demo', - path: '/auth-demo', - component: 'basic', - children: [ - { - name: 'auth-demo_permission', - path: '/auth-demo/permission', - component: 'self', - meta: { - title: '权限切换', - i18nTitle: 'routes.auth-demo.permission', - requiresAuth: true, - icon: 'ic:round-construction' - } - }, - { - name: 'auth-demo_super', - path: '/auth-demo/super', - component: 'self', - meta: { - title: '超级管理员可见', - i18nTitle: 'routes.auth-demo.super', - requiresAuth: true, - icon: 'ic:round-supervisor-account' - } - } - ], - meta: { - title: '权限示例', - i18nTitle: 'routes.auth-demo._value', - icon: 'ic:baseline-security', - order: 5 - } - }, - { - name: 'function', - path: '/function', - component: 'basic', - children: [ - { - name: 'function_tab', - path: '/function/tab', - component: 'self', - meta: { - title: 'Tab', - i18nTitle: 'routes.function.tab', - requiresAuth: true, - icon: 'ic:round-tab' - } - }, - { - name: 'function_tab-detail', - path: '/function/tab-detail', - component: 'self', - meta: { - title: 'Tab Detail', - requiresAuth: true, - hide: true, - activeMenu: 'function_tab', - icon: 'ic:round-tab' - } - }, - { - name: 'function_tab-multi-detail', - path: '/function/tab-multi-detail', - component: 'self', - meta: { - title: 'Tab Multi Detail', - requiresAuth: true, - hide: true, - multiTab: true, - activeMenu: 'function_tab', - icon: 'ic:round-tab' - } - } - ], - meta: { - title: '功能', - i18nTitle: 'routes.function._value', - icon: 'icon-park-outline:all-application', - order: 6 - } - }, - { - name: 'exception', - path: '/exception', - component: 'basic', - children: [ - { - name: 'exception_403', - path: '/exception/403', - component: 'self', - meta: { - title: '异常页403', - i18nTitle: 'routes.exception.403', - requiresAuth: true, - icon: 'ic:baseline-block' - } - }, - { - name: 'exception_404', - path: '/exception/404', - component: 'self', - meta: { - title: '异常页404', - i18nTitle: 'routes.exception.404', - requiresAuth: true, - icon: 'ic:baseline-web-asset-off' - } - }, - { - name: 'exception_500', - path: '/exception/500', - component: 'self', - meta: { - title: '异常页500', - i18nTitle: 'routes.exception.500', - requiresAuth: true, - icon: 'ic:baseline-wifi-off' - } - } - ], - meta: { - i18nTitle: 'routes.exception._value', - title: '异常页', - icon: 'ant-design:exception-outlined', - order: 7 - } - }, - { - name: 'multi-menu', - path: '/multi-menu', - component: 'basic', - children: [ - { - name: 'multi-menu_first', - path: '/multi-menu/first', - component: 'multi', - children: [ - { - name: 'multi-menu_first_second', - path: '/multi-menu/first/second', - component: 'self', - meta: { - title: '二级菜单', - i18nTitle: 'routes.multi-menu.first.second', - requiresAuth: true, - icon: 'mdi:menu' - } - }, - { - name: 'multi-menu_first_second-new', - path: '/multi-menu/first/second-new', - component: 'multi', - children: [ - { - name: 'multi-menu_first_second-new_third', - path: '/multi-menu/first/second-new/third', - component: 'self', - meta: { - title: '三级菜单', - i18nTitle: 'routes.multi-menu.first.second-new.third', - requiresAuth: true, - icon: 'mdi:menu' - } - } - ], - meta: { - title: '二级菜单(有子菜单)', - i18nTitle: 'routes.multi-menu.first.second-new._value', - icon: 'mdi:menu' - } - } - ], - meta: { - title: '一级菜单', - i18nTitle: 'routes.multi-menu.first._value', - icon: 'mdi:menu' - } - } - ], - meta: { - title: '多级菜单', - i18nTitle: 'routes.multi-menu._value', - icon: 'carbon:menu', - order: 8 - } - }, - { - name: 'management', - path: '/management', - component: 'basic', - children: [ - { - name: 'management_auth', - path: '/management/auth', - component: 'self', - meta: { - title: '权限管理', - i18nTitle: 'routes.management.auth', - requiresAuth: true, - icon: 'ic:baseline-security' - } - }, - { - name: 'management_role', - path: '/management/role', - component: 'self', - meta: { - title: '角色管理', - i18nTitle: 'routes.management.role', - requiresAuth: true, - icon: 'carbon:user-role' - } - }, - { - name: 'management_user', - path: '/management/user', - component: 'self', - meta: { - title: '用户管理', - i18nTitle: 'routes.management.user', - requiresAuth: true, - icon: 'ic:round-manage-accounts' - } - }, - { - name: 'management_route', - path: '/management/route', - component: 'self', - meta: { - title: '路由管理', - i18nTitle: 'routes.management.route', - requiresAuth: true, - icon: 'material-symbols:route' - } - } - ], - meta: { - title: '系统管理', - i18nTitle: 'routes.management._value', - icon: 'carbon:cloud-service-management', - order: 9 - } - }, - { - name: 'about', - path: '/about', - component: 'self', - meta: { - title: '关于', - i18nTitle: 'routes.about', - requiresAuth: true, - keepAlive: true, - singleLayout: 'basic', - icon: 'fluent:book-information-24-regular', - order: 10 - } - } - ], - admin: [ - { - name: 'dashboard', - path: '/dashboard', - component: 'basic', - children: [ - { - name: 'dashboard_analysis', - path: '/dashboard/analysis', - component: 'self', - meta: { - title: '分析页', - requiresAuth: true, - icon: 'icon-park-outline:analysis', - i18nTitle: 'routes.dashboard.analysis' - } - }, - { - name: 'dashboard_workbench', - path: '/dashboard/workbench', - component: 'self', - meta: { - title: '工作台', - requiresAuth: true, - icon: 'icon-park-outline:workbench', - i18nTitle: 'routes.dashboard.workbench' - } - } - ], - meta: { - title: '仪表盘', - icon: 'mdi:monitor-dashboard', - order: 1, - i18nTitle: 'routes.dashboard._value' - } - }, - { - name: 'document', - path: '/document', - component: 'basic', - children: [ - { - name: 'document_vue', - path: '/document/vue', - component: 'self', - meta: { - title: 'vue文档', - i18nTitle: 'routes.document.vue', - requiresAuth: true, - icon: 'logos:vue' - } - }, - { - name: 'document_vite', - path: '/document/vite', - component: 'self', - meta: { - title: 'vite文档', - i18nTitle: 'routes.document.vite', - requiresAuth: true, - icon: 'logos:vitejs' - } - }, - { - name: 'document_naive', - path: '/document/naive', - component: 'self', - meta: { - title: 'naive文档', - i18nTitle: 'routes.document.naive', - requiresAuth: true, - icon: 'logos:naiveui' - } - }, - { - name: 'document_project', - path: '/document/project', - component: 'self', - meta: { - title: '项目文档', - i18nTitle: 'routes.document.project', - requiresAuth: true, - localIcon: 'logo' - } - }, - { - name: 'document_project-link', - path: '/document/project-link', - meta: { - title: '项目文档(外链)', - i18nTitle: 'routes.document.project-link', - requiresAuth: true, - localIcon: 'logo', - href: 'https://admin-docs.soybeanjs.cn/' - } - } - ], - meta: { - title: '文档', - i18nTitle: 'routes.document._value', - icon: 'mdi:file-document-multiple-outline', - order: 2 - } - }, - { - name: 'component', - path: '/component', - component: 'basic', - children: [ - { - name: 'component_button', - path: '/component/button', - component: 'self', - meta: { - title: '按钮', - i18nTitle: 'routes.component.button', - requiresAuth: true, - icon: 'mdi:button-cursor' - } - }, - { - name: 'component_card', - path: '/component/card', - component: 'self', - meta: { - title: '卡片', - i18nTitle: 'routes.component.card', - requiresAuth: true, - icon: 'mdi:card-outline' - } - }, - { - name: 'component_table', - path: '/component/table', - component: 'self', - meta: { - title: '表格', - i18nTitle: 'routes.component.table', - requiresAuth: true, - icon: 'mdi:table-large' - } - } - ], - meta: { - title: '组件示例', - i18nTitle: 'routes.component._value', - icon: 'cib:app-store', - order: 3 - } - }, - { - name: 'plugin', - path: '/plugin', - component: 'basic', - children: [ - { - name: 'plugin_charts', - path: '/plugin/charts', - component: 'multi', - children: [ - { - name: 'plugin_charts_echarts', - path: '/plugin/charts/echarts', - component: 'self', - meta: { - title: 'ECharts', - i18nTitle: 'routes.plugin.charts.echarts', - requiresAuth: true, - icon: 'simple-icons:apacheecharts' - } - }, - { - name: 'plugin_charts_antv', - path: '/plugin/charts/antv', - component: 'self', - meta: { - title: 'AntV', - i18nTitle: 'routes.plugin.charts.antv', - requiresAuth: true, - icon: 'simple-icons:antdesign' - } - } - ], - meta: { - title: '图表', - i18nTitle: 'routes.plugin.charts._value', - icon: 'mdi:chart-areaspline' - } - }, - { - name: 'plugin_map', - path: '/plugin/map', - component: 'self', - meta: { - title: '地图', - i18nTitle: 'routes.plugin.map', - requiresAuth: true, - icon: 'mdi:map' - } - }, - { - name: 'plugin_video', - path: '/plugin/video', - component: 'self', - meta: { - title: '视频', - i18nTitle: 'routes.plugin.video', - requiresAuth: true, - icon: 'mdi:video' - } - }, - { - name: 'plugin_editor', - path: '/plugin/editor', - component: 'multi', - children: [ - { - name: 'plugin_editor_quill', - path: '/plugin/editor/quill', - component: 'self', - meta: { - title: '富文本编辑器', - i18nTitle: 'routes.plugin.editor.quill', - requiresAuth: true, - icon: 'mdi:file-document-edit-outline' - } - }, - { - name: 'plugin_editor_markdown', - path: '/plugin/editor/markdown', - component: 'self', - meta: { - title: 'markdown编辑器', - i18nTitle: 'routes.plugin.editor.markdown', - requiresAuth: true, - icon: 'ri:markdown-line' - } - } - ], - meta: { - title: '编辑器', - i18nTitle: 'routes.plugin.editor._value', - icon: 'icon-park-outline:editor' - } - }, - { - name: 'plugin_swiper', - path: '/plugin/swiper', - component: 'self', - meta: { - title: 'Swiper插件', - i18nTitle: 'routes.plugin.swiper', - requiresAuth: true, - icon: 'simple-icons:swiper' - } - }, - { - name: 'plugin_copy', - path: '/plugin/copy', - component: 'self', - meta: { - title: '剪贴板', - i18nTitle: 'routes.plugin.copy', - requiresAuth: true, - icon: 'mdi:clipboard-outline' - } - }, - { - name: 'plugin_icon', - path: '/plugin/icon', - component: 'self', - meta: { - title: '图标', - i18nTitle: 'routes.plugin.icon', - requiresAuth: true, - localIcon: 'custom-icon' - } - }, - { - name: 'plugin_print', - path: '/plugin/print', - component: 'self', - meta: { - title: '打印', - i18nTitle: 'routes.plugin.print', - requiresAuth: true, - icon: 'mdi:printer' - } - } - ], - meta: { - title: '插件示例', - i18nTitle: 'routes.plugin._value', - icon: 'clarity:plugin-line', - order: 4 - } - }, - { - name: 'auth-demo', - path: '/auth-demo', - component: 'basic', - children: [ - { - name: 'auth-demo_permission', - path: '/auth-demo/permission', - component: 'self', - meta: { - title: '权限切换', - i18nTitle: 'routes.auth-demo.permission', - requiresAuth: true, - icon: 'ic:round-construction' - } - }, - { - name: 'auth-demo_super', - path: '/auth-demo/super', - component: 'self', - meta: { - title: '超级管理员可见', - i18nTitle: 'routes.auth-demo.super', - requiresAuth: true, - icon: 'ic:round-supervisor-account' - } - } - ], - meta: { - title: '权限示例', - i18nTitle: 'routes.auth-demo._value', - icon: 'ic:baseline-security', - order: 5 - } - }, - { - name: 'function', - path: '/function', - component: 'basic', - children: [ - { - name: 'function_tab', - path: '/function/tab', - component: 'self', - meta: { - title: 'Tab', - i18nTitle: 'routes.function.tab', - requiresAuth: true, - icon: 'ic:round-tab' - } - }, - { - name: 'function_tab-detail', - path: '/function/tab-detail', - component: 'self', - meta: { - title: 'Tab Detail', - requiresAuth: true, - hide: true, - activeMenu: 'function_tab', - icon: 'ic:round-tab' - } - }, - { - name: 'function_tab-multi-detail', - path: '/function/tab-multi-detail', - component: 'self', - meta: { - title: 'Tab Multi Detail', - requiresAuth: true, - hide: true, - multiTab: true, - activeMenu: 'function_tab', - icon: 'ic:round-tab' - } - } - ], - meta: { - title: '功能', - i18nTitle: 'routes.function._value', - icon: 'icon-park-outline:all-application', - order: 6 - } - }, - { - name: 'exception', - path: '/exception', - component: 'basic', - children: [ - { - name: 'exception_403', - path: '/exception/403', - component: 'self', - meta: { - title: '异常页403', - i18nTitle: 'routes.exception.403', - requiresAuth: true, - icon: 'ic:baseline-block' - } - }, - { - name: 'exception_404', - path: '/exception/404', - component: 'self', - meta: { - title: '异常页404', - i18nTitle: 'routes.exception.404', - requiresAuth: true, - icon: 'ic:baseline-web-asset-off' - } - }, - { - name: 'exception_500', - path: '/exception/500', - component: 'self', - meta: { - title: '异常页500', - i18nTitle: 'routes.exception.500', - requiresAuth: true, - icon: 'ic:baseline-wifi-off' - } - } - ], - meta: { - i18nTitle: 'routes.exception._value', - title: '异常页', - icon: 'ant-design:exception-outlined', - order: 7 - } - }, - { - name: 'multi-menu', - path: '/multi-menu', - component: 'basic', - children: [ - { - name: 'multi-menu_first', - path: '/multi-menu/first', - component: 'multi', - children: [ - { - name: 'multi-menu_first_second', - path: '/multi-menu/first/second', - component: 'self', - meta: { - title: '二级菜单', - i18nTitle: 'routes.multi-menu.first.second', - requiresAuth: true, - icon: 'mdi:menu' - } - }, - { - name: 'multi-menu_first_second-new', - path: '/multi-menu/first/second-new', - component: 'multi', - children: [ - { - name: 'multi-menu_first_second-new_third', - path: '/multi-menu/first/second-new/third', - component: 'self', - meta: { - title: '三级菜单', - i18nTitle: 'routes.multi-menu.first.second-new.third', - requiresAuth: true, - icon: 'mdi:menu' - } - } - ], - meta: { - title: '二级菜单(有子菜单)', - i18nTitle: 'routes.multi-menu.first.second-new._value', - icon: 'mdi:menu' - } - } - ], - meta: { - title: '一级菜单', - i18nTitle: 'routes.multi-menu.first._value', - icon: 'mdi:menu' - } - } - ], - meta: { - title: '多级菜单', - i18nTitle: 'routes.multi-menu._value', - icon: 'carbon:menu', - order: 8 - } - }, - { - name: 'management', - path: '/management', - component: 'basic', - children: [ - { - name: 'management_auth', - path: '/management/auth', - component: 'self', - meta: { - title: '权限管理', - i18nTitle: 'routes.management.auth', - requiresAuth: true, - icon: 'ic:baseline-security' - } - }, - { - name: 'management_role', - path: '/management/role', - component: 'self', - meta: { - title: '角色管理', - i18nTitle: 'routes.management.role', - requiresAuth: true, - icon: 'carbon:user-role' - } - }, - { - name: 'management_user', - path: '/management/user', - component: 'self', - meta: { - title: '用户管理', - i18nTitle: 'routes.management.user', - requiresAuth: true, - icon: 'ic:round-manage-accounts' - } - }, - { - name: 'management_route', - path: '/management/route', - component: 'self', - meta: { - title: '路由管理', - i18nTitle: 'routes.management.route', - requiresAuth: true, - icon: 'material-symbols:route' - } - } - ], - meta: { - title: '系统管理', - i18nTitle: 'routes.management._value', - icon: 'carbon:cloud-service-management', - order: 9 - } - }, - { - name: 'about', - path: '/about', - component: 'self', - meta: { - title: '关于', - i18nTitle: 'routes.about', - requiresAuth: true, - keepAlive: true, - singleLayout: 'basic', - icon: 'fluent:book-information-24-regular', - order: 10 - } - } - ], - user: [ - { - name: 'dashboard', - path: '/dashboard', - component: 'basic', - children: [ - { - name: 'dashboard_analysis', - path: '/dashboard/analysis', - component: 'self', - meta: { - title: '分析页', - requiresAuth: true, - icon: 'icon-park-outline:analysis', - i18nTitle: 'routes.dashboard.analysis' - } - }, - { - name: 'dashboard_workbench', - path: '/dashboard/workbench', - component: 'self', - meta: { - title: '工作台', - requiresAuth: true, - icon: 'icon-park-outline:workbench', - i18nTitle: 'routes.dashboard.workbench' - } - } - ], - meta: { - title: '仪表盘', - icon: 'mdi:monitor-dashboard', - order: 1, - i18nTitle: 'routes.dashboard._value' - } - }, - { - name: 'auth-demo', - path: '/auth-demo', - component: 'basic', - children: [ - { - name: 'auth-demo_permission', - path: '/auth-demo/permission', - component: 'self', - meta: { - title: '权限切换', - i18nTitle: 'routes.auth-demo.permission', - requiresAuth: true, - icon: 'ic:round-construction' - } - }, - { - name: 'auth-demo_super', - path: '/auth-demo/super', - component: 'self', - meta: { - title: '超级管理员可见', - i18nTitle: 'routes.auth-demo.super', - requiresAuth: true, - icon: 'ic:round-supervisor-account' - } - } - ], - meta: { - title: '权限示例', - i18nTitle: 'routes.auth-demo._value', - icon: 'ic:baseline-security', - order: 5 - } - }, - { - name: 'multi-menu', - path: '/multi-menu', - component: 'basic', - children: [ - { - name: 'multi-menu_first', - path: '/multi-menu/first', - component: 'multi', - children: [ - { - name: 'multi-menu_first_second', - path: '/multi-menu/first/second', - component: 'self', - meta: { - title: '二级菜单', - i18nTitle: 'routes.multi-menu.first.second', - requiresAuth: true, - icon: 'mdi:menu' - } - }, - { - name: 'multi-menu_first_second-new', - path: '/multi-menu/first/second-new', - component: 'multi', - children: [ - { - name: 'multi-menu_first_second-new_third', - path: '/multi-menu/first/second-new/third', - component: 'self', - meta: { - title: '三级菜单', - i18nTitle: 'routes.multi-menu.first.second-new.third', - requiresAuth: true, - icon: 'mdi:menu' - } - } - ], - meta: { - title: '二级菜单(有子菜单)', - i18nTitle: 'routes.multi-menu.first.second-new._value', - icon: 'mdi:menu' - } - } - ], - meta: { - title: '一级菜单', - i18nTitle: 'routes.multi-menu.first._value', - icon: 'mdi:menu' - } - } - ], - meta: { - title: '多级菜单', - i18nTitle: 'routes.multi-menu._value', - icon: 'carbon:menu', - order: 8 - } - }, - { - name: 'about', - path: '/about', - component: 'self', - meta: { - title: '关于', - i18nTitle: 'routes.about', - requiresAuth: true, - keepAlive: true, - singleLayout: 'basic', - icon: 'fluent:book-information-24-regular', - order: 10 - } - } - ] -}; diff --git a/package.json b/package.json index 289985f6..6c9b652d 100644 --- a/package.json +++ b/package.json @@ -1,134 +1,76 @@ { "name": "soybean-admin", - "version": "0.10.4", + "version": "1.0.0", "description": "A fresh and elegant admin template, based on Vue3、Vite3、TypeScript、NaiveUI and UnoCSS. 一个基于Vue3、Vite3、TypeScript、NaiveUI and UnoCSS的清新优雅的中后台模版。", "author": { "name": "Soybean", "email": "soybeanjs@outlook.com", "url": "https://github.com/soybeanjs" }, - "license": "MIT", - "homepage": "https://github.com/honghuangdc/soybean-admin", - "repository": { - "url": "https://github.com/honghuangdc/soybean-admin.git" - }, - "bugs": { - "url": "https://github.com/honghuangdc/soybean-admin/issues" - }, - "keywords": [ - "Vue", - "Vue3", - "admin", - "admin-template", - "vue-admin", - "vue-admin-template", - "Vite3", - "Vite", - "vite-admin", - "TypeScript", - "TS", - "NaiveUI", - "naive-ui", - "naive-admin", - "NaiveUI-Admin", - "naive-ui-admin", - "UnoCSS" - ], + "packageManager": "pnpm@8.10.2", "scripts": { - "dev": "cross-env VITE_SERVICE_ENV=dev vite", - "dev:test": "cross-env VITE_SERVICE_ENV=test vite", - "dev:prod": "cross-env VITE_SERVICE_ENV=prod vite", - "build": "npm run typecheck && cross-env VITE_SERVICE_ENV=prod vite build", - "build:dev": "npm run typecheck && cross-env VITE_SERVICE_ENV=dev vite build", - "build:test": "npm run typecheck && cross-env VITE_SERVICE_ENV=test vite build", - "build:vercel": "cross-env VITE_HASH_ROUTE=Y VITE_VERCEL=Y vite build", + "dev": "vite", + "build": "run-s typecheck build-only", "preview": "vite preview", + "build-only": "vite build", "typecheck": "vue-tsc --noEmit --skipLibCheck", "lint": "eslint . --fix", - "format": "soy prettier-write", - "commit": "soy git-commit", - "cleanup": "soy cleanup", - "update-pkg": "soy ncu", - "release": "soy release", - "tsx": "tsx", - "logo": "tsx ./scripts/logo.ts", - "prepare": "soy init-simple-git-hooks" + "format": "sa prettier-write", + "commit": "sa git-commit", + "cleanup": "sa cleanup", + "update-pkg": "sa update-pkg", + "prepare": "simple-git-hooks" }, "dependencies": { - "@antv/data-set": "0.11.8", - "@antv/g2": "4.2.10", "@better-scroll/core": "2.5.1", - "@soybeanjs/vue-materials": "0.2.0", - "@vueuse/core": "10.5.0", - "axios": "1.5.1", + "@iconify/vue": "4.1.1", + "@sa/color-palette": "workspace:*", + "@sa/hooks": "workspace:*", + "@sa/materials": "workspace:*", + "@sa/request": "workspace:*", + "@sa/utils": "workspace:*", + "@vueuse/core": "10.6.1", "clipboard": "2.0.11", - "colord": "2.9.3", - "crypto-js": "4.1.1", - "dayjs": "1.11.10", - "echarts": "5.4.3", - "form-data": "4.0.0", + "dayjs": "^1.11.10", "lodash-es": "4.17.21", - "naive-ui": "2.35.0", - "pinia": "2.1.6", - "print-js": "1.6.0", - "qs": "6.11.2", - "socket.io-client": "4.7.2", - "swiper": "10.3.1", - "ua-parser-js": "1.0.36", - "vditor": "3.9.6", - "vue": "3.3.4", - "vue-i18n": "9.5.0", - "vue-router": "4.2.5", - "vuedraggable": "4.1.0", - "wangeditor": "4.7.15", - "xgplayer": "3.0.9" + "naive-ui": "^2.35.0", + "nprogress": "0.2.0", + "pinia": "2.1.7", + "vue": "3.3.8", + "vue-i18n": "9.6.5", + "vue-router": "4.2.5" }, "devDependencies": { - "@amap/amap-jsapi-types": "0.0.13", - "@iconify/json": "2.2.128", - "@iconify/vue": "4.1.1", - "@soybeanjs/cli": "0.7.4", - "@soybeanjs/vite-plugin-vue-page-route": "0.0.10", - "@types/bmapgl": "0.0.7", - "@types/crypto-js": "4.1.2", - "@types/node": "20.8.4", - "@types/qs": "6.9.8", - "@types/ua-parser-js": "0.7.37", - "@unocss/preset-uno": "0.56.5", - "@unocss/transformer-directives": "0.56.5", - "@unocss/vite": "0.56.5", - "@vitejs/plugin-vue": "4.4.0", + "@elegant-router/vue": "0.3.0", + "@iconify/json": "2.2.142", + "@sa/scripts": "workspace:*", + "@sa/uno-preset": "workspace:*", + "@types/lodash-es": "4.17.11", + "@types/node": "20.9.0", + "@types/nprogress": "0.2.3", + "@unocss/preset-icons": "0.57.4", + "@unocss/preset-uno": "0.57.4", + "@unocss/transformer-directives": "0.57.4", + "@unocss/transformer-variant-group": "0.57.4", + "@unocss/vite": "0.57.4", + "@vitejs/plugin-vue": "4.4.1", "@vitejs/plugin-vue-jsx": "3.0.2", "cross-env": "7.0.3", - "eslint": "8.51.0", - "eslint-config-soybeanjs": "0.5.7", - "mockjs": "1.1.0", - "rollup-plugin-visualizer": "5.9.2", - "sass": "1.69.3", + "eslint-config-sa": "workspace:*", + "npm-run-all": "4.1.5", + "sass": "^1.69.5", "simple-git-hooks": "2.9.0", - "tsx": "3.13.0", "typescript": "5.2.2", - "unplugin-icons": "0.17.0", + "unplugin-icons": "0.17.4", "unplugin-vue-components": "0.25.2", - "vite": "4.4.11", - "vite-plugin-compression": "0.5.1", - "vite-plugin-mock": "2.9.8", + "vite": "4.5.0", "vite-plugin-progress": "0.0.7", - "vite-plugin-pwa": "0.16.5", "vite-plugin-svg-icons": "2.0.1", "vite-plugin-vue-devtools": "1.0.0-rc.5", - "vue-tsc": "1.8.19" - }, - "pnpm": { - "patchedDependencies": { - "mockjs@1.1.0": "patches/mockjs@1.1.0.patch" - } + "vue-tsc": "1.8.22" }, "simple-git-hooks": { - "commit-msg": "pnpm soy git-commit-verify", - "pre-commit": "pnpm typecheck && pnpm soy lint-staged" - }, - "soybean": { - "useSoybeanToken": true + "commit-msg": "pnpm sa git-commit-verify", + "pre-commit": "pnpm typecheck && pnpm sa lint-staged" } } diff --git a/packages/color-palette/package.json b/packages/color-palette/package.json new file mode 100644 index 00000000..eb467b5b --- /dev/null +++ b/packages/color-palette/package.json @@ -0,0 +1,17 @@ +{ + "name": "@sa/color-palette", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "./src/*" + ] + } + }, + "dependencies": { + "colord": "2.9.3" + } +} diff --git a/packages/color-palette/src/color.ts b/packages/color-palette/src/color.ts new file mode 100644 index 00000000..797148dd --- /dev/null +++ b/packages/color-palette/src/color.ts @@ -0,0 +1,29 @@ +import { colord, extend } from 'colord'; +import type { HslColor } from 'colord'; +import labPlugin from 'colord/plugins/lab'; + +extend([labPlugin]); + +export function isValidColor(color: string) { + return colord(color).isValid(); +} + +export function getHex(color: string) { + return colord(color).toHex(); +} + +export function getRgb(color: string) { + return colord(color).toRgb(); +} + +export function getHsl(color: string) { + return colord(color).toHsl(); +} + +export function getDeltaE(color1: string, color2: string) { + return colord(color1).delta(color2); +} + +export function transformHslToHex(color: HslColor) { + return colord(color).toHex(); +} diff --git a/packages/color-palette/src/index.ts b/packages/color-palette/src/index.ts new file mode 100644 index 00000000..22e2fa3f --- /dev/null +++ b/packages/color-palette/src/index.ts @@ -0,0 +1,56 @@ +import { getColorPaletteFamily } from './palette'; +import { getColorName } from './name'; +import type { ColorPalette, ColorPaletteNumber, ColorPaletteItem, ColorPaletteFamily } from './type'; +import defaultPalettes from './json/palette.json'; + +/** + * get color palette by provided color and color name + * @param color the provided color + * @param colorName color name + */ +export function getColorPalette(color: string, colorName: string) { + const colorPaletteFamily = getColorPaletteFamily(color, colorName); + + const colorMap = new Map(); + + colorPaletteFamily.palettes.forEach(palette => { + colorMap.set(palette.number, palette); + }); + + const mainColor = colorMap.get(500) as ColorPaletteItem; + const matchColor = colorPaletteFamily.palettes.find(palette => palette.hexcode === color) as ColorPaletteItem; + + const colorPalette: ColorPalette = { + ...colorPaletteFamily, + colorMap, + main: mainColor, + match: matchColor + }; + + return colorPalette; +} + +/** + * get color by color palette number + * @param color color + * @param num color palette number + * @return color hexcode + */ +export function getColorByColorPaletteNumber(color: string, num: ColorPaletteNumber) { + const colorPalette = getColorPalette(color, color); + + const colorItem = colorPalette.colorMap.get(num) as ColorPaletteItem; + + return colorItem.hexcode; +} + +export default getColorPalette; + +/** + * the builtin color palettes + */ +const colorPalettes = defaultPalettes as ColorPaletteFamily[]; + +export { getColorName, colorPalettes }; + +export type { ColorPalette, ColorPaletteNumber, ColorPaletteItem, ColorPaletteFamily }; diff --git a/packages/color-palette/src/json/color-name.json b/packages/color-palette/src/json/color-name.json new file mode 100644 index 00000000..82b27862 --- /dev/null +++ b/packages/color-palette/src/json/color-name.json @@ -0,0 +1,1568 @@ +[ + ["000000", "Black"], + ["000080", "Navy Blue"], + ["0000C8", "Dark Blue"], + ["0000FF", "Blue"], + ["000741", "Stratos"], + ["001B1C", "Swamp"], + ["002387", "Resolution Blue"], + ["002900", "Deep Fir"], + ["002E20", "Burnham"], + ["002FA7", "International Klein Blue"], + ["003153", "Prussian Blue"], + ["003366", "Midnight Blue"], + ["003399", "Smalt"], + ["003532", "Deep Teal"], + ["003E40", "Cyprus"], + ["004620", "Kaitoke Green"], + ["0047AB", "Cobalt"], + ["004816", "Crusoe"], + ["004950", "Sherpa Blue"], + ["0056A7", "Endeavour"], + ["00581A", "Camarone"], + ["0066CC", "Science Blue"], + ["0066FF", "Blue Ribbon"], + ["00755E", "Tropical Rain Forest"], + ["0076A3", "Allports"], + ["007BA7", "Deep Cerulean"], + ["007EC7", "Lochmara"], + ["007FFF", "Azure Radiance"], + ["008080", "Teal"], + ["0095B6", "Bondi Blue"], + ["009DC4", "Pacific Blue"], + ["00A693", "Persian Green"], + ["00A86B", "Jade"], + ["00CC99", "Caribbean Green"], + ["00CCCC", "Robin's Egg Blue"], + ["00FF00", "Green"], + ["00FF7F", "Spring Green"], + ["00FFFF", "Cyan / Aqua"], + ["010D1A", "Blue Charcoal"], + ["011635", "Midnight"], + ["011D13", "Holly"], + ["012731", "Daintree"], + ["01361C", "Cardin Green"], + ["01371A", "County Green"], + ["013E62", "Astronaut Blue"], + ["013F6A", "Regal Blue"], + ["014B43", "Aqua Deep"], + ["015E85", "Orient"], + ["016162", "Blue Stone"], + ["016D39", "Fun Green"], + ["01796F", "Pine Green"], + ["017987", "Blue Lagoon"], + ["01826B", "Deep Sea"], + ["01A368", "Green Haze"], + ["022D15", "English Holly"], + ["02402C", "Sherwood Green"], + ["02478E", "Congress Blue"], + ["024E46", "Evening Sea"], + ["026395", "Bahama Blue"], + ["02866F", "Observatory"], + ["02A4D3", "Cerulean"], + ["03163C", "Tangaroa"], + ["032B52", "Green Vogue"], + ["036A6E", "Mosque"], + ["041004", "Midnight Moss"], + ["041322", "Black Pearl"], + ["042E4C", "Blue Whale"], + ["044022", "Zuccini"], + ["044259", "Teal Blue"], + ["051040", "Deep Cove"], + ["051657", "Gulf Blue"], + ["055989", "Venice Blue"], + ["056F57", "Watercourse"], + ["062A78", "Catalina Blue"], + ["063537", "Tiber"], + ["069B81", "Gossamer"], + ["06A189", "Niagara"], + ["073A50", "Tarawera"], + ["080110", "Jaguar"], + ["081910", "Black Bean"], + ["082567", "Deep Sapphire"], + ["088370", "Elf Green"], + ["08E8DE", "Bright Turquoise"], + ["092256", "Downriver"], + ["09230F", "Palm Green"], + ["09255D", "Madison"], + ["093624", "Bottle Green"], + ["095859", "Deep Sea Green"], + ["097F4B", "Salem"], + ["0A001C", "Black Russian"], + ["0A480D", "Dark Fern"], + ["0A6906", "Japanese Laurel"], + ["0A6F75", "Atoll"], + ["0B0B0B", "Cod Gray"], + ["0B0F08", "Marshland"], + ["0B1107", "Gordons Green"], + ["0B1304", "Black Forest"], + ["0B6207", "San Felix"], + ["0BDA51", "Malachite"], + ["0C0B1D", "Ebony"], + ["0C0D0F", "Woodsmoke"], + ["0C1911", "Racing Green"], + ["0C7A79", "Surfie Green"], + ["0C8990", "Blue Chill"], + ["0D0332", "Black Rock"], + ["0D1117", "Bunker"], + ["0D1C19", "Aztec"], + ["0D2E1C", "Bush"], + ["0E0E18", "Cinder"], + ["0E2A30", "Firefly"], + ["0F2D9E", "Torea Bay"], + ["10121D", "Vulcan"], + ["101405", "Green Waterloo"], + ["105852", "Eden"], + ["110C6C", "Arapawa"], + ["120A8F", "Ultramarine"], + ["123447", "Elephant"], + ["126B40", "Jewel"], + ["130000", "Diesel"], + ["130A06", "Asphalt"], + ["13264D", "Blue Zodiac"], + ["134F19", "Parsley"], + ["140600", "Nero"], + ["1450AA", "Tory Blue"], + ["151F4C", "Bunting"], + ["1560BD", "Denim"], + ["15736B", "Genoa"], + ["161928", "Mirage"], + ["161D10", "Hunter Green"], + ["162A40", "Big Stone"], + ["163222", "Celtic"], + ["16322C", "Timber Green"], + ["163531", "Gable Green"], + ["171F04", "Pine Tree"], + ["175579", "Chathams Blue"], + ["182D09", "Deep Forest Green"], + ["18587A", "Blumine"], + ["19330E", "Palm Leaf"], + ["193751", "Nile Blue"], + ["1959A8", "Fun Blue"], + ["1A1A68", "Lucky Point"], + ["1AB385", "Mountain Meadow"], + ["1B0245", "Tolopea"], + ["1B1035", "Haiti"], + ["1B127B", "Deep Koamaru"], + ["1B1404", "Acadia"], + ["1B2F11", "Seaweed"], + ["1B3162", "Biscay"], + ["1B659D", "Matisse"], + ["1C1208", "Crowshead"], + ["1C1E13", "Rangoon Green"], + ["1C39BB", "Persian Blue"], + ["1C402E", "Everglade"], + ["1C7C7D", "Elm"], + ["1D6142", "Green Pea"], + ["1E0F04", "Creole"], + ["1E1609", "Karaka"], + ["1E1708", "El Paso"], + ["1E385B", "Cello"], + ["1E433C", "Te Papa Green"], + ["1E90FF", "Dodger Blue"], + ["1E9AB0", "Eastern Blue"], + ["1F120F", "Night Rider"], + ["1FC2C2", "Java"], + ["20208D", "Jacksons Purple"], + ["202E54", "Cloud Burst"], + ["204852", "Blue Dianne"], + ["211A0E", "Eternity"], + ["220878", "Deep Blue"], + ["228B22", "Forest Green"], + ["233418", "Mallard"], + ["240A40", "Violet"], + ["240C02", "Kilamanjaro"], + ["242A1D", "Log Cabin"], + ["242E16", "Black Olive"], + ["24500F", "Green House"], + ["251607", "Graphite"], + ["251706", "Cannon Black"], + ["251F4F", "Port Gore"], + ["25272C", "Shark"], + ["25311C", "Green Kelp"], + ["2596D1", "Curious Blue"], + ["260368", "Paua"], + ["26056A", "Paris M"], + ["261105", "Wood Bark"], + ["261414", "Gondola"], + ["262335", "Steel Gray"], + ["26283B", "Ebony Clay"], + ["273A81", "Bay of Many"], + ["27504B", "Plantation"], + ["278A5B", "Eucalyptus"], + ["281E15", "Oil"], + ["283A77", "Astronaut"], + ["286ACD", "Mariner"], + ["290C5E", "Violent Violet"], + ["292130", "Bastille"], + ["292319", "Zeus"], + ["292937", "Charade"], + ["297B9A", "Jelly Bean"], + ["29AB87", "Jungle Green"], + ["2A0359", "Cherry Pie"], + ["2A140E", "Coffee Bean"], + ["2A2630", "Baltic Sea"], + ["2A380B", "Turtle Green"], + ["2A52BE", "Cerulean Blue"], + ["2B0202", "Sepia Black"], + ["2B194F", "Valhalla"], + ["2B3228", "Heavy Metal"], + ["2C0E8C", "Blue Gem"], + ["2C1632", "Revolver"], + ["2C2133", "Bleached Cedar"], + ["2C8C84", "Lochinvar"], + ["2D2510", "Mikado"], + ["2D383A", "Outer Space"], + ["2D569B", "St Tropaz"], + ["2E0329", "Jacaranda"], + ["2E1905", "Jacko Bean"], + ["2E3222", "Rangitoto"], + ["2E3F62", "Rhino"], + ["2E8B57", "Sea Green"], + ["2EBFD4", "Scooter"], + ["2F270E", "Onion"], + ["2F3CB3", "Governor Bay"], + ["2F519E", "Sapphire"], + ["2F5A57", "Spectra"], + ["2F6168", "Casal"], + ["300529", "Melanzane"], + ["301F1E", "Cocoa Brown"], + ["302A0F", "Woodrush"], + ["304B6A", "San Juan"], + ["30D5C8", "Turquoise"], + ["311C17", "Eclipse"], + ["314459", "Pickled Bluewood"], + ["315BA1", "Azure"], + ["31728D", "Calypso"], + ["317D82", "Paradiso"], + ["32127A", "Persian Indigo"], + ["32293A", "Blackcurrant"], + ["323232", "Mine Shaft"], + ["325D52", "Stromboli"], + ["327C14", "Bilbao"], + ["327DA0", "Astral"], + ["33036B", "Christalle"], + ["33292F", "Thunder"], + ["33CC99", "Shamrock"], + ["341515", "Tamarind"], + ["350036", "Mardi Gras"], + ["350E42", "Valentino"], + ["350E57", "Jagger"], + ["353542", "Tuna"], + ["354E8C", "Chambray"], + ["363050", "Martinique"], + ["363534", "Tuatara"], + ["363C0D", "Waiouru"], + ["36747D", "Ming"], + ["368716", "La Palma"], + ["370202", "Chocolate"], + ["371D09", "Clinker"], + ["37290E", "Brown Tumbleweed"], + ["373021", "Birch"], + ["377475", "Oracle"], + ["380474", "Blue Diamond"], + ["381A51", "Grape"], + ["383533", "Dune"], + ["384555", "Oxford Blue"], + ["384910", "Clover"], + ["394851", "Limed Spruce"], + ["396413", "Dell"], + ["3A0020", "Toledo"], + ["3A2010", "Sambuca"], + ["3A2A6A", "Jacarta"], + ["3A686C", "William"], + ["3A6A47", "Killarney"], + ["3AB09E", "Keppel"], + ["3B000B", "Temptress"], + ["3B0910", "Aubergine"], + ["3B1F1F", "Jon"], + ["3B2820", "Treehouse"], + ["3B7A57", "Amazon"], + ["3B91B4", "Boston Blue"], + ["3C0878", "Windsor"], + ["3C1206", "Rebel"], + ["3C1F76", "Meteorite"], + ["3C2005", "Dark Ebony"], + ["3C3910", "Camouflage"], + ["3C4151", "Bright Gray"], + ["3C4443", "Cape Cod"], + ["3C493A", "Lunar Green"], + ["3D0C02", "Bean "], + ["3D2B1F", "Bistre"], + ["3D7D52", "Goblin"], + ["3E0480", "Kingfisher Daisy"], + ["3E1C14", "Cedar"], + ["3E2B23", "English Walnut"], + ["3E2C1C", "Black Marlin"], + ["3E3A44", "Ship Gray"], + ["3EABBF", "Pelorous"], + ["3F2109", "Bronze"], + ["3F2500", "Cola"], + ["3F3002", "Madras"], + ["3F307F", "Minsk"], + ["3F4C3A", "Cabbage Pont"], + ["3F583B", "Tom Thumb"], + ["3F5D53", "Mineral Green"], + ["3FC1AA", "Puerto Rico"], + ["3FFF00", "Harlequin"], + ["401801", "Brown Pod"], + ["40291D", "Cork"], + ["403B38", "Masala"], + ["403D19", "Thatch Green"], + ["405169", "Fiord"], + ["40826D", "Viridian"], + ["40A860", "Chateau Green"], + ["410056", "Ripe Plum"], + ["411F10", "Paco"], + ["412010", "Deep Oak"], + ["413C37", "Merlin"], + ["414257", "Gun Powder"], + ["414C7D", "East Bay"], + ["4169E1", "Royal Blue"], + ["41AA78", "Ocean Green"], + ["420303", "Burnt Maroon"], + ["423921", "Lisbon Brown"], + ["427977", "Faded Jade"], + ["431560", "Scarlet Gum"], + ["433120", "Iroko"], + ["433E37", "Armadillo"], + ["434C59", "River Bed"], + ["436A0D", "Green Leaf"], + ["44012D", "Barossa"], + ["441D00", "Morocco Brown"], + ["444954", "Mako"], + ["454936", "Kelp"], + ["456CAC", "San Marino"], + ["45B1E8", "Picton Blue"], + ["460B41", "Loulou"], + ["462425", "Crater Brown"], + ["465945", "Gray Asparagus"], + ["4682B4", "Steel Blue"], + ["480404", "Rustic Red"], + ["480607", "Bulgarian Rose"], + ["480656", "Clairvoyant"], + ["481C1C", "Cocoa Bean"], + ["483131", "Woody Brown"], + ["483C32", "Taupe"], + ["49170C", "Van Cleef"], + ["492615", "Brown Derby"], + ["49371B", "Metallic Bronze"], + ["495400", "Verdun Green"], + ["496679", "Blue Bayoux"], + ["497183", "Bismark"], + ["4A2A04", "Bracken"], + ["4A3004", "Deep Bronze"], + ["4A3C30", "Mondo"], + ["4A4244", "Tundora"], + ["4A444B", "Gravel"], + ["4A4E5A", "Trout"], + ["4B0082", "Pigment Indigo"], + ["4B5D52", "Nandor"], + ["4C3024", "Saddle"], + ["4C4F56", "Abbey"], + ["4D0135", "Blackberry"], + ["4D0A18", "Cab Sav"], + ["4D1E01", "Indian Tan"], + ["4D282D", "Cowboy"], + ["4D282E", "Livid Brown"], + ["4D3833", "Rock"], + ["4D3D14", "Punga"], + ["4D400F", "Bronzetone"], + ["4D5328", "Woodland"], + ["4E0606", "Mahogany"], + ["4E2A5A", "Bossanova"], + ["4E3B41", "Matterhorn"], + ["4E420C", "Bronze Olive"], + ["4E4562", "Mulled Wine"], + ["4E6649", "Axolotl"], + ["4E7F9E", "Wedgewood"], + ["4EABD1", "Shakespeare"], + ["4F1C70", "Honey Flower"], + ["4F2398", "Daisy Bush"], + ["4F69C6", "Indigo"], + ["4F7942", "Fern Green"], + ["4F9D5D", "Fruit Salad"], + ["4FA83D", "Apple"], + ["504351", "Mortar"], + ["507096", "Kashmir Blue"], + ["507672", "Cutty Sark"], + ["50C878", "Emerald"], + ["514649", "Emperor"], + ["516E3D", "Chalet Green"], + ["517C66", "Como"], + ["51808F", "Smalt Blue"], + ["52001F", "Castro"], + ["520C17", "Maroon Oak"], + ["523C94", "Gigas"], + ["533455", "Voodoo"], + ["534491", "Victoria"], + ["53824B", "Hippie Green"], + ["541012", "Heath"], + ["544333", "Judge Gray"], + ["54534D", "Fuscous Gray"], + ["549019", "Vida Loca"], + ["55280C", "Cioccolato"], + ["555B10", "Saratoga"], + ["556D56", "Finlandia"], + ["5590D9", "Havelock Blue"], + ["56B4BE", "Fountain Blue"], + ["578363", "Spring Leaves"], + ["583401", "Saddle Brown"], + ["585562", "Scarpa Flow"], + ["587156", "Cactus"], + ["589AAF", "Hippie Blue"], + ["591D35", "Wine Berry"], + ["592804", "Brown Bramble"], + ["593737", "Congo Brown"], + ["594433", "Millbrook"], + ["5A6E9C", "Waikawa Gray"], + ["5A87A0", "Horizon"], + ["5B3013", "Jambalaya"], + ["5C0120", "Bordeaux"], + ["5C0536", "Mulberry Wood"], + ["5C2E01", "Carnaby Tan"], + ["5C5D75", "Comet"], + ["5D1E0F", "Redwood"], + ["5D4C51", "Don Juan"], + ["5D5C58", "Chicago"], + ["5D5E37", "Verdigris"], + ["5D7747", "Dingley"], + ["5DA19F", "Breaker Bay"], + ["5E483E", "Kabul"], + ["5E5D3B", "Hemlock"], + ["5F3D26", "Irish Coffee"], + ["5F5F6E", "Mid Gray"], + ["5F6672", "Shuttle Gray"], + ["5FA777", "Aqua Forest"], + ["5FB3AC", "Tradewind"], + ["604913", "Horses Neck"], + ["605B73", "Smoky"], + ["606E68", "Corduroy"], + ["6093D1", "Danube"], + ["612718", "Espresso"], + ["614051", "Eggplant"], + ["615D30", "Costa Del Sol"], + ["61845F", "Glade Green"], + ["622F30", "Buccaneer"], + ["623F2D", "Quincy"], + ["624E9A", "Butterfly Bush"], + ["625119", "West Coast"], + ["626649", "Finch"], + ["639A8F", "Patina"], + ["63B76C", "Fern"], + ["6456B7", "Blue Violet"], + ["646077", "Dolphin"], + ["646463", "Storm Dust"], + ["646A54", "Siam"], + ["646E75", "Nevada"], + ["6495ED", "Cornflower Blue"], + ["64CCDB", "Viking"], + ["65000B", "Rosewood"], + ["651A14", "Cherrywood"], + ["652DC1", "Purple Heart"], + ["657220", "Fern Frond"], + ["65745D", "Willow Grove"], + ["65869F", "Hoki"], + ["660045", "Pompadour"], + ["660099", "Purple"], + ["66023C", "Tyrian Purple"], + ["661010", "Dark Tan"], + ["66B58F", "Silver Tree"], + ["66FF00", "Bright Green"], + ["66FF66", "Screamin Green"], + ["67032D", "Black Rose"], + ["675FA6", "Scampi"], + ["676662", "Ironside Gray"], + ["678975", "Viridian Green"], + ["67A712", "Christi"], + ["683600", "Nutmeg Wood Finish"], + ["685558", "Zambezi"], + ["685E6E", "Salt Box"], + ["692545", "Tawny Port"], + ["692D54", "Finn"], + ["695F62", "Scorpion"], + ["697E9A", "Lynch"], + ["6A442E", "Spice"], + ["6A5D1B", "Himalaya"], + ["6A6051", "Soya Bean"], + ["6B2A14", "Hairy Heath"], + ["6B3FA0", "Royal Purple"], + ["6B4E31", "Shingle Fawn"], + ["6B5755", "Dorado"], + ["6B8BA2", "Bermuda Gray"], + ["6B8E23", "Olive Drab"], + ["6C3082", "Eminence"], + ["6CDAE7", "Turquoise Blue"], + ["6D0101", "Lonestar"], + ["6D5E54", "Pine Cone"], + ["6D6C6C", "Dove Gray"], + ["6D9292", "Juniper"], + ["6D92A1", "Gothic"], + ["6E0902", "Red Oxide"], + ["6E1D14", "Moccaccino"], + ["6E4826", "Pickled Bean"], + ["6E4B26", "Dallas"], + ["6E6D57", "Kokoda"], + ["6E7783", "Pale Sky"], + ["6F440C", "Cafe Royale"], + ["6F6A61", "Flint"], + ["6F8E63", "Highland"], + ["6F9D02", "Limeade"], + ["6FD0C5", "Downy"], + ["701C1C", "Persian Plum"], + ["704214", "Sepia"], + ["704A07", "Antique Bronze"], + ["704F50", "Ferra"], + ["706555", "Coffee"], + ["708090", "Slate Gray"], + ["711A00", "Cedar Wood Finish"], + ["71291D", "Metallic Copper"], + ["714693", "Affair"], + ["714AB2", "Studio"], + ["715D47", "Tobacco Brown"], + ["716338", "Yellow Metal"], + ["716B56", "Peat"], + ["716E10", "Olivetone"], + ["717486", "Storm Gray"], + ["718080", "Sirocco"], + ["71D9E2", "Aquamarine Blue"], + ["72010F", "Venetian Red"], + ["724A2F", "Old Copper"], + ["726D4E", "Go Ben"], + ["727B89", "Raven"], + ["731E8F", "Seance"], + ["734A12", "Raw Umber"], + ["736C9F", "Kimberly"], + ["736D58", "Crocodile"], + ["737829", "Crete"], + ["738678", "Xanadu"], + ["74640D", "Spicy Mustard"], + ["747D63", "Limed Ash"], + ["747D83", "Rolling Stone"], + ["748881", "Blue Smoke"], + ["749378", "Laurel"], + ["74C365", "Mantis"], + ["755A57", "Russett"], + ["7563A8", "Deluge"], + ["76395D", "Cosmic"], + ["7666C6", "Blue Marguerite"], + ["76BD17", "Lima"], + ["76D7EA", "Sky Blue"], + ["770F05", "Dark Burgundy"], + ["771F1F", "Crown of Thorns"], + ["773F1A", "Walnut"], + ["776F61", "Pablo"], + ["778120", "Pacifika"], + ["779E86", "Oxley"], + ["77DD77", "Pastel Green"], + ["780109", "Japanese Maple"], + ["782D19", "Mocha"], + ["782F16", "Peanut"], + ["78866B", "Camouflage Green"], + ["788A25", "Wasabi"], + ["788BBA", "Ship Cove"], + ["78A39C", "Sea Nymph"], + ["795D4C", "Roman Coffee"], + ["796878", "Old Lavender"], + ["796989", "Rum"], + ["796A78", "Fedora"], + ["796D62", "Sandstone"], + ["79DEEC", "Spray"], + ["7A013A", "Siren"], + ["7A58C1", "Fuchsia Blue"], + ["7A7A7A", "Boulder"], + ["7A89B8", "Wild Blue Yonder"], + ["7AC488", "De York"], + ["7B3801", "Red Beech"], + ["7B3F00", "Cinnamon"], + ["7B6608", "Yukon Gold"], + ["7B7874", "Tapa"], + ["7B7C94", "Waterloo "], + ["7B8265", "Flax Smoke"], + ["7B9F80", "Amulet"], + ["7BA05B", "Asparagus"], + ["7C1C05", "Kenyan Copper"], + ["7C7631", "Pesto"], + ["7C778A", "Topaz"], + ["7C7B7A", "Concord"], + ["7C7B82", "Jumbo"], + ["7C881A", "Trendy Green"], + ["7CA1A6", "Gumbo"], + ["7CB0A1", "Acapulco"], + ["7CB7BB", "Neptune"], + ["7D2C14", "Pueblo"], + ["7DA98D", "Bay Leaf"], + ["7DC8F7", "Malibu"], + ["7DD8C6", "Bermuda"], + ["7E3A15", "Copper Canyon"], + ["7F1734", "Claret"], + ["7F3A02", "Peru Tan"], + ["7F626D", "Falcon"], + ["7F7589", "Mobster"], + ["7F76D3", "Moody Blue"], + ["7FFF00", "Chartreuse"], + ["7FFFD4", "Aquamarine"], + ["800000", "Maroon"], + ["800B47", "Rose Bud Cherry"], + ["801818", "Falu Red"], + ["80341F", "Red Robin"], + ["803790", "Vivid Violet"], + ["80461B", "Russet"], + ["807E79", "Friar Gray"], + ["808000", "Olive"], + ["808080", "Gray"], + ["80B3AE", "Gulf Stream"], + ["80B3C4", "Glacier"], + ["80CCEA", "Seagull"], + ["81422C", "Nutmeg"], + ["816E71", "Spicy Pink"], + ["817377", "Empress"], + ["819885", "Spanish Green"], + ["826F65", "Sand Dune"], + ["828685", "Gunsmoke"], + ["828F72", "Battleship Gray"], + ["831923", "Merlot"], + ["837050", "Shadow"], + ["83AA5D", "Chelsea Cucumber"], + ["83D0C6", "Monte Carlo"], + ["843179", "Plum"], + ["84A0A0", "Granny Smith"], + ["8581D9", "Chetwode Blue"], + ["858470", "Bandicoot"], + ["859FAF", "Bali Hai"], + ["85C4CC", "Half Baked"], + ["860111", "Red Devil"], + ["863C3C", "Lotus"], + ["86483C", "Ironstone"], + ["864D1E", "Bull Shot"], + ["86560A", "Rusty Nail"], + ["868974", "Bitter"], + ["86949F", "Regent Gray"], + ["871550", "Disco"], + ["87756E", "Americano"], + ["877C7B", "Hurricane"], + ["878D91", "Oslo Gray"], + ["87AB39", "Sushi"], + ["885342", "Spicy Mix"], + ["886221", "Kumera"], + ["888387", "Suva Gray"], + ["888D65", "Avocado"], + ["893456", "Camelot"], + ["893843", "Solid Pink"], + ["894367", "Cannon Pink"], + ["897D6D", "Makara"], + ["8A3324", "Burnt Umber"], + ["8A73D6", "True V"], + ["8A8360", "Clay Creek"], + ["8A8389", "Monsoon"], + ["8A8F8A", "Stack"], + ["8AB9F1", "Jordy Blue"], + ["8B00FF", "Electric Violet"], + ["8B0723", "Monarch"], + ["8B6B0B", "Corn Harvest"], + ["8B8470", "Olive Haze"], + ["8B847E", "Schooner"], + ["8B8680", "Natural Gray"], + ["8B9C90", "Mantle"], + ["8B9FEE", "Portage"], + ["8BA690", "Envy"], + ["8BA9A5", "Cascade"], + ["8BE6D8", "Riptide"], + ["8C055E", "Cardinal Pink"], + ["8C472F", "Mule Fawn"], + ["8C5738", "Potters Clay"], + ["8C6495", "Trendy Pink"], + ["8D0226", "Paprika"], + ["8D3D38", "Sanguine Brown"], + ["8D3F3F", "Tosca"], + ["8D7662", "Cement"], + ["8D8974", "Granite Green"], + ["8D90A1", "Manatee"], + ["8DA8CC", "Polo Blue"], + ["8E0000", "Red Berry"], + ["8E4D1E", "Rope"], + ["8E6F70", "Opium"], + ["8E775E", "Domino"], + ["8E8190", "Mamba"], + ["8EABC1", "Nepal"], + ["8F021C", "Pohutukawa"], + ["8F3E33", "El Salva"], + ["8F4B0E", "Korma"], + ["8F8176", "Squirrel"], + ["8FD6B4", "Vista Blue"], + ["900020", "Burgundy"], + ["901E1E", "Old Brick"], + ["907874", "Hemp"], + ["907B71", "Almond Frost"], + ["908D39", "Sycamore"], + ["92000A", "Sangria"], + ["924321", "Cumin"], + ["926F5B", "Beaver"], + ["928573", "Stonewall"], + ["928590", "Venus"], + ["9370DB", "Medium Purple"], + ["93CCEA", "Cornflower"], + ["93DFB8", "Algae Green"], + ["944747", "Copper Rust"], + ["948771", "Arrowtown"], + ["950015", "Scarlett"], + ["956387", "Strikemaster"], + ["959396", "Mountain Mist"], + ["960018", "Carmine"], + ["964B00", "Brown"], + ["967059", "Leather"], + ["9678B6", "Purple Mountain's Majesty"], + ["967BB6", "Lavender Purple"], + ["96A8A1", "Pewter"], + ["96BBAB", "Summer Green"], + ["97605D", "Au Chico"], + ["9771B5", "Wisteria"], + ["97CD2D", "Atlantis"], + ["983D61", "Vin Rouge"], + ["9874D3", "Lilac Bush"], + ["98777B", "Bazaar"], + ["98811B", "Hacienda"], + ["988D77", "Pale Oyster"], + ["98FF98", "Mint Green"], + ["990066", "Fresh Eggplant"], + ["991199", "Violet Eggplant"], + ["991613", "Tamarillo"], + ["991B07", "Totem Pole"], + ["996666", "Copper Rose"], + ["9966CC", "Amethyst"], + ["997A8D", "Mountbatten Pink"], + ["9999CC", "Blue Bell"], + ["9A3820", "Prairie Sand"], + ["9A6E61", "Toast"], + ["9A9577", "Gurkha"], + ["9AB973", "Olivine"], + ["9AC2B8", "Shadow Green"], + ["9B4703", "Oregon"], + ["9B9E8F", "Lemon Grass"], + ["9C3336", "Stiletto"], + ["9D5616", "Hawaiian Tan"], + ["9DACB7", "Gull Gray"], + ["9DC209", "Pistachio"], + ["9DE093", "Granny Smith Apple"], + ["9DE5FF", "Anakiwa"], + ["9E5302", "Chelsea Gem"], + ["9E5B40", "Sepia Skin"], + ["9EA587", "Sage"], + ["9EA91F", "Citron"], + ["9EB1CD", "Rock Blue"], + ["9EDEE0", "Morning Glory"], + ["9F381D", "Cognac"], + ["9F821C", "Reef Gold"], + ["9F9F9C", "Star Dust"], + ["9FA0B1", "Santas Gray"], + ["9FD7D3", "Sinbad"], + ["9FDD8C", "Feijoa"], + ["A02712", "Tabasco"], + ["A1750D", "Buttered Rum"], + ["A1ADB5", "Hit Gray"], + ["A1C50A", "Citrus"], + ["A1DAD7", "Aqua Island"], + ["A1E9DE", "Water Leaf"], + ["A2006D", "Flirt"], + ["A23B6C", "Rouge"], + ["A26645", "Cape Palliser"], + ["A2AAB3", "Gray Chateau"], + ["A2AEAB", "Edward"], + ["A3807B", "Pharlap"], + ["A397B4", "Amethyst Smoke"], + ["A3E3ED", "Blizzard Blue"], + ["A4A49D", "Delta"], + ["A4A6D3", "Wistful"], + ["A4AF6E", "Green Smoke"], + ["A50B5E", "Jazzberry Jam"], + ["A59B91", "Zorba"], + ["A5CB0C", "Bahia"], + ["A62F20", "Roof Terracotta"], + ["A65529", "Paarl"], + ["A68B5B", "Barley Corn"], + ["A69279", "Donkey Brown"], + ["A6A29A", "Dawn"], + ["A72525", "Mexican Red"], + ["A7882C", "Luxor Gold"], + ["A85307", "Rich Gold"], + ["A86515", "Reno Sand"], + ["A86B6B", "Coral Tree"], + ["A8989B", "Dusty Gray"], + ["A899E6", "Dull Lavender"], + ["A8A589", "Tallow"], + ["A8AE9C", "Bud"], + ["A8AF8E", "Locust"], + ["A8BD9F", "Norway"], + ["A8E3BD", "Chinook"], + ["A9A491", "Gray Olive"], + ["A9ACB6", "Aluminium"], + ["A9B2C3", "Cadet Blue"], + ["A9B497", "Schist"], + ["A9BDBF", "Tower Gray"], + ["A9BEF2", "Perano"], + ["A9C6C2", "Opal"], + ["AA375A", "Night Shadz"], + ["AA4203", "Fire"], + ["AA8B5B", "Muesli"], + ["AA8D6F", "Sandal"], + ["AAA5A9", "Shady Lady"], + ["AAA9CD", "Logan"], + ["AAABB7", "Spun Pearl"], + ["AAD6E6", "Regent St Blue"], + ["AAF0D1", "Magic Mint"], + ["AB0563", "Lipstick"], + ["AB3472", "Royal Heath"], + ["AB917A", "Sandrift"], + ["ABA0D9", "Cold Purple"], + ["ABA196", "Bronco"], + ["AC8A56", "Limed Oak"], + ["AC91CE", "East Side"], + ["AC9E22", "Lemon Ginger"], + ["ACA494", "Napa"], + ["ACA586", "Hillary"], + ["ACA59F", "Cloudy"], + ["ACACAC", "Silver Chalice"], + ["ACB78E", "Swamp Green"], + ["ACCBB1", "Spring Rain"], + ["ACDD4D", "Conifer"], + ["ACE1AF", "Celadon"], + ["AD781B", "Mandalay"], + ["ADBED1", "Casper"], + ["ADDFAD", "Moss Green"], + ["ADE6C4", "Padua"], + ["ADFF2F", "Green Yellow"], + ["AE4560", "Hippie Pink"], + ["AE6020", "Desert"], + ["AE809E", "Bouquet"], + ["AF4035", "Medium Carmine"], + ["AF4D43", "Apple Blossom"], + ["AF593E", "Brown Rust"], + ["AF8751", "Driftwood"], + ["AF8F2C", "Alpine"], + ["AF9F1C", "Lucky"], + ["AFA09E", "Martini"], + ["AFB1B8", "Bombay"], + ["AFBDD9", "Pigeon Post"], + ["B04C6A", "Cadillac"], + ["B05D54", "Matrix"], + ["B05E81", "Tapestry"], + ["B06608", "Mai Tai"], + ["B09A95", "Del Rio"], + ["B0E0E6", "Powder Blue"], + ["B0E313", "Inch Worm"], + ["B10000", "Bright Red"], + ["B14A0B", "Vesuvius"], + ["B1610B", "Pumpkin Skin"], + ["B16D52", "Santa Fe"], + ["B19461", "Teak"], + ["B1E2C1", "Fringy Flower"], + ["B1F4E7", "Ice Cold"], + ["B20931", "Shiraz"], + ["B2A1EA", "Biloba Flower"], + ["B32D29", "Tall Poppy"], + ["B35213", "Fiery Orange"], + ["B38007", "Hot Toddy"], + ["B3AF95", "Taupe Gray"], + ["B3C110", "La Rioja"], + ["B43332", "Well Read"], + ["B44668", "Blush"], + ["B4CFD3", "Jungle Mist"], + ["B57281", "Turkish Rose"], + ["B57EDC", "Lavender"], + ["B5A27F", "Mongoose"], + ["B5B35C", "Olive Green"], + ["B5D2CE", "Jet Stream"], + ["B5ECDF", "Cruise"], + ["B6316C", "Hibiscus"], + ["B69D98", "Thatch"], + ["B6B095", "Heathered Gray"], + ["B6BAA4", "Eagle"], + ["B6D1EA", "Spindle"], + ["B6D3BF", "Gum Leaf"], + ["B7410E", "Rust"], + ["B78E5C", "Muddy Waters"], + ["B7A214", "Sahara"], + ["B7A458", "Husk"], + ["B7B1B1", "Nobel"], + ["B7C3D0", "Heather"], + ["B7F0BE", "Madang"], + ["B81104", "Milano Red"], + ["B87333", "Copper"], + ["B8B56A", "Gimblet"], + ["B8C1B1", "Green Spring"], + ["B8C25D", "Celery"], + ["B8E0F9", "Sail"], + ["B94E48", "Chestnut"], + ["B95140", "Crail"], + ["B98D28", "Marigold"], + ["B9C46A", "Wild Willow"], + ["B9C8AC", "Rainee"], + ["BA0101", "Guardsman Red"], + ["BA450C", "Rock Spray"], + ["BA6F1E", "Bourbon"], + ["BA7F03", "Pirate Gold"], + ["BAB1A2", "Nomad"], + ["BAC7C9", "Submarine"], + ["BAEEF9", "Charlotte"], + ["BB3385", "Medium Red Violet"], + ["BB8983", "Brandy Rose"], + ["BBD009", "Rio Grande"], + ["BBD7C1", "Surf"], + ["BCC9C2", "Powder Ash"], + ["BD5E2E", "Tuscany"], + ["BD978E", "Quicksand"], + ["BDB1A8", "Silk"], + ["BDB2A1", "Malta"], + ["BDB3C7", "Chatelle"], + ["BDBBD7", "Lavender Gray"], + ["BDBDC6", "French Gray"], + ["BDC8B3", "Clay Ash"], + ["BDC9CE", "Loblolly"], + ["BDEDFD", "French Pass"], + ["BEA6C3", "London Hue"], + ["BEB5B7", "Pink Swan"], + ["BEDE0D", "Fuego"], + ["BF5500", "Rose of Sharon"], + ["BFB8B0", "Tide"], + ["BFBED8", "Blue Haze"], + ["BFC1C2", "Silver Sand"], + ["BFC921", "Key Lime Pie"], + ["BFDBE2", "Ziggurat"], + ["BFFF00", "Lime"], + ["C02B18", "Thunderbird"], + ["C04737", "Mojo"], + ["C08081", "Old Rose"], + ["C0C0C0", "Silver"], + ["C0D3B9", "Pale Leaf"], + ["C0D8B6", "Pixie Green"], + ["C1440E", "Tia Maria"], + ["C154C1", "Fuchsia Pink"], + ["C1A004", "Buddha Gold"], + ["C1B7A4", "Bison Hide"], + ["C1BAB0", "Tea"], + ["C1BECD", "Gray Suit"], + ["C1D7B0", "Sprout"], + ["C1F07C", "Sulu"], + ["C26B03", "Indochine"], + ["C2955D", "Twine"], + ["C2BDB6", "Cotton Seed"], + ["C2CAC4", "Pumice"], + ["C2E8E5", "Jagged Ice"], + ["C32148", "Maroon Flush"], + ["C3B091", "Indian Khaki"], + ["C3BFC1", "Pale Slate"], + ["C3C3BD", "Gray Nickel"], + ["C3CDE6", "Periwinkle Gray"], + ["C3D1D1", "Tiara"], + ["C3DDF9", "Tropical Blue"], + ["C41E3A", "Cardinal"], + ["C45655", "Fuzzy Wuzzy Brown"], + ["C45719", "Orange Roughy"], + ["C4C4BC", "Mist Gray"], + ["C4D0B0", "Coriander"], + ["C4F4EB", "Mint Tulip"], + ["C54B8C", "Mulberry"], + ["C59922", "Nugget"], + ["C5994B", "Tussock"], + ["C5DBCA", "Sea Mist"], + ["C5E17A", "Yellow Green"], + ["C62D42", "Brick Red"], + ["C6726B", "Contessa"], + ["C69191", "Oriental Pink"], + ["C6A84B", "Roti"], + ["C6C3B5", "Ash"], + ["C6C8BD", "Kangaroo"], + ["C6E610", "Las Palmas"], + ["C7031E", "Monza"], + ["C71585", "Red Violet"], + ["C7BCA2", "Coral Reef"], + ["C7C1FF", "Melrose"], + ["C7C4BF", "Cloud"], + ["C7C9D5", "Ghost"], + ["C7CD90", "Pine Glade"], + ["C7DDE5", "Botticelli"], + ["C88A65", "Antique Brass"], + ["C8A2C8", "Lilac"], + ["C8A528", "Hokey Pokey"], + ["C8AABF", "Lily"], + ["C8B568", "Laser"], + ["C8E3D7", "Edgewater"], + ["C96323", "Piper"], + ["C99415", "Pizza"], + ["C9A0DC", "Light Wisteria"], + ["C9B29B", "Rodeo Dust"], + ["C9B35B", "Sundance"], + ["C9B93B", "Earls Green"], + ["C9C0BB", "Silver Rust"], + ["C9D9D2", "Conch"], + ["C9FFA2", "Reef"], + ["C9FFE5", "Aero Blue"], + ["CA3435", "Flush Mahogany"], + ["CABB48", "Turmeric"], + ["CADCD4", "Paris White"], + ["CAE00D", "Bitter Lemon"], + ["CAE6DA", "Skeptic"], + ["CB8FA9", "Viola"], + ["CBCAB6", "Foggy Gray"], + ["CBD3B0", "Green Mist"], + ["CBDBD6", "Nebula"], + ["CC3333", "Persian Red"], + ["CC5500", "Burnt Orange"], + ["CC7722", "Ochre"], + ["CC8899", "Puce"], + ["CCCAA8", "Thistle Green"], + ["CCCCFF", "Periwinkle"], + ["CCFF00", "Electric Lime"], + ["CD5700", "Tenn"], + ["CD5C5C", "Chestnut Rose"], + ["CD8429", "Brandy Punch"], + ["CDF4FF", "Onahau"], + ["CEB98F", "Sorrell Brown"], + ["CEBABA", "Cold Turkey"], + ["CEC291", "Yuma"], + ["CEC7A7", "Chino"], + ["CFA39D", "Eunry"], + ["CFB53B", "Old Gold"], + ["CFDCCF", "Tasman"], + ["CFE5D2", "Surf Crest"], + ["CFF9F3", "Humming Bird"], + ["CFFAF4", "Scandal"], + ["D05F04", "Red Stage"], + ["D06DA1", "Hopbush"], + ["D07D12", "Meteor"], + ["D0BEF8", "Perfume"], + ["D0C0E5", "Prelude"], + ["D0F0C0", "Tea Green"], + ["D18F1B", "Geebung"], + ["D1BEA8", "Vanilla"], + ["D1C6B4", "Soft Amber"], + ["D1D2CA", "Celeste"], + ["D1D2DD", "Mischka"], + ["D1E231", "Pear"], + ["D2691E", "Hot Cinnamon"], + ["D27D46", "Raw Sienna"], + ["D29EAA", "Careys Pink"], + ["D2B48C", "Tan"], + ["D2DA97", "Deco"], + ["D2F6DE", "Blue Romance"], + ["D2F8B0", "Gossip"], + ["D3CBBA", "Sisal"], + ["D3CDC5", "Swirl"], + ["D47494", "Charm"], + ["D4B6AF", "Clam Shell"], + ["D4BF8D", "Straw"], + ["D4C4A8", "Akaroa"], + ["D4CD16", "Bird Flower"], + ["D4D7D9", "Iron"], + ["D4DFE2", "Geyser"], + ["D4E2FC", "Hawkes Blue"], + ["D54600", "Grenadier"], + ["D591A4", "Can Can"], + ["D59A6F", "Whiskey"], + ["D5D195", "Winter Hazel"], + ["D5F6E3", "Granny Apple"], + ["D69188", "My Pink"], + ["D6C562", "Tacha"], + ["D6CEF6", "Moon Raker"], + ["D6D6D1", "Quill Gray"], + ["D6FFDB", "Snowy Mint"], + ["D7837F", "New York Pink"], + ["D7C498", "Pavlova"], + ["D7D0FF", "Fog"], + ["D84437", "Valencia"], + ["D87C63", "Japonica"], + ["D8BFD8", "Thistle"], + ["D8C2D5", "Maverick"], + ["D8FCFA", "Foam"], + ["D94972", "Cabaret"], + ["D99376", "Burning Sand"], + ["D9B99B", "Cameo"], + ["D9D6CF", "Timberwolf"], + ["D9DCC1", "Tana"], + ["D9E4F5", "Link Water"], + ["D9F7FF", "Mabel"], + ["DA3287", "Cerise"], + ["DA5B38", "Flame Pea"], + ["DA6304", "Bamboo"], + ["DA6A41", "Red Damask"], + ["DA70D6", "Orchid"], + ["DA8A67", "Copperfield"], + ["DAA520", "Golden Grass"], + ["DAECD6", "Zanah"], + ["DAF4F0", "Iceberg"], + ["DAFAFF", "Oyster Bay"], + ["DB5079", "Cranberry"], + ["DB9690", "Petite Orchid"], + ["DB995E", "Di Serria"], + ["DBDBDB", "Alto"], + ["DBFFF8", "Frosted Mint"], + ["DC143C", "Crimson"], + ["DC4333", "Punch"], + ["DCB20C", "Galliano"], + ["DCB4BC", "Blossom"], + ["DCD747", "Wattle"], + ["DCD9D2", "Westar"], + ["DCDDCC", "Moon Mist"], + ["DCEDB4", "Caper"], + ["DCF0EA", "Swans Down"], + ["DDD6D5", "Swiss Coffee"], + ["DDF9F1", "White Ice"], + ["DE3163", "Cerise Red"], + ["DE6360", "Roman"], + ["DEA681", "Tumbleweed"], + ["DEBA13", "Gold Tips"], + ["DEC196", "Brandy"], + ["DECBC6", "Wafer"], + ["DED4A4", "Sapling"], + ["DED717", "Barberry"], + ["DEE5C0", "Beryl Green"], + ["DEF5FF", "Pattens Blue"], + ["DF73FF", "Heliotrope"], + ["DFBE6F", "Apache"], + ["DFCD6F", "Chenin"], + ["DFCFDB", "Lola"], + ["DFECDA", "Willow Brook"], + ["DFFF00", "Chartreuse Yellow"], + ["E0B0FF", "Mauve"], + ["E0B646", "Anzac"], + ["E0B974", "Harvest Gold"], + ["E0C095", "Calico"], + ["E0FFFF", "Baby Blue"], + ["E16865", "Sunglo"], + ["E1BC64", "Equator"], + ["E1C0C8", "Pink Flare"], + ["E1E6D6", "Periglacial Blue"], + ["E1EAD4", "Kidnapper"], + ["E1F6E8", "Tara"], + ["E25465", "Mandy"], + ["E2725B", "Terracotta"], + ["E28913", "Golden Bell"], + ["E292C0", "Shocking"], + ["E29418", "Dixie"], + ["E29CD2", "Light Orchid"], + ["E2D8ED", "Snuff"], + ["E2EBED", "Mystic"], + ["E2F3EC", "Apple Green"], + ["E30B5C", "Razzmatazz"], + ["E32636", "Alizarin Crimson"], + ["E34234", "Cinnabar"], + ["E3BEBE", "Cavern Pink"], + ["E3F5E1", "Peppermint"], + ["E3F988", "Mindaro"], + ["E47698", "Deep Blush"], + ["E49B0F", "Gamboge"], + ["E4C2D5", "Melanie"], + ["E4CFDE", "Twilight"], + ["E4D1C0", "Bone"], + ["E4D422", "Sunflower"], + ["E4D5B7", "Grain Brown"], + ["E4D69B", "Zombie"], + ["E4F6E7", "Frostee"], + ["E4FFD1", "Snow Flurry"], + ["E52B50", "Amaranth"], + ["E5841B", "Zest"], + ["E5CCC9", "Dust Storm"], + ["E5D7BD", "Stark White"], + ["E5D8AF", "Hampton"], + ["E5E0E1", "Bon Jour"], + ["E5E5E5", "Mercury"], + ["E5F9F6", "Polar"], + ["E64E03", "Trinidad"], + ["E6BE8A", "Gold Sand"], + ["E6BEA5", "Cashmere"], + ["E6D7B9", "Double Spanish White"], + ["E6E4D4", "Satin Linen"], + ["E6F2EA", "Harp"], + ["E6F8F3", "Off Green"], + ["E6FFE9", "Hint of Green"], + ["E6FFFF", "Tranquil"], + ["E77200", "Mango Tango"], + ["E7730A", "Christine"], + ["E79F8C", "Tonys Pink"], + ["E79FC4", "Kobi"], + ["E7BCB4", "Rose Fog"], + ["E7BF05", "Corn"], + ["E7CD8C", "Putty"], + ["E7ECE6", "Gray Nurse"], + ["E7F8FF", "Lily White"], + ["E7FEFF", "Bubbles"], + ["E89928", "Fire Bush"], + ["E8B9B3", "Shilo"], + ["E8E0D5", "Pearl Bush"], + ["E8EBE0", "Green White"], + ["E8F1D4", "Chrome White"], + ["E8F2EB", "Gin"], + ["E8F5F2", "Aqua Squeeze"], + ["E96E00", "Clementine"], + ["E97451", "Burnt Sienna"], + ["E97C07", "Tahiti Gold"], + ["E9CECD", "Oyster Pink"], + ["E9D75A", "Confetti"], + ["E9E3E3", "Ebb"], + ["E9F8ED", "Ottoman"], + ["E9FFFD", "Clear Day"], + ["EA88A8", "Carissma"], + ["EAAE69", "Porsche"], + ["EAB33B", "Tulip Tree"], + ["EAC674", "Rob Roy"], + ["EADAB8", "Raffia"], + ["EAE8D4", "White Rock"], + ["EAF6EE", "Panache"], + ["EAF6FF", "Solitude"], + ["EAF9F5", "Aqua Spring"], + ["EAFFFE", "Dew"], + ["EB9373", "Apricot"], + ["EBC2AF", "Zinnwaldite"], + ["ECA927", "Fuel Yellow"], + ["ECC54E", "Ronchi"], + ["ECC7EE", "French Lilac"], + ["ECCDB9", "Just Right"], + ["ECE090", "Wild Rice"], + ["ECEBBD", "Fall Green"], + ["ECEBCE", "Aths Special"], + ["ECF245", "Starship"], + ["ED0A3F", "Red Ribbon"], + ["ED7A1C", "Tango"], + ["ED9121", "Carrot Orange"], + ["ED989E", "Sea Pink"], + ["EDB381", "Tacao"], + ["EDC9AF", "Desert Sand"], + ["EDCDAB", "Pancho"], + ["EDDCB1", "Chamois"], + ["EDEA99", "Primrose"], + ["EDF5DD", "Frost"], + ["EDF5F5", "Aqua Haze"], + ["EDF6FF", "Zumthor"], + ["EDF9F1", "Narvik"], + ["EDFC84", "Honeysuckle"], + ["EE82EE", "Lavender Magenta"], + ["EEC1BE", "Beauty Bush"], + ["EED794", "Chalky"], + ["EED9C4", "Almond"], + ["EEDC82", "Flax"], + ["EEDEDA", "Bizarre"], + ["EEE3AD", "Double Colonial White"], + ["EEEEE8", "Cararra"], + ["EEEF78", "Manz"], + ["EEF0C8", "Tahuna Sands"], + ["EEF0F3", "Athens Gray"], + ["EEF3C3", "Tusk"], + ["EEF4DE", "Loafer"], + ["EEF6F7", "Catskill White"], + ["EEFDFF", "Twilight Blue"], + ["EEFF9A", "Jonquil"], + ["EEFFE2", "Rice Flower"], + ["EF863F", "Jaffa"], + ["EFEFEF", "Gallery"], + ["EFF2F3", "Porcelain"], + ["F091A9", "Mauvelous"], + ["F0D52D", "Golden Dream"], + ["F0DB7D", "Golden Sand"], + ["F0DC82", "Buff"], + ["F0E2EC", "Prim"], + ["F0E68C", "Khaki"], + ["F0EEFD", "Selago"], + ["F0EEFF", "Titan White"], + ["F0F8FF", "Alice Blue"], + ["F0FCEA", "Feta"], + ["F18200", "Gold Drop"], + ["F19BAB", "Wewak"], + ["F1E788", "Sahara Sand"], + ["F1E9D2", "Parchment"], + ["F1E9FF", "Blue Chalk"], + ["F1EEC1", "Mint Julep"], + ["F1F1F1", "Seashell"], + ["F1F7F2", "Saltpan"], + ["F1FFAD", "Tidal"], + ["F1FFC8", "Chiffon"], + ["F2552A", "Flamingo"], + ["F28500", "Tangerine"], + ["F2C3B2", "Mandys Pink"], + ["F2F2F2", "Concrete"], + ["F2FAFA", "Black Squeeze"], + ["F34723", "Pomegranate"], + ["F3AD16", "Buttercup"], + ["F3D69D", "New Orleans"], + ["F3D9DF", "Vanilla Ice"], + ["F3E7BB", "Sidecar"], + ["F3E9E5", "Dawn Pink"], + ["F3EDCF", "Wheatfield"], + ["F3FB62", "Canary"], + ["F3FBD4", "Orinoco"], + ["F3FFD8", "Carla"], + ["F400A1", "Hollywood Cerise"], + ["F4A460", "Sandy brown"], + ["F4C430", "Saffron"], + ["F4D81C", "Ripe Lemon"], + ["F4EBD3", "Janna"], + ["F4F2EE", "Pampas"], + ["F4F4F4", "Wild Sand"], + ["F4F8FF", "Zircon"], + ["F57584", "Froly"], + ["F5C85C", "Cream Can"], + ["F5C999", "Manhattan"], + ["F5D5A0", "Maize"], + ["F5DEB3", "Wheat"], + ["F5E7A2", "Sandwisp"], + ["F5E7E2", "Pot Pourri"], + ["F5E9D3", "Albescent White"], + ["F5EDEF", "Soft Peach"], + ["F5F3E5", "Ecru White"], + ["F5F5DC", "Beige"], + ["F5FB3D", "Golden Fizz"], + ["F5FFBE", "Australian Mint"], + ["F64A8A", "French Rose"], + ["F653A6", "Brilliant Rose"], + ["F6A4C9", "Illusion"], + ["F6F0E6", "Merino"], + ["F6F7F7", "Black Haze"], + ["F6FFDC", "Spring Sun"], + ["F7468A", "Violet Red"], + ["F77703", "Chilean Fire"], + ["F77FBE", "Persian Pink"], + ["F7B668", "Rajah"], + ["F7C8DA", "Azalea"], + ["F7DBE6", "We Peep"], + ["F7F2E1", "Quarter Spanish White"], + ["F7F5FA", "Whisper"], + ["F7FAF7", "Snow Drift"], + ["F8B853", "Casablanca"], + ["F8C3DF", "Chantilly"], + ["F8D9E9", "Cherub"], + ["F8DB9D", "Marzipan"], + ["F8DD5C", "Energy Yellow"], + ["F8E4BF", "Givry"], + ["F8F0E8", "White Linen"], + ["F8F4FF", "Magnolia"], + ["F8F6F1", "Spring Wood"], + ["F8F7DC", "Coconut Cream"], + ["F8F7FC", "White Lilac"], + ["F8F8F7", "Desert Storm"], + ["F8F99C", "Texas"], + ["F8FACD", "Corn Field"], + ["F8FDD3", "Mimosa"], + ["F95A61", "Carnation"], + ["F9BF58", "Saffron Mango"], + ["F9E0ED", "Carousel Pink"], + ["F9E4BC", "Dairy Cream"], + ["F9E663", "Portica"], + ["F9EAF3", "Amour"], + ["F9F8E4", "Rum Swizzle"], + ["F9FF8B", "Dolly"], + ["F9FFF6", "Sugar Cane"], + ["FA7814", "Ecstasy"], + ["FA9D5A", "Tan Hide"], + ["FAD3A2", "Corvette"], + ["FADFAD", "Peach Yellow"], + ["FAE600", "Turbo"], + ["FAEAB9", "Astra"], + ["FAECCC", "Champagne"], + ["FAF0E6", "Linen"], + ["FAF3F0", "Fantasy"], + ["FAF7D6", "Citrine White"], + ["FAFAFA", "Alabaster"], + ["FAFDE4", "Hint of Yellow"], + ["FAFFA4", "Milan"], + ["FB607F", "Brink Pink"], + ["FB8989", "Geraldine"], + ["FBA0E3", "Lavender Rose"], + ["FBA129", "Sea Buckthorn"], + ["FBAC13", "Sun"], + ["FBAED2", "Lavender Pink"], + ["FBB2A3", "Rose Bud"], + ["FBBEDA", "Cupid"], + ["FBCCE7", "Classic Rose"], + ["FBCEB1", "Apricot Peach"], + ["FBE7B2", "Banana Mania"], + ["FBE870", "Marigold Yellow"], + ["FBE96C", "Festival"], + ["FBEA8C", "Sweet Corn"], + ["FBEC5D", "Candy Corn"], + ["FBF9F9", "Hint of Red"], + ["FBFFBA", "Shalimar"], + ["FC0FC0", "Shocking Pink"], + ["FC80A5", "Tickle Me Pink"], + ["FC9C1D", "Tree Poppy"], + ["FCC01E", "Lightning Yellow"], + ["FCD667", "Goldenrod"], + ["FCD917", "Candlelight"], + ["FCDA98", "Cherokee"], + ["FCF4D0", "Double Pearl Lusta"], + ["FCF4DC", "Pearl Lusta"], + ["FCF8F7", "Vista White"], + ["FCFBF3", "Bianca"], + ["FCFEDA", "Moon Glow"], + ["FCFFE7", "China Ivory"], + ["FCFFF9", "Ceramic"], + ["FD0E35", "Torch Red"], + ["FD5B78", "Wild Watermelon"], + ["FD7B33", "Crusta"], + ["FD7C07", "Sorbus"], + ["FD9FA2", "Sweet Pink"], + ["FDD5B1", "Light Apricot"], + ["FDD7E4", "Pig Pink"], + ["FDE1DC", "Cinderella"], + ["FDE295", "Golden Glow"], + ["FDE910", "Lemon"], + ["FDF5E6", "Old Lace"], + ["FDF6D3", "Half Colonial White"], + ["FDF7AD", "Drover"], + ["FDFEB8", "Pale Prim"], + ["FDFFD5", "Cumulus"], + ["FE28A2", "Persian Rose"], + ["FE4C40", "Sunset Orange"], + ["FE6F5E", "Bittersweet"], + ["FE9D04", "California"], + ["FEA904", "Yellow Sea"], + ["FEBAAD", "Melon"], + ["FED33C", "Bright Sun"], + ["FED85D", "Dandelion"], + ["FEDB8D", "Salomie"], + ["FEE5AC", "Cape Honey"], + ["FEEBF3", "Remy"], + ["FEEFCE", "Oasis"], + ["FEF0EC", "Bridesmaid"], + ["FEF2C7", "Beeswax"], + ["FEF3D8", "Bleach White"], + ["FEF4CC", "Pipi"], + ["FEF4DB", "Half Spanish White"], + ["FEF4F8", "Wisp Pink"], + ["FEF5F1", "Provincial Pink"], + ["FEF7DE", "Half Dutch White"], + ["FEF8E2", "Solitaire"], + ["FEF8FF", "White Pointer"], + ["FEF9E3", "Off Yellow"], + ["FEFCED", "Orange White"], + ["FF0000", "Red"], + ["FF007F", "Rose"], + ["FF00CC", "Purple Pizzazz"], + ["FF00FF", "Magenta / Fuchsia"], + ["FF2400", "Scarlet"], + ["FF3399", "Wild Strawberry"], + ["FF33CC", "Razzle Dazzle Rose"], + ["FF355E", "Radical Red"], + ["FF3F34", "Red Orange"], + ["FF4040", "Coral Red"], + ["FF4D00", "Vermilion"], + ["FF4F00", "International Orange"], + ["FF6037", "Outrageous Orange"], + ["FF6600", "Blaze Orange"], + ["FF66FF", "Pink Flamingo"], + ["FF681F", "Orange"], + ["FF69B4", "Hot Pink"], + ["FF6B53", "Persimmon"], + ["FF6FFF", "Blush Pink"], + ["FF7034", "Burning Orange"], + ["FF7518", "Pumpkin"], + ["FF7D07", "Flamenco"], + ["FF7F00", "Flush Orange"], + ["FF7F50", "Coral"], + ["FF8C69", "Salmon"], + ["FF9000", "Pizazz"], + ["FF910F", "West Side"], + ["FF91A4", "Pink Salmon"], + ["FF9933", "Neon Carrot"], + ["FF9966", "Atomic Tangerine"], + ["FF9980", "Vivid Tangerine"], + ["FF9E2C", "Sunshade"], + ["FFA000", "Orange Peel"], + ["FFA194", "Mona Lisa"], + ["FFA500", "Web Orange"], + ["FFA6C9", "Carnation Pink"], + ["FFAB81", "Hit Pink"], + ["FFAE42", "Yellow Orange"], + ["FFB0AC", "Cornflower Lilac"], + ["FFB1B3", "Sundown"], + ["FFB31F", "My Sin"], + ["FFB555", "Texas Rose"], + ["FFB7D5", "Cotton Candy"], + ["FFB97B", "Macaroni and Cheese"], + ["FFBA00", "Selective Yellow"], + ["FFBD5F", "Koromiko"], + ["FFBF00", "Amber"], + ["FFC0A8", "Wax Flower"], + ["FFC0CB", "Pink"], + ["FFC3C0", "Your Pink"], + ["FFC901", "Supernova"], + ["FFCBA4", "Flesh"], + ["FFCC33", "Sunglow"], + ["FFCC5C", "Golden Tainoi"], + ["FFCC99", "Peach Orange"], + ["FFCD8C", "Chardonnay"], + ["FFD1DC", "Pastel Pink"], + ["FFD2B7", "Romantic"], + ["FFD38C", "Grandis"], + ["FFD700", "Gold"], + ["FFD800", "School bus Yellow"], + ["FFD8D9", "Cosmos"], + ["FFDB58", "Mustard"], + ["FFDCD6", "Peach Schnapps"], + ["FFDDAF", "Caramel"], + ["FFDDCD", "Tuft Bush"], + ["FFDDCF", "Watusi"], + ["FFDDF4", "Pink Lace"], + ["FFDEAD", "Navajo White"], + ["FFDEB3", "Frangipani"], + ["FFE1DF", "Pippin"], + ["FFE1F2", "Pale Rose"], + ["FFE2C5", "Negroni"], + ["FFE5A0", "Cream Brulee"], + ["FFE5B4", "Peach"], + ["FFE6C7", "Tequila"], + ["FFE772", "Kournikova"], + ["FFEAC8", "Sandy Beach"], + ["FFEAD4", "Karry"], + ["FFEC13", "Broom"], + ["FFEDBC", "Colonial White"], + ["FFEED8", "Derby"], + ["FFEFA1", "Vis Vis"], + ["FFEFC1", "Egg White"], + ["FFEFD5", "Papaya Whip"], + ["FFEFEC", "Fair Pink"], + ["FFF0DB", "Peach Cream"], + ["FFF0F5", "Lavender blush"], + ["FFF14F", "Gorse"], + ["FFF1B5", "Buttermilk"], + ["FFF1D8", "Pink Lady"], + ["FFF1EE", "Forget Me Not"], + ["FFF1F9", "Tutu"], + ["FFF39D", "Picasso"], + ["FFF3F1", "Chardon"], + ["FFF46E", "Paris Daisy"], + ["FFF4CE", "Barley White"], + ["FFF4DD", "Egg Sour"], + ["FFF4E0", "Sazerac"], + ["FFF4E8", "Serenade"], + ["FFF4F3", "Chablis"], + ["FFF5EE", "Seashell Peach"], + ["FFF5F3", "Sauvignon"], + ["FFF6D4", "Milk Punch"], + ["FFF6DF", "Varden"], + ["FFF6F5", "Rose White"], + ["FFF8D1", "Baja White"], + ["FFF9E2", "Gin Fizz"], + ["FFF9E6", "Early Dawn"], + ["FFFACD", "Lemon Chiffon"], + ["FFFAF4", "Bridal Heath"], + ["FFFBDC", "Scotch Mist"], + ["FFFBF9", "Soapstone"], + ["FFFC99", "Witch Haze"], + ["FFFCEA", "Buttery White"], + ["FFFCEE", "Island Spice"], + ["FFFDD0", "Cream"], + ["FFFDE6", "Chilean Heath"], + ["FFFDE8", "Travertine"], + ["FFFDF3", "Orchid White"], + ["FFFDF4", "Quarter Pearl Lusta"], + ["FFFEE1", "Half and Half"], + ["FFFEEC", "Apricot White"], + ["FFFEF0", "Rice Cake"], + ["FFFEF6", "Black White"], + ["FFFEFD", "Romance"], + ["FFFF00", "Yellow"], + ["FFFF66", "Laser Lemon"], + ["FFFF99", "Pale Canary"], + ["FFFFB4", "Portafino"], + ["FFFFF0", "Ivory"], + ["FFFFFF", "White"] +] diff --git a/packages/color-palette/src/json/palette.json b/packages/color-palette/src/json/palette.json new file mode 100644 index 00000000..440a04bc --- /dev/null +++ b/packages/color-palette/src/json/palette.json @@ -0,0 +1,274 @@ +[ + { + "key": "red", + "palettes": [ + { "hexcode": "#fef2f2", "number": 50, "name": "Bridesmaid" }, + { "hexcode": "#fee2e2", "number": 100, "name": "Pippin" }, + { "hexcode": "#fecaca", "number": 200, "name": "Your Pink" }, + { "hexcode": "#fca5a5", "number": 300, "name": "Cornflower Lilac" }, + { "hexcode": "#f87171", "number": 400, "name": "Bittersweet" }, + { "hexcode": "#ef4444", "number": 500, "name": "Cinnabar" }, + { "hexcode": "#dc2626", "number": 600, "name": "Persian Red" }, + { "hexcode": "#b91c1c", "number": 700, "name": "Thunderbird" }, + { "hexcode": "#991b1b", "number": 800, "name": "Old Brick" }, + { "hexcode": "#7f1d1d", "number": 900, "name": "Falu Red" }, + { "hexcode": "#450a0a", "number": 950, "name": "Mahogany" } + ] + }, + { + "key": "orange", + "palettes": [ + { "hexcode": "#fff7ed", "number": 50, "name": "Serenade" }, + { "hexcode": "#ffedd5", "number": 100, "name": "Derby" }, + { "hexcode": "#fed7aa", "number": 200, "name": "Caramel" }, + { "hexcode": "#fdba74", "number": 300, "name": "Macaroni and Cheese" }, + { "hexcode": "#fb923c", "number": 400, "name": "Neon Carrot" }, + { "hexcode": "#f97316", "number": 500, "name": "Ecstasy" }, + { "hexcode": "#ea580c", "number": 600, "name": "Trinidad" }, + { "hexcode": "#c2410c", "number": 700, "name": "Tia Maria" }, + { "hexcode": "#9a3412", "number": 800, "name": "Tabasco" }, + { "hexcode": "#7c2d12", "number": 900, "name": "Pueblo" }, + { "hexcode": "#431407", "number": 950, "name": "Rebel" } + ] + }, + { + "key": "amber", + "palettes": [ + { "hexcode": "#fffbeb", "number": 50, "name": "Island Spice" }, + { "hexcode": "#fef3c7", "number": 100, "name": "Beeswax" }, + { "hexcode": "#fde68a", "number": 200, "name": "Sweet Corn" }, + { "hexcode": "#fcd34d", "number": 300, "name": "Mustard" }, + { "hexcode": "#fbbf24", "number": 400, "name": "Lightning Yellow" }, + { "hexcode": "#f59e0b", "number": 500, "name": "California" }, + { "hexcode": "#d97706", "number": 600, "name": "Christine" }, + { "hexcode": "#b45309", "number": 700, "name": "Vesuvius" }, + { "hexcode": "#92400e", "number": 800, "name": "Korma" }, + { "hexcode": "#78350f", "number": 900, "name": "Copper Canyon" }, + { "hexcode": "#451a03", "number": 950, "name": "Brown Pod" } + ] + }, + { + "key": "yellow", + "palettes": [ + { "hexcode": "#fefce8", "number": 50, "name": "Orange White" }, + { "hexcode": "#fef9c3", "number": 100, "name": "Lemon Chiffon" }, + { "hexcode": "#fef08a", "number": 200, "name": "Sweet Corn" }, + { "hexcode": "#fde047", "number": 300, "name": "Bright Sun" }, + { "hexcode": "#facc15", "number": 400, "name": "Candlelight" }, + { "hexcode": "#eab308", "number": 500, "name": "Corn" }, + { "hexcode": "#ca8a04", "number": 600, "name": "Pirate Gold" }, + { "hexcode": "#a16207", "number": 700, "name": "Mai Tai" }, + { "hexcode": "#854d0e", "number": 800, "name": "Korma" }, + { "hexcode": "#713f12", "number": 900, "name": "Sepia" }, + { "hexcode": "#422006", "number": 950, "name": "Dark Ebony" } + ] + }, + { + "key": "lime", + "palettes": [ + { "hexcode": "#f7fee7", "number": 50, "name": "Spring Sun" }, + { "hexcode": "#ecfccb", "number": 100, "name": "Chiffon" }, + { "hexcode": "#d9f99d", "number": 200, "name": "Gossip" }, + { "hexcode": "#bef264", "number": 300, "name": "Sulu" }, + { "hexcode": "#a3e635", "number": 400, "name": "Conifer" }, + { "hexcode": "#84cc16", "number": 500, "name": "Lima" }, + { "hexcode": "#65a30d", "number": 600, "name": "Christi" }, + { "hexcode": "#4d7c0f", "number": 700, "name": "Green Leaf" }, + { "hexcode": "#3f6212", "number": 800, "name": "Dell" }, + { "hexcode": "#365314", "number": 900, "name": "Clover" }, + { "hexcode": "#1a2e05", "number": 950, "name": "Deep Forest Green" } + ] + }, + { + "key": "green", + "palettes": [ + { "hexcode": "#f0fdf4", "number": 50, "name": "Ottoman" }, + { "hexcode": "#dcfce7", "number": 100, "name": "Blue Romance" }, + { "hexcode": "#bbf7d0", "number": 200, "name": "Magic Mint" }, + { "hexcode": "#86efac", "number": 300, "name": "Algae Green" }, + { "hexcode": "#4ade80", "number": 400, "name": "Emerald" }, + { "hexcode": "#22c55e", "number": 500, "name": "Malachite" }, + { "hexcode": "#16a34a", "number": 600, "name": "Salem" }, + { "hexcode": "#15803d", "number": 700, "name": "Jewel" }, + { "hexcode": "#166534", "number": 800, "name": "Jewel" }, + { "hexcode": "#14532d", "number": 900, "name": "Green Pea" }, + { "hexcode": "#052e16", "number": 950, "name": "English Holly" } + ] + }, + { + "key": "emerald", + "palettes": [ + { "hexcode": "#ecfdf5", "number": 50, "name": "White Ice" }, + { "hexcode": "#d1fae5", "number": 100, "name": "Granny Apple" }, + { "hexcode": "#a7f3d0", "number": 200, "name": "Magic Mint" }, + { "hexcode": "#6ee7b7", "number": 300, "name": "Bermuda" }, + { "hexcode": "#34d399", "number": 400, "name": "Shamrock" }, + { "hexcode": "#10b981", "number": 500, "name": "Mountain Meadow" }, + { "hexcode": "#059669", "number": 600, "name": "Green Haze" }, + { "hexcode": "#047857", "number": 700, "name": "Watercourse" }, + { "hexcode": "#065f46", "number": 800, "name": "Watercourse" }, + { "hexcode": "#064e3b", "number": 900, "name": "Evening Sea" }, + { "hexcode": "#022c22", "number": 950, "name": "Burnham" } + ] + }, + { + "key": "teal", + "palettes": [ + { "hexcode": "#f0fdfa", "number": 50, "name": "White Ice" }, + { "hexcode": "#ccfbf1", "number": 100, "name": "Scandal" }, + { "hexcode": "#99f6e4", "number": 200, "name": "Ice Cold" }, + { "hexcode": "#5eead4", "number": 300, "name": "Turquoise Blue" }, + { "hexcode": "#2dd4bf", "number": 400, "name": "Turquoise" }, + { "hexcode": "#14b8a6", "number": 500, "name": "Java" }, + { "hexcode": "#0d9488", "number": 600, "name": "Blue Chill" }, + { "hexcode": "#0f766e", "number": 700, "name": "Genoa" }, + { "hexcode": "#115e59", "number": 800, "name": "Eden" }, + { "hexcode": "#134e4a", "number": 900, "name": "Eden" }, + { "hexcode": "#042f2e", "number": 950, "name": "Tiber" } + ] + }, + { + "key": "cyan", + "palettes": [ + { "hexcode": "#ecfeff", "number": 50, "name": "Bubbles" }, + { "hexcode": "#cffafe", "number": 100, "name": "Oyster Bay" }, + { "hexcode": "#a5f3fc", "number": 200, "name": "Anakiwa" }, + { "hexcode": "#67e8f9", "number": 300, "name": "Spray" }, + { "hexcode": "#22d3ee", "number": 400, "name": "Bright Turquoise" }, + { "hexcode": "#06b6d4", "number": 500, "name": "Cerulean" }, + { "hexcode": "#0891b2", "number": 600, "name": "Bondi Blue" }, + { "hexcode": "#0e7490", "number": 700, "name": "Blue Chill" }, + { "hexcode": "#155e75", "number": 800, "name": "Blumine" }, + { "hexcode": "#164e63", "number": 900, "name": "Chathams Blue" }, + { "hexcode": "#083344", "number": 950, "name": "Tarawera" } + ] + }, + { + "key": "sky", + "palettes": [ + { "hexcode": "#f0f9ff", "number": 50, "name": "Alice Blue" }, + { "hexcode": "#e0f2fe", "number": 100, "name": "Pattens Blue" }, + { "hexcode": "#bae6fd", "number": 200, "name": "French Pass" }, + { "hexcode": "#7dd3fc", "number": 300, "name": "Malibu" }, + { "hexcode": "#38bdf8", "number": 400, "name": "Picton Blue" }, + { "hexcode": "#0ea5e9", "number": 500, "name": "Cerulean" }, + { "hexcode": "#0284c7", "number": 600, "name": "Lochmara" }, + { "hexcode": "#0369a1", "number": 700, "name": "Bahama Blue" }, + { "hexcode": "#075985", "number": 800, "name": "Venice Blue" }, + { "hexcode": "#0c4a6e", "number": 900, "name": "Chathams Blue" }, + { "hexcode": "#082f49", "number": 950, "name": "Blue Whale" } + ] + }, + { + "key": "blue", + "palettes": [ + { "hexcode": "#eff6ff", "number": 50, "name": "Zumthor" }, + { "hexcode": "#dbeafe", "number": 100, "name": "Hawkes Blue" }, + { "hexcode": "#bfdbfe", "number": 200, "name": "Tropical Blue" }, + { "hexcode": "#93c5fd", "number": 300, "name": "Malibu" }, + { "hexcode": "#60a5fa", "number": 400, "name": "Cornflower Blue" }, + { "hexcode": "#3b82f6", "number": 500, "name": "Dodger Blue" }, + { "hexcode": "#2563eb", "number": 600, "name": "Royal Blue" }, + { "hexcode": "#1d4ed8", "number": 700, "name": "Cerulean Blue" }, + { "hexcode": "#1e40af", "number": 800, "name": "Persian Blue" }, + { "hexcode": "#1e3a8a", "number": 900, "name": "Bay of Many" }, + { "hexcode": "#172554", "number": 950, "name": "Bunting" } + ] + }, + { + "key": "indigo", + "palettes": [ + { "hexcode": "#eef2ff", "number": 50, "name": "Zircon" }, + { "hexcode": "#e0e7ff", "number": 100, "name": "Hawkes Blue" }, + { "hexcode": "#c7d2fe", "number": 200, "name": "Periwinkle" }, + { "hexcode": "#a5b4fc", "number": 300, "name": "Perano" }, + { "hexcode": "#818cf8", "number": 400, "name": "Portage" }, + { "hexcode": "#6366f1", "number": 500, "name": "Royal Blue" }, + { "hexcode": "#4f46e5", "number": 600, "name": "Royal Blue" }, + { "hexcode": "#4338ca", "number": 700, "name": "Governor Bay" }, + { "hexcode": "#3730a3", "number": 800, "name": "Governor Bay" }, + { "hexcode": "#312e81", "number": 900, "name": "Minsk" }, + { "hexcode": "#1e1b4b", "number": 950, "name": "Port Gore" } + ] + }, + { + "key": "violet", + "palettes": [ + { "hexcode": "#f5f3ff", "number": 50, "name": "Titan White" }, + { "hexcode": "#ede9fe", "number": 100, "name": "Titan White" }, + { "hexcode": "#ddd6fe", "number": 200, "name": "Fog" }, + { "hexcode": "#c4b5fd", "number": 300, "name": "Melrose" }, + { "hexcode": "#a78bfa", "number": 400, "name": "Dull Lavender" }, + { "hexcode": "#8b5cf6", "number": 500, "name": "Medium Purple" }, + { "hexcode": "#7c3aed", "number": 600, "name": "Purple Heart" }, + { "hexcode": "#6d28d9", "number": 700, "name": "Purple Heart" }, + { "hexcode": "#5b21b6", "number": 800, "name": "Purple Heart" }, + { "hexcode": "#4c1d95", "number": 900, "name": "Daisy Bush" }, + { "hexcode": "#2e1065", "number": 950, "name": "Violent Violet" } + ] + }, + { + "key": "purple", + "palettes": [ + { "hexcode": "#faf5ff", "number": 50, "name": "Magnolia" }, + { "hexcode": "#f3e8ff", "number": 100, "name": "Blue Chalk" }, + { "hexcode": "#e9d5ff", "number": 200, "name": "Blue Chalk" }, + { "hexcode": "#d8b4fe", "number": 300, "name": "Mauve" }, + { "hexcode": "#c084fc", "number": 400, "name": "Heliotrope" }, + { "hexcode": "#a855f7", "number": 500, "name": "Medium Purple" }, + { "hexcode": "#9333ea", "number": 600, "name": "Electric Violet" }, + { "hexcode": "#7e22ce", "number": 700, "name": "Purple Heart" }, + { "hexcode": "#6b21a8", "number": 800, "name": "Seance" }, + { "hexcode": "#581c87", "number": 900, "name": "Daisy Bush" }, + { "hexcode": "#3b0764", "number": 950, "name": "Christalle" } + ] + }, + { + "key": "fuchsia", + "palettes": [ + { "hexcode": "#fdf4ff", "number": 50, "name": "White Pointer" }, + { "hexcode": "#fae8ff", "number": 100, "name": "White Pointer" }, + { "hexcode": "#f5d0fe", "number": 200, "name": "Mauve" }, + { "hexcode": "#f0abfc", "number": 300, "name": "Mauve" }, + { "hexcode": "#e879f9", "number": 400, "name": "Heliotrope" }, + { "hexcode": "#d946ef", "number": 500, "name": "Heliotrope" }, + { "hexcode": "#c026d3", "number": 600, "name": "Fuchsia Pink" }, + { "hexcode": "#a21caf", "number": 700, "name": "Violet Eggplant" }, + { "hexcode": "#86198f", "number": 800, "name": "Seance" }, + { "hexcode": "#701a75", "number": 900, "name": "Seance" }, + { "hexcode": "#4a044e", "number": 950, "name": "Clairvoyant" } + ] + }, + { + "key": "pink", + "palettes": [ + { "hexcode": "#fdf2f8", "number": 50, "name": "Wisp Pink" }, + { "hexcode": "#fce7f3", "number": 100, "name": "Carousel Pink" }, + { "hexcode": "#fbcfe8", "number": 200, "name": "Classic Rose" }, + { "hexcode": "#f9a8d4", "number": 300, "name": "Lavender Pink" }, + { "hexcode": "#f472b6", "number": 400, "name": "Persian Pink" }, + { "hexcode": "#ec4899", "number": 500, "name": "Brilliant Rose" }, + { "hexcode": "#db2777", "number": 600, "name": "Cerise" }, + { "hexcode": "#be185d", "number": 700, "name": "Maroon Flush" }, + { "hexcode": "#9d174d", "number": 800, "name": "Disco" }, + { "hexcode": "#831843", "number": 900, "name": "Disco" }, + { "hexcode": "#500724", "number": 950, "name": "Cab Sav" } + ] + }, + { + "key": "rose", + "palettes": [ + { "hexcode": "#fff1f2", "number": 50, "name": "Lavender blush" }, + { "hexcode": "#ffe4e6", "number": 100, "name": "Cosmos" }, + { "hexcode": "#fecdd3", "number": 200, "name": "Pastel Pink" }, + { "hexcode": "#fda4af", "number": 300, "name": "Sweet Pink" }, + { "hexcode": "#fb7185", "number": 400, "name": "Froly" }, + { "hexcode": "#f43f5e", "number": 500, "name": "Radical Red" }, + { "hexcode": "#e11d48", "number": 600, "name": "Amaranth" }, + { "hexcode": "#be123c", "number": 700, "name": "Cardinal" }, + { "hexcode": "#9f1239", "number": 800, "name": "Shiraz" }, + { "hexcode": "#881337", "number": 900, "name": "Claret" }, + { "hexcode": "#4c0519", "number": 950, "name": "Cab Sav" } + ] + } +] diff --git a/packages/color-palette/src/name.ts b/packages/color-palette/src/name.ts new file mode 100644 index 00000000..8aebbde5 --- /dev/null +++ b/packages/color-palette/src/name.ts @@ -0,0 +1,46 @@ +import { getHex, getRgb, getHsl } from './color'; +import colorNames from './json/color-name.json'; + +export function getColorName(color: string) { + const hex = getHex(color); + const rgb = getRgb(color); + const hsl = getHsl(color); + + let ndf = 0; + let ndf1 = 0; + let ndf2 = 0; + let cl = -1; + let df = -1; + + let name = ''; + + colorNames.some((item, index) => { + const [hexValue, colorName] = item; + + const hexcode = `#${hexValue}`; + + const match = hex === hexcode; + + if (match) { + name = colorName; + } else { + const { r, g, b } = getRgb(hexcode); + const { h, s, l } = getHsl(hexcode); + + ndf1 = (rgb.r - r) ** 2 + (rgb.g - g) ** 2 + (rgb.b - b) ** 2; + ndf2 = (hsl.h - h) ** 2 + (hsl.s - s) ** 2 + (hsl.l - l) ** 2; + + ndf = ndf1 + ndf2 * 2; + if (df < 0 || df > ndf) { + df = ndf; + cl = index; + } + } + + return match; + }); + + name = cl < 0 ? 'Invalid Color' : colorNames[cl][1]; + + return name; +} diff --git a/packages/color-palette/src/palette.ts b/packages/color-palette/src/palette.ts new file mode 100644 index 00000000..e4b7e63f --- /dev/null +++ b/packages/color-palette/src/palette.ts @@ -0,0 +1,95 @@ +import { isValidColor, getHsl, getDeltaE, transformHslToHex } from './color'; +import { getColorName } from './name'; +import type { ColorPaletteFamily, ColorPaletteFamilyWithNearestPalette } from './type'; +import defaultPalettes from './json/palette.json'; + +export function getNearestColorPaletteFamily(color: string, families: ColorPaletteFamily[]) { + const familyWithConfig = families.map(family => { + const palettes = family.palettes.map(palette => { + return { + ...palette, + delta: getDeltaE(color, palette.hexcode) + }; + }); + + const nearestPalette = palettes.reduce((prev, curr) => (prev.delta < curr.delta ? prev : curr)); + + return { + ...family, + palettes, + nearestPalette + }; + }); + + const nearestPaletteFamily = familyWithConfig.reduce((prev, curr) => + prev.nearestPalette.delta < curr.nearestPalette.delta ? prev : curr + ); + + const { l } = getHsl(color); + + const paletteFamily: ColorPaletteFamilyWithNearestPalette = { + ...nearestPaletteFamily, + nearestLightnessPalette: nearestPaletteFamily.palettes.reduce((prev, curr) => { + const { l: prevLightness } = getHsl(prev.hexcode); + const { l: currLightness } = getHsl(curr.hexcode); + + const deltaPrev = Math.abs(prevLightness - l); + const deltaCurr = Math.abs(currLightness - l); + + return deltaPrev < deltaCurr ? prev : curr; + }) + }; + + return paletteFamily; +} + +export function getColorPaletteFamily(color: string, colorName: string) { + if (!isValidColor(color)) { + throw new Error('Invalid color, please check color value!'); + } + + const { h: h1, s: s1 } = getHsl(color); + + const { nearestLightnessPalette, palettes } = getNearestColorPaletteFamily( + color, + defaultPalettes as ColorPaletteFamily[] + ); + + const { number, hexcode } = nearestLightnessPalette; + + const { h: h2, s: s2 } = getHsl(hexcode); + + const deltaH = h1 - h2 || h2; + + const sRatio = s1 / s2; + + const colorPaletteFamily: ColorPaletteFamily = { + key: colorName, + palettes: palettes.map(palette => { + let hexValue = color; + + const isSame = number === palette.number; + + if (!isSame) { + const { h: h3, s: s3, l } = getHsl(palette.hexcode); + + const newH = deltaH < 0 ? h3 + deltaH : deltaH; + const newS = s3 * sRatio; + + hexValue = transformHslToHex({ + h: newH, + s: newS, + l + }); + } + + return { + hexcode: hexValue, + number: palette.number, + name: getColorName(hexValue) + }; + }) + }; + + return colorPaletteFamily; +} diff --git a/packages/color-palette/src/type.ts b/packages/color-palette/src/type.ts new file mode 100644 index 00000000..bdad0891 --- /dev/null +++ b/packages/color-palette/src/type.ts @@ -0,0 +1,63 @@ +/** + * the color palette number + */ +export type ColorPaletteNumber = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 950; + +/** + * the color palette item + */ +export type ColorPaletteItem = { + /** + * the color hexcode + */ + hexcode: string; + /** + * the color number + * @link {@link ColorPaletteNumber} + */ + number: ColorPaletteNumber; + /** + * the color name + */ + name: string; +}; + +export type ColorPaletteFamily = { + /** + * the color palette family key + */ + key: string; + /** + * the color palette family's palettes + */ + palettes: ColorPaletteItem[]; +}; + +export type ColorPaletteWithDelta = ColorPaletteItem & { + delta: number; +}; + +export type ColorPaletteItemWithName = ColorPaletteItem & { + name: string; +}; + +export type ColorPaletteFamilyWithNearestPalette = ColorPaletteFamily & { + nearestPalette: ColorPaletteWithDelta; + nearestLightnessPalette: ColorPaletteWithDelta; +}; + +export type ColorPalette = ColorPaletteFamily & { + /** + * the color map of the palette + */ + colorMap: Map; + /** + * the main color of the palette + * @description which number is 500 + */ + main: ColorPaletteItemWithName; + /** + * the match color of the palette + */ + match: ColorPaletteItemWithName; +}; diff --git a/packages/docs/.vitepress/config.ts b/packages/docs/.vitepress/config.ts new file mode 100644 index 00000000..1a71de83 --- /dev/null +++ b/packages/docs/.vitepress/config.ts @@ -0,0 +1,38 @@ +import path from 'node:path'; +import { defineConfig } from 'vitepress'; + +export default defineConfig({ + title: 'Soybean Admin', + description: '一个优雅、清新、漂亮的中后台模版', + head: [ + ['meta', { name: 'author', content: 'Soybean' }], + [ + 'meta', + { + name: 'keywords', + content: 'soybean, soybean-admin, vite, vue, vue3, soybean-admin docs' + } + ], + ['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' }], + [ + 'meta', + { + name: 'viewport', + content: 'width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no' + } + ], + ['link', { rel: 'icon', href: '/favicon.ico' }] + ], + srcDir: path.join(process.cwd(), 'packages/docs/src'), + themeConfig: { + logo: '/logo.svg', + socialLinks: [{ icon: 'github', link: 'https://github.com/honghuangdc/soybean-admin' }], + algolia: { + appId: '98WN1RY04S', + apiKey: '13e9f5767b774422a5880723d9c23265', + indexName: 'soybean' + }, + nav: [], + sidebar: {} + } +}); diff --git a/packages/docs/.vitepress/icon.ts b/packages/docs/.vitepress/icon.ts new file mode 100644 index 00000000..28717de7 --- /dev/null +++ b/packages/docs/.vitepress/icon.ts @@ -0,0 +1,32 @@ +export const qqSvg = ` + + + + + + + + + + + + +`; diff --git a/packages/docs/.vitepress/theme/index.ts b/packages/docs/.vitepress/theme/index.ts new file mode 100644 index 00000000..78505210 --- /dev/null +++ b/packages/docs/.vitepress/theme/index.ts @@ -0,0 +1,4 @@ +import Theme from 'vitepress/theme'; +import './style.css'; + +export default Theme; diff --git a/packages/docs/.vitepress/theme/style.css b/packages/docs/.vitepress/theme/style.css new file mode 100644 index 00000000..f98e61f2 --- /dev/null +++ b/packages/docs/.vitepress/theme/style.css @@ -0,0 +1,90 @@ +/** + * Customize default theme styling by overriding CSS variables: + * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css + */ + +/** + * Colors + * -------------------------------------------------------------------------- */ + +:root { + --vp-c-brand: #646cff; + --vp-c-brand-light: #747bff; + --vp-c-brand-lighter: #9499ff; + --vp-c-brand-lightest: #bcc0ff; + --vp-c-brand-dark: #535bf2; + --vp-c-brand-darker: #454ce1; + --vp-c-brand-dimm: rgba(100, 108, 255, 0.08); +} + +/** + * Component: Button + * -------------------------------------------------------------------------- */ + +:root { + --vp-button-brand-border: var(--vp-c-brand-light); + --vp-button-brand-text: var(--vp-c-white); + --vp-button-brand-bg: var(--vp-c-brand); + --vp-button-brand-hover-border: var(--vp-c-brand-light); + --vp-button-brand-hover-text: var(--vp-c-white); + --vp-button-brand-hover-bg: var(--vp-c-brand-light); + --vp-button-brand-active-border: var(--vp-c-brand-light); + --vp-button-brand-active-text: var(--vp-c-white); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); +} + +/** + * Component: Home + * -------------------------------------------------------------------------- */ + +:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient( + 120deg, + var(--vp-c-brand-lightest) 30%, + var(--vp-c-brand-darker) + ); + + --vp-home-hero-image-background-image: linear-gradient( + -45deg, + var(--vp-c-brand-lightest) 30%, + var(--vp-c-brand) 50% + ); + --vp-home-hero-image-filter: blur(40px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(72px); + } +} + +/** + * Component: Custom Block + * -------------------------------------------------------------------------- */ + +:root { + --vp-custom-block-tip-border: var(--vp-c-brand); + --vp-custom-block-tip-text: var(--vp-c-brand-darker); + --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); +} + +.dark { + --vp-custom-block-tip-border: var(--vp-c-brand); + --vp-custom-block-tip-text: var(--vp-c-brand-lightest); + --vp-custom-block-tip-bg: var(--vp-c-brand-dimm); +} + +/** + * Component: Algolia + * -------------------------------------------------------------------------- */ + +.DocSearch { + --docsearch-primary-color: var(--vp-c-brand) !important; +} diff --git a/packages/docs/package.json b/packages/docs/package.json new file mode 100644 index 00000000..73ca7d9a --- /dev/null +++ b/packages/docs/package.json @@ -0,0 +1,12 @@ +{ + "name": "@sa/docs", + "version": "1.0.0", + "scripts": { + "dev": "vitepress dev", + "build": "vitepress build", + "serve": "vitepress serve" + }, + "devDependencies": { + "vitepress": "1.0.0-rc.25" + } +} diff --git a/packages/docs/src/index.md b/packages/docs/src/index.md new file mode 100644 index 00000000..af7f5322 --- /dev/null +++ b/packages/docs/src/index.md @@ -0,0 +1,44 @@ +--- +layout: home + +title: Soybean Admin +titleTemplate: 一个清新优雅的中后台模版 + +hero: + name: Soybean Admin + text: 清新优雅的中后台模版 + tagline: 基于 Vue3 + Vite3 + TS + NaiveUI + UnoCSS + image: + src: /logo.svg + alt: Soybean Admin + actions: + - theme: brand + text: 开始 + link: /guide/ + - theme: alt + text: 介绍 + link: /guide/introduction + - theme: alt + text: 在 GitHub 上查看 + link: https://github.com/honghuangdc/soybean-admin + +features: + - icon: 🆕 + title: 最新流行技术栈 + details: 基于Vue3、Vite3、TS、NaiveUI和UnoCSS等最新技术栈开发 + - icon: 🦋 + title: 极高水准的代码规范 + details: 代码规范完善,代码结构清晰 + - icon: 🛠️ + title: 丰富的插件 + details: 常见的Web端插件示例实现 + - icon: 🔩 + title: 主题配置 + details: 丰富的主题配置及暗黑主题适配 + - icon: 🔗 + title: 基于文件的路由系统 + details: 自动生成路由声明、路由导入和路由模块 + - icon: 🔑 + title: 权限管理 + details: 完善的前后端权限管理方案 +--- diff --git a/packages/eslint-config/configs/base.js b/packages/eslint-config/configs/base.js new file mode 100644 index 00000000..d3af3b60 --- /dev/null +++ b/packages/eslint-config/configs/base.js @@ -0,0 +1,6 @@ +/** + * @type {import('eslint').ESLint.ConfigData} + */ +module.exports = { + extends: [require.resolve('./ts.js'), require.resolve('./prettier.js')] +}; diff --git a/packages/eslint-config/configs/js.js b/packages/eslint-config/configs/js.js new file mode 100644 index 00000000..0065e630 --- /dev/null +++ b/packages/eslint-config/configs/js.js @@ -0,0 +1,44 @@ +/** + * @type {import('eslint').ESLint.ConfigData} + */ +module.exports = { + root: true, + env: { + browser: true, + node: true, + commonjs: true, + es2024: true + }, + parserOptions: { + ecmaVersion: 2024, + ecmaFeatures: { + jsx: true + }, + sourceType: 'module' + }, + ignorePatterns: [ + 'node_modules', + '*.min.*', + 'CHANGELOG.md', + 'dist', + 'LICENSE*', + 'output', + 'coverage', + 'public', + 'temp', + 'package-lock.json', + 'pnpm-lock.yaml', + 'yarn.lock', + '__snapshots__', + '!.github', + '!.vitepress', + '!.vscode' + ], + plugins: ['n', 'promise'], + extends: [require.resolve('../rules/all.js'), 'plugin:import/recommended'], + rules: { + // import + 'import/no-mutable-exports': 'error', + 'import/no-named-as-default': 'off' + } +}; diff --git a/packages/eslint-config/configs/prettier.js b/packages/eslint-config/configs/prettier.js new file mode 100644 index 00000000..fe58ce92 --- /dev/null +++ b/packages/eslint-config/configs/prettier.js @@ -0,0 +1,11 @@ +const prettierRules = require('../rules/prettier'); + +/** + * @type {import('eslint').ESLint.ConfigData} + */ +module.exports = { + extends: ['plugin:prettier/recommended'], + rules: { + 'prettier/prettier': ['error', prettierRules] + } +}; diff --git a/packages/eslint-config/configs/ts.js b/packages/eslint-config/configs/ts.js new file mode 100644 index 00000000..e700bf45 --- /dev/null +++ b/packages/eslint-config/configs/ts.js @@ -0,0 +1,61 @@ +/** + * @type {import('eslint').ESLint.ConfigData} + */ +module.exports = { + plugins: ['@typescript-eslint'], + extends: [require.resolve('./js.js'), 'plugin:import/typescript', 'plugin:@typescript-eslint/recommended'], + settings: { + 'import/resolver': { + typescript: { + project: ['tsconfig.json', 'packages/*/tsconfig.json', 'examples/*/tsconfig.json', 'docs/*/tsconfig.json'] + } + } + }, + overrides: [ + { + files: ['*.ts', '*.tsx', '*.mts', '*.cts'], + parser: '@typescript-eslint/parser' + }, + { + files: ['*.js', '*.mjs', '*.cjs', '*.cts'], + rules: { + '@typescript-eslint/no-var-requires': 'off' + } + } + ], + rules: { + // TS + '@typescript-eslint/consistent-type-imports': ['error', { prefer: 'type-imports', disallowTypeAnnotations: false }], + '@typescript-eslint/no-empty-interface': [ + 'error', + { + allowSingleExtends: true + } + ], + + // Override JS + 'no-redeclare': 'off', + '@typescript-eslint/no-redeclare': 'error', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + vars: 'all', + args: 'all', + ignoreRestSiblings: false, + varsIgnorePattern: '^_', + argsIgnorePattern: '^_' + } + ], + 'no-use-before-define': 'off', + '@typescript-eslint/no-use-before-define': ['error', { functions: false, classes: false, variables: true }], + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': 'error', + + // off + '@typescript-eslint/consistent-type-definitions': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-non-null-assertion': 'off' + } +}; diff --git a/packages/eslint-config/configs/vue.js b/packages/eslint-config/configs/vue.js new file mode 100644 index 00000000..493f5a71 --- /dev/null +++ b/packages/eslint-config/configs/vue.js @@ -0,0 +1,30 @@ +/** + * @type {import('eslint').ESLint.ConfigData} + */ +module.exports = { + extends: ['plugin:vue/vue3-recommended', require.resolve('./base.js')], + overrides: [ + { + files: ['*.vue'], + parser: 'vue-eslint-parser', + parserOptions: { + parser: { + js: 'espree', + jsx: 'espree', + ts: '@typescript-eslint/parser', + tsx: '@typescript-eslint/parser' + }, + extraFileExtensions: ['.vue'], + ecmaFeatures: { + jsx: true + } + }, + rules: { + 'no-undef': 'off' // TS will check un declared variables, if the script code is is in a .vue file, this rule should not disabled + } + } + ], + rules: { + 'vue/multi-word-component-names': 'off' + } +}; diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js new file mode 100644 index 00000000..bae7d0c5 --- /dev/null +++ b/packages/eslint-config/index.js @@ -0,0 +1,6 @@ +const baseConfig = require('./configs/base'); + +/** + * @type {import('eslint').ESLint.ConfigData} + */ +module.exports = baseConfig; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json new file mode 100644 index 00000000..53f351a8 --- /dev/null +++ b/packages/eslint-config/package.json @@ -0,0 +1,23 @@ +{ + "name": "eslint-config-sa", + "version": "1.0.0", + "description": "SoybeanAdmin's eslint config resets", + "exports": { + ".": "./index.js", + "./vue": "./configs/vue.js" + }, + "devDependencies": { + "@types/eslint": "8.44.7", + "@typescript-eslint/eslint-plugin": "6.11.0", + "@typescript-eslint/parser": "6.11.0", + "eslint": "8.53.0", + "eslint-config-prettier": "9.0.0", + "eslint-import-resolver-typescript": "3.6.1", + "eslint-plugin-import": "2.29.0", + "eslint-plugin-n": "16.3.1", + "eslint-plugin-prettier": "5.0.1", + "eslint-plugin-promise": "6.1.1", + "eslint-plugin-vue": "9.18.1", + "prettier": "3.1.0" + } +} diff --git a/packages/eslint-config/rules/all.js b/packages/eslint-config/rules/all.js new file mode 100644 index 00000000..967c3f45 --- /dev/null +++ b/packages/eslint-config/rules/all.js @@ -0,0 +1,1681 @@ +/** + * @type {import('eslint').Linter.RulesRecord} + */ +module.exports = { + rules: { + /* + * Possible Problems + * These rules relate to possible logic errors in code + */ + + /** + * @description Enforce return statements in callbacks of array methods + * @link https://eslint.org/docs/latest/rules/array-callback-return + */ + 'array-callback-return': 'error', + + /** + * @description Require `super()` calls in constructors + * @link https://eslint.org/docs/latest/rules/constructor-super + */ + 'constructor-super': 'error', + + /** + * @description Enforce \"for\" loop update clause moving the counter in the right direction. + * @link https://eslint.org/docs/latest/rules/for-direction + */ + 'for-direction': 'error', + + /** + * @description Enforce `return` statements in getters + * @link https://eslint.org/docs/latest/rules/getter-return + */ + 'getter-return': 'error', + + /** + * @description Disallow using an async function as a Promise executor + * @link https://eslint.org/docs/latest/rules/no-async-promise-executor + */ + 'no-async-promise-executor': 'error', + + /** + * @description Disallow `await` inside of loops + * @link https://eslint.org/docs/latest/rules/no-await-in-loop + */ + 'no-await-in-loop': 'error', + + /** + * @description Disallow reassigning class members + * @link https://eslint.org/docs/latest/rules/no-class-assign + */ + 'no-class-assign': 'error', + + /** + * @description Disallow comparing against -0 + * @link https://eslint.org/docs/latest/rules/no-compare-neg-zero + */ + 'no-compare-neg-zero': 'error', + + /** + * @description Disallow assignment operators in conditional expressions + * @link https://eslint.org/docs/latest/rules/no-cond-assign + */ + 'no-cond-assign': 'error', + + /** + * @description Disallow reassigning `const` variables + * @link https://eslint.org/docs/latest/rules/no-const-assign + */ + 'no-const-assign': 'error', + + /** + * @description Disallow expressions where the operation doesn't affect the value + * @link https://eslint.org/docs/latest/rules/no-constant-binary-expression + */ + 'no-constant-binary-expression': 'error', + + /** + * @description Disallow constant expressions in conditions + * @link https://eslint.org/docs/latest/rules/no-constant-condition + */ + 'no-constant-condition': 'error', + + /** + * @description Disallow returning value from constructor + * @link https://eslint.org/docs/latest/rules/no-constructor-return + */ + 'no-constructor-return': 'error', + + /** + * @description Disallow control characters in regular expressions + * @link https://eslint.org/docs/latest/rules/no-control-regex + */ + 'no-control-regex': 'error', + + /** + * @description Disallow the use of `debugger` + * @link https://eslint.org/docs/latest/rules/no-debugger + */ + 'no-debugger': 'error', + + /** + * @description Disallow duplicate arguments in `function` definitions + * @link https://eslint.org/docs/latest/rules/no-dupe-args + */ + 'no-dupe-args': 'error', + + /** + * @description Disallow duplicate class members + * @link https://eslint.org/docs/latest/rules/no-dupe-class-members + */ + 'no-dupe-class-members': 'error', + + /** + * @description Disallow duplicate conditions in if-else-if chains + * @link https://eslint.org/docs/latest/rules/no-dupe-else-if + */ + 'no-dupe-else-if': 'error', + + /** + * @description Disallow duplicate keys in object literals + * @link https://eslint.org/docs/latest/rules/no-dupe-keys + */ + 'no-dupe-keys': 'error', + + /** + * @description Disallow duplicate case labels + * @link https://eslint.org/docs/latest/rules/no-duplicate-case + */ + 'no-duplicate-case': 'error', + + /** + * @description Disallow duplicate module imports + * @link https://eslint.org/docs/latest/rules/no-duplicate-imports + */ + 'no-duplicate-imports': 'off', + + /** + * @description Disallow empty character classes in regular expressions + * @link https://eslint.org/docs/latest/rules/no-empty-character-class + */ + 'no-empty-character-class': 'error', + + /** + * @description Disallow empty destructuring patterns + * @link https://eslint.org/docs/latest/rules/no-empty-pattern + */ + 'no-empty-pattern': 'error', + + /** + * @description Disallow reassigning exceptions in `catch` clauses + * @link https://eslint.org/docs/latest/rules/no-ex-assign + */ + 'no-ex-assign': 'error', + + /** + * @description Disallow fallthrough of `case` statements + * @link https://eslint.org/docs/latest/rules/no-fallthrough + */ + 'no-fallthrough': 'error', + + /** + * @description Disallow reassigning `function` declarations + * @link https://eslint.org/docs/latest/rules/no-func-assign + */ + 'no-func-assign': 'error', + + /** + * @description Disallow assigning to imported bindings + * @link https://eslint.org/docs/latest/rules/no-import-assign + */ + 'no-import-assign': 'error', + + /** + * @description Disallow variable or `function` declarations in nested blocks + * @link https://eslint.org/docs/latest/rules/no-inner-declarations + */ + 'no-inner-declarations': 'error', + + /** + * @description Disallow invalid regular expression strings in `RegExp` constructors + * @link https://eslint.org/docs/latest/rules/no-invalid-regexp + */ + 'no-invalid-regexp': 'error', + + /** + * @description Disallow irregular whitespace + * @link https://eslint.org/docs/latest/rules/no-irregular-whitespace + */ + 'no-irregular-whitespace': 'error', + + /** + * @description Disallow literal numbers that lose precision + * @link https://eslint.org/docs/latest/rules/no-loss-of-precision + */ + 'no-loss-of-precision': 'error', + + /** + * @description Disallow characters which are made with multiple code points in character class syntax + * @link https://eslint.org/docs/latest/rules/no-misleading-character-class + */ + 'no-misleading-character-class': 'error', + + /** + * @description Disallow `new` operators with the `Symbol` object + * @link https://eslint.org/docs/latest/rules/no-new-symbol + */ + 'no-new-symbol': 'error', + + /** + * @description Disallow calling global object properties as functions + * @link https://eslint.org/docs/latest/rules/no-obj-calls + */ + 'no-obj-calls': 'error', + + /** + * @description Disallow returning values from Promise executor functions + * @link https://eslint.org/docs/latest/rules/no-promise-executor-return + */ + 'no-promise-executor-return': 'error', + + /** + * @description Disallow calling some `Object.prototype` methods directly on objects + * @link https://eslint.org/docs/latest/rules/no-prototype-builtins + */ + 'no-prototype-builtins': 'error', + + /** + * @description Disallow assignments where both sides are exactly the same + * @link https://eslint.org/docs/latest/rules/no-self-assign + */ + 'no-self-assign': 'error', + + /** + * @description Disallow comparisons where both sides are exactly the same + * @link https://eslint.org/docs/latest/rules/no-self-compare + */ + 'no-self-compare': 'error', + + /** + * @description Disallow returning values from setters + * @link https://eslint.org/docs/latest/rules/no-setter-return + */ + 'no-setter-return': 'error', + + /** + * @description Disallow sparse arrays + * @link https://eslint.org/docs/latest/rules/no-sparse-arrays + */ + 'no-sparse-arrays': 'error', + + /** + * @description Disallow template literal placeholder syntax in regular strings + * @link https://eslint.org/docs/latest/rules/no-template-curly-in-string + */ + 'no-template-curly-in-string': 'error', + + /** + * @description Disallow `this`/`super` before calling `super()` in constructors + * @link https://eslint.org/docs/latest/rules/no-this-before-super + */ + 'no-this-before-super': 'error', + + /** + * @description Disallow the use of undeclared variables unless mentioned in *global* comments + * @link https://eslint.org/docs/latest/rules/no-undef + */ + 'no-undef': 'error', + + /** + * @description Disallow confusing multiline expressions + * @link https://eslint.org/docs/latest/rules/no-unexpected-multiline + */ + 'no-unexpected-multiline': 'error', + + /** + * @description Disallow unmodified loop conditions + * @link https://eslint.org/docs/latest/rules/no-unmodified-loop-condition + */ + 'no-unmodified-loop-condition': 'error', + + /** + * @description Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements + * @link https://eslint.org/docs/latest/rules/no-unreachable + */ + 'no-unreachable': 'error', + + /** + * @description Disallow loops with a body that allows only one iteration + * @link https://eslint.org/docs/latest/rules/no-unreachable-loop + */ + 'no-unreachable-loop': 'error', + + /** + * @description Disallow control flow statements in `finally` blocks + * @link https://eslint.org/docs/latest/rules/no-unsafe-finally + */ + 'no-unsafe-finally': 'error', + + /** + * @description Disallow negating the left operand of relational operators + * @link https://eslint.org/docs/latest/rules/no-unsafe-negation + */ + 'no-unsafe-negation': 'error', + + /** + * @description Disallow use of optional chaining in contexts where the `undefined` value is not allowed + * @link https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining + */ + 'no-unsafe-optional-chaining': 'error', + + /** + * @description Disallow unused private class members + * @link https://eslint.org/docs/latest/rules/no-unused-private-class-members + */ + 'no-unused-private-class-members': 'error', + + /** + * @description Disallow unused variables + * @link https://eslint.org/docs/latest/rules/no-unused-vars + */ + 'no-unused-vars': 'error', + + /** + * @description Disallow the use of variables before they are defined + * @link https://eslint.org/docs/latest/rules/no-use-before-define + */ + 'no-use-before-define': ['error', { functions: false, classes: false, variables: true }], + + /** + * @description Disallow useless backreferences in regular expressions + * @link https://eslint.org/docs/latest/rules/no-useless-backreference + */ + 'no-useless-backreference': 'error', + + /** + * @description Disallow assignments that can lead to race conditions due to usage of `await` or `yield` + * @link https://eslint.org/docs/latest/rules/require-atomic-updates + */ + 'require-atomic-updates': 'error', + + /** + * @description Require calls to `isNaN()` when checking for `NaN` + * @link https://eslint.org/docs/latest/rules/use-isnan + */ + 'use-isnan': 'error', + + /** + * @description Enforce comparing `typeof` expressions against valid strings + * @link https://eslint.org/docs/latest/rules/valid-typeof + */ + 'valid-typeof': 'error', + + // End + + /* + * Suggestions + * These rules suggest alternate ways of doing things: + */ + + /** + * @description Enforce getter and setter pairs in objects and classes + * @link https://eslint.org/docs/latest/rules/accessor-pairs + */ + 'accessor-pairs': ['error', { setWithoutGet: true, enforceForClassMembers: true }], + + /** + * @description Require braces around arrow function bodies + * @link https://eslint.org/docs/latest/rules/arrow-body-style + */ + 'arrow-body-style': 'error', + + /** + * @description Enforce the use of variables within the scope they are defined + * @link https://eslint.org/docs/latest/rules/block-scoped-var + */ + 'block-scoped-var': 'error', + + /** + * @description Enforce camelcase naming convention + * @link https://eslint.org/docs/latest/rules/camelcase + */ + camelcase: 'off', + + /** + * @description Enforce or disallow capitalization of the first letter of a comment + * @link https://eslint.org/docs/latest/rules/capitalized-comments + */ + 'capitalized-comments': 'off', + + /** + * @description Enforce that class methods utilize `this` + * @link https://eslint.org/docs/latest/rules/class-methods-use-this + */ + 'class-methods-use-this': 'error', + + /** + * @description Enforce a maximum cyclomatic complexity allowed in a program + * @link https://eslint.org/docs/latest/rules/complexity + */ + complexity: 'error', + + /** + * @description Require `return` statements to either always or never specify values + * @link https://eslint.org/docs/latest/rules/consistent-return + */ + 'consistent-return': 'error', + + /** + * @description Enforce consistent naming when capturing the current execution context + * @link https://eslint.org/docs/latest/rules/consistent-this + */ + 'consistent-this': 'error', + + /** + * @description Enforce consistent brace style for all control statements + * @link https://eslint.org/docs/latest/rules/curly + */ + curly: 'error', + + /** + * @description Require `default` cases in `switch` statements + * @link https://eslint.org/docs/latest/rules/default-case + */ + 'default-case': 'error', + + /** + * @description Enforce default clauses in switch statements to be last + * @link https://eslint.org/docs/latest/rules/default-case-last + */ + 'default-case-last': 'error', + + /** + * @description Enforce default parameters to be last + * @link https://eslint.org/docs/latest/rules/default-param-last + */ + 'default-param-last': 'error', + + /** + * @description Enforce dot notation whenever possible + * @link https://eslint.org/docs/latest/rules/dot-notation + */ + 'dot-notation': 'error', + + /** + * @description Require the use of `===` and `!==` + * @link https://eslint.org/docs/latest/rules/eqeqeq + */ + eqeqeq: 'error', + + /** + * @description Require function names to match the name of the variable or property to which they are assigned + * @link https://eslint.org/docs/latest/rules/func-name-matching + */ + 'func-name-matching': 'error', + + /** + * @description Require or disallow named `function` expressions + * @link https://eslint.org/docs/latest/rules/func-names + */ + 'func-names': 'error', + + /** + * @description Enforce the consistent use of either `function` declarations or expressions + * @link https://eslint.org/docs/latest/rules/func-style + */ + 'func-style': 'off', + + /** + * @description Require grouped accessor pairs in object literals and classes + * @link https://eslint.org/docs/latest/rules/grouped-accessor-pairs + */ + 'grouped-accessor-pairs': 'error', + + /** + * @description Require `for-in` loops to include an `if` statement + * @link https://eslint.org/docs/latest/rules/guard-for-in + */ + 'guard-for-in': 'error', + + /** + * @description Disallow specified identifiers + * @link https://eslint.org/docs/latest/rules/id-denylist + */ + 'id-denylist': 'error', + + /** + * @description Enforce minimum and maximum identifier lengths + * @link https://eslint.org/docs/latest/rules/id-length + */ + 'id-length': 'off', + + /** + * @description Require identifiers to match a specified regular expression + * @link https://eslint.org/docs/latest/rules/id-match + */ + 'id-match': 'error', + + /** + * @description Require or disallow initialization in variable declarations + * @link https://eslint.org/docs/latest/rules/init-declarations + */ + 'init-declarations': 'off', + + /** + * @description Enforce a maximum number of classes per file + * @link https://eslint.org/docs/latest/rules/max-classes-per-file + */ + 'max-classes-per-file': 'off', + + /** + * @description Enforce a maximum depth that blocks can be nested + * @link https://eslint.org/docs/latest/rules/max-depth + */ + 'max-depth': 'error', + + /** + * @description Enforce a maximum number of lines per file + * @link https://eslint.org/docs/latest/rules/max-lines + */ + 'max-lines': 'off', + + /** + * @description Enforce a maximum number of lines of code in a function + * @link https://eslint.org/docs/latest/rules/max-lines-per-function + */ + 'max-lines-per-function': 'off', + + /** + * @description Enforce a maximum depth that callbacks can be nested + * @link https://eslint.org/docs/latest/rules/max-nested-callbacks + */ + 'max-nested-callbacks': 'error', + + /** + * @description Enforce a maximum number of parameters in function definitions + * @link https://eslint.org/docs/latest/rules/max-params + */ + 'max-params': 'error', + + /** + * @description Enforce a maximum number of statements allowed in function blocks + * @link https://eslint.org/docs/latest/rules/max-statements + */ + 'max-statements': 'off', + + /** + * @description Enforce a particular style for multiline comments + * @link https://eslint.org/docs/latest/rules/multiline-comment-style + */ + 'multiline-comment-style': 'off', + + /** + * @description Require constructor names to begin with a capital letter + * @link https://eslint.org/docs/latest/rules/new-cap + */ + 'new-cap': ['error', { newIsCap: true, capIsNew: false, properties: true }], + + /** + * @description Disallow the use of `alert`, `confirm`, and `prompt` + * @link https://eslint.org/docs/latest/rules/no-alert + */ + 'no-alert': 'error', + + /** + * @description Disallow `Array` constructors + * @link https://eslint.org/docs/latest/rules/no-array-constructor + */ + 'no-array-constructor': 'error', + + /** + * @description Disallow bitwise operators + * @link https://eslint.org/docs/latest/rules/no-bitwise + */ + 'no-bitwise': 'error', + + /** + * @description Disallow the use of `arguments.caller` or `arguments.callee` + * @link https://eslint.org/docs/latest/rules/no-caller + */ + 'no-caller': 'error', + + /** + * @description Disallow lexical declarations in case clauses + * @link https://eslint.org/docs/latest/rules/no-case-declarations + */ + 'no-case-declarations': 'error', + + /** + * @description Disallow arrow functions where they could be confused with comparisons + * @link https://eslint.org/docs/latest/rules/no-confusing-arrow + */ + 'no-confusing-arrow': 'error', + + /** + * @description Disallow the use of `console` + * @link https://eslint.org/docs/latest/rules/no-console + */ + 'no-console': 'warn', + + /** + * @description Disallow `continue` statements + * @link https://eslint.org/docs/latest/rules/no-continue + */ + 'no-continue': 'error', + + /** + * @description Disallow deleting variables + * @link https://eslint.org/docs/latest/rules/no-delete-var + */ + 'no-delete-var': 'error', + + /** + * @description Disallow division operators explicitly at the beginning of regular expressions + * @link https://eslint.org/docs/latest/rules/no-div-regex + */ + 'no-div-regex': 'error', + + /** + * @description Disallow `else` blocks after `return` statements in `if` statements + * @link https://eslint.org/docs/latest/rules/no-else-return + */ + 'no-else-return': 'error', + + /** + * @description Disallow empty block statements + * @link https://eslint.org/docs/latest/rules/no-empty + */ + 'no-empty': [ + 'error', + { + allowEmptyCatch: true + } + ], + + /** + * @description Disallow empty functions + * @link https://eslint.org/docs/latest/rules/no-empty-function + */ + 'no-empty-function': 'error', + + /** + * @description Disallow `null` comparisons without type-checking operators + * @link https://eslint.org/docs/latest/rules/no-eq-null + */ + 'no-eq-null': 'error', + + /** + * @description Disallow the use of `eval()` + * @link https://eslint.org/docs/latest/rules/no-eval + */ + 'no-eval': 'error', + + /** + * @description Disallow extending native types + * @link https://eslint.org/docs/latest/rules/no-extend-native + */ + 'no-extend-native': 'error', + + /** + * @description Disallow unnecessary calls to `.bind()` + * @link https://eslint.org/docs/latest/rules/no-extra-bind + */ + 'no-extra-bind': 'error', + + /** + * @description Disallow unnecessary boolean casts + * @link https://eslint.org/docs/latest/rules/no-extra-boolean-cast + */ + 'no-extra-boolean-cast': 'error', + + /** + * @description Disallow unnecessary labels + * @link https://eslint.org/docs/latest/rules/no-extra-label + */ + 'no-extra-label': 'error', + + /** + * @description Disallow unnecessary semicolons + * @link https://eslint.org/docs/latest/rules/no-extra-semi + */ + 'no-extra-semi': 'error', + + /** + * @description Disallow leading or trailing decimal points in numeric literals + * @link https://eslint.org/docs/latest/rules/no-floating-decimal + */ + 'no-floating-decimal': 'error', + + /** + * @description Disallow assignments to native objects or read-only global variables + * @link https://eslint.org/docs/latest/rules/no-global-assign + */ + 'no-global-assign': 'error', + + /** + * @description Disallow shorthand type conversions + * @link https://eslint.org/docs/latest/rules/no-implicit-coercion + */ + 'no-implicit-coercion': 'error', + + /** + * @description Disallow declarations in the global scope + * @link https://eslint.org/docs/latest/rules/no-implicit-globals + */ + 'no-implicit-globals': 'error', + + /** + * @description Disallow the use of `eval()`-like methods + * @link https://eslint.org/docs/latest/rules/no-implied-eval + */ + 'no-implied-eval': 'error', + + /** + * @description Disallow inline comments after code + * @link https://eslint.org/docs/latest/rules/no-inline-comments + */ + 'no-inline-comments': 'off', + + /** + * @description Disallow use of `this` in contexts where the value of `this` is `undefined` + * @link https://eslint.org/docs/latest/rules/no-invalid-this + */ + 'no-invalid-this': 'error', + + /** + * @description Disallow the use of the `__iterator__` property + * @link https://eslint.org/docs/latest/rules/no-iterator + */ + 'no-iterator': 'error', + + /** + * @description Disallow labels that share a name with a variable + * @link https://eslint.org/docs/latest/rules/no-label-var + */ + 'no-label-var': 'error', + + /** + * @description Disallow labeled statements + * @link https://eslint.org/docs/latest/rules/no-labels + */ + 'no-labels': 'error', + + /** + * @description Disallow unnecessary nested blocks + * @link https://eslint.org/docs/latest/rules/no-lone-blocks + */ + 'no-lone-blocks': 'error', + + /** + * @description Disallow `if` statements as the only statement in `else` blocks + * @link https://eslint.org/docs/latest/rules/no-lonely-if + */ + 'no-lonely-if': 'error', + + /** + * @description Disallow function declarations that contain unsafe references inside loop statements + * @link https://eslint.org/docs/latest/rules/no-loop-func + */ + 'no-loop-func': 'error', + + /** + * @description Disallow magic numbers + * @link https://eslint.org/docs/latest/rules/no-magic-numbers + */ + 'no-magic-numbers': 'off', + + /** + * @description Disallow mixed binary operators + * @link https://eslint.org/docs/latest/rules/no-mixed-operators + */ + 'no-mixed-operators': [ + 'error', + { + groups: [ + ['+', '-', '*', '/', '%', '**'], + ['&', '|', '^', '~', '<<', '>>', '>>>'], + ['==', '!=', '===', '!==', '>', '>=', '<', '<='], + ['&&', '||'], + ['in', 'instanceof'] + ], + allowSamePrecedence: true + } + ], + + /** + * @description Disallow use of chained assignment expressions + * @link https://eslint.org/docs/latest/rules/no-multi-assign + */ + 'no-multi-assign': 'error', + + /** + * @description Disallow multiline strings + * @link https://eslint.org/docs/latest/rules/no-multi-str + */ + 'no-multi-str': 'error', + + /** + * @description Disallow negated conditions + * @link https://eslint.org/docs/latest/rules/no-negated-condition + */ + 'no-negated-condition': 'off', + + /** + * @description Disallow nested ternary expressions + * @link https://eslint.org/docs/latest/rules/no-nested-ternary + */ + 'no-nested-ternary': 'error', + + /** + * @description Disallow `new` operators outside of assignments or comparisons + * @link https://eslint.org/docs/latest/rules/no-new + */ + 'no-new': 'error', + + /** + * @description Disallow `new` operators with the `Function` object + * @link https://eslint.org/docs/latest/rules/no-new-func + */ + 'no-new-func': 'error', + + /** + * @description Disallow `Object` constructors + * @link https://eslint.org/docs/latest/rules/no-new-object + */ + 'no-new-object': 'error', + + /** + * @description Disallow `new` operators with the `String`, `Number`, and `Boolean` objects + * @link https://eslint.org/docs/latest/rules/no-new-wrappers + */ + 'no-new-wrappers': 'error', + + /** + * @description Disallow `\\8` and `\\9` escape sequences in string literals + * @link https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape + */ + 'no-nonoctal-decimal-escape': 'error', + + /** + * @description Disallow octal literals + * @link https://eslint.org/docs/latest/rules/no-octal + */ + 'no-octal': 'error', + + /** + * @description Disallow octal escape sequences in string literals + * @link https://eslint.org/docs/latest/rules/no-octal-escape + */ + 'no-octal-escape': 'error', + + /** + * @description Disallow reassigning `function` parameters + * @link https://eslint.org/docs/latest/rules/no-param-reassign + */ + 'no-param-reassign': 'error', + + /** + * @description Disallow the unary operators `++` and `--` + * @link https://eslint.org/docs/latest/rules/no-plusplus + */ + 'no-plusplus': 'error', + + /** + * @description Disallow the use of the `__proto__` property + * @link https://eslint.org/docs/latest/rules/no-proto + */ + 'no-proto': 'error', + + /** + * @description Disallow variable redeclaration + * @link https://eslint.org/docs/latest/rules/no-redeclare + */ + 'no-redeclare': 'error', + + /** + * @description Disallow multiple spaces in regular expressions + * @link https://eslint.org/docs/latest/rules/no-regex-spaces + */ + 'no-regex-spaces': 'error', + + /** + * @description Disallow specified names in exports + * @link https://eslint.org/docs/latest/rules/no-restricted-exports + */ + 'no-restricted-exports': 'error', + + /** + * @description Disallow specified global variables + * @link https://eslint.org/docs/latest/rules/no-restricted-globals + */ + 'no-restricted-globals': 'error', + + /** + * @description Disallow specified modules when loaded by `import` + * @link https://eslint.org/docs/latest/rules/no-restricted-imports + */ + 'no-restricted-imports': 'error', + + /** + * @description Disallow certain properties on certain objects + * @link https://eslint.org/docs/latest/rules/no-restricted-properties + */ + 'no-restricted-properties': 'error', + + /** + * @description Disallow specified syntax + * @link https://eslint.org/docs/latest/rules/no-restricted-syntax + */ + 'no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'], + + /** + * @description Disallow assignment operators in `return` statements + * @link https://eslint.org/docs/latest/rules/no-return-assign + */ + 'no-return-assign': 'error', + + /** + * @description Disallow unnecessary `return await` + * @link https://eslint.org/docs/latest/rules/no-return-await + */ + 'no-return-await': 'error', + + /** + * @description Disallow `javascript:` urls + * @link https://eslint.org/docs/latest/rules/no-script-url + */ + 'no-script-url': 'error', + + /** + * @description Disallow comma operators + * @link https://eslint.org/docs/latest/rules/no-sequences + */ + 'no-sequences': 'error', + + /** + * @description Disallow variable declarations from shadowing variables declared in the outer scope + * @link https://eslint.org/docs/latest/rules/no-shadow + */ + 'no-shadow': 'error', + + /** + * @description Disallow identifiers from shadowing restricted names + * @link https://eslint.org/docs/latest/rules/no-shadow-restricted-names + */ + 'no-shadow-restricted-names': 'error', + + /** + * @description Disallow ternary operators + * @link https://eslint.org/docs/latest/rules/no-ternary + */ + 'no-ternary': 'off', + + /** + * @description Disallow throwing literals as exceptions + * @link https://eslint.org/docs/latest/rules/no-throw-literal + */ + 'no-throw-literal': 'error', + + /** + * @description Disallow initializing variables to `undefined` + * @link https://eslint.org/docs/latest/rules/no-undef-init + */ + 'no-undef-init': 'error', + + /** + * @description Disallow the use of `undefined` as an identifier + * @link https://eslint.org/docs/latest/rules/no-undefined + */ + 'no-undefined': 'off', + + /** + * @description Disallow dangling underscores in identifiers + * @link https://eslint.org/docs/latest/rules/no-underscore-dangle + */ + 'no-underscore-dangle': 'error', + + /** + * @description Disallow ternary operators when simpler alternatives exist + * @link https://eslint.org/docs/latest/rules/no-unneeded-ternary + */ + 'no-unneeded-ternary': 'error', + + /** + * @description Disallow unused expressions + * @link https://eslint.org/docs/latest/rules/no-unused-expressions + */ + 'no-unused-expressions': 'error', + + /** + * @description Disallow unused labels + * @link https://eslint.org/docs/latest/rules/no-unused-labels + */ + 'no-unused-labels': 'error', + + /** + * @description Disallow unnecessary calls to `.call()` and `.apply()` + * @link https://eslint.org/docs/latest/rules/no-useless-call + */ + 'no-useless-call': 'error', + + /** + * @description Disallow unnecessary `catch` clauses + * @link https://eslint.org/docs/latest/rules/no-useless-catch + */ + 'no-useless-catch': 'error', + + /** + * @description Disallow unnecessary computed property keys in objects and classes + * @link https://eslint.org/docs/latest/rules/no-useless-computed-key + */ + 'no-useless-computed-key': 'error', + + /** + * @description Disallow unnecessary concatenation of literals or template literals + * @link https://eslint.org/docs/latest/rules/no-useless-concat + */ + 'no-useless-concat': 'error', + + /** + * @description Disallow unnecessary constructors + * @link https://eslint.org/docs/latest/rules/no-useless-constructor + */ + 'no-useless-constructor': 'error', + + /** + * @description Disallow unnecessary escape characters + * @link https://eslint.org/docs/latest/rules/no-useless-escape + */ + 'no-useless-escape': 'error', + + /** + * @description Disallow renaming import, export, and destructured assignments to the same name + * @link https://eslint.org/docs/latest/rules/no-useless-rename + */ + 'no-useless-rename': 'error', + + /** + * @description Disallow redundant return statements + * @link https://eslint.org/docs/latest/rules/no-useless-return + */ + 'no-useless-return': 'error', + + /** + * @description Require `let` or `const` instead of `var` + * @link https://eslint.org/docs/latest/rules/no-var + */ + 'no-var': 'error', + + /** + * @description Disallow `void` operators + * @link https://eslint.org/docs/latest/rules/no-void + */ + 'no-void': 'error', + + /** + * @description Disallow specified warning terms in comments + * @link https://eslint.org/docs/latest/rules/no-warning-comments + */ + 'no-warning-comments': 'error', + + /** + * @description Disallow `with` statements + * @link https://eslint.org/docs/latest/rules/no-with + */ + 'no-with': 'error', + + /** + * @description Require or disallow method and property shorthand syntax for object literals + * @link https://eslint.org/docs/latest/rules/object-shorthand + */ + 'object-shorthand': [ + 'error', + 'always', + { + ignoreConstructors: false, + avoidQuotes: true + } + ], + + /** + * @description Enforce variables to be declared either together or separately in functions + * @link https://eslint.org/docs/latest/rules/one-var + */ + 'one-var': ['error', 'never'], + + /** + * @description Require or disallow newlines around variable declarations + * @link https://eslint.org/docs/latest/rules/one-var-declaration-per-line + */ + 'one-var-declaration-per-line': 'error', + + /** + * @description Require or disallow assignment operator shorthand where possible + * @link https://eslint.org/docs/latest/rules/operator-assignment + */ + 'operator-assignment': 'error', + + /** + * @description Require using arrow functions for callbacks + * @link https://eslint.org/docs/latest/rules/prefer-arrow-callback + */ + 'prefer-arrow-callback': 'error', + + /** + * @description Require `const` declarations for variables that are never reassigned after declared + * @link https://eslint.org/docs/latest/rules/prefer-const + */ + 'prefer-const': 'error', + + /** + * @description Require destructuring from arrays and/or objects + * @link https://eslint.org/docs/latest/rules/prefer-destructuring + */ + 'prefer-destructuring': 'off', + + /** + * @description Disallow the use of `Math.pow` in favor of the `**` operator + * @link https://eslint.org/docs/latest/rules/prefer-exponentiation-operator + */ + 'prefer-exponentiation-operator': 'error', + + /** + * @description Enforce using named capture group in regular expression + * @link https://eslint.org/docs/latest/rules/prefer-named-capture-group + */ + 'prefer-named-capture-group': 'off', + + /** + * @description Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals + * @link https://eslint.org/docs/latest/rules/prefer-numeric-literals + */ + 'prefer-numeric-literals': 'error', + + /** + * @description Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()` + * @link https://eslint.org/docs/latest/rules/prefer-object-has-own + */ + 'prefer-object-has-own': 'error', + + /** + * @description Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead. + * @link https://eslint.org/docs/latest/rules/prefer-object-spread + */ + 'prefer-object-spread': 'error', + + /** + * @description Require using Error objects as Promise rejection reasons + * @link https://eslint.org/docs/latest/rules/prefer-promise-reject-errors + */ + 'prefer-promise-reject-errors': 'error', + + /** + * @description Disallow use of the `RegExp` constructor in favor of regular expression literals + * @link https://eslint.org/docs/latest/rules/prefer-regex-literals + */ + 'prefer-regex-literals': 'error', + + /** + * @description Require rest parameters instead of `arguments` + * @link https://eslint.org/docs/latest/rules/prefer-rest-params + */ + 'prefer-rest-params': 'error', + + /** + * @description Require spread operators instead of `.apply()` + * @link https://eslint.org/docs/latest/rules/prefer-spread + */ + 'prefer-spread': 'error', + + /** + * @description Require template literals instead of string concatenation + * @link https://eslint.org/docs/latest/rules/prefer-template + */ + 'prefer-template': 'error', + + /** + * @description Require quotes around object literal property names + * @link https://eslint.org/docs/latest/rules/quote-props + */ + 'quote-props': 'error', + + /** + * @description Enforce the consistent use of the radix argument when using `parseInt()` + * @link https://eslint.org/docs/latest/rules/radix + */ + radix: 'error', + + /** + * @description Disallow async functions which have no `await` expression + * @link https://eslint.org/docs/latest/rules/require-await + */ + 'require-await': 'off', + + /** + * @description Enforce the use of `u` flag on RegExp + * @link https://eslint.org/docs/latest/rules/require-unicode-regexp + */ + 'require-unicode-regexp': 'off', + + /** + * @description Require generator functions to contain `yield` + * @link https://eslint.org/docs/latest/rules/require-yield + */ + 'require-yield': 'error', + + /** + * @description Enforce sorted import declarations within modules + * @link https://eslint.org/docs/latest/rules/sort-imports + */ + 'sort-imports': 'off', + + /** + * @description Require object keys to be sorted + * @link https://eslint.org/docs/latest/rules/sort-keys + */ + 'sort-keys': 'off', + + /** + * @description Require variables within the same declaration block to be sorted + * @link https://eslint.org/docs/latest/rules/sort-vars + */ + 'sort-vars': 'error', + + /** + * @description Enforce consistent spacing after the `//` or `/*` in a comment + * @link https://eslint.org/docs/latest/rules/spaced-comment + */ + 'spaced-comment': [ + 'error', + 'always', + { + line: { markers: ['*package', '!', '/', ',', '='] }, + block: { + balanced: true, + markers: ['*package', '!', ',', ':', '::', 'flow-include'], + exceptions: ['*'] + } + } + ], + + /** + * @description Require or disallow strict mode directives + * @link https://eslint.org/docs/latest/rules/strict + */ + strict: 'error', + + /** + * @description Require symbol descriptions + * @link https://eslint.org/docs/latest/rules/symbol-description + */ + 'symbol-description': 'error', + + /** + * @description Require `var` declarations be placed at the top of their containing scope + * @link https://eslint.org/docs/latest/rules/vars-on-top + */ + 'vars-on-top': 'error', + + /** + * @description Require or disallow \"Yoda\" conditions + * @link https://eslint.org/docs/latest/rules/yoda + */ + yoda: 'error', + + // End + + /* + * Layout & Formatting + * These rules care about how the code looks rather than how it executes: + */ + + /** + * @description Enforce linebreaks after opening and before closing array brackets + * @link https://eslint.org/docs/latest/rules/array-bracket-newline + */ + 'array-bracket-newline': 'error', + + /** + * @description Enforce consistent spacing inside array brackets + * @link https://eslint.org/docs/latest/rules/array-bracket-spacing + */ + 'array-bracket-spacing': 'error', + + /** + * @description Enforce line breaks after each array element + * @link https://eslint.org/docs/latest/rules/array-element-newline + */ + 'array-element-newline': 'error', + + /** + * @description Require parentheses around arrow function arguments + * @link https://eslint.org/docs/latest/rules/arrow-parens + */ + 'arrow-parens': ['error', 'as-needed'], + + /** + * @description Enforce consistent spacing before and after the arrow in arrow functions + * @link https://eslint.org/docs/latest/rules/arrow-spacing + */ + 'arrow-spacing': 'error', + + /** + * @description Disallow or enforce spaces inside of blocks after opening block and before closing block + * @link https://eslint.org/docs/latest/rules/block-spacing + */ + 'block-spacing': 'error', + + /** + * @description Enforce consistent brace style for blocks + * @link https://eslint.org/docs/latest/rules/brace-style + */ + 'brace-style': 'error', + + /** + * @description Require or disallow trailing commas + * @link https://eslint.org/docs/latest/rules/comma-dangle + */ + 'comma-dangle': 'error', + + /** + * @description Enforce consistent spacing before and after commas + * @link https://eslint.org/docs/latest/rules/comma-spacing + */ + 'comma-spacing': 'error', + + /** + * @description Enforce consistent comma style + * @link https://eslint.org/docs/latest/rules/comma-style + */ + 'comma-style': 'error', + + /** + * @description Enforce consistent spacing inside computed property brackets + * @link https://eslint.org/docs/latest/rules/computed-property-spacing + */ + 'computed-property-spacing': 'error', + + /** + * @description Enforce consistent newlines before and after dots + * @link https://eslint.org/docs/latest/rules/dot-location + */ + 'dot-location': ['error', 'property'], + + /** + * @description Require or disallow newline at the end of files + * @link https://eslint.org/docs/latest/rules/eol-last + */ + 'eol-last': 'error', + + /** + * @description Require or disallow spacing between function identifiers and their invocations + * @link https://eslint.org/docs/latest/rules/func-call-spacing + */ + 'func-call-spacing': 'error', + + /** + * @description Enforce line breaks between arguments of a function call + * @link https://eslint.org/docs/latest/rules/function-call-argument-newline + */ + 'function-call-argument-newline': 'error', + + /** + * @description Enforce consistent line breaks inside function parentheses + * @link https://eslint.org/docs/latest/rules/function-paren-newline + */ + 'function-paren-newline': 'error', + + /** + * @description Enforce consistent spacing around `*` operators in generator functions + * @link https://eslint.org/docs/latest/rules/generator-star-spacing + */ + 'generator-star-spacing': 'error', + + /** + * @description Enforce the location of arrow function bodies + * @link https://eslint.org/docs/latest/rules/implicit-arrow-linebreak + */ + 'implicit-arrow-linebreak': 'error', + + /** + * @description Enforce consistent indentation + * @link https://eslint.org/docs/latest/rules/indent + */ + indent: [ + 'error', + 2, + { + SwitchCase: 1, + VariableDeclarator: 1, + outerIIFEBody: 1, + MemberExpression: 1, + FunctionDeclaration: { parameters: 1, body: 1 }, + FunctionExpression: { parameters: 1, body: 1 }, + CallExpression: { arguments: 1 }, + ArrayExpression: 1, + ObjectExpression: 1, + ImportDeclaration: 1, + flatTernaryExpressions: false, + ignoreComments: false, + ignoredNodes: [ + 'TemplateLiteral *', + 'JSXElement', + 'JSXElement > *', + 'JSXAttribute', + 'JSXIdentifier', + 'JSXNamespacedName', + 'JSXMemberExpression', + 'JSXSpreadAttribute', + 'JSXExpressionContainer', + 'JSXOpeningElement', + 'JSXClosingElement', + 'JSXFragment', + 'JSXOpeningFragment', + 'JSXClosingFragment', + 'JSXText', + 'JSXEmptyExpression', + 'JSXSpreadChild' + ], + offsetTernaryExpressions: true + } + ], + + /** + * @description Enforce the consistent use of either double or single quotes in JSX attributes + * @link https://eslint.org/docs/latest/rules/jsx-quotes + */ + 'jsx-quotes': 'error', + + /** + * @description Enforce consistent spacing between keys and values in object literal properties + * @link https://eslint.org/docs/latest/rules/key-spacing + */ + 'key-spacing': 'error', + + /** + * @description Enforce consistent spacing before and after keywords + * @link https://eslint.org/docs/latest/rules/keyword-spacing + */ + 'keyword-spacing': 'error', + + /** + * @description Enforce position of line comments + * @link https://eslint.org/docs/latest/rules/line-comment-position + */ + 'line-comment-position': 'off', + + /** + * @description Enforce consistent linebreak style + * @link https://eslint.org/docs/latest/rules/linebreak-style + */ + 'linebreak-style': 'error', + + /** + * @description Require empty lines around comments + * @link https://eslint.org/docs/latest/rules/lines-around-comment + */ + 'lines-around-comment': 'error', + + /** + * @description Require or disallow an empty line between class members + * @link https://eslint.org/docs/latest/rules/lines-between-class-members + */ + 'lines-between-class-members': 'error', + + /** + * @description Enforce a maximum line length + * @link https://eslint.org/docs/latest/rules/max-len + */ + 'max-len': 'error', + + /** + * @description Enforce a maximum number of statements allowed per line + * @link https://eslint.org/docs/latest/rules/max-statements-per-line + */ + 'max-statements-per-line': 'off', + + /** + * @description Enforce newlines between operands of ternary expressions + * @link https://eslint.org/docs/latest/rules/multiline-ternary + */ + 'multiline-ternary': ['error', 'always-multiline'], + + /** + * @description Enforce or disallow parentheses when invoking a constructor with no arguments + * @link https://eslint.org/docs/latest/rules/new-parens + */ + 'new-parens': 'error', + + /** + * @description Require a newline after each call in a method chain + * @link https://eslint.org/docs/latest/rules/newline-per-chained-call + */ + 'newline-per-chained-call': 'error', + + /** + * @description Disallow unnecessary parentheses + * @link https://eslint.org/docs/latest/rules/no-extra-parens + */ + 'no-extra-parens': 'error', + + /** + * @description Disallow mixed spaces and tabs for indentation + * @link https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs + */ + 'no-mixed-spaces-and-tabs': 'error', + + /** + * @description Disallow multiple spaces + * @link https://eslint.org/docs/latest/rules/no-multi-spaces + */ + 'no-multi-spaces': 'error', + + /** + * @description Disallow multiple empty lines + * @link https://eslint.org/docs/latest/rules/no-multiple-empty-lines + */ + 'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }], + + /** + * @description Disallow all tabs + * @link https://eslint.org/docs/latest/rules/no-tabs + */ + 'no-tabs': 'error', + + /** + * @description Disallow trailing whitespace at the end of lines + * @link https://eslint.org/docs/latest/rules/no-trailing-spaces + */ + 'no-trailing-spaces': 'error', + + /** + * @description Disallow whitespace before properties + * @link https://eslint.org/docs/latest/rules/no-whitespace-before-property + */ + 'no-whitespace-before-property': 'error', + + /** + * @description Enforce the location of single-line statements + * @link https://eslint.org/docs/latest/rules/nonblock-statement-body-position + */ + 'nonblock-statement-body-position': 'error', + + /** + * @description Enforce consistent line breaks after opening and before closing braces + * @link https://eslint.org/docs/latest/rules/object-curly-newline + */ + 'object-curly-newline': 'error', + + /** + * @description Enforce consistent spacing inside braces + * @link https://eslint.org/docs/latest/rules/object-curly-spacing + */ + 'object-curly-spacing': 'error', + + /** + * @description Enforce placing object properties on separate lines + * @link https://eslint.org/docs/latest/rules/object-property-newline + */ + 'object-property-newline': 'error', + + /** + * @description Enforce consistent linebreak style for operators + * @link https://eslint.org/docs/latest/rules/operator-linebreak + */ + 'operator-linebreak': 'error', + + /** + * @description Require or disallow padding within blocks + * @link https://eslint.org/docs/latest/rules/padded-blocks + */ + 'padded-blocks': 'error', + + /** + * @description Require or disallow padding lines between statements + * @link https://eslint.org/docs/latest/rules/padding-line-between-statements + */ + 'padding-line-between-statements': 'error', + + /** + * @description Enforce the consistent use of either backticks, double, or single quotes + * @link https://eslint.org/docs/latest/rules/quotes + */ + quotes: 'error', + + /** + * @description Enforce spacing between rest and spread operators and their expressions + * @link https://eslint.org/docs/latest/rules/rest-spread-spacing + */ + 'rest-spread-spacing': 'error', + + /** + * @description Require or disallow semicolons instead of ASI + * @link https://eslint.org/docs/latest/rules/semi + */ + semi: 'error', + + /** + * @description Enforce consistent spacing before and after semicolons + * @link https://eslint.org/docs/latest/rules/semi-spacing + */ + 'semi-spacing': 'error', + + /** + * @description Enforce location of semicolons + * @link https://eslint.org/docs/latest/rules/semi-style + */ + 'semi-style': 'error', + + /** + * @description Enforce consistent spacing before blocks + * @link https://eslint.org/docs/latest/rules/space-before-blocks + */ + 'space-before-blocks': 'error', + + /** + * @description Enforce consistent spacing before `function` definition opening parenthesis + * @link https://eslint.org/docs/latest/rules/space-before-function-paren + */ + 'space-before-function-paren': 'error', + + /** + * @description Enforce consistent spacing inside parentheses + * @link https://eslint.org/docs/latest/rules/space-in-parens + */ + 'space-in-parens': 'error', + + /** + * @description Require spacing around infix operators + * @link https://eslint.org/docs/latest/rules/space-infix-ops + */ + 'space-infix-ops': 'error', + + /** + * @description Enforce consistent spacing before or after unary operators + * @link https://eslint.org/docs/latest/rules/space-unary-ops + */ + 'space-unary-ops': 'error', + + /** + * @description Enforce spacing around colons of switch statements + * @link https://eslint.org/docs/latest/rules/switch-colon-spacing + */ + 'switch-colon-spacing': 'error', + + /** + * @description Require or disallow spacing around embedded expressions of template strings + * @link https://eslint.org/docs/latest/rules/template-curly-spacing + */ + 'template-curly-spacing': 'error', + + /** + * @description Require or disallow spacing between template tags and their literals + * @link https://eslint.org/docs/latest/rules/template-tag-spacing + */ + 'template-tag-spacing': 'error', + + /** + * @description Require or disallow Unicode byte order mark (BOM) + * @link https://eslint.org/docs/latest/rules/unicode-bom + */ + 'unicode-bom': 'error', + + /** + * @description Require parentheses around immediate `function` invocations + * @link https://eslint.org/docs/latest/rules/wrap-iife + */ + 'wrap-iife': 'error', + + /** + * @description Require parenthesis around regex literals + * @link https://eslint.org/docs/latest/rules/wrap-regex + */ + 'wrap-regex': 'error', + + /** + * @description Require or disallow spacing around the `*` in `yield*` expressions + * @link https://eslint.org/docs/latest/rules/yield-star-spacing + */ + 'yield-star-spacing': 'error' + } +}; diff --git a/packages/eslint-config/rules/prettier.js b/packages/eslint-config/rules/prettier.js new file mode 100644 index 00000000..41f00d6a --- /dev/null +++ b/packages/eslint-config/rules/prettier.js @@ -0,0 +1,26 @@ +/** + * @type {import('prettier').Options} + */ +module.exports = { + printWidth: 120, + tabWidth: 2, + useTabs: false, + semi: true, + singleQuote: true, + quoteProps: 'as-needed', + jsxSingleQuote: false, + trailingComma: 'none', + bracketSpacing: true, + bracketSameLine: false, + arrowParens: 'avoid', + rangeStart: 0, + rangeEnd: Number.POSITIVE_INFINITY, + requirePragma: false, + insertPragma: false, + proseWrap: 'preserve', + htmlWhitespaceSensitivity: 'ignore', + vueIndentScriptAndStyle: false, + endOfLine: 'lf', + embeddedLanguageFormatting: 'auto', + singleAttributePerLine: false +}; diff --git a/packages/hooks/package.json b/packages/hooks/package.json new file mode 100644 index 00000000..c980ce96 --- /dev/null +++ b/packages/hooks/package.json @@ -0,0 +1,14 @@ +{ + "name": "@sa/hooks", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "./src/*" + ] + } + } +} diff --git a/packages/hooks/src/index.ts b/packages/hooks/src/index.ts new file mode 100644 index 00000000..a31dcc91 --- /dev/null +++ b/packages/hooks/src/index.ts @@ -0,0 +1,6 @@ +import useBoolean from './use-boolean'; +import useLoading from './use-loading'; +import useContext from './use-context'; +import useSvgIconRender from './use-svg-icon-render'; + +export { useBoolean, useLoading, useContext, useSvgIconRender }; diff --git a/src/hooks/common/use-boolean.ts b/packages/hooks/src/use-boolean.ts similarity index 88% rename from src/hooks/common/use-boolean.ts rename to packages/hooks/src/use-boolean.ts index c03db357..302bb3c8 100644 --- a/src/hooks/common/use-boolean.ts +++ b/packages/hooks/src/use-boolean.ts @@ -1,8 +1,8 @@ import { ref } from 'vue'; /** - * boolean组合式函数 - * @param initValue 初始值 + * boolean + * @param initValue init value */ export default function useBoolean(initValue = false) { const bool = ref(initValue); diff --git a/packages/hooks/src/use-context.ts b/packages/hooks/src/use-context.ts new file mode 100644 index 00000000..76c7367b --- /dev/null +++ b/packages/hooks/src/use-context.ts @@ -0,0 +1,103 @@ +import { inject, provide } from 'vue'; +import type { InjectionKey } from 'vue'; + +/** + * use context + * @param contextName context name + * @param fn context function + * @example + * ```ts + * // there are three vue files: A.vue, B.vue, C.vue, and A.vue is the parent component of B.vue and C.vue + * + * // context.ts + * import { ref } from 'vue'; + * import { useContext } from '@sa/hooks'; + * + * export const { setupStore, useStore } = useContext('demo', () => { + * const count = ref(0); + * + * function increment() { + * count.value++; + * } + * + * function decrement() { + * count.value--; + * } + * + * return { + * count, + * increment, + * decrement + * }; + * }) + * ``` + * + * // A.vue + * ```vue + * + * + * ``` + * // B.vue + * ```vue + * + * + * ``` + * + * // C.vue is same as B.vue + */ +export default function useContext any>(contextName: string, fn: T) { + type Context = ReturnType; + + const { useProvide, useInject: useStore } = createContext(contextName); + + function setupStore(...args: Parameters) { + const context: Context = fn(...args); + return useProvide(context); + } + + return { + /** + * setup store in the parent component + */ + setupStore, + /** + * use store in the child component + */ + useStore + }; +} + +/** + * create context + */ +function createContext(contextName: string) { + const injectKey: InjectionKey = Symbol(contextName); + + function useProvide(context: T) { + provide(injectKey, context); + + return context; + } + + function useInject() { + return inject(injectKey) as T; + } + + return { + useProvide, + useInject + }; +} diff --git a/src/hooks/common/use-loading.ts b/packages/hooks/src/use-loading.ts similarity index 83% rename from src/hooks/common/use-loading.ts rename to packages/hooks/src/use-loading.ts index bc6a23c2..5d07db4a 100644 --- a/src/hooks/common/use-loading.ts +++ b/packages/hooks/src/use-loading.ts @@ -1,5 +1,9 @@ import useBoolean from './use-boolean'; +/** + * loading + * @param initValue init value + */ export default function useLoading(initValue = false) { const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initValue); diff --git a/packages/hooks/src/use-svg-icon-render.ts b/packages/hooks/src/use-svg-icon-render.ts new file mode 100644 index 00000000..a4672966 --- /dev/null +++ b/packages/hooks/src/use-svg-icon-render.ts @@ -0,0 +1,56 @@ +import { h } from 'vue'; +import type { Component } from 'vue'; + +/** + * svg icon render hook + * @param SvgIcon svg icon component + */ +export default function useSvgIconRender(SvgIcon: Component) { + interface IconConfig { + /** + * iconify icon name + */ + icon?: string; + /** + * local icon name + */ + localIcon?: string; + /** + * icon color + */ + color?: string; + /** + * icon size + */ + fontSize?: number; + } + + type IconStyle = Partial>; + + /** + * svg icon VNode + * @param config + */ + const SvgIconVNode = (config: IconConfig) => { + const { color, fontSize, icon, localIcon } = config; + + const style: IconStyle = {}; + + if (color) { + style.color = color; + } + if (fontSize) { + style.fontSize = `${fontSize}px`; + } + + if (!icon && !localIcon) { + return undefined; + } + + return () => h(SvgIcon, { icon, localIcon, style }); + }; + + return { + SvgIconVNode + }; +} diff --git a/packages/hooks/tsconfig.json b/packages/hooks/tsconfig.json new file mode 100644 index 00000000..d9203c31 --- /dev/null +++ b/packages/hooks/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "ESNext", + "lib": ["DOM", "ESNext"], + "strict": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "jsx": "preserve", + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "types": ["node"] + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/materials/.eslintrc b/packages/materials/.eslintrc new file mode 100644 index 00000000..38de2a0f --- /dev/null +++ b/packages/materials/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "sa/vue", + "rules": { + "vue/multi-word-component-names": "off" + } +} diff --git a/packages/materials/package.json b/packages/materials/package.json new file mode 100644 index 00000000..5691c986 --- /dev/null +++ b/packages/materials/package.json @@ -0,0 +1,22 @@ +{ + "name": "@sa/materials", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "./src/*" + ] + } + }, + "dependencies": { + "@sa/utils": "workspace:*", + "@simonwep/pickr": "1.9.0", + "simplebar-vue": "2.3.3" + }, + "devDependencies": { + "typed-css-modules": "0.8.1" + } +} diff --git a/packages/materials/src/index.ts b/packages/materials/src/index.ts new file mode 100644 index 00000000..b8876241 --- /dev/null +++ b/packages/materials/src/index.ts @@ -0,0 +1,7 @@ +import AdminLayout, { LAYOUT_SCROLL_EL_ID, LAYOUT_MAX_Z_INDEX } from './libs/admin-layout'; +import PageTab from './libs/page-tab'; +import SimpleScrollbar from './libs/simple-scrollbar'; +import ColorPicker from './libs/color-picker'; + +export { AdminLayout, LAYOUT_SCROLL_EL_ID, LAYOUT_MAX_Z_INDEX, PageTab, SimpleScrollbar, ColorPicker }; +export * from './types'; diff --git a/packages/materials/src/libs/admin-layout/index.module.css b/packages/materials/src/libs/admin-layout/index.module.css new file mode 100644 index 00000000..e5c8ac86 --- /dev/null +++ b/packages/materials/src/libs/admin-layout/index.module.css @@ -0,0 +1,63 @@ +/* @type */ + +.layout-header, +.layout-header-placement { + height: var(--soy-header-height); +} + +.layout-header { + z-index: var(--soy-header-z-index); +} + +.layout-tab { + top: var(--soy-header-height); + height: var(--soy-tab-height); + z-index: var(--soy-tab-z-index); +} + +.layout-tab-placement { + height: var(--soy-tab-height); +} + +.layout-sider { + width: var(--soy-sider-width); + z-index: var(--soy-sider-z-index); +} + +.layout-mobile-sider { + z-index: var(--soy-sider-z-index); +} + +.layout-mobile-sider-mask { + z-index: var(--soy-mobile-sider-z-index); +} + +.layout-sider_collapsed { + width: var(--soy-sider-collapsed-width); + z-index: var(--soy-sider-z-index); +} + +.layout-footer, +.layout-footer-placement { + height: var(--soy-footer-height); +} + +.layout-footer { + z-index: var(--soy-footer-z-index); +} + +.left-gap { + padding-left: var(--soy-sider-width); +} + +.left-gap_collapsed { + padding-left: var(--soy-sider-collapsed-width); +} + +.sider-padding-top { + padding-top: var(--soy-header-height); +} + +.sider-padding-bottom { + padding-bottom: var(--soy-footer-height); +} diff --git a/packages/materials/src/libs/admin-layout/index.module.css.d.ts b/packages/materials/src/libs/admin-layout/index.module.css.d.ts new file mode 100644 index 00000000..869ed539 --- /dev/null +++ b/packages/materials/src/libs/admin-layout/index.module.css.d.ts @@ -0,0 +1,17 @@ +declare const styles: { + readonly 'layout-header': string; + readonly 'layout-header-placement': string; + readonly 'layout-tab': string; + readonly 'layout-tab-placement': string; + readonly 'layout-sider': string; + readonly 'layout-mobile-sider': string; + readonly 'layout-mobile-sider-mask': string; + readonly 'layout-sider_collapsed': string; + readonly 'layout-footer': string; + readonly 'layout-footer-placement': string; + readonly 'left-gap': string; + readonly 'left-gap_collapsed': string; + readonly 'sider-padding-top': string; + readonly 'sider-padding-bottom': string; +}; +export = styles; diff --git a/packages/materials/src/libs/admin-layout/index.ts b/packages/materials/src/libs/admin-layout/index.ts new file mode 100644 index 00000000..907ba857 --- /dev/null +++ b/packages/materials/src/libs/admin-layout/index.ts @@ -0,0 +1,5 @@ +import AdminLayout from './index.vue'; +import { LAYOUT_SCROLL_EL_ID, LAYOUT_MAX_Z_INDEX } from './shared'; + +export default AdminLayout; +export { LAYOUT_SCROLL_EL_ID, LAYOUT_MAX_Z_INDEX }; diff --git a/packages/materials/src/libs/admin-layout/index.vue b/packages/materials/src/libs/admin-layout/index.vue new file mode 100644 index 00000000..95348c50 --- /dev/null +++ b/packages/materials/src/libs/admin-layout/index.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/packages/materials/src/libs/admin-layout/shared.ts b/packages/materials/src/libs/admin-layout/shared.ts new file mode 100644 index 00000000..05f0ec0e --- /dev/null +++ b/packages/materials/src/libs/admin-layout/shared.ts @@ -0,0 +1,70 @@ +import type { AdminLayoutProps, LayoutCssVarsProps, LayoutCssVars } from '../../types'; + +/** + * the id of the scroll element of the layout + */ +export const LAYOUT_SCROLL_EL_ID = '__SCROLL_EL_ID__'; + +/** + * the max z-index of the layout + */ +export const LAYOUT_MAX_Z_INDEX = 100; + +/** + * create layout css vars by css vars props + * @param props css vars props + */ +function createLayoutCssVarsByCssVarsProps(props: LayoutCssVarsProps) { + const cssVars: LayoutCssVars = { + '--soy-header-height': `${props.headerHeight}px`, + '--soy-header-z-index': props.headerZIndex, + '--soy-tab-height': `${props.tabHeight}px`, + '--soy-tab-z-index': props.tabZIndex, + '--soy-sider-width': `${props.siderWidth}px`, + '--soy-sider-collapsed-width': `${props.siderCollapsedWidth}px`, + '--soy-sider-z-index': props.siderZIndex, + '--soy-mobile-sider-z-index': props.mobileSiderZIndex, + '--soy-footer-height': `${props.footerHeight}px`, + '--soy-footer-z-index': props.footerZIndex + }; + + return cssVars; +} + +/** + * create layout css vars + * @param props + */ +export function createLayoutCssVars(props: AdminLayoutProps) { + const { + mode, + isMobile, + maxZIndex = LAYOUT_MAX_Z_INDEX, + headerHeight, + tabHeight, + siderWidth, + siderCollapsedWidth, + footerHeight + } = props; + + const headerZIndex = maxZIndex - 3; + const tabZIndex = maxZIndex - 5; + const siderZIndex = mode === 'vertical' || isMobile ? maxZIndex - 1 : maxZIndex - 4; + const mobileSiderZIndex = isMobile ? maxZIndex - 2 : 0; + const footerZIndex = maxZIndex - 5; + + const cssProps: LayoutCssVarsProps = { + headerHeight, + headerZIndex, + tabHeight, + tabZIndex, + siderWidth, + siderZIndex, + mobileSiderZIndex, + siderCollapsedWidth, + footerHeight, + footerZIndex + }; + + return createLayoutCssVarsByCssVarsProps(cssProps); +} diff --git a/packages/materials/src/libs/color-picker/index.ts b/packages/materials/src/libs/color-picker/index.ts new file mode 100644 index 00000000..131b1d13 --- /dev/null +++ b/packages/materials/src/libs/color-picker/index.ts @@ -0,0 +1,3 @@ +import ColorPicker from './index.vue'; + +export default ColorPicker; diff --git a/packages/materials/src/libs/color-picker/index.vue b/packages/materials/src/libs/color-picker/index.vue new file mode 100644 index 00000000..51d835ff --- /dev/null +++ b/packages/materials/src/libs/color-picker/index.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/packages/materials/src/libs/page-tab/button-tab.vue b/packages/materials/src/libs/page-tab/button-tab.vue new file mode 100644 index 00000000..38f74512 --- /dev/null +++ b/packages/materials/src/libs/page-tab/button-tab.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/packages/materials/src/libs/page-tab/chrome-tab-bg.vue b/packages/materials/src/libs/page-tab/chrome-tab-bg.vue new file mode 100644 index 00000000..d0f0bd06 --- /dev/null +++ b/packages/materials/src/libs/page-tab/chrome-tab-bg.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/packages/materials/src/libs/page-tab/chrome-tab.vue b/packages/materials/src/libs/page-tab/chrome-tab.vue new file mode 100644 index 00000000..4c979fb5 --- /dev/null +++ b/packages/materials/src/libs/page-tab/chrome-tab.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/packages/materials/src/libs/page-tab/icon-close.vue b/packages/materials/src/libs/page-tab/icon-close.vue new file mode 100644 index 00000000..f0899302 --- /dev/null +++ b/packages/materials/src/libs/page-tab/icon-close.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/packages/materials/src/libs/page-tab/index.module.css b/packages/materials/src/libs/page-tab/index.module.css new file mode 100644 index 00000000..aa32c55f --- /dev/null +++ b/packages/materials/src/libs/page-tab/index.module.css @@ -0,0 +1,97 @@ +/* @type */ + +.button-tab { + border-color: #e5e7eb; +} + +.button-tab_dark { + border-color: #ffffff3d; +} + +.button-tab:hover { + color: var(--soy-primary-color); + border-color: var(--soy-primary-color-opacity3); +} + +.button-tab_active { + color: var(--soy-primary-color); + border-color: var(--soy-primary-color-opacity3); + background-color: var(--soy-primary-color-opacity1); +} + +.button-tab_active_dark { + background-color: var(--soy-primary-color-opacity2); +} + +.button-tab .icon_close:hover { + font-size: 12px; + color: #ffffff; + background-color: var(--soy-primary-color); +} + +.button-tab_dark .icon_close:hover { + color: #000000; +} + +.chrome-tab:hover { + z-index: 9; +} + +.chrome-tab_active { + z-index: 10; + color: var(--soy-primary-color); +} + +.chrome-tab__bg { + color: transparent; +} + +.chrome-tab_active .chrome-tab__bg { + color: var(--soy-primary-color1); +} + +.chrome-tab_active_dark .chrome-tab__bg { + color: var(--soy-primary-color2); +} + +.chrome-tab:hover .chrome-tab__bg { + color: #dee1e6; +} + +.chrome-tab_active:hover .chrome-tab__bg { + color: var(--soy-primary-color1); +} + +.chrome-tab_dark:hover .chrome-tab__bg { + color: #333333; +} + +.chrome-tab_active_dark:hover .chrome-tab__bg { + color: var(--soy-primary-color2); +} + +.chrome-tab .icon_close:hover { + font-size: 12px; + color: #ffffff; + background-color: #9ca3af; +} + +.chrome-tab_active .icon_close:hover { + background-color: var(--soy-primary-color); +} + +.chrome-tab_dark .icon_close:hover { + color: #000000; +} + +.chrome-tab_active .chrome-tab-divider { + opacity: 0; +} + +.chrome-tab:hover .chrome-tab-divider { + opacity: 0; +} + +.chrome-tab_dark .chrome-tab-divider { + background-color: rgba(255, 255, 255, 0.9); +} diff --git a/packages/materials/src/libs/page-tab/index.module.css.d.ts b/packages/materials/src/libs/page-tab/index.module.css.d.ts new file mode 100644 index 00000000..05c90662 --- /dev/null +++ b/packages/materials/src/libs/page-tab/index.module.css.d.ts @@ -0,0 +1,14 @@ +declare const styles: { + readonly 'button-tab': string; + readonly 'button-tab_dark': string; + readonly 'button-tab_active': string; + readonly 'button-tab_active_dark': string; + readonly icon_close: string; + readonly 'chrome-tab': string; + readonly 'chrome-tab_active': string; + readonly 'chrome-tab__bg': string; + readonly 'chrome-tab_active_dark': string; + readonly 'chrome-tab_dark': string; + readonly 'chrome-tab-divider': string; +}; +export = styles; diff --git a/packages/materials/src/libs/page-tab/index.ts b/packages/materials/src/libs/page-tab/index.ts new file mode 100644 index 00000000..b402adf8 --- /dev/null +++ b/packages/materials/src/libs/page-tab/index.ts @@ -0,0 +1,3 @@ +import PageTab from './index.vue'; + +export default PageTab; diff --git a/packages/materials/src/libs/page-tab/index.vue b/packages/materials/src/libs/page-tab/index.vue new file mode 100644 index 00000000..23fd3a2d --- /dev/null +++ b/packages/materials/src/libs/page-tab/index.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/packages/materials/src/libs/page-tab/shared.ts b/packages/materials/src/libs/page-tab/shared.ts new file mode 100644 index 00000000..933c7657 --- /dev/null +++ b/packages/materials/src/libs/page-tab/shared.ts @@ -0,0 +1,33 @@ +import { addColorAlpha, transformColorWithOpacity } from '@sa/utils'; +import type { PageTabCssVarsProps, PageTabCssVars } from '../../types'; + +/** + * the active color of the tab + */ +export const ACTIVE_COLOR = '#1890ff'; + +function createCssVars(props: PageTabCssVarsProps) { + const cssVars: PageTabCssVars = { + '--soy-primary-color': props.primaryColor, + '--soy-primary-color1': props.primaryColor1, + '--soy-primary-color2': props.primaryColor2, + '--soy-primary-color-opacity1': props.primaryColorOpacity1, + '--soy-primary-color-opacity2': props.primaryColorOpacity2, + '--soy-primary-color-opacity3': props.primaryColorOpacity3 + }; + + return cssVars; +} + +export function createTabCssVars(primaryColor: string) { + const cssProps: PageTabCssVarsProps = { + primaryColor, + primaryColor1: transformColorWithOpacity(primaryColor, 0.1, '#ffffff'), + primaryColor2: transformColorWithOpacity(primaryColor, 0.3, '#000000'), + primaryColorOpacity1: addColorAlpha(primaryColor, 0.1), + primaryColorOpacity2: addColorAlpha(primaryColor, 0.15), + primaryColorOpacity3: addColorAlpha(primaryColor, 0.3) + }; + + return createCssVars(cssProps); +} diff --git a/packages/materials/src/libs/simple-scrollbar/index.ts b/packages/materials/src/libs/simple-scrollbar/index.ts new file mode 100644 index 00000000..1453a06a --- /dev/null +++ b/packages/materials/src/libs/simple-scrollbar/index.ts @@ -0,0 +1,3 @@ +import SimpleScrollbar from './index.vue'; + +export default SimpleScrollbar; diff --git a/packages/materials/src/libs/simple-scrollbar/index.vue b/packages/materials/src/libs/simple-scrollbar/index.vue new file mode 100644 index 00000000..b10d9ec3 --- /dev/null +++ b/packages/materials/src/libs/simple-scrollbar/index.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/packages/materials/src/types/index.ts b/packages/materials/src/types/index.ts new file mode 100644 index 00000000..f4519221 --- /dev/null +++ b/packages/materials/src/types/index.ts @@ -0,0 +1,282 @@ +/** + * header config + */ +interface AdminLayoutHeaderConfig { + /** + * whether header is visible + * @default true + */ + headerVisible?: boolean; + /** + * header class + * @default '' + */ + headerClass?: string; + /** + * header height + * @default 56px + */ + headerHeight?: number; +} + +/** + * tab config + */ +interface AdminLayoutTabConfig { + /** + * whether tab is visible + * @default true + */ + tabVisible?: boolean; + /** + * tab class + * @default '' + */ + tabClass?: string; + /** + * tab height + * @default 48px + */ + tabHeight?: number; +} + +/** + * sider config + */ +interface AdminLayoutSiderConfig { + /** + * whether sider is visible + * @default true + */ + siderVisible?: boolean; + /** + * sider class + * @default '' + */ + siderClass?: string; + /** + * mobile sider class + * @default '' + */ + mobileSiderClass?: string; + /** + * sider collapse status + * @default false + */ + siderCollapse?: boolean; + /** + * sider width when collapse is false + * @default '220px' + */ + siderWidth?: number; + /** + * sider width when collapse is true + * @default '64px' + */ + siderCollapsedWidth?: number; +} + +/** + * content config + */ +export interface AdminLayoutContentConfig { + /** + * content class + * @default '' + */ + contentClass?: string; + /** + * whether content is full the page + * @description if true, other elements will be hidden by `display: none` + */ + fullContent?: boolean; +} + +/** + * footer config + */ +export interface AdminLayoutFooterConfig { + /** + * whether footer is visible + * @default true + */ + footerVisible?: boolean; + /** + * whether footer is fixed + * @default true + */ + fixedFooter?: boolean; + /** + * footer class + * @default '' + */ + footerClass?: string; + /** + * footer height + * @default 48px + */ + footerHeight?: number; + /** + * whether footer is on the right side + * @description when the layout is vertical, the footer is on the right side + */ + rightFooter?: boolean; +} + +/** + * layout mode + * - horizontal + * - vertical + */ +export type LayoutMode = 'horizontal' | 'vertical'; + +/** + * the scroll mode when content overflow + * - wrapper: the layout component's wrapper element has a scrollbar + * - content: the layout component's content element has a scrollbar + * @default 'wrapper' + */ +export type LayoutScrollMode = 'wrapper' | 'content'; + +/** + * admin layout props + */ +export interface AdminLayoutProps + extends AdminLayoutHeaderConfig, + AdminLayoutTabConfig, + AdminLayoutSiderConfig, + AdminLayoutContentConfig, + AdminLayoutFooterConfig { + /** + * layout mode + * - {@link LayoutMode} + */ + mode?: LayoutMode; + /** is mobile layout */ + isMobile?: boolean; + /** + * scroll mode + * - {@link ScrollMode} + */ + scrollMode?: LayoutScrollMode; + /** + * the id of the scroll element of the layout + * @description it can be used to get the corresponding Dom and scroll it + * @default + * ```ts + * const adminLayoutScrollElId = '__ADMIN_LAYOUT_SCROLL_EL_ID__' + * ``` + * @example use the default id by import + * ```ts + * import { adminLayoutScrollElId } from '@sa/vue-materials'; + * ``` + */ + scrollElId?: string; + /** + * the class of the scroll element + */ + scrollElClass?: string; + /** + * the class of the scroll wrapper element + */ + scrollWrapperClass?: string; + /** + * the common class of the layout + * @description is can be used to configure the transition animation + * @default 'transition-all-300' + */ + commonClass?: string; + /** + * whether fix the header and tab + * @default true + */ + fixedTop?: boolean; + /** + * the max z-index of the layout + * @description the z-index of Header,Tab,Sider and Footer will not exceed this value + */ + maxZIndex?: number; +} + +type Kebab = S extends Uncapitalize ? S : `-${Uncapitalize}`; + +type KebabCase = S extends `${infer Start}${infer End}` + ? `${Uncapitalize}${KebabCase>}` + : S; + +type Prefix = '--soy-'; + +export type LayoutCssVarsProps = Pick< + AdminLayoutProps, + 'headerHeight' | 'tabHeight' | 'siderWidth' | 'siderCollapsedWidth' | 'footerHeight' +> & { + headerZIndex?: number; + tabZIndex?: number; + siderZIndex?: number; + mobileSiderZIndex?: number; + footerZIndex?: number; +}; + +export type LayoutCssVars = { + [K in keyof LayoutCssVarsProps as `${Prefix}${KebabCase}`]: string | number; +}; + +/** + * the mode of the tab + * - button: button style + * - chrome: chrome style + * @default chrome + */ +export type PageTabMode = 'button' | 'chrome'; + +export interface PageTabProps { + /** + * whether is dark mode + */ + darkMode?: boolean; + /** + * the mode of the tab + * - {@link TabMode} + */ + mode?: PageTabMode; + /** + * the common class of the layout + * @description is can be used to configure the transition animation + * @default 'transition-all-300' + */ + commonClass?: string; + /** + * the class of the button tab + */ + buttonClass?: string; + /** + * the class of the chrome tab + */ + chromeClass?: string; + /** + * whether the tab is active + */ + active?: boolean; + /** + * the color of the active tab + */ + activeColor?: string; + /** + * whether the tab is closable + * @description show the close icon when true + */ + closable?: boolean; +} + +export type PageTabCssVarsProps = { + primaryColor: string; + primaryColor1: string; + primaryColor2: string; + primaryColorOpacity1: string; + primaryColorOpacity2: string; + primaryColorOpacity3: string; +}; + +export type PageTabCssVars = { + [K in keyof PageTabCssVarsProps as `${Prefix}${KebabCase}`]: string | number; +}; diff --git a/packages/materials/tsconfig.json b/packages/materials/tsconfig.json new file mode 100644 index 00000000..d9203c31 --- /dev/null +++ b/packages/materials/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "ESNext", + "lib": ["DOM", "ESNext"], + "strict": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "jsx": "preserve", + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "types": ["node"] + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/request/package.json b/packages/request/package.json new file mode 100644 index 00000000..66aaabd9 --- /dev/null +++ b/packages/request/package.json @@ -0,0 +1,18 @@ +{ + "name": "@sa/request", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "./src/*" + ] + } + }, + "dependencies": { + "axios": "1.6.2", + "ofetch": "1.3.3" + } +} diff --git a/packages/request/src/axios/index.ts b/packages/request/src/axios/index.ts new file mode 100644 index 00000000..f50e1e57 --- /dev/null +++ b/packages/request/src/axios/index.ts @@ -0,0 +1,10 @@ +import axios from 'axios'; +import type { CreateAxiosDefaults } from 'axios'; + +export function createAxios(config?: CreateAxiosDefaults) { + const instance = axios.create(config); + + return instance; +} + +export default createAxios; diff --git a/packages/request/src/index.ts b/packages/request/src/index.ts new file mode 100644 index 00000000..bcec1689 --- /dev/null +++ b/packages/request/src/index.ts @@ -0,0 +1,4 @@ +import { createAxios } from './axios'; +import { createOfetch } from './ofetch'; + +export { createAxios, createOfetch }; diff --git a/packages/request/src/ofetch/index.ts b/packages/request/src/ofetch/index.ts new file mode 100644 index 00000000..9ae37e24 --- /dev/null +++ b/packages/request/src/ofetch/index.ts @@ -0,0 +1,10 @@ +import { ofetch } from 'ofetch'; +import type { FetchOptions } from 'ofetch'; + +export function createOfetch(options: FetchOptions) { + const request = ofetch.create(options); + + return request; +} + +export default createOfetch; diff --git a/packages/request/tsconfig.json b/packages/request/tsconfig.json new file mode 100644 index 00000000..d9203c31 --- /dev/null +++ b/packages/request/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "ESNext", + "lib": ["DOM", "ESNext"], + "strict": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "jsx": "preserve", + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "types": ["node"] + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/scripts/bin.cjs b/packages/scripts/bin.cjs new file mode 100755 index 00000000..364c4977 --- /dev/null +++ b/packages/scripts/bin.cjs @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +const path = require('path'); +const jiti = require('jiti')(__filename); + +jiti(path.resolve(__dirname, './src/index.ts')); diff --git a/packages/scripts/package.json b/packages/scripts/package.json new file mode 100644 index 00000000..bad715b9 --- /dev/null +++ b/packages/scripts/package.json @@ -0,0 +1,28 @@ +{ + "name": "@sa/scripts", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "./src/*" + ] + } + }, + "bin": { + "sa": "./bin.cjs" + }, + "devDependencies": { + "c12": "1.5.1", + "cac": "6.7.14", + "consola": "3.2.3", + "enquirer": "2.4.1", + "execa": "8.0.1", + "jiti": "1.21.0", + "lint-staged": "15.1.0", + "npm-check-updates": "16.14.6", + "rimraf": "5.0.5" + } +} diff --git a/packages/scripts/src/commands/cleanup.ts b/packages/scripts/src/commands/cleanup.ts new file mode 100644 index 00000000..a9d39904 --- /dev/null +++ b/packages/scripts/src/commands/cleanup.ts @@ -0,0 +1,5 @@ +import { rimraf } from 'rimraf'; + +export async function cleanup(paths: string[]) { + await rimraf(paths, { glob: true }); +} diff --git a/packages/scripts/src/commands/git-commit.ts b/packages/scripts/src/commands/git-commit.ts new file mode 100644 index 00000000..b0640096 --- /dev/null +++ b/packages/scripts/src/commands/git-commit.ts @@ -0,0 +1,75 @@ +import path from 'node:path'; +import { readFileSync } from 'node:fs'; +import enquirer from 'enquirer'; +import { bgRed, red, green } from 'kolorist'; +import { execCommand } from '../shared'; +import type { CliOption } from '../types'; + +interface PromptObject { + types: string; + scopes: string; + description: string; +} + +export async function gitCommit( + gitCommitTypes: CliOption['gitCommitTypes'], + gitCommitScopes: CliOption['gitCommitScopes'] +) { + const typesChoices = gitCommitTypes.map(([name, title]) => { + const nameWithSuffix = `${name}:`; + + const message = `${nameWithSuffix.padEnd(12)}${title}`; + + return { + name, + message + }; + }); + + const scopesChoices = gitCommitScopes.map(([name, title]) => ({ + name, + message: `${name.padEnd(30)} (${title})` + })); + + const result = await enquirer.prompt([ + { + name: 'types', + type: 'select', + message: 'Please select a type', + choices: typesChoices + }, + { + name: 'scopes', + type: 'select', + message: 'Please select a scope', + choices: scopesChoices + }, + { + name: 'description', + type: 'text', + message: 'Please enter a description' + } + ]); + + const commitMsg = `${result.types}(${result.scopes}): ${result.description}`; + + await execCommand('git', ['commit', '-m', commitMsg], { stdio: 'inherit' }); +} + +export async function gitCommitVerify() { + const gitPath = await execCommand('git', ['rev-parse', '--show-toplevel']); + + const gitMsgPath = path.join(gitPath, '.git', 'COMMIT_EDITMSG'); + + const commitMsg = readFileSync(gitMsgPath, 'utf8').trim(); + + const REG_EXP = /(?[a-z]+)(\((?.+)\))?(?!)?: (?.+)/i; + + if (!REG_EXP.test(commitMsg)) { + throw new Error( + `${bgRed(' ERROR ')} ${red('git commit message must match the Conventional Commits standard!')}\n\n${green( + 'Recommended to use the command `pnpm commit` to generate Conventional Commits compliant commit information.\nGet more info about Conventional Commits, follow this link: https://conventionalcommits.org' + )}` + ); + } +} diff --git a/packages/scripts/src/commands/index.ts b/packages/scripts/src/commands/index.ts new file mode 100644 index 00000000..99a1bbaa --- /dev/null +++ b/packages/scripts/src/commands/index.ts @@ -0,0 +1,5 @@ +export * from './git-commit'; +export * from './cleanup'; +export * from './update-pkg'; +export * from './prettier'; +export * from './lint-staged'; diff --git a/packages/scripts/src/commands/lint-staged.ts b/packages/scripts/src/commands/lint-staged.ts new file mode 100644 index 00000000..aa9744d8 --- /dev/null +++ b/packages/scripts/src/commands/lint-staged.ts @@ -0,0 +1,5 @@ +export async function execLintStaged(config: Record) { + const lintStaged = (await import('lint-staged')).default; + + return lintStaged({ config, allowEmpty: true }); +} diff --git a/packages/scripts/src/commands/prettier.ts b/packages/scripts/src/commands/prettier.ts new file mode 100644 index 00000000..314af4ad --- /dev/null +++ b/packages/scripts/src/commands/prettier.ts @@ -0,0 +1,7 @@ +import { execCommand } from '../shared'; + +export async function prettierWrite(writeGlob: string[]) { + await execCommand('npx', ['prettier', '--write', '.', ...writeGlob], { + stdio: 'inherit' + }); +} diff --git a/packages/scripts/src/commands/update-pkg.ts b/packages/scripts/src/commands/update-pkg.ts new file mode 100644 index 00000000..54d1132d --- /dev/null +++ b/packages/scripts/src/commands/update-pkg.ts @@ -0,0 +1,5 @@ +import { execCommand } from '../shared'; + +export async function updatePkg(args: string[] = ['--deep', '-u']) { + execCommand('npx', ['ncu', ...args], { stdio: 'inherit' }); +} diff --git a/packages/scripts/src/config/index.ts b/packages/scripts/src/config/index.ts new file mode 100644 index 00000000..ec2e5b94 --- /dev/null +++ b/packages/scripts/src/config/index.ts @@ -0,0 +1,74 @@ +import { loadConfig } from 'c12'; +import type { CliOption } from '../types'; + +const eslintExt = '*.{js,jsx,mjs,cjs,ts,tsx,vue}'; + +const defaultOptions: CliOption = { + cwd: process.cwd(), + cleanupDirs: [ + '**/dist', + '**/package-lock.json', + '**/yarn.lock', + '**/pnpm-lock.yaml', + '**/node_modules', + '!node_modules/**' + ], + gitCommitTypes: [ + ['feat', 'A new feature'], + ['fix', 'A bug fix'], + ['docs', 'Documentation only changes'], + ['style', 'Changes that do not affect the meaning of the code'], + ['refactor', 'A code change that neither fixes a bug nor adds a feature'], + ['perf', 'A code change that improves performance'], + ['test', 'Adding missing tests or correcting existing tests'], + ['build', 'Changes that affect the build system or external dependencies'], + ['ci', 'Changes to our CI configuration files and scripts'], + ['chore', "Other changes that don't modify src or test files"], + ['revert', 'Reverts a previous commit'] + ], + gitCommitScopes: [ + ['projects', 'project'], + ['components', 'components'], + ['hooks', 'hook functions'], + ['utils', 'utils functions'], + ['types', 'TS declaration'], + ['styles', 'style'], + ['deps', 'project dependencies'], + ['release', 'release project'], + ['other', 'other changes'] + ], + ncuCommandArgs: ['--deep', '-u'], + prettierWriteGlob: [ + `!**/${eslintExt}`, + '!*.min.*', + '!CHANGELOG.md', + '!dist', + '!LICENSE*', + '!output', + '!coverage', + '!public', + '!temp', + '!package-lock.json', + '!pnpm-lock.yaml', + '!yarn.lock', + '!.github', + '!__snapshots__', + '!node_modules' + ], + lintStagedConfig: { + [eslintExt]: 'eslint --fix', + '*': 'sa prettier-write' + } +}; + +export async function loadCliOptions(overrides?: Partial, cwd = process.cwd()) { + const { config } = await loadConfig>({ + name: 'soybean', + defaults: defaultOptions, + overrides, + cwd, + packageJson: true + }); + + return config as CliOption; +} diff --git a/packages/scripts/src/index.ts b/packages/scripts/src/index.ts new file mode 100755 index 00000000..869339f5 --- /dev/null +++ b/packages/scripts/src/index.ts @@ -0,0 +1,70 @@ +import cac from 'cac'; +import { blue, lightGreen } from 'kolorist'; +import { version } from '../package.json'; +import { cleanup, updatePkg, gitCommit, gitCommitVerify, prettierWrite, execLintStaged } from './commands'; +import { loadCliOptions } from './config'; + +type Command = 'cleanup' | 'update-pkg' | 'git-commit' | 'git-commit-verify' | 'prettier-write' | 'lint-staged'; + +type CommandAction = (args?: A) => Promise | void; + +type CommandWithAction = Record }>; + +interface CommandArg { + total?: boolean; +} + +export async function setupCli() { + const cliOptions = await loadCliOptions(); + + const cli = cac(blue('soybean')); + + cli.version(lightGreen(version)).help(); + + const commands: CommandWithAction = { + cleanup: { + desc: 'delete dirs: node_modules, dist, etc.', + action: async () => { + await cleanup(cliOptions.cleanupDirs); + } + }, + 'update-pkg': { + desc: 'update package.json dependencies versions', + action: async () => { + await updatePkg(cliOptions.ncuCommandArgs); + } + }, + 'git-commit': { + desc: 'git commit, generate commit message which match Conventional Commits standard', + action: async () => { + await gitCommit(cliOptions.gitCommitTypes, cliOptions.gitCommitScopes); + } + }, + 'git-commit-verify': { + desc: 'verify git commit message, make sure it match Conventional Commits standard', + action: async () => { + await gitCommitVerify(); + } + }, + 'prettier-write': { + desc: 'run prettier --write', + action: async () => { + await prettierWrite(cliOptions.prettierWriteGlob); + } + }, + 'lint-staged': { + desc: 'run lint-staged', + action: async () => { + await execLintStaged(cliOptions.lintStagedConfig); + } + } + }; + + for (const [command, { desc, action }] of Object.entries(commands)) { + cli.command(command, lightGreen(desc)).action(action); + } + + cli.parse(); +} + +setupCli(); diff --git a/packages/scripts/src/shared/index.ts b/packages/scripts/src/shared/index.ts new file mode 100644 index 00000000..80d933c8 --- /dev/null +++ b/packages/scripts/src/shared/index.ts @@ -0,0 +1,7 @@ +import type { Options } from 'execa'; + +export async function execCommand(cmd: string, args: string[], options?: Options) { + const { execa } = await import('execa'); + const res = await execa(cmd, args, options); + return res?.stdout?.trim() || ''; +} diff --git a/packages/scripts/src/types/index.ts b/packages/scripts/src/types/index.ts new file mode 100644 index 00000000..143f2274 --- /dev/null +++ b/packages/scripts/src/types/index.ts @@ -0,0 +1,37 @@ +export interface CliOption { + /** + * the project root directory + */ + cwd: string; + /** + * cleanup dirs + * @default + * ```json + * ["** /dist", "** /pnpm-lock.yaml", "** /node_modules", "!node_modules/**"] + * ``` + * @description glob pattern syntax {@link https://github.com/isaacs/minimatch} + */ + cleanupDirs: string[]; + /** + * git commit types + */ + gitCommitTypes: [string, string][]; + /** + * git commit scopes + */ + gitCommitScopes: [string, string][]; + /** + * npm-check-updates command args + * @default ["--deep","-u"] + */ + ncuCommandArgs: string[]; + /** + * prettier write glob + * @description glob pattern syntax {@link https://github.com/micromatch/micromatch} + */ + prettierWriteGlob: string[]; + /** + * lint-staged config + */ + lintStagedConfig: Record; +} diff --git a/packages/scripts/tsconfig.json b/packages/scripts/tsconfig.json new file mode 100644 index 00000000..36f61cf9 --- /dev/null +++ b/packages/scripts/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "ESNext", + "lib": ["DOM", "ESNext"], + "strict": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "jsx": "preserve", + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "types": ["node"] + }, + "include": ["src/**/*", "typings/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/scripts/typings/pkg.d.ts b/packages/scripts/typings/pkg.d.ts new file mode 100644 index 00000000..79049453 --- /dev/null +++ b/packages/scripts/typings/pkg.d.ts @@ -0,0 +1,15 @@ +declare module 'lint-staged' { + interface LintStagedOptions { + config?: Record; + allowEmpty?: boolean; + } + + type LintStagedFn = (options: LintStagedOptions) => Promise; + interface LintStaged extends LintStagedFn { + default: LintStagedFn; + } + + const lintStaged: LintStaged; + + export default lintStaged; +} diff --git a/packages/uno-preset/package.json b/packages/uno-preset/package.json new file mode 100644 index 00000000..f64e24db --- /dev/null +++ b/packages/uno-preset/package.json @@ -0,0 +1,14 @@ +{ + "name": "@sa/uno-preset", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "./src/*" + ] + } + } +} diff --git a/packages/uno-preset/src/index.ts b/packages/uno-preset/src/index.ts new file mode 100644 index 00000000..3c744f6d --- /dev/null +++ b/packages/uno-preset/src/index.ts @@ -0,0 +1,57 @@ +// @unocss-include + +import type { Preset } from '@unocss/core'; +import type { Theme } from '@unocss/preset-uno'; + +export function presetSoybeanAdmin(): Preset { + const preset: Preset = { + name: 'preset-soybean-admin', + shortcuts: [ + { + 'wh-full': 'w-full h-full' + }, + { + 'flex-center': 'flex justify-center items-center', + 'flex-x-center': 'flex justify-center', + 'flex-y-center': 'flex items-center', + 'flex-vertical': 'flex flex-col', + 'flex-vertical-center': 'flex-center flex-col', + 'flex-vertical-stretch': 'flex-vertical items-stretch', + 'i-flex-center': 'inline-flex justify-center items-center', + 'i-flex-x-center': 'inline-flex justify-center', + 'i-flex-y-center': 'inline-flex items-center', + 'i-flex-vertical': 'inline-flex flex-col', + 'i-flex-vertical-stretch': 'i-flex-vertical items-stretch', + 'flex-1-hidden': 'flex-1 overflow-hidden' + }, + { + 'absolute-lt': 'absolute left-0 top-0', + 'absolute-lb': 'absolute left-0 bottom-0', + 'absolute-rt': 'absolute right-0 top-0', + 'absolute-rb': 'absolute right-0 bottom-0', + 'absolute-tl': 'absolute-lt', + 'absolute-tr': 'absolute-rt', + 'absolute-bl': 'absolute-lb', + 'absolute-br': 'absolute-rb', + 'absolute-center': 'absolute-lt flex-center wh-full', + 'fixed-lt': 'fixed left-0 top-0', + 'fixed-lb': 'fixed left-0 bottom-0', + 'fixed-rt': 'fixed right-0 top-0', + 'fixed-rb': 'fixed right-0 bottom-0', + 'fixed-tl': 'fixed-lt', + 'fixed-tr': 'fixed-rt', + 'fixed-bl': 'fixed-lb', + 'fixed-br': 'fixed-rb', + 'fixed-center': 'fixed-lt flex-center wh-full' + }, + { + 'nowrap-hidden': 'overflow-hidden whitespace-nowrap', + 'ellipsis-text': 'nowrap-hidden text-ellipsis' + } + ] + }; + + return preset; +} + +export default presetSoybeanAdmin; diff --git a/packages/uno-preset/tsconfig.json b/packages/uno-preset/tsconfig.json new file mode 100644 index 00000000..d9203c31 --- /dev/null +++ b/packages/uno-preset/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "ESNext", + "lib": ["DOM", "ESNext"], + "strict": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "jsx": "preserve", + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "types": ["node"] + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/utils/package.json b/packages/utils/package.json new file mode 100644 index 00000000..8c799fce --- /dev/null +++ b/packages/utils/package.json @@ -0,0 +1,22 @@ +{ + "name": "@sa/utils", + "version": "1.0.0", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": [ + "./src/*" + ] + } + }, + "dependencies": { + "colord": "2.9.3", + "crypto-js": "4.2.0", + "localforage": "1.10.0" + }, + "devDependencies": { + "@types/crypto-js": "4.2.1" + } +} diff --git a/src/utils/common/color.ts b/packages/utils/src/color.ts similarity index 61% rename from src/utils/common/color.ts rename to packages/utils/src/color.ts index 865f3c89..6df6e135 100644 --- a/src/utils/common/color.ts +++ b/packages/utils/src/color.ts @@ -1,36 +1,110 @@ import { colord, extend } from 'colord'; import namesPlugin from 'colord/plugins/names'; import mixPlugin from 'colord/plugins/mix'; -import type { AnyColor, HsvColor } from 'colord'; +import type { AnyColor, HsvColor, RgbColor } from 'colord'; extend([namesPlugin, mixPlugin]); -/** 色相阶梯 */ +/** + * add color alpha + * @param color - color + * @param alpha - alpha (0 - 1) + */ +export function addColorAlpha(color: string, alpha: number) { + return colord(color).alpha(alpha).toHex(); +} + +/** + * mix color + * @param firstColor - first color + * @param secondColor - second color + * @param ratio - the ratio of the second color (0 - 1) + */ +export function mixColor(firstColor: string, secondColor: string, ratio: number) { + return colord(firstColor).mix(secondColor, ratio).toHex(); +} + +/** + * transform color with opacity to similar color without opacity + * @param color - color + * @param alpha - alpha (0 - 1) + * @param bgColor background color (usually white or black) + */ +export function transformColorWithOpacity(color: string, alpha: number, bgColor = '#ffffff') { + const originColor = addColorAlpha(color, alpha); + const { r: oR, g: oG, b: oB } = colord(originColor).toRgb(); + + const { r: bgR, g: bgG, b: bgB } = colord(bgColor).toRgb(); + + function calRgb(or: number, bg: number, al: number) { + return bg + (or - bg) * al; + } + + const resultRgb: RgbColor = { + r: calRgb(oR, bgR, alpha), + g: calRgb(oG, bgG, alpha), + b: calRgb(oB, bgB, alpha) + }; + + return colord(resultRgb).toHex(); +} + +/** + * is white color + * @param color - color + */ +export function isWhiteColor(color: string) { + return colord(color).isEqual('#ffffff'); +} + +/** + * get rgb of color + * @param color color + */ +export function getRgbOfColor(color: string) { + return colord(color).toRgb(); +} + +/** + * hue step + */ const hueStep = 2; -/** 饱和度阶梯,浅色部分 */ +/** + * saturation step, light color part + */ const saturationStep = 16; -/** 饱和度阶梯,深色部分 */ +/** + * saturation step, dark color part + */ const saturationStep2 = 5; -/** 亮度阶梯,浅色部分 */ +/** + * brightness step, light color part + */ const brightnessStep1 = 5; -/** 亮度阶梯,深色部分 */ +/** + * brightness step, dark color part + */ const brightnessStep2 = 15; -/** 浅色数量,主色上 */ +/** + * light color count, main color up + */ const lightColorCount = 5; -/** 深色数量,主色下 */ +/** + * dark color count, main color down + */ const darkColorCount = 4; /** - * 调色板的颜色索引 - * @description 从左至右颜色从浅到深,6为主色号 + * the color index of color palette + * @description from left to right, the color is from light to dark, 6 is main color */ type ColorIndex = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; /** - * 根据颜色获取调色板颜色(从左至右颜色从浅到深,6为主色号) - * @param color - 颜色 - * @param index - 调色板的对应的色号(6为主色号) - * @returns 返回hex格式的颜色 + * get color palette (from left to right, the color is from light to dark, 6 is main color) + * @param color - color + * @param index - the color index of color palette (the main color index is 6) + * @returns hex color */ export function getColorPalette(color: AnyColor, index: ColorIndex): string { const transformColor = colord(color); @@ -56,7 +130,9 @@ export function getColorPalette(color: AnyColor, index: ColorIndex): string { return colord(newHsv).toHex(); } -/** 暗色主题颜色映射关系表 */ +/** + * map of dark color index and opacity + */ const darkColorMap = [ { index: 7, opacity: 0.15 }, { index: 6, opacity: 0.25 }, @@ -71,10 +147,10 @@ const darkColorMap = [ ]; /** - * 根据颜色获取调色板颜色所有颜色 - * @param color - 颜色 - * @param darkTheme - 暗黑主题的调色板颜色 - * @param darkThemeMixColor - 暗黑主题的混合颜色,默认 #141414 + * get color palettes + * @param color - color + * @param darkTheme - dark theme + * @param darkThemeMixColor - dark theme mix color (default: #141414) */ export function getColorPalettes(color: AnyColor, darkTheme = false, darkThemeMixColor = '#141414'): string[] { const indexes: ColorIndex[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; @@ -95,10 +171,10 @@ export function getColorPalettes(color: AnyColor, darkTheme = false, darkThemeMi } /** - * 获取色相渐变 - * @param hsv - hsv格式颜色值 - * @param i - 与6的相对距离 - * @param isLight - 是否是亮颜色 + * get hue + * @param hsv - hsv format color + * @param i - the relative distance from 6 + * @param isLight - is light color */ function getHue(hsv: HsvColor, i: number, isLight: boolean) { let hue: number; @@ -106,14 +182,8 @@ function getHue(hsv: HsvColor, i: number, isLight: boolean) { const hsvH = Math.round(hsv.h); if (hsvH >= 60 && hsvH <= 240) { - // 冷色调 - // 减淡变亮 色相顺时针旋转 更暖 - // 加深变暗 色相逆时针旋转 更冷 hue = isLight ? hsvH - hueStep * i : hsvH + hueStep * i; } else { - // 暖色调 - // 减淡变亮 色相逆时针旋转 更暖 - // 加深变暗 色相顺时针旋转 更冷 hue = isLight ? hsvH + hueStep * i : hsvH - hueStep * i; } @@ -129,13 +199,12 @@ function getHue(hsv: HsvColor, i: number, isLight: boolean) { } /** - * 获取饱和度渐变 - * @param hsv - hsv格式颜色值 - * @param i - 与6的相对距离 - * @param isLight - 是否是亮颜色 + * get saturation + * @param hsv - hsv format color + * @param i - the relative distance from 6 + * @param isLight - is light color */ function getSaturation(hsv: HsvColor, i: number, isLight: boolean) { - // 灰色不渐变 if (hsv.h === 0 && hsv.s === 0) { return hsv.s; } @@ -166,10 +235,10 @@ function getSaturation(hsv: HsvColor, i: number, isLight: boolean) { } /** - * 获取明度渐变 - * @param hsv - hsv格式颜色值 - * @param i - 与6的相对距离 - * @param isLight - 是否是亮颜色 + * get value of hsv + * @param hsv - hsv format color + * @param i - the relative distance from 6 + * @param isLight - is light color */ function getValue(hsv: HsvColor, i: number, isLight: boolean) { let value: number; @@ -186,38 +255,3 @@ function getValue(hsv: HsvColor, i: number, isLight: boolean) { return value; } - -/** - * 给颜色加透明度 - * @param color - 颜色 - * @param alpha - 透明度(0 - 1) - */ -export function addColorAlpha(color: string, alpha: number) { - return colord(color).alpha(alpha).toHex(); -} - -/** - * 颜色混合 - * @param firstColor - 第一个颜色 - * @param secondColor - 第二个颜色 - * @param ratio - 第二个颜色占比 - */ -export function mixColor(firstColor: string, secondColor: string, ratio: number) { - return colord(firstColor).mix(secondColor, ratio).toHex(); -} - -/** - * 是否是白颜色 - * @param color - 颜色 - */ -export function isWhiteColor(color: string) { - return colord(color).isEqual('#ffffff'); -} - -/** - * 获取颜色的rgb值 - * @param color 颜色 - */ -export function getRgbOfColor(color: string) { - return colord(color).toRgb(); -} diff --git a/packages/utils/src/crypto.ts b/packages/utils/src/crypto.ts new file mode 100644 index 00000000..7d2ffdc9 --- /dev/null +++ b/packages/utils/src/crypto.ts @@ -0,0 +1,29 @@ +import CryptoJS from 'crypto-js'; + +export class Crypto { + /** + * secret + */ + secret: string; + + constructor(secret: string) { + this.secret = secret; + } + + encrypt(data: T): string { + const dataString = JSON.stringify(data); + const encrypted = CryptoJS.AES.encrypt(dataString, this.secret); + return encrypted.toString(); + } + + decrypt(encrypted: string) { + const decrypted = CryptoJS.AES.decrypt(encrypted, this.secret); + const dataString = decrypted.toString(CryptoJS.enc.Utf8); + try { + return JSON.parse(dataString) as T; + } catch { + // avoid parse error + return null; + } + } +} diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts new file mode 100644 index 00000000..cb239b12 --- /dev/null +++ b/packages/utils/src/index.ts @@ -0,0 +1,3 @@ +export * from './color'; +export * from './crypto'; +export * from './storage'; diff --git a/packages/utils/src/storage.ts b/packages/utils/src/storage.ts new file mode 100644 index 00000000..083dfe8a --- /dev/null +++ b/packages/utils/src/storage.ts @@ -0,0 +1,76 @@ +import localforage from 'localforage'; + +/** + * the storage type + */ +export type StorageType = 'local' | 'session'; + +export function createStorage(type: StorageType) { + const stg = type === 'session' ? window.sessionStorage : window.localStorage; + + const storage = { + /** + * set session + * @param key session key + * @param value session value + */ + set(key: K, value: T[K]) { + const json = JSON.stringify(value); + + stg.setItem(key as string, json); + }, + /** + * get session + * @param key session key + */ + get(key: K): T[K] | null { + const json = stg.getItem(key as string); + if (json) { + let storageData: T[K] | null = null; + + try { + storageData = JSON.parse(json); + } catch {} + + if (storageData) { + return storageData as T[K]; + } + } + + stg.removeItem(key as string); + + return null; + }, + remove(key: keyof T) { + stg.removeItem(key as string); + }, + clear() { + stg.clear(); + } + }; + return storage; +} + +type LocalForage = Omit & { + getItem(key: K, callback?: (err: any, value: T[K] | null) => void): Promise; + + setItem(key: K, value: T[K], callback?: (err: any, value: T[K]) => void): Promise; + + removeItem(key: keyof T, callback?: (err: any) => void): Promise; +}; + +type LocalforageDriver = 'local' | 'indexedDB' | 'webSQL'; + +export function createLocalforage(driver: LocalforageDriver) { + const driverMap: Record = { + local: localforage.LOCALSTORAGE, + indexedDB: localforage.INDEXEDDB, + webSQL: localforage.WEBSQL + }; + + localforage.config({ + driver: driverMap[driver] + }); + + return localforage as LocalForage; +} diff --git a/patches/mockjs@1.1.0.patch b/patches/mockjs@1.1.0.patch deleted file mode 100644 index d75c8318..00000000 --- a/patches/mockjs@1.1.0.patch +++ /dev/null @@ -1,732 +0,0 @@ -diff --git a/dist/mock.js b/dist/mock.js -index 35d5b9af3eff34324656879705dcb81470fc9697..3e6a52e0fbfdd39d3aaf1592ffd19ecde33320f3 100644 ---- a/dist/mock.js -+++ b/dist/mock.js -@@ -126,17 +126,17 @@ return /******/ (function(modules) { // webpackBootstrap - /* 1 */ - /***/ (function(module, exports, __webpack_require__) { - -- /* -+ /* - ## Handler - - 处理数据模板。 -- -+ - * Handler.gen( template, name?, context? ) - - 入口方法。 - - * Data Template Definition, DTD -- -+ - 处理数据模板定义。 - - * Handler.array( options ) -@@ -146,7 +146,7 @@ return /******/ (function(modules) { // webpackBootstrap - * Handler.string( options ) - * Handler.function( options ) - * Handler.regexp( options ) -- -+ - 处理路径(相对和绝对)。 - - * Handler.getValueByKeyPath( key, options ) -@@ -177,7 +177,7 @@ return /******/ (function(modules) { // webpackBootstrap - - Handle.gen(template, name, options) - context -- currentContext, templateCurrentContext, -+ currentContext, templateCurrentContext, - path, templatePath - root, templateRoot - */ -@@ -456,7 +456,7 @@ return /******/ (function(modules) { // webpackBootstrap - phed = Handler.placeholder(ph, options.context.currentContext, options.context.templateCurrentContext, options) - - // 只有一个占位符,并且没有其他字符 -- if (placeholders.length === 1 && ph === result && typeof phed !== typeof result) { // -+ if (placeholders.length === 1 && ph === result && typeof phed !== typeof result) { // - result = phed - break - -@@ -627,7 +627,7 @@ return /******/ (function(modules) { // webpackBootstrap - } - // 引用的值已经计算好 - if (currentContext && (key in currentContext)) return currentContext[key] -- -+ - // 尚未计算,递归引用数据模板中的属性 - if (templateCurrentContext && - (typeof templateCurrentContext === 'object') && -@@ -816,13 +816,13 @@ return /******/ (function(modules) { // webpackBootstrap - var tpl = Mock.heredoc(function() { - /*! - {{email}}{{age}} -- - *\/ - }) -- -+ - **相关阅读** - * [Creating multiline strings in JavaScript](http://stackoverflow.com/questions/805107/creating-multiline-strings-in-javascript)、 - */ -@@ -850,7 +850,7 @@ return /******/ (function(modules) { // webpackBootstrap - 解析数据模板(属性名部分)。 - - * Parser.parse( name ) -- -+ - ```json - { - parameters: [ name, inc, range, decimal ], -@@ -922,7 +922,7 @@ return /******/ (function(modules) { // webpackBootstrap - - /* - ## Mock.Random -- -+ - 工具类,用于生成各种随机数据。 - */ - -@@ -1251,7 +1251,7 @@ return /******/ (function(modules) { // webpackBootstrap - - 替代图片源 - http://fpoimg.com/ -- 参考自 -+ 参考自 - http://rensanning.iteye.com/blog/1933310 - http://code.tutsplus.com/articles/the-top-8-placeholders-for-web-designers--net-19485 - */ -@@ -1541,7 +1541,7 @@ return /******/ (function(modules) { // webpackBootstrap - var bg_colour = Math.floor(Math.random() * 16777215).toString(16); - bg_colour = "#" + ("000000" + bg_colour).slice(-6); - document.bgColor = bg_colour; -- -+ - http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/ - Creating random colors is actually more difficult than it seems. The randomness itself is easy, but aesthetically pleasing randomness is more difficult. - https://github.com/devongovett/color-generator -@@ -1561,7 +1561,7 @@ return /******/ (function(modules) { // webpackBootstrap - - http://tool.c7sky.com/webcolor - 网页设计常用色彩搭配表 -- -+ - https://github.com/One-com/one-color - An OO-based JavaScript color parser/computation toolkit with support for RGB, HSV, HSL, CMYK, and alpha channels. - API 很赞 -@@ -1593,7 +1593,7 @@ return /******/ (function(modules) { // webpackBootstrap - color += letters[Math.floor(Math.random() * 16)] - } - return color -- -+ - // 随机生成一个无脑的颜色,格式为 '#RRGGBB'。 - // _brainlessColor() - var color = Math.floor( -@@ -1959,7 +1959,7 @@ return /******/ (function(modules) { // webpackBootstrap - } - return result.join(' ') - }, -- // -+ // - cparagraph: function(min, max) { - var len = range(3, 7, min, max) - var result = [] -@@ -2282,17 +2282,17 @@ return /******/ (function(modules) { // webpackBootstrap - 随机生成一个 URL。 - - [URL 规范](http://www.w3.org/Addressing/URL/url-spec.txt) -- http Hypertext Transfer Protocol -- ftp File Transfer protocol -- gopher The Gopher protocol -- mailto Electronic mail address -- mid Message identifiers for electronic mail -- cid Content identifiers for MIME body part -- news Usenet news -- nntp Usenet news for local NNTP access only -- prospero Access using the prospero protocols -+ http Hypertext Transfer Protocol -+ ftp File Transfer protocol -+ gopher The Gopher protocol -+ mailto Electronic mail address -+ mid Message identifiers for electronic mail -+ cid Content identifiers for MIME body part -+ news Usenet news -+ nntp Usenet news for local NNTP access only -+ prospero Access using the prospero protocols - telnet rlogin tn3270 Reference to interactive sessions -- wais Wide Area Information Servers -+ wais Wide Area Information Servers - */ - url: function(protocol, host) { - return (protocol || this.protocol()) + '://' + // protocol? -@@ -2422,9 +2422,9 @@ return /******/ (function(modules) { // webpackBootstrap - 西南 重庆市 四川省 贵州省 云南省 西藏自治区 - 西北 陕西省 甘肃省 青海省 宁夏回族自治区 新疆维吾尔自治区 - 港澳台 香港特别行政区 澳门特别行政区 台湾省 -- -+ - **排序** -- -+ - ```js - var map = {} - _.each(_.keys(REGIONS),function(id){ -@@ -6527,7 +6527,7 @@ return /******/ (function(modules) { // webpackBootstrap - "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" / - "a" / "b" / "c" / "d" / "e" / "f" / - "A" / "B" / "C" / "D" / "E" / "F" -- -+ - https://github.com/victorquinn/chancejs/blob/develop/chance.js#L1349 - */ - guid: function() { -@@ -6629,7 +6629,7 @@ return /******/ (function(modules) { // webpackBootstrap - } - - function CaptureGroup(n) { -- Group.call(this, "capture-group"), this.index = cgs[this.offset] || (cgs[this.offset] = index++), -+ Group.call(this, "capture-group"), this.index = cgs[this.offset] || (cgs[this.offset] = index++), - this.body = n; - } - -@@ -6711,7 +6711,7 @@ return /******/ (function(modules) { // webpackBootstrap - } - return r = l ? '"' + u(l) + '"' : "end of input", "Expected " + t + " but " + r + " found."; - } -- this.expected = n, this.found = l, this.offset = u, this.line = t, this.column = r, -+ this.expected = n, this.found = l, this.offset = u, this.line = t, this.column = r, - this.name = "SyntaxError", this.message = e(n, l); - } - function u(n) { -@@ -6724,8 +6724,8 @@ return /******/ (function(modules) { // webpackBootstrap - function r(l) { - function u(l, u, t) { - var r, e; -- for (r = u; t > r; r++) e = n.charAt(r), "\n" === e ? (l.seenCR || l.line++, l.column = 1, -- l.seenCR = !1) : "\r" === e || "\u2028" === e || "\u2029" === e ? (l.line++, l.column = 1, -+ for (r = u; t > r; r++) e = n.charAt(r), "\n" === e ? (l.seenCR || l.line++, l.column = 1, -+ l.seenCR = !1) : "\r" === e || "\u2028" === e || "\u2029" === e ? (l.line++, l.column = 1, - l.seenCR = !0) : (l.column++, l.seenCR = !1); - } - return Mt !== l && (Mt > l && (Mt = 0, Dt = { -@@ -6743,19 +6743,19 @@ return /******/ (function(modules) { // webpackBootstrap - } - function c() { - var l, u, t, r, o; -- return l = qt, u = i(), null !== u ? (t = qt, 124 === n.charCodeAt(qt) ? (r = fl, -- qt++) : (r = null, 0 === Wt && e(sl)), null !== r ? (o = c(), null !== o ? (r = [ r, o ], -- t = r) : (qt = t, t = il)) : (qt = t, t = il), null === t && (t = al), null !== t ? (Lt = l, -- u = hl(u, t), null === u ? (qt = l, l = u) : l = u) : (qt = l, l = il)) : (qt = l, -+ return l = qt, u = i(), null !== u ? (t = qt, 124 === n.charCodeAt(qt) ? (r = fl, -+ qt++) : (r = null, 0 === Wt && e(sl)), null !== r ? (o = c(), null !== o ? (r = [ r, o ], -+ t = r) : (qt = t, t = il)) : (qt = t, t = il), null === t && (t = al), null !== t ? (Lt = l, -+ u = hl(u, t), null === u ? (qt = l, l = u) : l = u) : (qt = l, l = il)) : (qt = l, - l = il), l; - } - function i() { - var n, l, u, t, r; -- if (n = qt, l = f(), null === l && (l = al), null !== l) if (u = qt, Wt++, t = d(), -+ if (n = qt, l = f(), null === l && (l = al), null !== l) if (u = qt, Wt++, t = d(), - Wt--, null === t ? u = al : (qt = u, u = il), null !== u) { -- for (t = [], r = h(), null === r && (r = a()); null !== r; ) t.push(r), r = h(), -+ for (t = [], r = h(), null === r && (r = a()); null !== r; ) t.push(r), r = h(), - null === r && (r = a()); -- null !== t ? (r = s(), null === r && (r = al), null !== r ? (Lt = n, l = dl(l, t, r), -+ null !== t ? (r = s(), null === r && (r = al), null !== r ? (Lt = n, l = dl(l, t, r), - null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, n = il); - } else qt = n, n = il; else qt = n, n = il; - return n; -@@ -6766,148 +6766,148 @@ return /******/ (function(modules) { // webpackBootstrap - } - function f() { - var l, u; -- return l = qt, 94 === n.charCodeAt(qt) ? (u = pl, qt++) : (u = null, 0 === Wt && e(vl)), -+ return l = qt, 94 === n.charCodeAt(qt) ? (u = pl, qt++) : (u = null, 0 === Wt && e(vl)), - null !== u && (Lt = l, u = wl()), null === u ? (qt = l, l = u) : l = u, l; - } - function s() { - var l, u; -- return l = qt, 36 === n.charCodeAt(qt) ? (u = Al, qt++) : (u = null, 0 === Wt && e(Cl)), -+ return l = qt, 36 === n.charCodeAt(qt) ? (u = Al, qt++) : (u = null, 0 === Wt && e(Cl)), - null !== u && (Lt = l, u = gl()), null === u ? (qt = l, l = u) : l = u, l; - } - function h() { - var n, l, u; -- return n = qt, l = a(), null !== l ? (u = d(), null !== u ? (Lt = n, l = bl(l, u), -+ return n = qt, l = a(), null !== l ? (u = d(), null !== u ? (Lt = n, l = bl(l, u), - null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, n = il), n; - } - function d() { - var n, l, u; -- return Wt++, n = qt, l = p(), null !== l ? (u = k(), null === u && (u = al), null !== u ? (Lt = n, -- l = Tl(l, u), null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, -+ return Wt++, n = qt, l = p(), null !== l ? (u = k(), null === u && (u = al), null !== u ? (Lt = n, -+ l = Tl(l, u), null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, - n = il), Wt--, null === n && (l = null, 0 === Wt && e(kl)), n; - } - function p() { - var n; -- return n = v(), null === n && (n = w(), null === n && (n = A(), null === n && (n = C(), -+ return n = v(), null === n && (n = w(), null === n && (n = A(), null === n && (n = C(), - null === n && (n = g(), null === n && (n = b()))))), n; - } - function v() { - var l, u, t, r, o, c; -- return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), -- null !== u ? (t = T(), null !== t ? (44 === n.charCodeAt(qt) ? (r = ml, qt++) : (r = null, -- 0 === Wt && e(Rl)), null !== r ? (o = T(), null !== o ? (125 === n.charCodeAt(qt) ? (c = Fl, -- qt++) : (c = null, 0 === Wt && e(Ql)), null !== c ? (Lt = l, u = Sl(t, o), null === u ? (qt = l, -- l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, -+ return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), -+ null !== u ? (t = T(), null !== t ? (44 === n.charCodeAt(qt) ? (r = ml, qt++) : (r = null, -+ 0 === Wt && e(Rl)), null !== r ? (o = T(), null !== o ? (125 === n.charCodeAt(qt) ? (c = Fl, -+ qt++) : (c = null, 0 === Wt && e(Ql)), null !== c ? (Lt = l, u = Sl(t, o), null === u ? (qt = l, -+ l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, - l = il)) : (qt = l, l = il), l; - } - function w() { - var l, u, t, r; -- return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), -- null !== u ? (t = T(), null !== t ? (n.substr(qt, 2) === Ul ? (r = Ul, qt += 2) : (r = null, -- 0 === Wt && e(El)), null !== r ? (Lt = l, u = Gl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), -+ null !== u ? (t = T(), null !== t ? (n.substr(qt, 2) === Ul ? (r = Ul, qt += 2) : (r = null, -+ 0 === Wt && e(El)), null !== r ? (Lt = l, u = Gl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il)) : (qt = l, l = il), l; - } - function A() { - var l, u, t, r; -- return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), -- null !== u ? (t = T(), null !== t ? (125 === n.charCodeAt(qt) ? (r = Fl, qt++) : (r = null, -- 0 === Wt && e(Ql)), null !== r ? (Lt = l, u = Bl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), -+ null !== u ? (t = T(), null !== t ? (125 === n.charCodeAt(qt) ? (r = Fl, qt++) : (r = null, -+ 0 === Wt && e(Ql)), null !== r ? (Lt = l, u = Bl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il)) : (qt = l, l = il), l; - } - function C() { - var l, u; -- return l = qt, 43 === n.charCodeAt(qt) ? (u = jl, qt++) : (u = null, 0 === Wt && e($l)), -+ return l = qt, 43 === n.charCodeAt(qt) ? (u = jl, qt++) : (u = null, 0 === Wt && e($l)), - null !== u && (Lt = l, u = ql()), null === u ? (qt = l, l = u) : l = u, l; - } - function g() { - var l, u; -- return l = qt, 42 === n.charCodeAt(qt) ? (u = Ll, qt++) : (u = null, 0 === Wt && e(Ml)), -+ return l = qt, 42 === n.charCodeAt(qt) ? (u = Ll, qt++) : (u = null, 0 === Wt && e(Ml)), - null !== u && (Lt = l, u = Dl()), null === u ? (qt = l, l = u) : l = u, l; - } - function b() { - var l, u; -- return l = qt, 63 === n.charCodeAt(qt) ? (u = Hl, qt++) : (u = null, 0 === Wt && e(Ol)), -+ return l = qt, 63 === n.charCodeAt(qt) ? (u = Hl, qt++) : (u = null, 0 === Wt && e(Ol)), - null !== u && (Lt = l, u = Wl()), null === u ? (qt = l, l = u) : l = u, l; - } - function k() { - var l; -- return 63 === n.charCodeAt(qt) ? (l = Hl, qt++) : (l = null, 0 === Wt && e(Ol)), -+ return 63 === n.charCodeAt(qt) ? (l = Hl, qt++) : (l = null, 0 === Wt && e(Ol)), - l; - } - function T() { - var l, u, t; -- if (l = qt, u = [], zl.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, -- 0 === Wt && e(Il)), null !== t) for (;null !== t; ) u.push(t), zl.test(n.charAt(qt)) ? (t = n.charAt(qt), -+ if (l = qt, u = [], zl.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, -+ 0 === Wt && e(Il)), null !== t) for (;null !== t; ) u.push(t), zl.test(n.charAt(qt)) ? (t = n.charAt(qt), - qt++) : (t = null, 0 === Wt && e(Il)); else u = il; -- return null !== u && (Lt = l, u = Jl(u)), null === u ? (qt = l, l = u) : l = u, -+ return null !== u && (Lt = l, u = Jl(u)), null === u ? (qt = l, l = u) : l = u, - l; - } - function x() { - var l, u, t, r; -- return l = qt, 40 === n.charCodeAt(qt) ? (u = Kl, qt++) : (u = null, 0 === Wt && e(Nl)), -- null !== u ? (t = R(), null === t && (t = F(), null === t && (t = m(), null === t && (t = y()))), -- null !== t ? (41 === n.charCodeAt(qt) ? (r = Pl, qt++) : (r = null, 0 === Wt && e(Vl)), -- null !== r ? (Lt = l, u = Xl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, 40 === n.charCodeAt(qt) ? (u = Kl, qt++) : (u = null, 0 === Wt && e(Nl)), -+ null !== u ? (t = R(), null === t && (t = F(), null === t && (t = m(), null === t && (t = y()))), -+ null !== t ? (41 === n.charCodeAt(qt) ? (r = Pl, qt++) : (r = null, 0 === Wt && e(Vl)), -+ null !== r ? (Lt = l, u = Xl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il)) : (qt = l, l = il), l; - } - function y() { - var n, l; -- return n = qt, l = c(), null !== l && (Lt = n, l = Yl(l)), null === l ? (qt = n, -+ return n = qt, l = c(), null !== l && (Lt = n, l = Yl(l)), null === l ? (qt = n, - n = l) : n = l, n; - } - function m() { - var l, u, t; -- return l = qt, n.substr(qt, 2) === Zl ? (u = Zl, qt += 2) : (u = null, 0 === Wt && e(_l)), -- null !== u ? (t = c(), null !== t ? (Lt = l, u = nu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, n.substr(qt, 2) === Zl ? (u = Zl, qt += 2) : (u = null, 0 === Wt && e(_l)), -+ null !== u ? (t = c(), null !== t ? (Lt = l, u = nu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il), l; - } - function R() { - var l, u, t; -- return l = qt, n.substr(qt, 2) === lu ? (u = lu, qt += 2) : (u = null, 0 === Wt && e(uu)), -- null !== u ? (t = c(), null !== t ? (Lt = l, u = tu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, n.substr(qt, 2) === lu ? (u = lu, qt += 2) : (u = null, 0 === Wt && e(uu)), -+ null !== u ? (t = c(), null !== t ? (Lt = l, u = tu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il), l; - } - function F() { - var l, u, t; -- return l = qt, n.substr(qt, 2) === ru ? (u = ru, qt += 2) : (u = null, 0 === Wt && e(eu)), -- null !== u ? (t = c(), null !== t ? (Lt = l, u = ou(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, n.substr(qt, 2) === ru ? (u = ru, qt += 2) : (u = null, 0 === Wt && e(eu)), -+ null !== u ? (t = c(), null !== t ? (Lt = l, u = ou(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il), l; - } - function Q() { - var l, u, t, r, o; -- if (Wt++, l = qt, 91 === n.charCodeAt(qt) ? (u = iu, qt++) : (u = null, 0 === Wt && e(au)), -- null !== u) if (94 === n.charCodeAt(qt) ? (t = pl, qt++) : (t = null, 0 === Wt && e(vl)), -+ if (Wt++, l = qt, 91 === n.charCodeAt(qt) ? (u = iu, qt++) : (u = null, 0 === Wt && e(au)), -+ null !== u) if (94 === n.charCodeAt(qt) ? (t = pl, qt++) : (t = null, 0 === Wt && e(vl)), - null === t && (t = al), null !== t) { -- for (r = [], o = S(), null === o && (o = U()); null !== o; ) r.push(o), o = S(), -+ for (r = [], o = S(), null === o && (o = U()); null !== o; ) r.push(o), o = S(), - null === o && (o = U()); -- null !== r ? (93 === n.charCodeAt(qt) ? (o = fu, qt++) : (o = null, 0 === Wt && e(su)), -- null !== o ? (Lt = l, u = hu(t, r), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ null !== r ? (93 === n.charCodeAt(qt) ? (o = fu, qt++) : (o = null, 0 === Wt && e(su)), -+ null !== o ? (Lt = l, u = hu(t, r), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il); - } else qt = l, l = il; else qt = l, l = il; - return Wt--, null === l && (u = null, 0 === Wt && e(cu)), l; - } - function S() { - var l, u, t, r; -- return Wt++, l = qt, u = U(), null !== u ? (45 === n.charCodeAt(qt) ? (t = pu, qt++) : (t = null, -- 0 === Wt && e(vu)), null !== t ? (r = U(), null !== r ? (Lt = l, u = wu(u, r), null === u ? (qt = l, -- l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il), Wt--, -+ return Wt++, l = qt, u = U(), null !== u ? (45 === n.charCodeAt(qt) ? (t = pu, qt++) : (t = null, -+ 0 === Wt && e(vu)), null !== t ? (r = U(), null !== r ? (Lt = l, u = wu(u, r), null === u ? (qt = l, -+ l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il), Wt--, - null === l && (u = null, 0 === Wt && e(du)), l; - } - function U() { - var n, l; -- return Wt++, n = G(), null === n && (n = E()), Wt--, null === n && (l = null, 0 === Wt && e(Au)), -+ return Wt++, n = G(), null === n && (n = E()), Wt--, null === n && (l = null, 0 === Wt && e(Au)), - n; - } - function E() { - var l, u; -- return l = qt, Cu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, 0 === Wt && e(gu)), -+ return l = qt, Cu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, 0 === Wt && e(gu)), - null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u, l; - } - function G() { - var n; -- return n = L(), null === n && (n = Y(), null === n && (n = H(), null === n && (n = O(), -- null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), null === n && (n = J(), -- null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), null === n && (n = V(), -- null === n && (n = X(), null === n && (n = _(), null === n && (n = nl(), null === n && (n = ll(), -+ return n = L(), null === n && (n = Y(), null === n && (n = H(), null === n && (n = O(), -+ null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), null === n && (n = J(), -+ null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), null === n && (n = V(), -+ null === n && (n = X(), null === n && (n = _(), null === n && (n = nl(), null === n && (n = ll(), - null === n && (n = ul(), null === n && (n = tl()))))))))))))))))), n; - } - function B() { -@@ -6916,154 +6916,154 @@ return /******/ (function(modules) { // webpackBootstrap - } - function j() { - var l, u; -- return l = qt, 46 === n.charCodeAt(qt) ? (u = ku, qt++) : (u = null, 0 === Wt && e(Tu)), -+ return l = qt, 46 === n.charCodeAt(qt) ? (u = ku, qt++) : (u = null, 0 === Wt && e(Tu)), - null !== u && (Lt = l, u = xu()), null === u ? (qt = l, l = u) : l = u, l; - } - function $() { - var l, u; -- return Wt++, l = qt, mu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, -- 0 === Wt && e(Ru)), null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u, -+ return Wt++, l = qt, mu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, -+ 0 === Wt && e(Ru)), null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u, - Wt--, null === l && (u = null, 0 === Wt && e(yu)), l; - } - function q() { - var n; -- return n = M(), null === n && (n = D(), null === n && (n = Y(), null === n && (n = H(), -- null === n && (n = O(), null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), -- null === n && (n = J(), null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), -- null === n && (n = V(), null === n && (n = X(), null === n && (n = Z(), null === n && (n = _(), -- null === n && (n = nl(), null === n && (n = ll(), null === n && (n = ul(), null === n && (n = tl()))))))))))))))))))), -+ return n = M(), null === n && (n = D(), null === n && (n = Y(), null === n && (n = H(), -+ null === n && (n = O(), null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), -+ null === n && (n = J(), null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), -+ null === n && (n = V(), null === n && (n = X(), null === n && (n = Z(), null === n && (n = _(), -+ null === n && (n = nl(), null === n && (n = ll(), null === n && (n = ul(), null === n && (n = tl()))))))))))))))))))), - n; - } - function L() { - var l, u; -- return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), -+ return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), - null !== u && (Lt = l, u = Su()), null === u ? (qt = l, l = u) : l = u, l; - } - function M() { - var l, u; -- return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), -+ return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), - null !== u && (Lt = l, u = Uu()), null === u ? (qt = l, l = u) : l = u, l; - } - function D() { - var l, u; -- return l = qt, n.substr(qt, 2) === Eu ? (u = Eu, qt += 2) : (u = null, 0 === Wt && e(Gu)), -+ return l = qt, n.substr(qt, 2) === Eu ? (u = Eu, qt += 2) : (u = null, 0 === Wt && e(Gu)), - null !== u && (Lt = l, u = Bu()), null === u ? (qt = l, l = u) : l = u, l; - } - function H() { - var l, u; -- return l = qt, n.substr(qt, 2) === ju ? (u = ju, qt += 2) : (u = null, 0 === Wt && e($u)), -+ return l = qt, n.substr(qt, 2) === ju ? (u = ju, qt += 2) : (u = null, 0 === Wt && e($u)), - null !== u && (Lt = l, u = qu()), null === u ? (qt = l, l = u) : l = u, l; - } - function O() { - var l, u; -- return l = qt, n.substr(qt, 2) === Lu ? (u = Lu, qt += 2) : (u = null, 0 === Wt && e(Mu)), -+ return l = qt, n.substr(qt, 2) === Lu ? (u = Lu, qt += 2) : (u = null, 0 === Wt && e(Mu)), - null !== u && (Lt = l, u = Du()), null === u ? (qt = l, l = u) : l = u, l; - } - function W() { - var l, u; -- return l = qt, n.substr(qt, 2) === Hu ? (u = Hu, qt += 2) : (u = null, 0 === Wt && e(Ou)), -+ return l = qt, n.substr(qt, 2) === Hu ? (u = Hu, qt += 2) : (u = null, 0 === Wt && e(Ou)), - null !== u && (Lt = l, u = Wu()), null === u ? (qt = l, l = u) : l = u, l; - } - function z() { - var l, u; -- return l = qt, n.substr(qt, 2) === zu ? (u = zu, qt += 2) : (u = null, 0 === Wt && e(Iu)), -+ return l = qt, n.substr(qt, 2) === zu ? (u = zu, qt += 2) : (u = null, 0 === Wt && e(Iu)), - null !== u && (Lt = l, u = Ju()), null === u ? (qt = l, l = u) : l = u, l; - } - function I() { - var l, u; -- return l = qt, n.substr(qt, 2) === Ku ? (u = Ku, qt += 2) : (u = null, 0 === Wt && e(Nu)), -+ return l = qt, n.substr(qt, 2) === Ku ? (u = Ku, qt += 2) : (u = null, 0 === Wt && e(Nu)), - null !== u && (Lt = l, u = Pu()), null === u ? (qt = l, l = u) : l = u, l; - } - function J() { - var l, u; -- return l = qt, n.substr(qt, 2) === Vu ? (u = Vu, qt += 2) : (u = null, 0 === Wt && e(Xu)), -+ return l = qt, n.substr(qt, 2) === Vu ? (u = Vu, qt += 2) : (u = null, 0 === Wt && e(Xu)), - null !== u && (Lt = l, u = Yu()), null === u ? (qt = l, l = u) : l = u, l; - } - function K() { - var l, u; -- return l = qt, n.substr(qt, 2) === Zu ? (u = Zu, qt += 2) : (u = null, 0 === Wt && e(_u)), -+ return l = qt, n.substr(qt, 2) === Zu ? (u = Zu, qt += 2) : (u = null, 0 === Wt && e(_u)), - null !== u && (Lt = l, u = nt()), null === u ? (qt = l, l = u) : l = u, l; - } - function N() { - var l, u; -- return l = qt, n.substr(qt, 2) === lt ? (u = lt, qt += 2) : (u = null, 0 === Wt && e(ut)), -+ return l = qt, n.substr(qt, 2) === lt ? (u = lt, qt += 2) : (u = null, 0 === Wt && e(ut)), - null !== u && (Lt = l, u = tt()), null === u ? (qt = l, l = u) : l = u, l; - } - function P() { - var l, u; -- return l = qt, n.substr(qt, 2) === rt ? (u = rt, qt += 2) : (u = null, 0 === Wt && e(et)), -+ return l = qt, n.substr(qt, 2) === rt ? (u = rt, qt += 2) : (u = null, 0 === Wt && e(et)), - null !== u && (Lt = l, u = ot()), null === u ? (qt = l, l = u) : l = u, l; - } - function V() { - var l, u; -- return l = qt, n.substr(qt, 2) === ct ? (u = ct, qt += 2) : (u = null, 0 === Wt && e(it)), -+ return l = qt, n.substr(qt, 2) === ct ? (u = ct, qt += 2) : (u = null, 0 === Wt && e(it)), - null !== u && (Lt = l, u = at()), null === u ? (qt = l, l = u) : l = u, l; - } - function X() { - var l, u; -- return l = qt, n.substr(qt, 2) === ft ? (u = ft, qt += 2) : (u = null, 0 === Wt && e(st)), -+ return l = qt, n.substr(qt, 2) === ft ? (u = ft, qt += 2) : (u = null, 0 === Wt && e(st)), - null !== u && (Lt = l, u = ht()), null === u ? (qt = l, l = u) : l = u, l; - } - function Y() { - var l, u, t; -- return l = qt, n.substr(qt, 2) === dt ? (u = dt, qt += 2) : (u = null, 0 === Wt && e(pt)), -- null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), -- null !== t ? (Lt = l, u = wt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, n.substr(qt, 2) === dt ? (u = dt, qt += 2) : (u = null, 0 === Wt && e(pt)), -+ null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), -+ null !== t ? (Lt = l, u = wt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il), l; - } - function Z() { - var l, u, t; -- return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), -- null !== u ? (gt.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(bt)), -- null !== t ? (Lt = l, u = kt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), -+ null !== u ? (gt.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(bt)), -+ null !== t ? (Lt = l, u = kt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il), l; - } - function _() { - var l, u, t, r; -- if (l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), -+ if (l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), - null !== u) { -- if (t = [], yt.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(mt)), -- null !== r) for (;null !== r; ) t.push(r), yt.test(n.charAt(qt)) ? (r = n.charAt(qt), -+ if (t = [], yt.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(mt)), -+ null !== r) for (;null !== r; ) t.push(r), yt.test(n.charAt(qt)) ? (r = n.charAt(qt), - qt++) : (r = null, 0 === Wt && e(mt)); else t = il; -- null !== t ? (Lt = l, u = Rt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ null !== t ? (Lt = l, u = Rt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il); - } else qt = l, l = il; - return l; - } - function nl() { - var l, u, t, r; -- if (l = qt, n.substr(qt, 2) === Ft ? (u = Ft, qt += 2) : (u = null, 0 === Wt && e(Qt)), -+ if (l = qt, n.substr(qt, 2) === Ft ? (u = Ft, qt += 2) : (u = null, 0 === Wt && e(Qt)), - null !== u) { -- if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), -- null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), -+ if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), -+ null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), - qt++) : (r = null, 0 === Wt && e(Ut)); else t = il; -- null !== t ? (Lt = l, u = Et(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ null !== t ? (Lt = l, u = Et(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il); - } else qt = l, l = il; - return l; - } - function ll() { - var l, u, t, r; -- if (l = qt, n.substr(qt, 2) === Gt ? (u = Gt, qt += 2) : (u = null, 0 === Wt && e(Bt)), -+ if (l = qt, n.substr(qt, 2) === Gt ? (u = Gt, qt += 2) : (u = null, 0 === Wt && e(Bt)), - null !== u) { -- if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), -- null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), -+ if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), -+ null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), - qt++) : (r = null, 0 === Wt && e(Ut)); else t = il; -- null !== t ? (Lt = l, u = jt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ null !== t ? (Lt = l, u = jt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il); - } else qt = l, l = il; - return l; - } - function ul() { - var l, u; -- return l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), -+ return l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), - null !== u && (Lt = l, u = $t()), null === u ? (qt = l, l = u) : l = u, l; - } - function tl() { - var l, u, t; -- return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), -- null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), -- null !== t ? (Lt = l, u = bu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, -+ return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), -+ null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), -+ null !== t ? (Lt = l, u = bu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, - l = il)) : (qt = l, l = il), l; - } - var rl, el = arguments.length > 1 ? arguments[1] : {}, ol = { -@@ -7234,7 +7234,7 @@ return /******/ (function(modules) { // webpackBootstrap - var Util = __webpack_require__(3) - var Random = __webpack_require__(5) - /* -- -+ - */ - var Handler = { - extend: Util.extend -@@ -7481,7 +7481,7 @@ return /******/ (function(modules) { // webpackBootstrap - return Random.integer(min, max) - }, - /* -- -+ - */ - charset: function(node, result, cache) { - // node.invert -@@ -7642,11 +7642,11 @@ return /******/ (function(modules) { // webpackBootstrap - ## valid(template, data) - - 校验真实数据 data 是否与数据模板 template 匹配。 -- -+ - 实现思路: - 1. 解析规则。 - 先把数据模板 template 解析为更方便机器解析的 JSON-Schame -- name 属性名 -+ name 属性名 - type 属性值类型 - template 属性值模板 - properties 对象属性数组 -@@ -7655,7 +7655,7 @@ return /******/ (function(modules) { // webpackBootstrap - 2. 递归验证规则。 - 然后用 JSON-Schema 校验真实数据,校验项包括属性名、值类型、值、值生成规则。 - -- 提示信息 -+ 提示信息 - https://github.com/fge/json-schema-validator/blob/master/src/main/resources/com/github/fge/jsonschema/validator/validation.properties - [JSON-Schama validator](http://json-schema-validator.herokuapp.com/) - [Regexp Demo](http://demos.forbeslindesay.co.uk/regexp/) -@@ -7693,8 +7693,8 @@ return /******/ (function(modules) { // webpackBootstrap - +step - 整数部分 - 小数部分 -- boolean -- string -+ boolean -+ string - min-max - count - ## properties -@@ -7949,9 +7949,9 @@ return /******/ (function(modules) { // webpackBootstrap - - /* - 完善、友好的提示信息 -- -+ - Equal, not equal to, greater than, less than, greater than or equal to, less than or equal to -- 路径 验证类型 描述 -+ 路径 验证类型 描述 - - Expect path.name is less than or equal to expected, but path.name is actual. - -@@ -8264,7 +8264,7 @@ return /******/ (function(modules) { // webpackBootstrap - Util.extend(MockXMLHttpRequest.prototype, { - // https://xhr.spec.whatwg.org/#the-open()-method - // Sets the request method, request URL, and synchronous flag. -- open: function(method, url, async, username, password) { -+ open: function(method, url, async = true, username, password) { - var that = this - - Util.extend(this.custom, { -@@ -8310,6 +8310,8 @@ return /******/ (function(modules) { // webpackBootstrap - var xhr = createNativeXMLHttpRequest() - this.custom.xhr = xhr - -+ MockXMLHttpRequest.prototype.upload = xhr.upload -+ - // 初始化所有事件,用于监听原生 XHR 对象的事件 - for (var i = 0; i < XHR_EVENTS.length; i++) { - xhr.addEventListener(XHR_EVENTS[i], handle) -@@ -8360,6 +8362,7 @@ return /******/ (function(modules) { // webpackBootstrap - - // 原生 XHR - if (!this.match) { -+ this.custom.xhr.responseType = this.responseType || '' - this.custom.xhr.send(data) - return - } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ffb0d66d..9a9c838b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,197 +4,269 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -patchedDependencies: - mockjs@1.1.0: - hash: zljuuegabo7mnbroxnwxab3e2u - path: patches/mockjs@1.1.0.patch +importers: -dependencies: - '@antv/data-set': - specifier: 0.11.8 - version: 0.11.8 - '@antv/g2': - specifier: 4.2.10 - version: 4.2.10 - '@better-scroll/core': - specifier: 2.5.1 - version: 2.5.1 - '@soybeanjs/vue-materials': - specifier: 0.2.0 - version: 0.2.0(vue@3.3.4) - '@vueuse/core': - specifier: 10.5.0 - version: 10.5.0(vue@3.3.4) - axios: - specifier: 1.5.1 - version: 1.5.1 - clipboard: - specifier: 2.0.11 - version: 2.0.11 - colord: - specifier: 2.9.3 - version: 2.9.3 - crypto-js: - specifier: 4.1.1 - version: 4.1.1 - dayjs: - specifier: 1.11.10 - version: 1.11.10 - echarts: - specifier: 5.4.3 - version: 5.4.3 - form-data: - specifier: 4.0.0 - version: 4.0.0 - lodash-es: - specifier: 4.17.21 - version: 4.17.21 - naive-ui: - specifier: 2.35.0 - version: 2.35.0(vue@3.3.4) - pinia: - specifier: 2.1.6 - version: 2.1.6(typescript@5.2.2)(vue@3.3.4) - print-js: - specifier: 1.6.0 - version: 1.6.0 - qs: - specifier: 6.11.2 - version: 6.11.2 - socket.io-client: - specifier: 4.7.2 - version: 4.7.2 - swiper: - specifier: 10.3.1 - version: 10.3.1 - ua-parser-js: - specifier: 1.0.36 - version: 1.0.36 - vditor: - specifier: 3.9.6 - version: 3.9.6 - vue: - specifier: 3.3.4 - version: 3.3.4 - vue-i18n: - specifier: 9.5.0 - version: 9.5.0(vue@3.3.4) - vue-router: - specifier: 4.2.5 - version: 4.2.5(vue@3.3.4) - vuedraggable: - specifier: 4.1.0 - version: 4.1.0(vue@3.3.4) - wangeditor: - specifier: 4.7.15 - version: 4.7.15 - xgplayer: - specifier: 3.0.9 - version: 3.0.9(core-js@3.33.0) + .: + dependencies: + '@better-scroll/core': + specifier: 2.5.1 + version: 2.5.1 + '@iconify/vue': + specifier: 4.1.1 + version: 4.1.1(vue@3.3.8) + '@sa/color-palette': + specifier: workspace:* + version: link:packages/color-palette + '@sa/hooks': + specifier: workspace:* + version: link:packages/hooks + '@sa/materials': + specifier: workspace:* + version: link:packages/materials + '@sa/request': + specifier: workspace:* + version: link:packages/request + '@sa/utils': + specifier: workspace:* + version: link:packages/utils + '@vueuse/core': + specifier: 10.6.1 + version: 10.6.1(vue@3.3.8) + clipboard: + specifier: 2.0.11 + version: 2.0.11 + dayjs: + specifier: ^1.11.10 + version: 1.11.10 + lodash-es: + specifier: 4.17.21 + version: 4.17.21 + naive-ui: + specifier: ^2.35.0 + version: 2.35.0(vue@3.3.8) + nprogress: + specifier: 0.2.0 + version: 0.2.0 + pinia: + specifier: 2.1.7 + version: 2.1.7(typescript@5.2.2)(vue@3.3.8) + vue: + specifier: 3.3.8 + version: 3.3.8(typescript@5.2.2) + vue-i18n: + specifier: 9.6.5 + version: 9.6.5(vue@3.3.8) + vue-router: + specifier: 4.2.5 + version: 4.2.5(vue@3.3.8) + devDependencies: + '@elegant-router/vue': + specifier: 0.3.0 + version: 0.3.0 + '@iconify/json': + specifier: 2.2.142 + version: 2.2.142 + '@sa/scripts': + specifier: workspace:* + version: link:packages/scripts + '@sa/uno-preset': + specifier: workspace:* + version: link:packages/uno-preset + '@types/lodash-es': + specifier: 4.17.11 + version: 4.17.11 + '@types/node': + specifier: 20.9.0 + version: 20.9.0 + '@types/nprogress': + specifier: 0.2.3 + version: 0.2.3 + '@unocss/preset-icons': + specifier: 0.57.4 + version: 0.57.4 + '@unocss/preset-uno': + specifier: 0.57.4 + version: 0.57.4 + '@unocss/transformer-directives': + specifier: 0.57.4 + version: 0.57.4 + '@unocss/transformer-variant-group': + specifier: 0.57.4 + version: 0.57.4 + '@unocss/vite': + specifier: 0.57.4 + version: 0.57.4(vite@4.5.0) + '@vitejs/plugin-vue': + specifier: 4.4.1 + version: 4.4.1(vite@4.5.0)(vue@3.3.8) + '@vitejs/plugin-vue-jsx': + specifier: 3.0.2 + version: 3.0.2(vite@4.5.0)(vue@3.3.8) + cross-env: + specifier: 7.0.3 + version: 7.0.3 + eslint-config-sa: + specifier: workspace:* + version: link:packages/eslint-config + npm-run-all: + specifier: 4.1.5 + version: 4.1.5 + sass: + specifier: ^1.69.5 + version: 1.69.5 + simple-git-hooks: + specifier: 2.9.0 + version: 2.9.0 + typescript: + specifier: 5.2.2 + version: 5.2.2 + unplugin-icons: + specifier: 0.17.4 + version: 0.17.4 + unplugin-vue-components: + specifier: 0.25.2 + version: 0.25.2(vue@3.3.8) + vite: + specifier: 4.5.0 + version: 4.5.0(@types/node@20.9.0)(sass@1.69.5) + vite-plugin-progress: + specifier: 0.0.7 + version: 0.0.7(vite@4.5.0) + vite-plugin-svg-icons: + specifier: 2.0.1 + version: 2.0.1(vite@4.5.0) + vite-plugin-vue-devtools: + specifier: 1.0.0-rc.5 + version: 1.0.0-rc.5(pug@3.0.2)(vite@4.5.0) + vue-tsc: + specifier: 1.8.22 + version: 1.8.22(typescript@5.2.2) -devDependencies: - '@amap/amap-jsapi-types': - specifier: 0.0.13 - version: 0.0.13 - '@iconify/json': - specifier: 2.2.128 - version: 2.2.128 - '@iconify/vue': - specifier: 4.1.1 - version: 4.1.1(vue@3.3.4) - '@soybeanjs/cli': - specifier: 0.7.4 - version: 0.7.4 - '@soybeanjs/vite-plugin-vue-page-route': - specifier: 0.0.10 - version: 0.0.10 - '@types/bmapgl': - specifier: 0.0.7 - version: 0.0.7 - '@types/crypto-js': - specifier: 4.1.2 - version: 4.1.2 - '@types/node': - specifier: 20.8.4 - version: 20.8.4 - '@types/qs': - specifier: 6.9.8 - version: 6.9.8 - '@types/ua-parser-js': - specifier: 0.7.37 - version: 0.7.37 - '@unocss/preset-uno': - specifier: 0.56.5 - version: 0.56.5 - '@unocss/transformer-directives': - specifier: 0.56.5 - version: 0.56.5 - '@unocss/vite': - specifier: 0.56.5 - version: 0.56.5(rollup@2.79.1)(vite@4.4.11) - '@vitejs/plugin-vue': - specifier: 4.4.0 - version: 4.4.0(vite@4.4.11)(vue@3.3.4) - '@vitejs/plugin-vue-jsx': - specifier: 3.0.2 - version: 3.0.2(vite@4.4.11)(vue@3.3.4) - cross-env: - specifier: 7.0.3 - version: 7.0.3 - eslint: - specifier: 8.51.0 - version: 8.51.0 - eslint-config-soybeanjs: - specifier: 0.5.7 - version: 0.5.7(eslint@8.51.0)(svelte@4.2.1)(typescript@5.2.2) - mockjs: - specifier: 1.1.0 - version: 1.1.0(patch_hash=zljuuegabo7mnbroxnwxab3e2u) - rollup-plugin-visualizer: - specifier: 5.9.2 - version: 5.9.2(rollup@2.79.1) - sass: - specifier: 1.69.3 - version: 1.69.3 - simple-git-hooks: - specifier: 2.9.0 - version: 2.9.0 - tsx: - specifier: 3.13.0 - version: 3.13.0 - typescript: - specifier: 5.2.2 - version: 5.2.2 - unplugin-icons: - specifier: 0.17.0 - version: 0.17.0 - unplugin-vue-components: - specifier: 0.25.2 - version: 0.25.2(rollup@2.79.1)(vue@3.3.4) - vite: - specifier: 4.4.11 - version: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - vite-plugin-compression: - specifier: 0.5.1 - version: 0.5.1(vite@4.4.11) - vite-plugin-mock: - specifier: 2.9.8 - version: 2.9.8(mockjs@1.1.0)(vite@4.4.11) - vite-plugin-progress: - specifier: 0.0.7 - version: 0.0.7(vite@4.4.11) - vite-plugin-pwa: - specifier: 0.16.5 - version: 0.16.5(vite@4.4.11)(workbox-build@7.0.0)(workbox-window@7.0.0) - vite-plugin-svg-icons: - specifier: 2.0.1 - version: 2.0.1(vite@4.4.11) - vite-plugin-vue-devtools: - specifier: 1.0.0-rc.5 - version: 1.0.0-rc.5(pug@3.0.2)(rollup@2.79.1)(vite@4.4.11) - vue-tsc: - specifier: 1.8.19 - version: 1.8.19(typescript@5.2.2) + packages/color-palette: + dependencies: + colord: + specifier: 2.9.3 + version: 2.9.3 + + packages/docs: + devDependencies: + vitepress: + specifier: 1.0.0-rc.25 + version: 1.0.0-rc.25(@algolia/client-search@4.20.0)(@types/node@20.9.0)(nprogress@0.2.0)(postcss@5.2.18)(sass@1.69.5)(search-insights@2.10.0)(typescript@5.2.2) + + packages/eslint-config: + devDependencies: + '@types/eslint': + specifier: 8.44.7 + version: 8.44.7 + '@typescript-eslint/eslint-plugin': + specifier: 6.11.0 + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: 6.11.0 + version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) + eslint: + specifier: 8.53.0 + version: 8.53.0 + eslint-config-prettier: + specifier: 9.0.0 + version: 9.0.0(eslint@8.53.0) + eslint-import-resolver-typescript: + specifier: 3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.53.0) + eslint-plugin-import: + specifier: 2.29.0 + version: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-plugin-n: + specifier: 16.3.1 + version: 16.3.1(eslint@8.53.0) + eslint-plugin-prettier: + specifier: 5.0.1 + version: 5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.1.0) + eslint-plugin-promise: + specifier: 6.1.1 + version: 6.1.1(eslint@8.53.0) + eslint-plugin-vue: + specifier: 9.18.1 + version: 9.18.1(eslint@8.53.0) + prettier: + specifier: 3.1.0 + version: 3.1.0 + + packages/hooks: {} + + packages/materials: + dependencies: + '@sa/utils': + specifier: workspace:* + version: link:../utils + '@simonwep/pickr': + specifier: 1.9.0 + version: 1.9.0 + simplebar-vue: + specifier: 2.3.3 + version: 2.3.3(vue@3.3.8) + devDependencies: + typed-css-modules: + specifier: 0.8.1 + version: 0.8.1 + + packages/request: + dependencies: + axios: + specifier: 1.6.2 + version: 1.6.2 + ofetch: + specifier: 1.3.3 + version: 1.3.3 + + packages/scripts: + devDependencies: + c12: + specifier: 1.5.1 + version: 1.5.1 + cac: + specifier: 6.7.14 + version: 6.7.14 + consola: + specifier: 3.2.3 + version: 3.2.3 + enquirer: + specifier: 2.4.1 + version: 2.4.1 + execa: + specifier: 8.0.1 + version: 8.0.1 + jiti: + specifier: 1.21.0 + version: 1.21.0 + lint-staged: + specifier: 15.1.0 + version: 15.1.0 + npm-check-updates: + specifier: 16.14.6 + version: 16.14.6 + rimraf: + specifier: 5.0.5 + version: 5.0.5 + + packages/uno-preset: {} + + packages/utils: + dependencies: + colord: + specifier: 2.9.3 + version: 2.9.3 + crypto-js: + specifier: 4.2.0 + version: 4.2.0 + localforage: + specifier: 1.10.0 + version: 1.10.0 + devDependencies: + '@types/crypto-js': + specifier: 4.2.1 + version: 4.2.1 packages: @@ -203,8 +275,138 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@amap/amap-jsapi-types@0.0.13: - resolution: {integrity: sha512-hwp36URjQT9vDTmoUPYph3SEAiOvoUB+PGK0jZeZamgvaxew7rgc1XZWL/HphyMfRAqKwIYsAvXm9v8DTSjjzA==} + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0): + resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + dev: true + + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0): + resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + peerDependencies: + search-insights: '>= 1 < 3' + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0) + search-insights: 2.10.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + dev: true + + /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0): + resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + dependencies: + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0) + '@algolia/client-search': 4.20.0 + algoliasearch: 4.20.0 + dev: true + + /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0): + resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + dependencies: + '@algolia/client-search': 4.20.0 + algoliasearch: 4.20.0 + dev: true + + /@algolia/cache-browser-local-storage@4.20.0: + resolution: {integrity: sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==} + dependencies: + '@algolia/cache-common': 4.20.0 + dev: true + + /@algolia/cache-common@4.20.0: + resolution: {integrity: sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==} + dev: true + + /@algolia/cache-in-memory@4.20.0: + resolution: {integrity: sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==} + dependencies: + '@algolia/cache-common': 4.20.0 + dev: true + + /@algolia/client-account@4.20.0: + resolution: {integrity: sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/client-search': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-analytics@4.20.0: + resolution: {integrity: sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/client-search': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-common@4.20.0: + resolution: {integrity: sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==} + dependencies: + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-personalization@4.20.0: + resolution: {integrity: sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/client-search@4.20.0: + resolution: {integrity: sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==} + dependencies: + '@algolia/client-common': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/transporter': 4.20.0 + dev: true + + /@algolia/logger-common@4.20.0: + resolution: {integrity: sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==} + dev: true + + /@algolia/logger-console@4.20.0: + resolution: {integrity: sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==} + dependencies: + '@algolia/logger-common': 4.20.0 + dev: true + + /@algolia/requester-browser-xhr@4.20.0: + resolution: {integrity: sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==} + dependencies: + '@algolia/requester-common': 4.20.0 + dev: true + + /@algolia/requester-common@4.20.0: + resolution: {integrity: sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==} + dev: true + + /@algolia/requester-node-http@4.20.0: + resolution: {integrity: sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==} + dependencies: + '@algolia/requester-common': 4.20.0 + dev: true + + /@algolia/transporter@4.20.0: + resolution: {integrity: sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==} + dependencies: + '@algolia/cache-common': 4.20.0 + '@algolia/logger-common': 4.20.0 + '@algolia/requester-common': 4.20.0 dev: true /@ampproject/remapping@2.2.1: @@ -212,7 +414,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 dev: true /@antfu/install-pkg@0.1.1: @@ -226,212 +428,6 @@ packages: resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} dev: true - /@antv/adjust@0.2.5: - resolution: {integrity: sha512-MfWZOkD9CqXRES6MBGRNe27Q577a72EIwyMnE29wIlPliFvJfWwsrONddpGU7lilMpVKecS3WAzOoip3RfPTRQ==} - dependencies: - '@antv/util': 2.0.17 - tslib: 1.14.1 - dev: false - - /@antv/attr@0.3.5: - resolution: {integrity: sha512-wuj2gUo6C8Q2ASSMrVBuTcb5LcV+Tc0Egiy6bC42D0vxcQ+ta13CLxgMmHz8mjD0FxTPJDXSciyszRSC5TdLsg==} - dependencies: - '@antv/color-util': 2.0.6 - '@antv/scale': 0.3.18 - '@antv/util': 2.0.17 - tslib: 2.6.2 - dev: false - - /@antv/color-util@2.0.6: - resolution: {integrity: sha512-KnPEaAH+XNJMjax9U35W67nzPI+QQ2x27pYlzmSIWrbj4/k8PGrARXfzDTjwoozHJY8qG62Z+Ww6Alhu2FctXQ==} - dependencies: - '@antv/util': 2.0.17 - tslib: 2.6.2 - dev: false - - /@antv/component@0.8.35: - resolution: {integrity: sha512-VnRa5X77nBPI952o2xePEEMSNZ6g2mcUDrQY8mVL2kino/8TFhqDq5fTRmDXZyWyIYd4ulJTz5zgeSwAnX/INQ==} - dependencies: - '@antv/color-util': 2.0.6 - '@antv/dom-util': 2.0.4 - '@antv/g-base': 0.5.15 - '@antv/matrix-util': 3.1.0-beta.3 - '@antv/path-util': 2.0.15 - '@antv/scale': 0.3.18 - '@antv/util': 2.0.17 - fecha: 4.2.3 - tslib: 2.6.2 - dev: false - - /@antv/coord@0.3.1: - resolution: {integrity: sha512-rFE94C8Xzbx4xmZnHh2AnlB3Qm1n5x0VT3OROy257IH6Rm4cuzv1+tZaUBATviwZd99S+rOY9telw/+6C9GbRw==} - dependencies: - '@antv/matrix-util': 3.1.0-beta.3 - '@antv/util': 2.0.17 - tslib: 2.6.2 - dev: false - - /@antv/data-set@0.11.8: - resolution: {integrity: sha512-8/YDsfk4wNQdo/J9tfmzOuo9Y5nl0mB+sSZO+tEZsHFLUhMrioJGBMPkuW51Pn0zcVZPNivuMBi2sQKYCpCeew==} - dependencies: - '@antv/hierarchy': 0.6.11 - '@antv/util': 2.0.17 - d3-composite-projections: 1.4.0 - d3-dsv: 1.2.0 - d3-geo: 1.6.4 - d3-geo-projection: 2.1.2 - d3-hexjson: 1.1.1 - d3-hierarchy: 1.1.9 - d3-sankey: 0.9.1 - d3-voronoi: 1.1.4 - dagre: 0.8.5 - point-at-length: 1.1.0 - regression: 2.0.1 - simple-statistics: 6.1.1 - topojson-client: 3.1.0 - wolfy87-eventemitter: 5.2.9 - dev: false - - /@antv/dom-util@2.0.4: - resolution: {integrity: sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==} - dependencies: - tslib: 2.6.2 - dev: false - - /@antv/event-emitter@0.1.3: - resolution: {integrity: sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==} - dev: false - - /@antv/g-base@0.5.15: - resolution: {integrity: sha512-QOtq50QpnKez9J75/Z8j2yZ7QDQdk8R8mVQJiHtaEO5eI7DM4ZbrsWff/Ew26JYmPWdq7nbRuARMAD4PX9uuLA==} - dependencies: - '@antv/event-emitter': 0.1.3 - '@antv/g-math': 0.1.9 - '@antv/matrix-util': 3.1.0-beta.3 - '@antv/path-util': 2.0.15 - '@antv/util': 2.0.17 - '@types/d3-timer': 2.0.1 - d3-ease: 1.0.7 - d3-interpolate: 3.0.1 - d3-timer: 1.0.10 - detect-browser: 5.3.0 - tslib: 2.6.2 - dev: false - - /@antv/g-canvas@0.5.14: - resolution: {integrity: sha512-IUGLEMIMAUYgaBMT8h3FTmYQYz7sjQkKWwh6Psqx+UPK86fySa+G8fMRrh1EqAL07jVB+GRnn6Ym+3FoFUgeFg==} - dependencies: - '@antv/g-base': 0.5.15 - '@antv/g-math': 0.1.9 - '@antv/matrix-util': 3.1.0-beta.3 - '@antv/path-util': 2.0.15 - '@antv/util': 2.0.17 - gl-matrix: 3.4.3 - tslib: 2.6.2 - dev: false - - /@antv/g-math@0.1.9: - resolution: {integrity: sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==} - dependencies: - '@antv/util': 2.0.17 - gl-matrix: 3.4.3 - dev: false - - /@antv/g-svg@0.5.7: - resolution: {integrity: sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==} - dependencies: - '@antv/g-base': 0.5.15 - '@antv/g-math': 0.1.9 - '@antv/util': 2.0.17 - detect-browser: 5.3.0 - tslib: 2.6.2 - dev: false - - /@antv/g2@4.2.10: - resolution: {integrity: sha512-/ZlJ/DFJBCvtEQgE6roxdd6sBml0fZ8ZVfzG+HdjGpA7/ceURb8XkxUcqa0E8NV+e4sFijnaAhBCdUm2whiuyA==} - dependencies: - '@antv/adjust': 0.2.5 - '@antv/attr': 0.3.5 - '@antv/color-util': 2.0.6 - '@antv/component': 0.8.35 - '@antv/coord': 0.3.1 - '@antv/dom-util': 2.0.4 - '@antv/event-emitter': 0.1.3 - '@antv/g-base': 0.5.15 - '@antv/g-canvas': 0.5.14 - '@antv/g-svg': 0.5.7 - '@antv/matrix-util': 3.1.0-beta.3 - '@antv/path-util': 2.0.15 - '@antv/scale': 0.3.18 - '@antv/util': 2.0.17 - tslib: 2.6.2 - dev: false - - /@antv/hierarchy@0.6.11: - resolution: {integrity: sha512-RJVhEMCuu4vj+Dt25lXIiNdd7jaqm/fqWGYikiELha4S5tnzdJoTUaUvvpfWlxLx4B0RsS9XRwBs1bOKN71TKg==} - dependencies: - '@antv/util': 2.0.17 - dev: false - - /@antv/matrix-util@3.0.4: - resolution: {integrity: sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==} - dependencies: - '@antv/util': 2.0.17 - gl-matrix: 3.4.3 - tslib: 2.6.2 - dev: false - - /@antv/matrix-util@3.1.0-beta.3: - resolution: {integrity: sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==} - dependencies: - '@antv/util': 2.0.17 - gl-matrix: 3.4.3 - tslib: 2.6.2 - dev: false - - /@antv/path-util@2.0.15: - resolution: {integrity: sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==} - dependencies: - '@antv/matrix-util': 3.0.4 - '@antv/util': 2.0.17 - tslib: 2.6.2 - dev: false - - /@antv/scale@0.3.18: - resolution: {integrity: sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==} - dependencies: - '@antv/util': 2.0.17 - fecha: 4.2.3 - tslib: 2.6.2 - dev: false - - /@antv/util@2.0.17: - resolution: {integrity: sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==} - dependencies: - csstype: 3.1.2 - tslib: 2.6.2 - dev: false - - /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): - resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} - engines: {node: '>=10'} - peerDependencies: - ajv: '>=8' - dependencies: - ajv: 8.12.0 - json-schema: 0.4.0 - jsonpointer: 5.0.1 - leven: 3.1.0 - dev: true - - /@astrojs/compiler@1.8.2: - resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} - dev: true - - /@astrojs/compiler@2.2.0: - resolution: {integrity: sha512-JvmckEJgg8uXUw8Rs6VZDvN7LcweCHOdcxsCXpC+4KMDC9FaB5t9EH/NooSE+hu/rnACEhsXA3FKmf9wnhb7hA==} - dev: true - /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -440,25 +436,25 @@ packages: chalk: 2.4.2 dev: true - /@babel/compat-data@7.23.2: - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + /@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.2: - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + /@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/generator': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.3 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -468,13 +464,13 @@ packages: - supports-color dev: true - /@babel/generator@7.23.0: - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + /@babel/generator@7.23.3: + resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 dev: true @@ -482,72 +478,38 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 - dev: true - - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.2 + '@babel/compat-data': 7.23.3 '@babel/helper-validator-option': 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.2): + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: true - - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.2): - resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} @@ -558,37 +520,37 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -600,7 +562,7 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-plugin-utils@7.22.5: @@ -608,25 +570,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.2): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - dev: true - - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.2): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -636,21 +586,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /@babel/helper-string-parser@7.22.5: @@ -666,22 +616,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - dev: true - /@babel/helpers@7.23.2: resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 transitivePeerDependencies: - supports-color dev: true @@ -695,951 +636,125 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) - dev: true - - /@babel/plugin-proposal-decorators@7.23.2(@babel/core@7.23.2): - resolution: {integrity: sha512-eR0gJQc830fJVGz37oKLvt9W9uUIQSAovUl0e9sJ3YeO09dlcoBVYD3CLrjCj4qHdXmfiyTyFt8yeQYSN5fxLg==} + /@babel/plugin-proposal-decorators@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-u8SwzOcP0DYSsa++nHd/9exlHb0NAlHCb890qtZZbSwPX2bFv8LBEztxwN7Xg/dS8oAFFidhrI9PBcLBJSkGRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) + '@babel/core': 7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.22.10(@babel/core@7.23.2) + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2): - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - dev: true - - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.2): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators@7.22.10(@babel/core@7.23.2): - resolution: {integrity: sha512-z1KTVemBjnz+kSEilAsI4lbkPOl5TvJH7YDSY1CTIzvLWJ+KHXp+mRe8VPmfnyvqOPqar1V2gid2PleKzRUstQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-attributes@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.2): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + /@babel/plugin-transform-typescript@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.2): - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-arrow-functions@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-async-generator-functions@7.23.2(@babel/core@7.23.2): - resolution: {integrity: sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-block-scoped-functions@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-block-scoping@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-class-properties@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-class-static-block@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-classes@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 - dev: true - - /@babel/plugin-transform-destructuring@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-dotall-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-duplicate-keys@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-dynamic-import@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-exponentiation-operator@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-export-namespace-from@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-for-of@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-function-name@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-json-strings@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-logical-assignment-operators@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-member-expression-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - - /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-new-target@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-nullish-coalescing-operator@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-numeric-separator@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.2 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-object-super@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-optional-catch-binding@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-optional-chaining@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-private-methods@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-private-property-in-object@7.22.11(@babel/core@7.23.2): - resolution: {integrity: sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-property-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-regenerator@7.22.10(@babel/core@7.23.2): - resolution: {integrity: sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - dev: true - - /@babel/plugin-transform-reserved-words@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-shorthand-properties@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - - /@babel/plugin-transform-sticky-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-template-literals@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-typeof-symbol@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.2): - resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) - dev: true - - /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.23.2): - resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-property-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-sets-regex@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.2) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/preset-env@7.23.2(@babel/core@7.23.2): - resolution: {integrity: sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.2 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-import-assertions': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.2) - '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-async-generator-functions': 7.23.2(@babel/core@7.23.2) - '@babel/plugin-transform-async-to-generator': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-block-scoped-functions': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-block-scoping': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-class-properties': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-class-static-block': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-classes': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-computed-properties': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-destructuring': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-dotall-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-duplicate-keys': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-dynamic-import': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-exponentiation-operator': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-export-namespace-from': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-for-of': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-function-name': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-json-strings': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-logical-assignment-operators': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-member-expression-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-modules-amd': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-modules-commonjs': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-modules-systemjs': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-modules-umd': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-new-target': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-numeric-separator': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-object-rest-spread': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-object-super': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-optional-catch-binding': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-optional-chaining': 7.23.0(@babel/core@7.23.2) - '@babel/plugin-transform-parameters': 7.22.15(@babel/core@7.23.2) - '@babel/plugin-transform-private-methods': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-private-property-in-object': 7.22.11(@babel/core@7.23.2) - '@babel/plugin-transform-property-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-regenerator': 7.22.10(@babel/core@7.23.2) - '@babel/plugin-transform-reserved-words': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-spread': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-sticky-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-typeof-symbol': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-escapes': 7.22.10(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-property-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-regex': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-unicode-sets-regex': 7.22.5(@babel/core@7.23.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.2) - '@babel/types': 7.23.0 - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.2) - babel-plugin-polyfill-corejs3: 0.8.5(@babel/core@7.23.2) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.2) - core-js-compat: 3.33.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.2): - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.0 - esutils: 2.0.3 - dev: true - - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: true - - /@babel/runtime-corejs3@7.23.2: - resolution: {integrity: sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==} - engines: {node: '>=6.9.0'} - dependencies: - core-js-pure: 3.33.0 - regenerator-runtime: 0.14.0 - dev: false - /@babel/runtime@7.23.2: resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 + dev: false /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 dev: true - /@babel/traverse@7.23.2: - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + /@babel/traverse@7.23.3: + resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/generator': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + /@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 @@ -1671,14 +786,80 @@ packages: css-render: 0.15.12 dev: false - /@css-render/vue3-ssr@0.15.12(vue@3.3.4): + /@css-render/vue3-ssr@0.15.12(vue@3.3.8): resolution: {integrity: sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==} peerDependencies: vue: ^3.0.11 dependencies: - vue: 3.3.4 + vue: 3.3.8(typescript@5.2.2) dev: false + /@docsearch/css@3.5.2: + resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} + dev: true + + /@docsearch/js@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0): + resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} + dependencies: + '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0) + preact: 10.19.2 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + dev: true + + /@docsearch/react@3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0): + resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + dependencies: + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.10.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0) + '@docsearch/css': 3.5.2 + algoliasearch: 4.20.0 + search-insights: 2.10.0 + transitivePeerDependencies: + - '@algolia/client-search' + dev: true + + /@elegant-router/core@0.3.0: + resolution: {integrity: sha512-GFqi+9b0dbWdUklG5f8wKyT+Xnd7sOikl5y0KOQsJ6p+4qYaq/FYMc6xMWvJRtpgobz2eVAjnIKggwz2s7pD7g==} + dependencies: + chokidar: 3.5.3 + consola: 3.2.3 + fast-glob: 3.3.1 + kolorist: 1.8.0 + micromatch: 4.0.5 + dev: true + + /@elegant-router/vue@0.3.0: + resolution: {integrity: sha512-MuH3P+mgYi5aRLMDZJ2UKC94BxqoF3HFhxOG0N8f8rEFl4V5s41QOQPFKXVv8eqmON38g4XZ9oi02EzMdDqv4w==} + dependencies: + '@elegant-router/core': 0.3.0 + consola: 3.2.3 + kolorist: 1.8.0 + magic-string: 0.30.5 + magicast: 0.3.0 + prettier: 3.0.3 + recast: 0.23.4 + unplugin: 1.5.0 + dev: true + /@emotion/hash@0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} dev: false @@ -1773,15 +954,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.14.54: - resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.18.20: resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} @@ -1890,23 +1062,23 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.51.0 + eslint: 8.53.0 eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.9.1: - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -1922,16 +1094,20 @@ packages: - supports-color dev: true - /@eslint/js@8.51.0: - resolution: {integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==} + /@eslint/js@8.53.0: + resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.11: - resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: true + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -1943,12 +1119,12 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true - /@iconify/json@2.2.128: - resolution: {integrity: sha512-jg6IXl7uZXCh6ISwTUReJNKW62AMh4D+/hdIz25htWqJnEztojsOkNMlHdV4MlSaDJcfXZGV59QgvceFGBNQqQ==} + /@iconify/json@2.2.142: + resolution: {integrity: sha512-EfQv1GMGxOySdwaGR3+Diqudkwk4W299cNtcQhg7QAlH9x6FW9851raiYvdOsMZp0ya+Ye+evTTqxyZ4vEh5cw==} dependencies: '@iconify/types': 2.0.0 pathe: 1.1.1 @@ -1956,7 +1132,6 @@ packages: /@iconify/types@2.0.0: resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - dev: true /@iconify/utils@2.1.11: resolution: {integrity: sha512-M/w3PkN8zQYXi8N6qK/KhnYMfEbbb6Sk8RZVn8g+Pmmu5ybw177RpsaGwpziyHeUsu4etrexYSWq3rwnIqzYCg==} @@ -1971,33 +1146,33 @@ packages: - supports-color dev: true - /@iconify/vue@4.1.1(vue@3.3.4): + /@iconify/vue@4.1.1(vue@3.3.8): resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==} peerDependencies: vue: '>=3' dependencies: '@iconify/types': 2.0.0 - vue: 3.3.4 - dev: true - - /@intlify/core-base@9.5.0: - resolution: {integrity: sha512-y3ufM1RJbI/DSmJf3lYs9ACq3S/iRvaSsE3rPIk0MGH7fp+JxU6rdryv/EYcwfcr3Y1aHFlCBir6S391hRZ57w==} - engines: {node: '>= 16'} - dependencies: - '@intlify/message-compiler': 9.5.0 - '@intlify/shared': 9.5.0 + vue: 3.3.8(typescript@5.2.2) dev: false - /@intlify/message-compiler@9.5.0: - resolution: {integrity: sha512-CAhVNfEZcOVFg0/5MNyt+OFjvs4J/ARjCj2b+54/FvFP0EDJI5lIqMTSDBE7k0atMROSP0SvWCkwu/AZ5xkK1g==} + /@intlify/core-base@9.6.5: + resolution: {integrity: sha512-LzbGXiZkMWPIHnHI0g6q554S87Cmh2mmCmjytK/3pDQfjI84l+dgGoeQuKj02q7EbULRuUUgYVZVqAwEUawXGg==} engines: {node: '>= 16'} dependencies: - '@intlify/shared': 9.5.0 + '@intlify/message-compiler': 9.6.5 + '@intlify/shared': 9.6.5 + dev: false + + /@intlify/message-compiler@9.6.5: + resolution: {integrity: sha512-WeJ499thIj0p7JaIO1V3JaJbqdqfBykS5R8fElFs5hNeotHtPAMBs4IiA+8/KGFkAbjJusgFefCq6ajP7F7+4Q==} + engines: {node: '>= 16'} + dependencies: + '@intlify/shared': 9.6.5 source-map-js: 1.0.2 dev: false - /@intlify/shared@9.5.0: - resolution: {integrity: sha512-tAxV14LMXZDZbu32XzLMTsowNlgJNmLwWHYzvMUl6L8gvQeoYiZONjY7AUsqZW8TOZDX9lfvF6adPkk9FSRdDA==} + /@intlify/shared@9.6.5: + resolution: {integrity: sha512-gD7Ey47Xi4h/t6P+S04ymMSoA3wVRxGqjxuIMglwRO8POki9h164Epu2N8wk/GHXM/hR6ZGcsx2HArCCENjqSQ==} engines: {node: '>= 16'} dev: false @@ -2019,7 +1194,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 + '@jridgewell/trace-mapping': 0.3.20 dev: true /@jridgewell/resolve-uri@3.1.1: @@ -2032,33 +1207,16 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - dev: true - /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.19: - resolution: {integrity: sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==} + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@jsdevtools/ez-spawn@3.0.4: - resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} - engines: {node: '>=10'} - dependencies: - call-me-maybe: 1.0.2 - cross-spawn: 7.0.3 - string-argv: 0.3.2 - type-detect: 4.0.8 - dev: true - /@juggle/resize-observer@3.4.0: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} dev: false @@ -2084,6 +1242,14 @@ packages: fastq: 1.15.0 dev: true + /@npmcli/fs@2.1.2: + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.5.4 + dev: true + /@npmcli/fs@3.1.0: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2116,6 +1282,15 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true + /@npmcli/move-file@2.0.1: + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + /@npmcli/node-gyp@3.0.0: resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2134,10 +1309,11 @@ packages: dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/promise-spawn': 6.0.2 - node-gyp: 9.4.0 + node-gyp: 9.4.1 read-package-json-fast: 3.0.2 which: 3.0.1 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -2153,7 +1329,7 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: cross-spawn: 7.0.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 @@ -2185,61 +1361,7 @@ packages: resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} dev: true - /@rollup/plugin-babel@5.3.1(@babel/core@7.23.2)(rollup@2.79.1): - resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} - engines: {node: '>= 10.0.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0 - peerDependenciesMeta: - '@types/babel__core': - optional: true - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-module-imports': 7.22.15 - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 - dev: true - - /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 2.79.1 - dev: true - - /@rollup/plugin-replace@2.4.2(rollup@2.79.1): - resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - magic-string: 0.25.9 - rollup: 2.79.1 - dev: true - - /@rollup/pluginutils@3.1.0(rollup@2.79.1): - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.79.1 - dev: true - - /@rollup/pluginutils@5.0.5(rollup@2.79.1): + /@rollup/pluginutils@5.0.5: resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2248,10 +1370,9 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.2 + '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 2.79.1 dev: true /@sigstore/bundle@1.1.0: @@ -2287,194 +1408,18 @@ packages: - supports-color dev: true + /@simonwep/pickr@1.9.0: + resolution: {integrity: sha512-oEYvv15PyfZzjoAzvXYt3UyNGwzsrpFxLaZKzkOSd0WYBVwLd19iJerePDONxC1iF6+DpcswPdLIM2KzCJuYFg==} + dependencies: + core-js: 3.32.2 + nanopop: 2.3.0 + dev: false + /@sindresorhus/is@5.6.0: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} dev: true - /@socket.io/component-emitter@3.1.0: - resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - dev: false - - /@soybeanjs/changelog@0.3.4: - resolution: {integrity: sha512-PfiGG6E8CirB+Z/VOHYiTMZ1iBoooTSwlAYRMUn/REuy6IVTikQRstCy9O7FnMvvgJvHgsvZ4XC9fwq5JrVdwg==} - dependencies: - cli-progress: 3.12.0 - convert-gitmoji: 0.1.3 - dayjs: 1.11.9 - execa: 8.0.1 - ofetch: 1.2.1 - dev: true - - /@soybeanjs/cli@0.7.4: - resolution: {integrity: sha512-eFfRHn8wqYiRGFT4tfk8m/egw3yBEo1asmmzUIEqu8pgNB0aDh6fODxATyGQEmMRWXN3FG/ZdG9evsq4PTvdxA==} - hasBin: true - dependencies: - '@soybeanjs/changelog': 0.3.4 - bumpp: 9.2.0 - c12: 1.4.2 - cac: 6.7.14 - consola: 3.2.3 - crypto-js: 4.1.1 - enquirer: 2.4.1 - execa: 8.0.1 - kolorist: 1.8.0 - lint-staged: 14.0.1(enquirer@2.4.1) - minimist: 1.2.8 - npm-check-updates: 16.14.5 - rimraf: 5.0.5 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true - - /@soybeanjs/vite-plugin-vue-page-route@0.0.10: - resolution: {integrity: sha512-tLHTz3qXKFdch9C4d6lYjcgtQmvvjbpLsDu9IbMeoC9w2YmajnaxBxlzaysh9jsY3PwC0fWibvcQVZCHNiwG0A==} - dependencies: - '@swc/core': 1.3.26 - chokidar: 3.5.3 - execa: 5.1.1 - fast-glob: 3.2.12 - fs-extra: 11.1.0 - kolorist: 1.6.0 - magic-string: 0.27.0 - micromatch: 4.0.5 - dev: true - - /@soybeanjs/vue-materials@0.2.0(vue@3.3.4): - resolution: {integrity: sha512-sXALflc8/gWP9JA3oSb2Z+eyJ0MixFL7mTGCLffx/eSxp7xrRxQseqk8C2hq5ugYTl0mAiwL6nK0htoDFnR3ng==} - peerDependencies: - '@vue/composition-api': ^1.7.0 - vue: ^2.0.0 || >=3.0.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - dependencies: - colord: 2.9.3 - vue: 3.3.4 - vue-demi: 0.14.5(vue@3.3.4) - dev: false - - /@surma/rollup-plugin-off-main-thread@2.2.3: - resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - dependencies: - ejs: 3.1.9 - json5: 2.2.3 - magic-string: 0.25.9 - string.prototype.matchall: 4.0.10 - dev: true - - /@swc/core-darwin-arm64@1.3.26: - resolution: {integrity: sha512-FWWflBfKRYrUJtko2xiedC5XCa31O75IZZqnTWuLpe9g3C5tnUuF3M8LSXZS/dn6wprome1MhtG9GMPkSYkhkg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-x64@1.3.26: - resolution: {integrity: sha512-0uQeebAtsewqJ2b35aPZstGrylwd6oJjUyAJOfVJNbremFSJ5JzytB3NoDCIw7CT5UQrSRpvD3mU95gfdQjDGA==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm-gnueabihf@1.3.26: - resolution: {integrity: sha512-06T+LbVFlyciQtwrUB5/a16A1ju1jFoYvd/hq9TWhf7GrtL43U7oJIgqMOPHx2j0+Ps2R3S6R/UUN5YXu618zA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu@1.3.26: - resolution: {integrity: sha512-2NT/0xALPfK+U01qIlHxjkGdIj6F0txhu1U2v6B0YP2+k0whL2gCgYeg9QUvkYEXSD5r1Yx+vcb2R/vaSCSClg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl@1.3.26: - resolution: {integrity: sha512-64KrTay9hC0mTvZ1AmEFmNEwV5QDjw9U7PJU5riotSc28I+Q/ZoM0qcSFW9JRRa6F2Tr+IfMtyv8+eB2//BQ5g==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.3.26: - resolution: {integrity: sha512-Te8G13l3dcRM1Mf3J4JzGUngzNXLKnMYlUmBOYN/ORsx7e+VNelR3zsTLHC0+0jGqELDgqvMyzDfk+dux/C/bQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.3.26: - resolution: {integrity: sha512-nqQWuSM6OTKepUiQ9+rXgERq/JiO72RBOpXKO2afYppsL96sngjIRewV74v5f6IAfyzw+k+AhC5pgRA4Xu/Jkg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.3.26: - resolution: {integrity: sha512-xx34mx+9IBV1sun7sxoNFiqNom9wiOuvsQFJUyQptCnZHgYwOr9OI204LBF95dCcBCZsTm2hT1wBnySJOeimYw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc@1.3.26: - resolution: {integrity: sha512-48LZ/HKNuU9zl8c7qG6IQKb5rBCwmJgysGOmEGzTRBYxAf/x6Scmt0aqxCoV4J02HOs2WduCBDnhUKsSQ2kcXQ==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc@1.3.26: - resolution: {integrity: sha512-UPe7S+MezD/S6cKBIc50TduGzmw6PBz1Ms5p+5wDLOKYNS/LSEM4iRmLwvePzP5X8mOyesXrsbwxLy8KHP65Yw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core@1.3.26: - resolution: {integrity: sha512-U7vEsaLn3IGg0XCRLJX/GTkK9WIfFHUX5USdrp1L2QD29sWPe25HqNndXmUR9KytzKmpDMNoUuHyiuhpVrnNeQ==} - engines: {node: '>=10'} - requiresBuild: true - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.26 - '@swc/core-darwin-x64': 1.3.26 - '@swc/core-linux-arm-gnueabihf': 1.3.26 - '@swc/core-linux-arm64-gnu': 1.3.26 - '@swc/core-linux-arm64-musl': 1.3.26 - '@swc/core-linux-x64-gnu': 1.3.26 - '@swc/core-linux-x64-musl': 1.3.26 - '@swc/core-win32-arm64-msvc': 1.3.26 - '@swc/core-win32-ia32-msvc': 1.3.26 - '@swc/core-win32-x64-msvc': 1.3.26 - dev: true - /@szmarczak/http-timer@5.0.1: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -2505,100 +1450,89 @@ packages: minimatch: 9.0.3 dev: true - /@types/bmapgl@0.0.7: - resolution: {integrity: sha512-3R0wFbZtynfHBJq0v477amaNH3t2u2CzBo46ViIPDdOTEJJ+Ma/ql4X8tS2XjDZcZhDAr6QDWoqV8SZvp6STvA==} + /@types/crypto-js@4.2.1: + resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==} dev: true - /@types/crypto-js@4.1.2: - resolution: {integrity: sha512-t33RNmTu5ufG/sorROIafiCVJMx3jz95bXUMoPAZcUD14fxMXnuTzqzXZoxpR0tNx2xpw11Dlmem9vGCsrSOfA==} + /@types/eslint@8.44.7: + resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 dev: true - /@types/d3-timer@2.0.1: - resolution: {integrity: sha512-TF8aoF5cHcLO7W7403blM7L1T+6NF3XMyN3fxyUolq2uOcFeicG/khQg/dGxiCJWoAcmYulYN7LYSRKO54IXaA==} - dev: false - - /@types/estree@0.0.39: - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/estree@1.0.2: - resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} dev: true - /@types/http-cache-semantics@4.0.2: - resolution: {integrity: sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==} - dev: true - - /@types/json-schema@7.0.13: - resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/katex@0.16.3: - resolution: {integrity: sha512-CeVMX9EhVUW8MWnei05eIRks4D5Wscw/W9Byz1s3PA+yJvcdvq9SaDjiUKvRvEgjpdTyJMjQA43ae4KTwsvOPg==} + /@types/katex@0.16.6: + resolution: {integrity: sha512-rZYO1HInM99rAFYNwGqbYPxHZHxu2IwZYKj4bJ4oh6edVrm1UId8mmbHIZLBtG253qU6y3piag0XYe/joNnwzQ==} dev: false - /@types/lodash-es@4.17.9: - resolution: {integrity: sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==} + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: true + + /@types/lodash-es@4.17.11: + resolution: {integrity: sha512-eCw8FYAWHt2DDl77s+AMLLzPn310LKohruumpucZI4oOFJkIgnlaJcy23OKMJxx4r9PeTF13Gv6w+jqjWQaYUg==} dependencies: - '@types/lodash': 4.14.199 - dev: false + '@types/lodash': 4.14.201 - /@types/lodash@4.14.199: - resolution: {integrity: sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==} - dev: false + /@types/lodash@4.14.201: + resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==} - /@types/mockjs@1.0.8: - resolution: {integrity: sha512-20t7Fcx3QPbv4wPGeZ0SFOz1l51W3fO3dtO5Ed8KhkUjJ2VsKLRwhgV12lTvQmHnmkJ99ziH0mDmIOrbe8Gs6A==} + /@types/markdown-it@13.0.6: + resolution: {integrity: sha512-0VqpvusJn1/lwRegCxcHVdmLfF+wIsprsKMC9xW8UPcTxhFcQtoN/fBU1zMe8pH7D/RuueMh2CaBaNv+GrLqTw==} + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + dev: true + + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} dev: true /@types/node@10.17.60: resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: true - /@types/node@20.8.4: - resolution: {integrity: sha512-ZVPnqU58giiCjSxjVUESDtdPk4QR5WQhhINbc9UBrKLU68MX5BF6kbQzTrkwbolyr0X8ChBpXfavr5mZFKZQ5A==} + /@types/node@20.9.0: + resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} dependencies: - undici-types: 5.25.3 + undici-types: 5.26.5 dev: true - /@types/qs@6.9.8: - resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} + /@types/nprogress@0.2.3: + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} dev: true - /@types/resolve@1.17.1: - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - dependencies: - '@types/node': 20.8.4 - dev: true - - /@types/semver@7.5.3: - resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==} + /@types/semver@7.5.5: + resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} dev: true /@types/svgo@2.6.4: resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} dependencies: - '@types/node': 20.8.4 + '@types/node': 20.9.0 dev: true - /@types/trusted-types@2.0.4: - resolution: {integrity: sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==} - dev: true + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - /@types/ua-parser-js@0.7.37: - resolution: {integrity: sha512-4sOxS3ZWXC0uHJLYcWAaLMxTvjRX3hT96eF4YWUh1ovTaenvibaZOE5uXtIp4mksKMLRwo7YDiCBCw6vBiUPVg==} - dev: true - - /@types/web-bluetooth@0.0.18: - resolution: {integrity: sha512-v/ZHEj9xh82usl8LMR3GarzFY1IrbXJw5L4QfQhokjRV91q+SelFqxQWSep1ucXEZ22+dSTwLFkXeur25sPIbw==} - dev: false - - /@typescript-eslint/eslint-plugin@6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==} + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -2608,14 +1542,14 @@ packages: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/type-utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.7.5 + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 - eslint: 8.51.0 + eslint: 8.53.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -2626,8 +1560,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.7.5(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==} + /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2636,35 +1570,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 - eslint: 8.51.0 + eslint: 8.53.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - dev: true - - /@typescript-eslint/scope-manager@6.7.5: - resolution: {integrity: sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==} + /@typescript-eslint/scope-manager@6.11.0: + resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 dev: true - /@typescript-eslint/type-utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==} + /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2673,28 +1599,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.51.0 + eslint: 8.53.0 ts-api-utils: 1.0.3(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@typescript-eslint/types@6.7.5: - resolution: {integrity: sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==} + /@typescript-eslint/types@6.11.0: + resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.7.5(typescript@5.2.2): - resolution: {integrity: sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==} + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2702,8 +1623,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/visitor-keys': 6.7.5 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -2714,204 +1635,230 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.7.5(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==} + /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@types/json-schema': 7.0.13 - '@types/semver': 7.5.3 - '@typescript-eslint/scope-manager': 6.7.5 - '@typescript-eslint/types': 6.7.5 - '@typescript-eslint/typescript-estree': 6.7.5(typescript@5.2.2) - eslint: 8.51.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + eslint: 8.53.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@6.7.5: - resolution: {integrity: sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==} + /@typescript-eslint/visitor-keys@6.11.0: + resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.7.5 + '@typescript-eslint/types': 6.11.0 eslint-visitor-keys: 3.4.3 dev: true - /@unocss/config@0.56.5: - resolution: {integrity: sha512-rscnFIYgUlN/0hXHdhANyjFcDjDutt3JO0ZRITdNLzoglh7GVNiDTURBJwUZejF/vGJ7IkMd3qOdNhPFuRY1Bg==} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@unocss/config@0.57.4: + resolution: {integrity: sha512-Si0fA6fb6kLymgWbXvgM50PtX8zKV5p+BMeAn17ihefnasjg0fdPe1Zgdj/QdLJpwIcJ5yOw3uFwVgrOYRqIfQ==} engines: {node: '>=14'} dependencies: - '@unocss/core': 0.56.5 + '@unocss/core': 0.57.4 unconfig: 0.3.11 dev: true - /@unocss/core@0.56.5: - resolution: {integrity: sha512-fx5VhOjSHn0HdV2D34pEwFMAHJcJQRTCp1xEE4GzxY1irXzaa+m2aYf5PZjmDxehiOC16IH7TO9FOWANXk1E0w==} + /@unocss/core@0.57.4: + resolution: {integrity: sha512-JXufixa501p7+uwUkfG9voIUvNYXv58shZCKXO4Q9AojOzOMu6TDj35x8f3Sv5WFtZ3tp03sIETAfQRo7ksshw==} dev: true - /@unocss/extractor-arbitrary-variants@0.56.5: - resolution: {integrity: sha512-p2pyzz/ONvc5CGcaB9OZvWE8qkRSgyuhaQqFQLdBFeUhveHC0CGP0iSnXwBgAFHWM7DJo4/JpWeZ+mBt0ogVLA==} + /@unocss/extractor-arbitrary-variants@0.57.4: + resolution: {integrity: sha512-BPvS2ePUrhGMSuEkNMnPcOcTC7SkrRblARwGk00PGGfCRSWhCi6Csz0oHvn2Qm8147hoQzkEwM74+dox8gcsxw==} dependencies: - '@unocss/core': 0.56.5 + '@unocss/core': 0.57.4 dev: true - /@unocss/inspector@0.56.5: - resolution: {integrity: sha512-UK/X2JyqxB1uueIFlffFsBioxMptanBbJYjrmOoLPdAFoOPp9o8IIFkFs3OKWc8imvyl3w+F0opncmdJnDMllw==} + /@unocss/inspector@0.57.4: + resolution: {integrity: sha512-0GV4g2/jXVf+5YKvm1g/ExQTeU5+Zfl2qhkzJXuUT7IigDrG+dAEuQ2oaTwXHpdtGfxdYWYS8Cbr7rxRsZU/Pg==} dependencies: - '@unocss/rule-utils': 0.56.5 + '@unocss/core': 0.57.4 + '@unocss/rule-utils': 0.57.4 gzip-size: 6.0.0 sirv: 2.0.3 dev: true - /@unocss/preset-mini@0.56.5: - resolution: {integrity: sha512-/KhlThhs1ilauM7MwRSpahLbIPZ5VGeGvaUsU8+ZlNT3sis4yoVYkPtR14tL2IT6jhOU05N/uu3aBj+1bP8GjQ==} + /@unocss/preset-icons@0.57.4: + resolution: {integrity: sha512-c7vKYGAHfWa3eUIUswiQon1a9CXKT68uH4xgJ/EDcnCu+Og8AoA7iM+cesNDsLK4OlD4+qDjSvkGHW8of+u9cQ==} dependencies: - '@unocss/core': 0.56.5 - '@unocss/extractor-arbitrary-variants': 0.56.5 - '@unocss/rule-utils': 0.56.5 + '@iconify/utils': 2.1.11 + '@unocss/core': 0.57.4 + ofetch: 1.3.3 + transitivePeerDependencies: + - supports-color dev: true - /@unocss/preset-uno@0.56.5: - resolution: {integrity: sha512-3hzE0X1oxMbHLvWyTj/4BrJQ7OAL428BpzEJos0RsxifM04vOJX4GC4khIbmTl8KIMECMtATK3ren3JqzD2bFw==} + /@unocss/preset-mini@0.57.4: + resolution: {integrity: sha512-1wjiMIPq7yHO4vYAhNtwmYIUiXiZd5jHLbclX8aW7oKDKrKLm1UqezMLi+tuQqwDZGhoFJ6L6sYxONH5YxnRvA==} dependencies: - '@unocss/core': 0.56.5 - '@unocss/preset-mini': 0.56.5 - '@unocss/preset-wind': 0.56.5 - '@unocss/rule-utils': 0.56.5 + '@unocss/core': 0.57.4 + '@unocss/extractor-arbitrary-variants': 0.57.4 + '@unocss/rule-utils': 0.57.4 dev: true - /@unocss/preset-wind@0.56.5: - resolution: {integrity: sha512-iyMPvCEZkrGLHFXXlcqxDo/UcSK7KWw4x7/QUz7irrvc78cxYVuPm98QZgpCRcCwKerKVyFLjGOtwQ0kmVSVsQ==} + /@unocss/preset-uno@0.57.4: + resolution: {integrity: sha512-4pI4wxiPnDoo4KjU9deTmomNe4egJQTIrLWlpGStKb+d5ZS6S+zoRyR+XcSB8pKwa0Z1ZBA46OXAgMjtEVhVqw==} dependencies: - '@unocss/core': 0.56.5 - '@unocss/preset-mini': 0.56.5 - '@unocss/rule-utils': 0.56.5 + '@unocss/core': 0.57.4 + '@unocss/preset-mini': 0.57.4 + '@unocss/preset-wind': 0.57.4 + '@unocss/rule-utils': 0.57.4 dev: true - /@unocss/rule-utils@0.56.5: - resolution: {integrity: sha512-CXIGHCIC9B8WUl9KbbFMSZHcsIgfmI/+X0bjBv6xrgBVC1EQ2Acq4PYnJIbaRGBRAhl9wYjNL7Zq2UWOdowHAw==} + /@unocss/preset-wind@0.57.4: + resolution: {integrity: sha512-6jl+niNZtSFZmxvC0/27CvIJCLex9wjOQJy/x3vtYN1wcyKPZK90t+kx8Fxh2YN9ormiESCPeniv39PHgKpbJA==} + dependencies: + '@unocss/core': 0.57.4 + '@unocss/preset-mini': 0.57.4 + '@unocss/rule-utils': 0.57.4 + dev: true + + /@unocss/rule-utils@0.57.4: + resolution: {integrity: sha512-fwwlIkLZpVDstyvRFzObQkJT7kGUHr2o5AVD1X9io7GgN5UJzSQk0FHfnrN0M1QYUyqzFQJDd+s/pq6fTae+tA==} engines: {node: '>=14'} dependencies: - '@unocss/core': 0.56.5 + '@unocss/core': 0.57.4 + magic-string: 0.30.5 dev: true - /@unocss/scope@0.56.5: - resolution: {integrity: sha512-q2eHYLuqF7RZEVGti205X2JOKSH6lBJGoQIjPtWgodNTg3S7qmUinHG0XzikI30L3EF3VljIh5TbtwGPcvbNsA==} + /@unocss/scope@0.57.4: + resolution: {integrity: sha512-LGmRp/KQYgRSWQ5oYykD5FewUELc43IfFQx0H6aJmNtlqzm6q0VmRqMhR/2TPNp3o+pD6eYUrQ4WqbSsZoMRJA==} dev: true - /@unocss/transformer-directives@0.56.5: - resolution: {integrity: sha512-ykXbvG1LbqTqlYImMtkJUeH8BtuiE+8T/txUVyooUoVgr2qSELUu2FxC6rTX2EUx+F5BZhaQd6GsdzgaDwXgIg==} + /@unocss/transformer-directives@0.57.4: + resolution: {integrity: sha512-AbmSmO5zDnup0tJYB4mlJBIXPuCruW/g3GVLHG6ztT/I6TanB9V5u5jNeIB+AAaF1TeoM7xPw97WhJmFeSIhRA==} dependencies: - '@unocss/core': 0.56.5 - '@unocss/rule-utils': 0.56.5 + '@unocss/core': 0.57.4 + '@unocss/rule-utils': 0.57.4 css-tree: 2.3.1 dev: true - /@unocss/vite@0.56.5(rollup@2.79.1)(vite@4.4.11): - resolution: {integrity: sha512-X4nvIukXTH//d+Oc97nJogK04sVGw4fc5LhVV1DjHQVmAOAmhTJCG6SxWGoSeqqUMx5X3gI9fVILK+5O8yl5EA==} + /@unocss/transformer-variant-group@0.57.4: + resolution: {integrity: sha512-+KbSqEDCK2lziGJ8wnY4FhYxCSpONaxoKp/B0iTxc8sJ6tTfq2/GoRwnMy3miQTepjOBb6xfRY7ocF1BCjnpnQ==} + dependencies: + '@unocss/core': 0.57.4 + dev: true + + /@unocss/vite@0.57.4(vite@4.5.0): + resolution: {integrity: sha512-bVMftC1hzdlfRQOfllDuJ+bd5Z0/TOvPthNk8LyoHsnjAEH7FqspdCyPM3nQpnfqfYRocXiuLJv+KdQ2DLQWOQ==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.0.5(rollup@2.79.1) - '@unocss/config': 0.56.5 - '@unocss/core': 0.56.5 - '@unocss/inspector': 0.56.5 - '@unocss/scope': 0.56.5 - '@unocss/transformer-directives': 0.56.5 + '@rollup/pluginutils': 5.0.5 + '@unocss/config': 0.57.4 + '@unocss/core': 0.57.4 + '@unocss/inspector': 0.57.4 + '@unocss/scope': 0.57.4 + '@unocss/transformer-directives': 0.57.4 chokidar: 3.5.3 - fast-glob: 3.3.1 + fast-glob: 3.3.2 magic-string: 0.30.5 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) transitivePeerDependencies: - rollup dev: true - /@vite-plugin-vue-devtools/core@1.0.0-rc.5(vite@4.4.11): + /@vite-plugin-vue-devtools/core@1.0.0-rc.5(vite@4.5.0): resolution: {integrity: sha512-S3zPV6QVRYz07D1ZEMShwbl8MTT/wvT27dPZicnnI2zXH7kCrOgm1aRw09j+1/35Z682Liqw+gzfnDDY+tIG2w==} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 dependencies: - '@babel/parser': 7.23.0 + '@babel/parser': 7.23.3 birpc: 0.2.14 estree-walker: 2.0.2 magic-string: 0.30.5 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - vite-hot-client: 0.2.2(vite@4.4.11) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) + vite-hot-client: 0.2.2(vite@4.5.0) dev: true - /@vitejs/plugin-vue-jsx@3.0.2(vite@4.4.11)(vue@3.3.4): + /@vitejs/plugin-vue-jsx@3.0.2(vite@4.5.0)(vue@3.3.8): resolution: {integrity: sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.2) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.2) - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - vue: 3.3.4 + '@babel/core': 7.23.3 + '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.3) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) + vue: 3.3.8(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue@4.4.0(vite@4.4.11)(vue@3.3.4): - resolution: {integrity: sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==} + /@vitejs/plugin-vue@4.3.1(vite@4.5.0)(vue@3.3.8): + resolution: {integrity: sha512-tUBEtWcF7wFtII7ayNiLNDTCE1X1afySEo+XNVMNkFXaThENyCowIEX095QqbJZGTgoOcSVDJGlnde2NG4jtbQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - vue: 3.3.4 + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) + vue: 3.3.8(typescript@5.2.2) dev: true - /@volar/language-core@1.10.4: - resolution: {integrity: sha512-Na69qA6uwVIdA0rHuOc2W3pHtVQQO8hCNim7FOaKNpRJh0oAFnu5r9i7Oopo5C4cnELZkPNjTrbmpcCTiW+CMQ==} + /@vitejs/plugin-vue@4.4.1(vite@4.5.0)(vue@3.3.8): + resolution: {integrity: sha512-HCQG8VDFDM7YDAdcj5QI5DvUi+r6xvo9LgvYdk7LSkUNwdpempdB5horkMSZsbdey9Ywsf5aaU8kEPw9M5kREA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 dependencies: - '@volar/source-map': 1.10.4 + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) + vue: 3.3.8(typescript@5.2.2) dev: true - /@volar/source-map@1.10.4: - resolution: {integrity: sha512-RxZdUEL+pV8p+SMqnhVjzy5zpb1QRZTlcwSk4bdcBO7yOu4rtEWqDGahVCEj4CcXour+0yJUMrMczfSCpP9Uxg==} + /@volar/language-core@1.10.10: + resolution: {integrity: sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw==} + dependencies: + '@volar/source-map': 1.10.10 + dev: true + + /@volar/source-map@1.10.10: + resolution: {integrity: sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg==} dependencies: muggle-string: 0.3.1 dev: true - /@volar/typescript@1.10.4: - resolution: {integrity: sha512-BCCUEBASBEMCrz7qmNSi2hBEWYsXD0doaktRKpmmhvb6XntM2sAWYu6gbyK/MluLDgluGLFiFRpWgobgzUqolg==} + /@volar/typescript@1.10.10: + resolution: {integrity: sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A==} dependencies: - '@volar/language-core': 1.10.4 + '@volar/language-core': 1.10.10 + path-browserify: 1.0.1 dev: true /@vue/babel-helper-vue-transform-on@1.1.5: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} dev: true - /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.2): + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.3): resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.23.3 '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 '@vue/babel-helper-vue-transform-on': 1.1.5 camelcase: 6.3.0 html-tags: 3.3.1 @@ -2920,135 +1867,173 @@ packages: - supports-color dev: true - /@vue/compiler-core@3.3.4: - resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} + /@vue/compiler-core@3.3.8: + resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==} dependencies: - '@babel/parser': 7.23.0 - '@vue/shared': 3.3.4 + '@babel/parser': 7.23.3 + '@vue/shared': 3.3.8 estree-walker: 2.0.2 source-map-js: 1.0.2 - /@vue/compiler-dom@3.3.4: - resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} + /@vue/compiler-dom@3.3.8: + resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==} dependencies: - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/compiler-core': 3.3.8 + '@vue/shared': 3.3.8 - /@vue/compiler-sfc@3.3.4: - resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} + /@vue/compiler-sfc@3.3.8: + resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==} dependencies: - '@babel/parser': 7.23.0 - '@vue/compiler-core': 3.3.4 - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-ssr': 3.3.4 - '@vue/reactivity-transform': 3.3.4 - '@vue/shared': 3.3.4 + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.3.8 + '@vue/compiler-dom': 3.3.8 + '@vue/compiler-ssr': 3.3.8 + '@vue/reactivity-transform': 3.3.8 + '@vue/shared': 3.3.8 estree-walker: 2.0.2 magic-string: 0.30.5 postcss: 8.4.31 source-map-js: 1.0.2 - /@vue/compiler-ssr@3.3.4: - resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} + /@vue/compiler-ssr@3.3.8: + resolution: {integrity: sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==} dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/compiler-dom': 3.3.8 + '@vue/shared': 3.3.8 /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} - dev: false - /@vue/language-core@1.8.19(typescript@5.2.2): - resolution: {integrity: sha512-nt3dodGs97UM6fnxeQBazO50yYCKBK53waFWB3qMbLmR6eL3aUryZgQtZoBe1pye17Wl8fs9HysV3si6xMgndQ==} + /@vue/language-core@1.8.22(typescript@5.2.2): + resolution: {integrity: sha512-bsMoJzCrXZqGsxawtUea1cLjUT9dZnDsy5TuZ+l1fxRMzUGQUG9+Ypq4w//CqpWmrx7nIAJpw2JVF/t258miRw==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.10.4 - '@volar/source-map': 1.10.4 - '@vue/compiler-dom': 3.3.4 - '@vue/reactivity': 3.3.4 - '@vue/shared': 3.3.4 + '@volar/language-core': 1.10.10 + '@volar/source-map': 1.10.10 + '@vue/compiler-dom': 3.3.8 + '@vue/shared': 3.3.8 + computeds: 0.0.1 minimatch: 9.0.3 muggle-string: 0.3.1 typescript: 5.2.2 - vue-template-compiler: 2.7.14 + vue-template-compiler: 2.7.15 dev: true - /@vue/reactivity-transform@3.3.4: - resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} + /@vue/reactivity-transform@3.3.8: + resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==} dependencies: - '@babel/parser': 7.23.0 - '@vue/compiler-core': 3.3.4 - '@vue/shared': 3.3.4 + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.3.8 + '@vue/shared': 3.3.8 estree-walker: 2.0.2 magic-string: 0.30.5 - /@vue/reactivity@3.3.4: - resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} + /@vue/reactivity@3.3.8: + resolution: {integrity: sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==} dependencies: - '@vue/shared': 3.3.4 + '@vue/shared': 3.3.8 - /@vue/runtime-core@3.3.4: - resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} + /@vue/runtime-core@3.3.8: + resolution: {integrity: sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==} dependencies: - '@vue/reactivity': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/reactivity': 3.3.8 + '@vue/shared': 3.3.8 - /@vue/runtime-dom@3.3.4: - resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} + /@vue/runtime-dom@3.3.8: + resolution: {integrity: sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==} dependencies: - '@vue/runtime-core': 3.3.4 - '@vue/shared': 3.3.4 + '@vue/runtime-core': 3.3.8 + '@vue/shared': 3.3.8 csstype: 3.1.2 - /@vue/server-renderer@3.3.4(vue@3.3.4): - resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} + /@vue/server-renderer@3.3.8(vue@3.3.8): + resolution: {integrity: sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==} peerDependencies: - vue: 3.3.4 + vue: 3.3.8 dependencies: - '@vue/compiler-ssr': 3.3.4 - '@vue/shared': 3.3.4 - vue: 3.3.4 + '@vue/compiler-ssr': 3.3.8 + '@vue/shared': 3.3.8 + vue: 3.3.8(typescript@5.2.2) - /@vue/shared@3.3.4: - resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + /@vue/shared@3.3.8: + resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==} - /@vue/typescript@1.8.19(typescript@5.2.2): - resolution: {integrity: sha512-k/SHeeQROUgqsxyHQ8Cs3Zz5TnX57p7BcBDVYR2E0c61QL2DJ2G8CsaBremmNGuGE6o1R5D50IHIxFmroMz8iw==} + /@vueuse/core@10.6.1(vue@3.3.8): + resolution: {integrity: sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==} dependencies: - '@volar/typescript': 1.10.4 - '@vue/language-core': 1.8.19(typescript@5.2.2) + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.6.1 + '@vueuse/shared': 10.6.1(vue@3.3.8) + vue-demi: 0.14.6(vue@3.3.8) transitivePeerDependencies: - - typescript + - '@vue/composition-api' + - vue + + /@vueuse/integrations@10.6.1(focus-trap@7.5.4)(nprogress@0.2.0)(vue@3.3.8): + resolution: {integrity: sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.6.1(vue@3.3.8) + '@vueuse/shared': 10.6.1(vue@3.3.8) + focus-trap: 7.5.4 + nprogress: 0.2.0 + vue-demi: 0.14.6(vue@3.3.8) + transitivePeerDependencies: + - '@vue/composition-api' + - vue dev: true - /@vueuse/core@10.5.0(vue@3.3.4): - resolution: {integrity: sha512-z/tI2eSvxwLRjOhDm0h/SXAjNm8N5ld6/SC/JQs6o6kpJ6Ya50LnEL8g5hoYu005i28L0zqB5L5yAl8Jl26K3A==} + /@vueuse/metadata@10.6.1: + resolution: {integrity: sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==} + + /@vueuse/shared@10.6.1(vue@3.3.8): + resolution: {integrity: sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==} dependencies: - '@types/web-bluetooth': 0.0.18 - '@vueuse/metadata': 10.5.0 - '@vueuse/shared': 10.5.0(vue@3.3.4) - vue-demi: 0.14.6(vue@3.3.4) + vue-demi: 0.14.6(vue@3.3.8) transitivePeerDependencies: - '@vue/composition-api' - vue - dev: false - - /@vueuse/metadata@10.5.0: - resolution: {integrity: sha512-fEbElR+MaIYyCkeM0SzWkdoMtOpIwO72x8WsZHRE7IggiOlILttqttM69AS13nrDxosnDBYdyy3C5mR1LCxHsw==} - dev: false - - /@vueuse/shared@10.5.0(vue@3.3.4): - resolution: {integrity: sha512-18iyxbbHYLst9MqU1X1QNdMHIjks6wC7XTVf0KNOv5es/Ms6gjVFCAAWTVP2JStuGqydg3DT+ExpFORUEi9yhg==} - dependencies: - vue-demi: 0.14.6(vue@3.3.4) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: false /@webfansplz/vuedoc-parser@0.0.4(pug@3.0.2): resolution: {integrity: sha512-OnJxUtZOvKHonA9wmW1F0E+UkjP4RZdNRZyUWF1Nrh0TAm4uzX4a99EgHH33Rc2dJgkhMdtaZ9P+ekVJ42Y0kg==} @@ -3056,11 +2041,11 @@ packages: peerDependencies: pug: ^3.0.2 dependencies: - '@babel/parser': 7.23.0 - '@babel/traverse': 7.23.2 + '@babel/parser': 7.23.3 + '@babel/traverse': 7.23.3 pug: 3.0.2 resolve: 1.22.8 - vue-template-compiler: 2.7.14 + vue-template-compiler: 2.7.15 transitivePeerDependencies: - supports-color dev: true @@ -3069,16 +2054,12 @@ packages: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true - /abs-svg-path@0.1.1: - resolution: {integrity: sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==} - dev: false - - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.2 dev: true /acorn@7.4.1: @@ -3087,8 +2068,8 @@ packages: hasBin: true dev: true - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -3135,13 +2116,23 @@ packages: uri-js: 4.4.1 dev: true - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + /algoliasearch@4.20.0: + resolution: {integrity: sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==} dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 + '@algolia/cache-browser-local-storage': 4.20.0 + '@algolia/cache-common': 4.20.0 + '@algolia/cache-in-memory': 4.20.0 + '@algolia/client-account': 4.20.0 + '@algolia/client-analytics': 4.20.0 + '@algolia/client-common': 4.20.0 + '@algolia/client-personalization': 4.20.0 + '@algolia/client-search': 4.20.0 + '@algolia/logger-common': 4.20.0 + '@algolia/logger-console': 4.20.0 + '@algolia/requester-browser-xhr': 4.20.0 + '@algolia/requester-common': 4.20.0 + '@algolia/requester-node-http': 4.20.0 + '@algolia/transporter': 4.20.0 dev: true /ansi-align@3.0.1: @@ -3177,6 +2168,10 @@ packages: engines: {node: '>=12'} dev: true + /ansi-sequence-parser@1.1.1: + resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + dev: true + /ansi-styles@2.2.1: resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} engines: {node: '>=0.10.0'} @@ -3225,12 +2220,6 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - dependencies: - dequal: 2.0.3 - dev: true - /arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} engines: {node: '>=0.10.0'} @@ -3249,7 +2238,7 @@ packages: /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 is-array-buffer: 3.0.2 dev: true @@ -3257,10 +2246,10 @@ packages: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-string: 1.0.7 dev: true @@ -3278,41 +2267,31 @@ packages: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 dev: true /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true /array.prototype.flatmap@1.3.2: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 - dev: true - - /array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 dev: true /arraybuffer.prototype.slice@1.0.2: @@ -3320,10 +2299,10 @@ packages: engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 dev: true @@ -3336,60 +2315,36 @@ packages: resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==} dev: true + /assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + dependencies: + call-bind: 1.0.5 + is-nan: 1.3.2 + object-is: 1.1.5 + object.assign: 4.1.4 + util: 0.12.5 + dev: true + /assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} dev: true - /astro-eslint-parser@0.16.0: - resolution: {integrity: sha512-k9ASvY8pa6qttM+fvNJCILxxjftfNg/ou5cjd25SVHsc7moplezGGM9fgMUyf24SRYt8ShO603oHRDn2KqwxMg==} - engines: {node: ^14.18.0 || >=16.0.0} + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} dependencies: - '@astrojs/compiler': 2.2.0 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - astrojs-compiler-sync: 0.3.3(@astrojs/compiler@2.2.0) - debug: 4.3.4 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - dev: true - - /astrojs-compiler-sync@0.3.3(@astrojs/compiler@2.2.0): - resolution: {integrity: sha512-LbhchWgsvjvRBb5n5ez8/Q/f9ZKViuox27VxMDOdTUm8MRv9U7phzOiLue5KluqTmC0z1LId4gY2SekvoDrkuw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@astrojs/compiler': '>=0.27.0' - dependencies: - '@astrojs/compiler': 2.2.0 - synckit: 0.8.5 + tslib: 2.6.2 dev: true /async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} dev: false - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: true - - /asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - dependencies: - has-symbols: 1.0.3 - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true - /atob@2.1.2: resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} engines: {node: '>= 4.5.0'} @@ -3401,8 +2356,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /axios@1.5.1: - resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==} + /axios@1.6.2: + resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} dependencies: follow-redirects: 1.15.3 form-data: 4.0.0 @@ -3411,53 +2366,11 @@ packages: - debug dev: false - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - dependencies: - dequal: 2.0.3 - dev: true - - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.2): - resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.2 - '@babel/core': 7.23.2 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3@0.8.5(@babel/core@7.23.2): - resolution: {integrity: sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) - core-js-compat: 3.33.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.2): - resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.2 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.2) - transitivePeerDependencies: - - supports-color - dev: true - /babel-walk@3.0.0-canary-5: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.23.3 dev: true /balanced-match@1.0.2: @@ -3567,8 +2480,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001547 - electron-to-chromium: 1.4.551 + caniuse-lite: 1.0.30001562 + electron-to-chromium: 1.4.583 node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true @@ -3588,21 +2501,6 @@ packages: semver: 7.5.4 dev: true - /bumpp@9.2.0: - resolution: {integrity: sha512-pgp7y3jp33QTaXFVDrE0IKuZF5Y8EsIz+ywZXFALW2nD+ZD+4crxJe/GypBQBoJuZrr5dc6TGrR3wl7fk3+C6w==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jsdevtools/ez-spawn': 3.0.4 - c12: 1.4.2 - cac: 6.7.14 - fast-glob: 3.3.1 - prompts: 2.4.2 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /bundle-name@3.0.0: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} @@ -3610,14 +2508,14 @@ packages: run-applescript: 5.0.0 dev: true - /c12@1.4.2: - resolution: {integrity: sha512-3IP/MuamSVRVw8W8+CHWAz9gKN4gd+voF2zm/Ln6D25C2RhytEZ1ABbC8MjKr4BR9rhoV1JQ7jJA158LDiTkLg==} + /c12@1.5.1: + resolution: {integrity: sha512-BWZRJgDEveT8uI+cliCwvYSSSSvb4xKoiiu5S0jaDbKBopQLQF7E+bq9xKk1pTcG+mUa3yXuFO7bD9d8Lr9Xxg==} dependencies: chokidar: 3.5.3 - defu: 6.1.2 + defu: 6.1.3 dotenv: 16.3.1 giget: 1.1.3 - jiti: 1.20.0 + jiti: 1.21.0 mlly: 1.4.2 ohash: 1.1.3 pathe: 1.1.1 @@ -3633,6 +2531,32 @@ packages: engines: {node: '>=8'} dev: true + /cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.1.0 + infer-owner: 1.0.4 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.2.0 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + dev: true + /cacache@17.1.4: resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3675,7 +2599,7 @@ packages: resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} engines: {node: '>=14.16'} dependencies: - '@types/http-cache-semantics': 4.0.2 + '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 http-cache-semantics: 4.1.1 keyv: 4.5.4 @@ -3684,14 +2608,12 @@ packages: responselike: 3.0.0 dev: true - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - - /call-me-maybe@1.0.2: - resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 dev: true /callsites@3.1.0: @@ -3709,8 +2631,12 @@ packages: engines: {node: '>=14.16'} dev: true - /caniuse-lite@1.0.30001547: - resolution: {integrity: sha512-W7CrtIModMAxobGhz8iXmDfuJiiKg1WADMO/9x7/CLNin5cpSbuBjooyoIUVB5eyCc36QuTVlkVa1iB2S5+/eA==} + /can-use-dom@0.1.0: + resolution: {integrity: sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==} + dev: false + + /caniuse-lite@1.0.30001562: + resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} dev: true /chalk@1.1.3: @@ -3804,13 +2730,6 @@ packages: restore-cursor: 4.0.0 dev: true - /cli-progress@3.12.0: - resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} - engines: {node: '>=4'} - dependencies: - string-width: 4.2.3 - dev: true - /cli-table3@0.6.3: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} @@ -3850,16 +2769,6 @@ packages: engines: {node: '>=0.8'} dev: true - /code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.2 - acorn: 8.10.0 - estree-walker: 3.0.3 - periscopic: 3.1.0 - dev: true - /collection-visit@1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} engines: {node: '>=0.10.0'} @@ -3914,28 +2823,24 @@ packages: engines: {node: '>=14'} dev: true - /commander@11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} dev: true - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - /commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} dev: true - /common-tags@1.8.2: - resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} - engines: {node: '>=4.0.0'} - dev: true - /component-emitter@1.3.0: resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} dev: true + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -3958,18 +2863,6 @@ packages: xdg-basedir: 5.1.0 dev: true - /connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: true - /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -3982,12 +2875,8 @@ packages: /constantinople@4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - dev: true - - /convert-gitmoji@0.1.3: - resolution: {integrity: sha512-t5yxPyI8h8KPvRwrS/sRrfIpT2gJbmBAY0TFokyUBy3PM44RuFRpZwHdACz+GTSPLRLo3s4qsscOMLjHiXBwzw==} + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 dev: true /convert-source-map@2.0.0: @@ -3999,19 +2888,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /core-js-compat@3.33.0: - resolution: {integrity: sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==} - dependencies: - browserslist: 4.22.1 - dev: true - - /core-js-pure@3.33.0: - resolution: {integrity: sha512-FKSIDtJnds/YFIEaZ4HszRX7hkxGpNKM7FC9aJ9WLJbSd3lD4vOltFuVIBLR8asSx9frkTSqL0dw90SKQxgKrg==} - requiresBuild: true - dev: false - - /core-js@3.33.0: - resolution: {integrity: sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==} + /core-js@3.32.2: + resolution: {integrity: sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ==} requiresBuild: true dev: false @@ -4031,6 +2909,17 @@ packages: cross-spawn: 7.0.3 dev: true + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -4040,13 +2929,9 @@ packages: which: 2.0.2 dev: true - /crypto-js@4.1.1: - resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} - - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: true + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false /crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} @@ -4113,133 +2998,6 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - /d3-array@1.2.4: - resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==} - dev: false - - /d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} - dependencies: - internmap: 1.0.1 - dev: false - - /d3-collection@1.0.7: - resolution: {integrity: sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==} - dev: false - - /d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} - dev: false - - /d3-composite-projections@1.4.0: - resolution: {integrity: sha512-csygyxdRfy7aUYRPea23veM6sjisdHI+DNd0nHcAGMd2LyL2lklr+xLRzHiJ+hy1HGp6YgAtbqdJR8CsLolrNQ==} - dependencies: - d3-geo: 2.0.2 - d3-path: 2.0.0 - dev: false - - /d3-dsv@1.2.0: - resolution: {integrity: sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==} - hasBin: true - dependencies: - commander: 2.20.3 - iconv-lite: 0.4.24 - rw: 1.3.3 - dev: false - - /d3-ease@1.0.7: - resolution: {integrity: sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==} - dev: false - - /d3-geo-projection@2.1.2: - resolution: {integrity: sha512-zft6RRvPaB1qplTodBVcSH5Ftvmvvg0qoDiqpt+fyNthGr/qr+DD30cizNDluXjW7jmo7EKUTjvFCAHofv08Ow==} - hasBin: true - dependencies: - commander: 2.20.3 - d3-array: 1.2.4 - d3-geo: 1.6.4 - dev: false - - /d3-geo@1.6.4: - resolution: {integrity: sha512-O5Q3iftLc6/EdU1MHUm+O29NoKKN/cyQtySnD9/yEEcinN+q4ng+H56e2Yn1YWdfZBoiaRVtR2NoJ3ivKX5ptQ==} - dependencies: - d3-array: 1.2.4 - dev: false - - /d3-geo@2.0.2: - resolution: {integrity: sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==} - dependencies: - d3-array: 2.12.1 - dev: false - - /d3-hexjson@1.1.1: - resolution: {integrity: sha512-WMF1juFJwAx6LzdEVKlsCGZz+7QUG7VMJDtg8uD3cfNwWOTgMiy6qBRRGU7LSY2KbmEObu3BV5ZQbq9l/BvUZQ==} - dependencies: - d3-array: 1.2.4 - dev: false - - /d3-hierarchy@1.1.9: - resolution: {integrity: sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==} - dev: false - - /d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} - dependencies: - d3-color: 3.1.0 - dev: false - - /d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} - dev: false - - /d3-path@2.0.0: - resolution: {integrity: sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==} - dev: false - - /d3-sankey@0.9.1: - resolution: {integrity: sha512-nnRkDaUMjBdeuGg+kWGdA+tjG1AVTnJ+Ykw7ff7CZHVI17Hm5sy8n0UXykVffn13aNHwK5wPOdOt1gS1ZEaF+A==} - dependencies: - d3-array: 1.2.4 - d3-collection: 1.0.7 - d3-shape: 1.3.7 - dev: false - - /d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} - dependencies: - d3-path: 1.0.9 - dev: false - - /d3-timer@1.0.10: - resolution: {integrity: sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==} - dev: false - - /d3-voronoi@1.1.4: - resolution: {integrity: sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==} - dev: false - - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} - dependencies: - es5-ext: 0.10.62 - type: 1.2.0 - dev: false - - /dagre@0.8.5: - resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} - dependencies: - graphlib: 2.1.8 - lodash: 4.17.21 - dev: false - - /danmu.js@1.1.13: - resolution: {integrity: sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg==} - dependencies: - event-emitter: 0.3.5 - dev: false - /date-fns-tz@2.0.0(date-fns@2.30.0): resolution: {integrity: sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==} peerDependencies: @@ -4259,10 +3017,6 @@ packages: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false - /dayjs@1.11.9: - resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} - dev: true - /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} dev: true @@ -4299,6 +3053,7 @@ packages: optional: true dependencies: ms: 2.1.2 + dev: true /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -4321,11 +3076,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: true - /default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -4349,18 +3099,13 @@ packages: engines: {node: '>=10'} dev: true - /define-data-property@1.1.0: - resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 gopd: 1.0.1 - has-property-descriptors: 1.0.0 - dev: true - - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + has-property-descriptors: 1.0.1 dev: true /define-lazy-prop@3.0.0: @@ -4372,8 +3117,8 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 - has-property-descriptors: 1.0.0 + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 object-keys: 1.1.1 dev: true @@ -4381,26 +3126,26 @@ packages: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 0.1.6 + is-descriptor: 0.1.7 dev: true /define-property@1.0.0: resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 dev: true /define-property@2.0.2: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} engines: {node: '>=0.10.0'} dependencies: - is-descriptor: 1.0.2 + is-descriptor: 1.0.3 isobject: 3.0.1 dev: true - /defu@6.1.2: - resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + /defu@6.1.3: + resolution: {integrity: sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==} dev: true /delayed-stream@1.0.0: @@ -4416,22 +3161,8 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: true - - /destr@2.0.1: - resolution: {integrity: sha512-M1Ob1zPSIvlARiJUkKqvAZ3VAqQY6Jcuth/pBKQ2b1dX/Qx0OnJ8Vux6J2H5PTMQeRzWrrbTu70VxBfv/OPDJA==} - dev: true - - /detect-browser@5.3.0: - resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} - dev: false - - /diff-match-patch@1.0.5: - resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} - dev: false + /destr@2.0.2: + resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} @@ -4521,10 +3252,6 @@ packages: engines: {node: '>=12'} dev: true - /downloadjs@1.4.7: - resolution: {integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==} - dev: false - /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} dev: true @@ -4533,27 +3260,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /echarts@5.4.3: - resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==} - dependencies: - tslib: 2.3.0 - zrender: 5.4.4 - dev: false - - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: true - - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - jake: 10.8.7 - dev: true - - /electron-to-chromium@1.4.551: - resolution: {integrity: sha512-/Ng/W/kFv7wdEHYzxdK7Cv0BHEGSkSB3M0Ssl8Ndr1eMiYeas/+Mv4cNaDqamqWx6nd2uQZfPz6g25z25M/sdw==} + /electron-to-chromium@1.4.583: + resolution: {integrity: sha512-93y1gcONABZ7uqYe/JWDVQP/Pj/sQSunF0HVAPdlg/pfBnOyBMLlQUxWvkqcljJg1+W6cjvPuYD+r1Th9Tn8mA==} dev: true /emoji-regex@8.0.0: @@ -4569,11 +3277,6 @@ packages: engines: {node: '>= 4'} dev: true - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: true - /encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} requiresBuild: true @@ -4582,25 +3285,6 @@ packages: dev: true optional: true - /engine.io-client@6.5.2: - resolution: {integrity: sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==} - dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 - engine.io-parser: 5.2.1 - ws: 8.11.0 - xmlhttprequest-ssl: 2.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /engine.io-parser@5.2.1: - resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} - engines: {node: '>=10.0.0'} - dev: false - /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} @@ -4634,30 +3318,36 @@ packages: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} dev: true + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + /error-stack-parser-es@0.1.1: resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} dev: true - /es-abstract@1.22.2: - resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 get-symbol-description: 1.0.0 globalthis: 1.0.3 gopd: 1.0.1 - has: 1.0.4 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.5 + hasown: 2.0.0 + internal-slot: 1.0.6 is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 @@ -4666,7 +3356,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.12.3 + object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.1 @@ -4680,41 +3370,22 @@ packages: typed-array-byte-offset: 1.0.0 typed-array-length: 1.0.4 unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true - /es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} - dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - es-set-tostringtag: 2.0.1 - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - globalthis: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 - dev: true - - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.4 + get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 + hasown: 2.0.0 dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - has: 1.0.4 + hasown: 2.0.0 dev: true /es-to-primitive@1.2.1: @@ -4726,240 +3397,6 @@ packages: is-symbol: 1.0.4 dev: true - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} - engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - dev: false - - /es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 - dev: false - - /es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} - dependencies: - d: 1.0.1 - ext: 1.7.0 - dev: false - - /esbuild-android-64@0.14.54: - resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64@0.14.54: - resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64@0.14.54: - resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64@0.14.54: - resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64@0.14.54: - resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64@0.14.54: - resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32@0.14.54: - resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64@0.14.54: - resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64@0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm@0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le@0.14.54: - resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le@0.14.54: - resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64@0.14.54: - resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x@0.14.54: - resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64@0.14.54: - resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64@0.14.54: - resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64@0.14.54: - resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32@0.14.54: - resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64@0.14.54: - resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64@0.14.54: - resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild@0.14.54: - resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/linux-loong64': 0.14.54 - esbuild-android-64: 0.14.54 - esbuild-android-arm64: 0.14.54 - esbuild-darwin-64: 0.14.54 - esbuild-darwin-arm64: 0.14.54 - esbuild-freebsd-64: 0.14.54 - esbuild-freebsd-arm64: 0.14.54 - esbuild-linux-32: 0.14.54 - esbuild-linux-64: 0.14.54 - esbuild-linux-arm: 0.14.54 - esbuild-linux-arm64: 0.14.54 - esbuild-linux-mips64le: 0.14.54 - esbuild-linux-ppc64le: 0.14.54 - esbuild-linux-riscv64: 0.14.54 - esbuild-linux-s390x: 0.14.54 - esbuild-netbsd-64: 0.14.54 - esbuild-openbsd-64: 0.14.54 - esbuild-sunos-64: 0.14.54 - esbuild-windows-32: 0.14.54 - esbuild-windows-64: 0.14.54 - esbuild-windows-arm64: 0.14.54 - dev: true - /esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} engines: {node: '>=12'} @@ -5000,10 +3437,6 @@ packages: engines: {node: '>=12'} dev: true - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: true - /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -5014,71 +3447,26 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.51.0): - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - eslint: 8.51.0 - dev: true - - /eslint-config-prettier@9.0.0(eslint@8.51.0): + /eslint-config-prettier@9.0.0(eslint@8.53.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.51.0 - dev: true - - /eslint-config-soybeanjs@0.5.7(eslint@8.51.0)(svelte@4.2.1)(typescript@5.2.2): - resolution: {integrity: sha512-yLCfRUVWV5U0PBqpVU4Z/Mfch7GANga6jG5tgLVDcRQD96TdLNto1Zl6JfMDdu4M1RztHM+EEksJCoRkHuTDsA==} - peerDependencies: - eslint: '>=7.4.0' - typescript: '>=4.8.0' - dependencies: - '@typescript-eslint/eslint-plugin': 6.7.5(@typescript-eslint/parser@6.7.5)(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 - eslint-config-prettier: 9.0.0(eslint@8.51.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-plugin-astro: 0.29.1(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - eslint-plugin-jsonc: 2.10.0(eslint@8.51.0) - eslint-plugin-n: 16.2.0(eslint@8.51.0) - eslint-plugin-prettier: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3) - eslint-plugin-promise: 6.1.1(eslint@8.51.0) - eslint-plugin-react: 7.33.2(eslint@8.51.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.51.0) - eslint-plugin-react-native: 4.1.0(eslint@8.51.0) - eslint-plugin-solid: 0.13.0(eslint@8.51.0)(typescript@5.2.2) - eslint-plugin-svelte: 2.34.0(eslint@8.51.0)(svelte@4.2.1) - eslint-plugin-vue: 9.17.0(eslint@8.51.0) - prettier: 3.0.3 - prettier-plugin-astro: 0.12.0 - prettier-plugin-svelte: 3.0.3(prettier@3.0.3)(svelte@4.2.1) - typescript: 5.2.2 - transitivePeerDependencies: - - '@types/eslint' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - svelte - - ts-node + eslint: 8.53.0 dev: true /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - is-core-module: 2.13.0 + is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.53.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5087,12 +3475,12 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 - eslint: 8.51.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - fast-glob: 3.3.1 + eslint: 8.53.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + fast-glob: 3.3.2 get-tsconfig: 4.7.2 - is-core-module: 2.13.0 + is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -5101,7 +3489,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5122,45 +3510,28 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.51.0 + eslint: 8.53.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.5)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.53.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-astro@0.29.1(eslint@8.51.0): - resolution: {integrity: sha512-ffuUc7zFz8HavaAVaS5iRUzWqBf3/YbrFWUhx0GxXW3gVtnbri5UyvkN8EMOkZWkNXG1zqD2y9dlEsAezhbC0w==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=7.0.0' - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@jridgewell/sourcemap-codec': 1.4.15 - '@typescript-eslint/types': 5.62.0 - astro-eslint-parser: 0.16.0 - eslint: 8.51.0 - postcss: 8.4.31 - postcss-selector-parser: 6.0.13 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-es-x@7.2.0(eslint@8.51.0): - resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + /eslint-plugin-es-x@7.3.0(eslint@8.53.0): + resolution: {integrity: sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@eslint-community/regexpp': 4.9.1 - eslint: 8.51.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/regexpp': 4.10.0 + eslint: 8.53.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0): - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -5169,18 +3540,18 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.7.5(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.51.0 + eslint: 8.53.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.5)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.51.0) - has: 1.0.4 - is-core-module: 2.13.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + hasown: 2.0.0 + is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.7 @@ -5194,38 +3565,26 @@ packages: - supports-color dev: true - /eslint-plugin-jsonc@2.10.0(eslint@8.51.0): - resolution: {integrity: sha512-9d//o6Jyh4s1RxC9fNSt1+MMaFN2ruFdXPG9XZcb/mR2KkfjADYiNL/hbU6W0Cyxfg3tS/XSFuhl5LgtMD8hmw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - eslint: 8.51.0 - eslint-compat-utils: 0.1.2(eslint@8.51.0) - jsonc-eslint-parser: 2.3.0 - natural-compare: 1.4.0 - dev: true - - /eslint-plugin-n@16.2.0(eslint@8.51.0): - resolution: {integrity: sha512-AQER2jEyQOt1LG6JkGJCCIFotzmlcCZFur2wdKrp1JX2cNotC7Ae0BcD/4lLv3lUAArM9uNS8z/fsvXTd0L71g==} + /eslint-plugin-n@16.3.1(eslint@8.53.0): + resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) builtins: 5.0.1 - eslint: 8.51.0 - eslint-plugin-es-x: 7.2.0(eslint@8.51.0) + eslint: 8.53.0 + eslint-plugin-es-x: 7.3.0(eslint@8.53.0) get-tsconfig: 4.7.2 ignore: 5.2.4 - is-core-module: 2.13.0 + is-builtin-module: 3.2.1 + is-core-module: 2.13.1 minimatch: 3.1.2 resolve: 1.22.8 semver: 7.5.4 dev: true - /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.51.0)(prettier@3.0.3): + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.1.0): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5239,128 +3598,36 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.51.0 - eslint-config-prettier: 9.0.0(eslint@8.51.0) - prettier: 3.0.3 + '@types/eslint': 8.44.7 + eslint: 8.53.0 + eslint-config-prettier: 9.0.0(eslint@8.53.0) + prettier: 3.1.0 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.51.0): + /eslint-plugin-promise@6.1.1(eslint@8.53.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.51.0 + eslint: 8.53.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.51.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.51.0 - dev: true - - /eslint-plugin-react-native-globals@0.1.2: - resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==} - dev: true - - /eslint-plugin-react-native@4.1.0(eslint@8.51.0): - resolution: {integrity: sha512-QLo7rzTBOl43FvVqDdq5Ql9IoElIuTdjrz9SKAXCvULvBoRZ44JGSkx9z4999ZusCsb4rK3gjS8gOGyeYqZv2Q==} - peerDependencies: - eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - eslint: 8.51.0 - eslint-plugin-react-native-globals: 0.1.2 - dev: true - - /eslint-plugin-react@7.33.2(eslint@8.51.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.51.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.10 - dev: true - - /eslint-plugin-solid@0.13.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-Sutd+DxEGu9+Z9ITtHKXRAClxVe1a6C1XQZSuN8iBsMy0IAVEc6Tca1UYgc7tD2ZrRRjZKB9mohBOaZl5NJLgg==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@typescript-eslint/utils': 6.7.5(eslint@8.51.0)(typescript@5.2.2) - eslint: 8.51.0 - is-html: 2.0.0 - jsx-ast-utils: 3.3.5 - kebab-case: 1.0.2 - known-css-properties: 0.24.0 - style-to-object: 0.3.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /eslint-plugin-svelte@2.34.0(eslint@8.51.0)(svelte@4.2.1): - resolution: {integrity: sha512-4RYUgNai7wr0v+T/kljMiYSjC/oqwgq5i+cPppawryAayj4C7WK1ixFlWCGmNmBppnoKCl4iA4ZPzPtlHcb4CA==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 - svelte: ^3.37.0 || ^4.0.0 - peerDependenciesMeta: - svelte: - optional: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@jridgewell/sourcemap-codec': 1.4.15 - debug: 4.3.4 - eslint: 8.51.0 - esutils: 2.0.3 - known-css-properties: 0.28.0 - postcss: 8.4.31 - postcss-load-config: 3.1.4(postcss@8.4.31) - postcss-safe-parser: 6.0.0(postcss@8.4.31) - postcss-selector-parser: 6.0.13 - semver: 7.5.4 - svelte: 4.2.1 - svelte-eslint-parser: 0.33.1(svelte@4.2.1) - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - - /eslint-plugin-vue@9.17.0(eslint@8.51.0): - resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} + /eslint-plugin-vue@9.18.1(eslint@8.53.0): + resolution: {integrity: sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - eslint: 8.51.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + eslint: 8.53.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.13 semver: 7.5.4 - vue-eslint-parser: 9.3.2(eslint@8.51.0) + vue-eslint-parser: 9.3.2(eslint@8.53.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -5379,18 +3646,19 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.51.0: - resolution: {integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==} + /eslint@8.53.0: + resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) - '@eslint-community/regexpp': 4.9.1 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.51.0 - '@humanwhocodes/config-array': 0.11.11 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.53.0 + '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -5429,11 +3697,17 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -5453,19 +3727,9 @@ packages: engines: {node: '>=4.0'} dev: true - /estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - dev: true - /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.2 - dev: true - /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -5476,17 +3740,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - dev: false - - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: false - /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: true @@ -5559,12 +3812,6 @@ packages: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} dev: true - /ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - dependencies: - type: 2.7.2 - dev: false - /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -5604,8 +3851,8 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5615,8 +3862,8 @@ packages: micromatch: 4.0.5 dev: true - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5644,21 +3891,11 @@ packages: reusify: 1.0.4 dev: true - /fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - dev: false - /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.1 - dev: true - - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - dependencies: - minimatch: 5.1.6 + flat-cache: 3.2.0 dev: true /fill-range@4.0.0: @@ -5678,21 +3915,6 @@ packages: to-regex-range: 5.0.1 dev: true - /finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -5701,9 +3923,9 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flatted: 3.2.9 keyv: 4.5.4 @@ -5719,6 +3941,12 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true + /focus-trap@7.5.4: + resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + dependencies: + tabbable: 6.2.0 + dev: true + /follow-redirects@1.15.3: resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} @@ -5780,16 +4008,7 @@ packages: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - - /fs-extra@11.1.0: - resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} - engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true /fs-extra@11.1.1: @@ -5798,17 +4017,7 @@ packages: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true /fs-minipass@2.1.0: @@ -5837,16 +4046,17 @@ packages: dev: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 functions-have-names: 1.2.3 dev: true @@ -5878,16 +4088,13 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: - function-bind: 1.1.1 - has: 1.0.4 + function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 - - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + hasown: 2.0.0 dev: true /get-stdin@8.0.0: @@ -5909,8 +4116,8 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 dev: true /get-tsconfig@4.7.2: @@ -5929,20 +4136,16 @@ packages: hasBin: true dependencies: colorette: 2.0.20 - defu: 6.1.2 + defu: 6.1.3 https-proxy-agent: 7.0.2 mri: 1.2.0 - node-fetch-native: 1.4.0 + node-fetch-native: 1.4.1 pathe: 1.1.1 tar: 6.2.0 transitivePeerDependencies: - supports-color dev: true - /gl-matrix@3.4.3: - resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} - dev: false - /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -5980,6 +4183,17 @@ packages: path-is-absolute: 1.0.1 dev: true + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: true + /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} @@ -6012,7 +4226,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -6027,7 +4241,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /got@12.6.1: @@ -6041,7 +4255,7 @@ packages: decompress-response: 6.0.0 form-data-encoder: 2.1.4 get-stream: 6.0.1 - http2-wrapper: 2.2.0 + http2-wrapper: 2.2.1 lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 @@ -6059,12 +4273,6 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /graphlib@2.1.8: - resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} - dependencies: - lodash: 4.17.21 - dev: false - /gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -6098,19 +4306,21 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.2 dev: true /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} + dev: true /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + dev: true /has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} @@ -6159,9 +4369,12 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -6173,6 +4386,10 @@ packages: engines: {node: '>=12.0.0'} dev: false + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + /hosted-git-info@5.2.1: resolution: {integrity: sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -6218,8 +4435,8 @@ packages: - supports-color dev: true - /http2-wrapper@2.2.0: - resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} + /http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 @@ -6267,13 +4484,6 @@ packages: ms: 2.1.3 dev: true - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: false - /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -6283,8 +4493,17 @@ packages: dev: true optional: true - /idb@7.1.1: - resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + /icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + dev: true + + /icss-utils@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.31 dev: true /ignore-walk@6.0.3: @@ -6305,6 +4524,10 @@ packages: hasBin: true dev: true + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: false + /immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} dev: true @@ -6332,6 +4555,10 @@ packages: engines: {node: '>=8'} dev: true + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: true + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -6357,54 +4584,44 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: true - - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.4 + get-intrinsic: 1.2.2 + hasown: 2.0.0 side-channel: 1.0.4 dev: true - /internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} - dev: false - /ip@2.0.0: resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} dev: true - /is-accessor-descriptor@0.1.6: - resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} - engines: {node: '>=0.10.0'} + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} dependencies: - kind-of: 3.2.2 + hasown: 2.0.0 dev: true - /is-accessor-descriptor@1.0.0: - resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} - engines: {node: '>=0.10.0'} + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: - kind-of: 6.0.3 + call-bind: 1.0.5 + has-tostringtag: 1.0.0 dev: true /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 dev: true - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true /is-bigint@1.0.4: @@ -6424,7 +4641,7 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true @@ -6432,6 +4649,13 @@ packages: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} dev: true + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -6444,24 +4668,17 @@ packages: ci-info: 3.9.0 dev: true - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - has: 1.0.4 + hasown: 2.0.0 dev: true - /is-data-descriptor@0.1.4: - resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} - engines: {node: '>=0.10.0'} + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} dependencies: - kind-of: 3.2.2 - dev: true - - /is-data-descriptor@1.0.0: - resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 6.0.3 + hasown: 2.0.0 dev: true /is-date-object@1.0.5: @@ -6471,22 +4688,20 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-descriptor@0.1.6: - resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} - engines: {node: '>=0.10.0'} + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 0.1.6 - is-data-descriptor: 0.1.4 - kind-of: 5.1.0 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true - /is-descriptor@1.0.2: - resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} - engines: {node: '>=0.10.0'} + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} dependencies: - is-accessor-descriptor: 1.0.0 - is-data-descriptor: 1.0.0 - kind-of: 6.0.3 + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 dev: true /is-docker@2.2.1: @@ -6525,12 +4740,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - dependencies: - call-bind: 1.0.2 - dev: true - /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -6555,13 +4764,6 @@ packages: is-extglob: 2.1.1 dev: true - /is-html@2.0.0: - resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==} - engines: {node: '>=8'} - dependencies: - html-tags: 3.3.1 - dev: true - /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -6582,12 +4784,12 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true - - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 dev: true /is-negative-zero@2.0.2: @@ -6619,11 +4821,6 @@ packages: engines: {node: '>=0.12.0'} dev: true - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - dev: true - /is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} @@ -6650,33 +4847,18 @@ packages: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true - /is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - dependencies: - '@types/estree': 1.0.2 - dev: true - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-tostringtag: 1.0.0 dev: true - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - dev: true - - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true - /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 dev: true /is-stream@2.0.1: @@ -6703,32 +4885,25 @@ packages: has-symbols: 1.0.3 dev: true + /is-there@4.5.1: + resolution: {integrity: sha512-vIZ7HTXAoRoIwYSsTnxb0sg9L6rth+JOulNcavsbskQkCIWoSM2cjFOWZs4wGziGZER+Xgs/HXiCQZgiL8ppxQ==} + dev: true + /is-typed-array@1.1.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.11 + which-typed-array: 1.1.13 dev: true /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true - /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.2 - dev: true - - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 dev: true /is-windows@1.0.2: @@ -6748,10 +4923,6 @@ packages: engines: {node: '>=12'} dev: true - /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false - /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true @@ -6776,16 +4947,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.1 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 - dev: true - /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -6795,28 +4956,8 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 3.2.4 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - dev: true - - /jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 20.8.4 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - - /jiti@1.20.0: - resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true dev: true @@ -6843,11 +4984,6 @@ packages: argparse: 2.0.1 dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true - /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -6858,6 +4994,10 @@ packages: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + /json-parse-even-better-errors@3.0.0: resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6873,14 +5013,6 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - - /json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true - /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -6898,16 +5030,6 @@ packages: hasBin: true dev: true - /jsonc-eslint-parser@2.3.0: - resolution: {integrity: sha512-9xZPKVYp9DxnM3sd1yAsh/d59iIaswDkai8oTxbursfKYbg/ibjX0IzFt35+VZ8iEW453TVTXztnRvYUQlAfUQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.10.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - semver: 7.5.4 - dev: true - /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true @@ -6915,7 +5037,7 @@ packages: /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 dev: true @@ -6929,11 +5051,6 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - dev: true - /jstransformer@1.0.0: resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} dependencies: @@ -6941,20 +5058,6 @@ packages: promise: 7.3.1 dev: true - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - object.assign: 4.1.4 - object.values: 1.1.7 - dev: true - - /kebab-case@1.0.2: - resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==} - dev: true - /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -6985,28 +5088,11 @@ packages: engines: {node: '>=0.10.0'} dev: true - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: true - /known-css-properties@0.24.0: - resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==} - dev: true - - /known-css-properties@0.28.0: - resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} - dev: true - - /kolorist@1.6.0: - resolution: {integrity: sha512-dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==} - dev: true - /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: true @@ -7018,11 +5104,6 @@ packages: package-json: 8.1.1 dev: true - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -7031,49 +5112,58 @@ packages: type-check: 0.4.0 dev: true + /lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + dependencies: + immediate: 3.0.6 + dev: false + /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} dev: true - /lint-staged@14.0.1(enquirer@2.4.1): - resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} - engines: {node: ^16.14.0 || >=18.0.0} + /lint-staged@15.1.0: + resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} + engines: {node: '>=18.12.0'} hasBin: true dependencies: chalk: 5.3.0 - commander: 11.0.0 + commander: 11.1.0 debug: 4.3.4 - execa: 7.2.0 + execa: 8.0.1 lilconfig: 2.1.0 - listr2: 6.6.1(enquirer@2.4.1) + listr2: 7.0.2 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.1 + yaml: 2.3.4 transitivePeerDependencies: - - enquirer - supports-color dev: true - /listr2@6.6.1(enquirer@2.4.1): - resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + /listr2@7.0.2: + resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} engines: {node: '>=16.0.0'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true dependencies: cli-truncate: 3.1.0 colorette: 2.0.20 - enquirer: 2.4.1 eventemitter3: 5.0.1 log-update: 5.0.1 rfdc: 1.3.0 wrap-ansi: 8.1.0 dev: true + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + /loader-utils@1.4.2: resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} engines: {node: '>=4.0.0'} @@ -7088,10 +5178,20 @@ packages: engines: {node: '>=14'} dev: true - /locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 dev: true + /localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + dependencies: + lie: 3.1.1 + dev: false + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -7103,18 +5203,10 @@ packages: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true - /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - dev: true - /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -7129,21 +5221,16 @@ packages: wrap-ansi: 8.1.0 dev: true - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: true - /lowercase-keys@3.0.0: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + /lru-cache@10.0.2: + resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==} engines: {node: 14 || >=16.14} + dependencies: + semver: 7.5.4 dev: true /lru-cache@5.1.1: @@ -7164,25 +5251,45 @@ packages: engines: {node: '>=12'} dev: true - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: true - - /magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /magic-string@0.30.5: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /magicast@0.3.0: + resolution: {integrity: sha512-ZsEzw35h7xYoFlWHIyxU6zmH4sdwzdmY0DY4s/Lie/qKimeijz2jRw8/OV2248kt/y6FbvoTvGRKyB7y/Mpx8w==} + dependencies: + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + source-map-js: 1.0.2 + dev: true + + /make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + agentkeepalive: 4.5.0 + cacache: 16.1.3 + http-cache-semantics: 4.1.1 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + /make-fetch-happen@11.1.1: resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7218,6 +5325,10 @@ packages: object-visit: 1.0.1 dev: true + /mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + dev: true + /mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} dev: true @@ -7226,6 +5337,11 @@ packages: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} dev: true + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + /merge-options@1.0.1: resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} engines: {node: '>=4'} @@ -7334,6 +5450,17 @@ packages: minipass: 3.3.6 dev: true + /minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: true + /minipass-fetch@3.0.4: resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7390,6 +5517,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dev: true + /minisearch@6.2.0: + resolution: {integrity: sha512-BECkorDF1TY2rGKt9XHdSeP9TP29yUbrAaCh/C03wpyf1vx3uYcP/+8XlMcpTkgoU0rBVnHMAOaP83Rc9Tm+TQ==} + dev: true + /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -7412,23 +5543,21 @@ packages: hasBin: true dev: true + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: true + /mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.3.1 + ufo: 1.3.2 dev: true - /mockjs@1.1.0(patch_hash=zljuuegabo7mnbroxnwxab3e2u): - resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} - hasBin: true - dependencies: - commander: 11.0.0 - dev: true - patched: true - /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -7445,6 +5574,7 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -7454,16 +5584,16 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true - /naive-ui@2.35.0(vue@3.3.4): + /naive-ui@2.35.0(vue@3.3.8): resolution: {integrity: sha512-PdnLpOip1LQaKs5+rXLZoPDPQkTq26TnHWeABvUA2eOQjtHxE4+TQvj0Jq/W8clM2On/7jptoGmenLt48G3Bhg==} peerDependencies: vue: ^3.0.0 dependencies: '@css-render/plugin-bem': 0.15.12(css-render@0.15.12) - '@css-render/vue3-ssr': 0.15.12(vue@3.3.4) - '@types/katex': 0.16.3 - '@types/lodash': 4.14.199 - '@types/lodash-es': 4.17.9 + '@css-render/vue3-ssr': 0.15.12(vue@3.3.8) + '@types/katex': 0.16.6 + '@types/lodash': 4.14.201 + '@types/lodash-es': 4.17.11 async-validator: 4.2.5 css-render: 0.15.12 date-fns: 2.30.0 @@ -7474,14 +5604,14 @@ packages: lodash-es: 4.17.21 seemly: 0.3.6 treemate: 0.3.11 - vdirs: 0.1.8(vue@3.3.4) - vooks: 0.2.12(vue@3.3.4) - vue: 3.3.4 - vueuc: 0.4.51(vue@3.3.4) + vdirs: 0.1.8(vue@3.3.8) + vooks: 0.2.12(vue@3.3.8) + vue: 3.3.8(typescript@5.2.2) + vueuc: 0.4.51(vue@3.3.8) dev: false - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -7504,6 +5634,10 @@ packages: - supports-color dev: true + /nanopop@2.3.0: + resolution: {integrity: sha512-fzN+T2K7/Ah25XU02MJkPZ5q4Tj5FpjmIYq4rvoHX4yb16HzFdCO6JxFFn5Y/oBhQ8no8fUZavnyIv9/+xkBBw==} + dev: false + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -7513,16 +5647,15 @@ packages: engines: {node: '>= 0.6'} dev: true - /next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - dev: false - - /node-fetch-native@1.4.0: - resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /node-gyp@9.4.0: - resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} + /node-fetch-native@1.4.1: + resolution: {integrity: sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==} + + /node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} engines: {node: ^12.13 || ^14.13 || >=16} hasBin: true dependencies: @@ -7530,7 +5663,7 @@ packages: exponential-backoff: 3.1.1 glob: 7.2.3 graceful-fs: 4.2.11 - make-fetch-happen: 11.1.1 + make-fetch-happen: 10.2.1 nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 @@ -7538,6 +5671,7 @@ packages: tar: 6.2.0 which: 2.0.2 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -7553,12 +5687,21 @@ packages: abbrev: 1.1.1 dev: true + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + /normalize-package-data@5.0.0: resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: hosted-git-info: 6.1.1 - is-core-module: 2.13.0 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -7580,8 +5723,8 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true - /npm-check-updates@16.14.5: - resolution: {integrity: sha512-f7v3YzPUgadtkB2LAVhiWMjrSejJ0N8OM9JjjVfxBz2neHqmPSWQUAUA+U/p3xeXHl9bghRD6knRqBhm9dkRGg==} + /npm-check-updates@16.14.6: + resolution: {integrity: sha512-sJ6w4AmSDP7YzBXah94Ul2JhiIbjBDfx9XYgib15um2wtiQkOyjE7Lov3MNUSQ84Ry7T81mE4ynMbl/mGbK4HQ==} engines: {node: '>=14.14'} hasBin: true dependencies: @@ -7676,6 +5819,22 @@ packages: - supports-color dev: true + /npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.8.1 + string.prototype.padend: 3.1.5 + dev: true + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -7700,6 +5859,9 @@ packages: set-blocking: 2.0.0 dev: true + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -7720,8 +5882,17 @@ packages: kind-of: 3.2.2 dev: true - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + dev: true /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -7739,44 +5910,28 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - dev: true - /object.fromentries@2.0.7: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /object.groupby@1.0.1: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 - dev: true - - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 dev: true /object.pick@1.3.0: @@ -7790,30 +5945,22 @@ packages: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true - /ofetch@1.2.1: - resolution: {integrity: sha512-WEX1TEfGuAFJhzRW6Qv9RcxCyek+YogEeXlCWl1XoqBSW2fc6jU4LTk3VotwC1YfXv8Uz06LSofU6uW/ZIT+6g==} + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} dependencies: - destr: 2.0.1 - node-fetch-native: 1.4.0 - ufo: 1.3.1 - dev: true + destr: 2.0.2 + node-fetch-native: 1.4.1 + ufo: 1.3.2 /ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} dev: true - /on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -7834,15 +5981,6 @@ packages: mimic-fn: 4.0.0 dev: true - /open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: true - /open@9.1.0: resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} engines: {node: '>=14.16'} @@ -7942,13 +6080,12 @@ packages: hasBin: true dev: true - /parse-svg-path@0.1.2: - resolution: {integrity: sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==} - dev: false - - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 dev: true /pascalcase@0.1.1: @@ -7956,6 +6093,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -7966,6 +6107,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -7984,12 +6130,15 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.1 + lru-cache: 10.0.2 minipass: 7.0.4 dev: true - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 dev: true /path-type@4.0.0: @@ -8009,14 +6158,6 @@ packages: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} dev: true - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - dependencies: - '@types/estree': 1.0.2 - estree-walker: 3.0.3 - is-reference: 3.0.2 - dev: true - /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -8025,14 +6166,25 @@ packages: engines: {node: '>=8.6'} dev: true + /pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} hasBin: true dev: true - /pinia@2.1.6(typescript@5.2.2)(vue@3.3.4): - resolution: {integrity: sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==} + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pinia@2.1.7(typescript@5.2.2)(vue@3.3.8): + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' @@ -8045,8 +6197,8 @@ packages: dependencies: '@vue/devtools-api': 6.5.1 typescript: 5.2.2 - vue: 3.3.4 - vue-demi: 0.14.6(vue@3.3.4) + vue: 3.3.8(typescript@5.2.2) + vue-demi: 0.14.6(vue@3.3.8) dev: false /pkg-types@1.0.3: @@ -8057,34 +6209,50 @@ packages: pathe: 1.1.1 dev: true - /point-at-length@1.1.0: - resolution: {integrity: sha512-nNHDk9rNEh/91o2Y8kHLzBLNpLf80RYd2gCun9ss+V0ytRSf6XhryBTx071fesktjbachRmGuUbId+JQmzhRXw==} - dependencies: - abs-svg-path: 0.1.1 - isarray: 0.0.1 - parse-svg-path: 0.1.2 - dev: false - /posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} dev: true - /postcss-load-config@3.1.4(postcss@8.4.31): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + postcss: ^8.1.0 dependencies: - lilconfig: 2.1.0 postcss: 8.4.31 - yaml: 1.10.2 + dev: true + + /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 dev: true /postcss-prefix-selector@1.16.0(postcss@5.2.18): @@ -8095,24 +6263,6 @@ packages: postcss: 5.2.18 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - dependencies: - postcss: 8.4.31 - dev: true - - /postcss-scss@4.0.9(postcss@8.4.31): - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - dependencies: - postcss: 8.4.31 - dev: true - /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} @@ -8121,6 +6271,10 @@ packages: util-deprecate: 1.0.2 dev: true + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss@5.2.18: resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} engines: {node: '>=0.12'} @@ -8135,7 +6289,7 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 @@ -8174,6 +6328,10 @@ packages: posthtml-render: 1.4.0 dev: true + /preact@10.19.2: + resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==} + dev: true + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -8186,45 +6344,18 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-astro@0.12.0: - resolution: {integrity: sha512-8E+9YQR6/5CPZJs8XsfBw579zrwZkc0Wb7x0fRVm/51JC8Iys4lBw4ecV8fHwpbQnzve86TUa4fJ08BJzqfWnA==} - engines: {node: ^14.15.0 || >=16.0.0} - dependencies: - '@astrojs/compiler': 1.8.2 - prettier: 3.0.3 - sass-formatter: 0.7.8 - dev: true - - /prettier-plugin-svelte@3.0.3(prettier@3.0.3)(svelte@4.2.1): - resolution: {integrity: sha512-dLhieh4obJEK1hnZ6koxF+tMUrZbV5YGvRpf2+OADyanjya5j0z1Llo8iGwiHmFWZVG/hLEw/AJD5chXd9r3XA==} - peerDependencies: - prettier: ^3.0.0 - svelte: ^3.2.0 || ^4.0.0-next.0 - dependencies: - prettier: 3.0.3 - svelte: 4.2.1 - dev: true - /prettier@3.0.3: resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} hasBin: true dev: true - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + engines: {node: '>=14'} + hasBin: true dev: true - /pretty-bytes@6.1.1: - resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} - engines: {node: ^14.13.1 || >=16.0.0} - dev: true - - /print-js@1.6.0: - resolution: {integrity: sha512-BfnOIzSKbqGRtO4o0rnj/K3681BSd2QUrsIZy/+WdCIugjIswjmx3lDEZpXB2ruGf9d4b3YNINri81+J0FsBWg==} - dev: false - /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8266,22 +6397,6 @@ packages: sisteransi: 1.0.5 dev: true - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - dev: true - /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true @@ -8381,8 +6496,8 @@ packages: pug-strip-comments: 2.0.0 dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true @@ -8393,13 +6508,6 @@ packages: escape-goat: 4.0.0 dev: true - /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.4 - dev: false - /query-string@4.3.4: resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} engines: {node: '>=0.10.0'} @@ -8417,12 +6525,6 @@ packages: engines: {node: '>=10'} dev: true - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /rc-config-loader@4.1.3: resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==} dependencies: @@ -8437,8 +6539,8 @@ packages: /rc9@2.1.1: resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} dependencies: - defu: 6.1.2 - destr: 2.0.1 + defu: 6.1.3 + destr: 2.0.2 flat: 5.0.2 dev: true @@ -8458,10 +6560,6 @@ packages: '@types/node': 10.17.60 dev: true - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: true - /read-package-json-fast@3.0.2: resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8480,6 +6578,15 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -8496,37 +6603,20 @@ packages: picomatch: 2.3.1 dev: true - /reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} - engines: {node: '>= 0.4'} + /recast@0.23.4: + resolution: {integrity: sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==} + engines: {node: '>= 4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 - globalthis: 1.0.3 - which-builtin-type: 1.1.3 - dev: true - - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: true - - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + assert: 2.1.0 + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.6.2 dev: true /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - - /regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.23.2 - dev: true + dev: false /regex-not@1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} @@ -8540,23 +6630,11 @@ packages: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 dev: true - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - dev: true - /registry-auth-token@5.0.2: resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} engines: {node: '>=14'} @@ -8571,17 +6649,6 @@ packages: rc: 1.2.8 dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - dependencies: - jsesc: 0.5.0 - dev: true - - /regression@2.0.1: - resolution: {integrity: sha512-A4XYsc37dsBaNOgEjkJKzfJlE394IMmUPlI/p3TTI9u3T+2a+eox5Pr/CPUqF0eszeWZJPAc6QkroAhuUpWDJQ==} - dev: false - /remote-git-tags@3.0.0: resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==} engines: {node: '>=8'} @@ -8629,16 +6696,7 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: - is-core-module: 2.13.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - dependencies: - is-core-module: 2.13.0 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -8692,44 +6750,6 @@ packages: glob: 10.3.10 dev: true - /rollup-plugin-terser@7.0.2(rollup@2.79.1): - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - peerDependencies: - rollup: ^2.0.0 - dependencies: - '@babel/code-frame': 7.22.13 - jest-worker: 26.6.2 - rollup: 2.79.1 - serialize-javascript: 4.0.0 - terser: 5.21.0 - dev: true - - /rollup-plugin-visualizer@5.9.2(rollup@2.79.1): - resolution: {integrity: sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - open: 8.4.2 - picomatch: 2.3.1 - rollup: 2.79.1 - source-map: 0.7.4 - yargs: 17.7.2 - dev: true - - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: true - /rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -8751,20 +6771,12 @@ packages: queue-microtask: 1.2.3 dev: true - /rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - dev: false - - /s.color@0.0.15: - resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - dev: true - /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -8776,8 +6788,8 @@ packages: /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-regex: 1.1.4 dev: true @@ -8789,15 +6801,12 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - /sass-formatter@0.7.8: - resolution: {integrity: sha512-7fI2a8THglflhhYis7k06eUf92VQuJoXzEs2KRP0r1bluFxKFvLx0Ns7c478oYGM0fPfrr846ZRWVi2MAgHt9Q==} - dependencies: - suf-log: 2.5.3 + requiresBuild: true dev: true + optional: true - /sass@1.69.3: - resolution: {integrity: sha512-X99+a2iGdXkdWn1akFPs0ZmelUzyAQfvqYc2P/MPTrJRuIRoTffGzT9W9nFqG00S+c8hXzVmgxhUuHFdrwxkhQ==} + /sass@1.69.5: + resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -8806,6 +6815,10 @@ packages: source-map-js: 1.0.2 dev: true + /search-insights@2.10.0: + resolution: {integrity: sha512-pQGrOE56QuTRmq4NzliRZe9rv914hBMBjOviuDliDHoIhmBGoyZRlFsPd4RprGGNC4PKdD2Jz54YN4Cmkb44mA==} + dev: true + /seemly@0.3.6: resolution: {integrity: sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==} dev: false @@ -8825,6 +6838,11 @@ packages: resolution: {integrity: sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==} dev: true + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -8838,23 +6856,27 @@ packages: lru-cache: 6.0.0 dev: true - /serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - dependencies: - randombytes: 2.1.0 - dev: true - /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 + define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.1 dev: true /set-value@2.0.1: @@ -8867,6 +6889,13 @@ packages: split-string: 3.1.0 dev: true + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -8874,17 +6903,36 @@ packages: shebang-regex: 3.0.0 dev: true + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: true + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: true + + /shiki@0.14.5: + resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==} + dependencies: + ansi-sequence-parser: 1.1.1 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + dev: true + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -8915,8 +6963,25 @@ packages: requiresBuild: true dev: true - /simple-statistics@6.1.1: - resolution: {integrity: sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA==} + /simplebar-core@1.2.4: + resolution: {integrity: sha512-P+Sqshef4fq3++gQ82TgNYcgl3qZFSCP5jS2/8NMmw18oagXOijMzs1G+vm6RUY3oMvpwH3wGoqh9u6SyDjHfQ==} + dependencies: + '@types/lodash-es': 4.17.11 + can-use-dom: 0.1.0 + lodash: 4.17.21 + lodash-es: 4.17.21 + dev: false + + /simplebar-vue@2.3.3(vue@3.3.8): + resolution: {integrity: sha512-srx6us5Dk6jTU7+Pk+X1DfUqa2ZGeT/LXJGp3j6VuMyK16h20sxtMk//jYrN5E8BxvfkakOj8HodGH1JQpAE7Q==} + peerDependencies: + vue: '>=2.5.17' + dependencies: + simplebar-core: 1.2.4 + vue: 3.3.8(typescript@5.2.2) + vue-demi: 0.13.11(vue@3.3.8) + transitivePeerDependencies: + - '@vue/composition-api' dev: false /sirv@2.0.3: @@ -8982,30 +7047,6 @@ packages: - supports-color dev: true - /socket.io-client@4.7.2: - resolution: {integrity: sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==} - engines: {node: '>=10.0.0'} - dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 - engine.io-client: 6.5.2 - socket.io-parser: 4.2.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: false - - /socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} - dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: false - /socks-proxy-agent@7.0.0: resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} engines: {node: '>= 10'} @@ -9025,10 +7066,6 @@ packages: smart-buffer: 4.2.0 dev: true - /sortablejs@1.14.0: - resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==} - dev: false - /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -9066,23 +7103,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - dev: true - - /source-map@0.8.0-beta.0: - resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} - engines: {node: '>= 8'} - dependencies: - whatwg-url: 7.1.0 - dev: true - - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - dev: true - /spawn-please@2.0.2: resolution: {integrity: sha512-KM8coezO6ISQ89c1BzyWNtcn2V2kAVtwIXd3cN/V5a0xPYc1F/vydrRc01wsKFEQ/p+V1a4sw4z2yMITIXrgGw==} engines: {node: '>=14'} @@ -9126,6 +7146,13 @@ packages: minipass: 7.0.4 dev: true + /ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + dev: true + /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' @@ -9139,11 +7166,6 @@ packages: object-copy: 0.1.0 dev: true - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - dev: true - /strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} engines: {node: '>=0.10.0'} @@ -9172,43 +7194,38 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + /string.prototype.padend@3.1.5: + resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 - get-intrinsic: 1.2.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 + es-abstract: 1.22.3 dev: true /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.3 dev: true /string_decoder@1.3.0: @@ -9217,15 +7234,6 @@ packages: safe-buffer: 5.2.1 dev: true - /stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} - dependencies: - get-own-enumerable-property-symbols: 3.0.2 - is-obj: 1.0.1 - is-regexp: 1.0.0 - dev: true - /strip-ansi@3.0.1: resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} @@ -9252,11 +7260,6 @@ packages: engines: {node: '>=4'} dev: true - /strip-comments@2.0.1: - resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} - engines: {node: '>=10'} - dev: true - /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -9282,18 +7285,6 @@ packages: engines: {node: '>=14.16'} dev: true - /style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} - dependencies: - inline-style-parser: 0.1.1 - dev: true - - /suf-log@2.5.3: - resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} - dependencies: - s.color: 0.0.15 - dev: true - /supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} @@ -9325,42 +7316,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-eslint-parser@0.33.1(svelte@4.2.1): - resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 - peerDependenciesMeta: - svelte: - optional: true - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.4.31 - postcss-scss: 4.0.9(postcss@8.4.31) - svelte: 4.2.1 - dev: true - - /svelte@4.2.1: - resolution: {integrity: sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==} - engines: {node: '>=16'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.19 - acorn: 8.10.0 - aria-query: 5.3.0 - axobject-query: 3.2.1 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.2 - locate-character: 3.0.0 - magic-string: 0.30.5 - periscopic: 3.1.0 - dev: true - /svg-baker@1.7.0: resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} dependencies: @@ -9399,11 +7354,6 @@ packages: stable: 0.1.8 dev: true - /swiper@10.3.1: - resolution: {integrity: sha512-24Wk3YUdZHxjc9faID97GTu6xnLNia+adMt6qMTZG/HgdSUt4fS0REsGUXJOgpTED0Amh/j+gRGQxsLayJUlBQ==} - engines: {node: '>= 4.7.0'} - dev: false - /synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} @@ -9412,6 +7362,10 @@ packages: tslib: 2.6.2 dev: true + /tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + dev: true + /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -9429,32 +7383,6 @@ packages: yallist: 4.0.0 dev: true - /temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} - dev: true - - /tempy@0.6.0: - resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} - engines: {node: '>=10'} - dependencies: - is-stream: 2.0.1 - temp-dir: 2.0.0 - type-fest: 0.16.0 - unique-string: 2.0.0 - dev: true - - /terser@5.21.0: - resolution: {integrity: sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.10.0 - commander: 2.20.3 - source-map-support: 0.5.21 - dev: true - /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true @@ -9508,24 +7436,11 @@ packages: resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} dev: true - /topojson-client@3.1.0: - resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==} - hasBin: true - dependencies: - commander: 2.20.3 - dev: false - /totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} dev: true - /tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - dependencies: - punycode: 2.3.0 - dev: true - /traverse@0.6.7: resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} dev: true @@ -9552,26 +7467,8 @@ packages: strip-bom: 3.0.0 dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: false - - /tslib@2.3.0: - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} - dev: false - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - /tsx@3.13.0: - resolution: {integrity: sha512-rjmRpTu3as/5fjNq/kOkOtihgLxuIz6pbKdj9xwP4J5jOLkBxw/rjN5ANw+KyrrOXV5uB7HC8+SrrSJxT65y+A==} - hasBin: true - dependencies: - esbuild: 0.18.20 - get-tsconfig: 4.7.2 - source-map-support: 0.5.21 - optionalDependencies: - fsevents: 2.3.3 dev: true /tuf-js@1.1.7: @@ -9592,16 +7489,6 @@ packages: prelude-ls: 1.2.1 dev: true - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest@0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} - engines: {node: '>=10'} - dev: true - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -9617,20 +7504,12 @@ packages: engines: {node: '>=12.20'} dev: true - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: false - - /type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - dev: false - /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 is-typed-array: 1.1.12 dev: true @@ -9638,7 +7517,7 @@ packages: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -9649,7 +7528,7 @@ packages: engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 @@ -9658,11 +7537,31 @@ packages: /typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 dev: true + /typed-css-modules@0.8.1: + resolution: {integrity: sha512-OhM5FntBI+BvwXHvnApyzUYxFLEU2qxta24FPmz00Qp2nPQsdl+TB7a3vvGa89Z8ug1E2bqIOkSPA3iUaT3UGw==} + engines: {node: '>=18.0.0'} + hasBin: true + dependencies: + camelcase: 6.3.0 + chalk: 4.1.2 + chokidar: 3.5.3 + glob: 10.3.10 + icss-replace-symbols: 1.1.0 + is-there: 4.5.1 + mkdirp: 3.0.1 + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) + yargs: 17.7.2 + dev: true + /typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: @@ -9674,18 +7573,13 @@ packages: engines: {node: '>=14.17'} hasBin: true - /ua-parser-js@1.0.36: - resolution: {integrity: sha512-znuyCIXzl8ciS3+y3fHJI/2OhQIXbXw9MWC/o3qwyR+RGppjZHrM27CGFSKCJXi2Kctiz537iOu2KnXs1lMQhw==} - dev: false - - /ufo@1.3.1: - resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} - dev: true + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.5 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -9695,36 +7589,13 @@ packages: resolution: {integrity: sha512-bV/nqePAKv71v3HdVUn6UefbsDKQWRX+bJIkiSm0+twIds6WiD2bJLWWT3i214+J/B4edufZpG2w7Y63Vbwxow==} dependencies: '@antfu/utils': 0.7.6 - defu: 6.1.2 - jiti: 1.20.0 + defu: 6.1.3 + jiti: 1.21.0 mlly: 1.4.2 dev: true - /undici-types@5.25.3: - resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} - dev: true - - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: true - - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: true - - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - dev: true - - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true /union-value@1.0.1: @@ -9737,6 +7608,13 @@ packages: set-value: 2.0.1 dev: true + /unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + unique-slug: 3.0.0 + dev: true + /unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -9744,6 +7622,13 @@ packages: unique-slug: 4.0.0 dev: true + /unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + dev: true + /unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -9751,13 +7636,6 @@ packages: imurmurhash: 0.1.4 dev: true - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: true - /unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} @@ -9765,18 +7643,13 @@ packages: crypto-random-string: 4.0.0 dev: true - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} dev: true - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: true - - /unplugin-icons@0.17.0: - resolution: {integrity: sha512-gMv66eY/Hj64heM55XrfDH3LUCWI51mtkBVUPVl9VkpvLgAYhdVe9nRuzu6p+idmCLSQVq7xiPxQcD4aXCgW5A==} + /unplugin-icons@0.17.4: + resolution: {integrity: sha512-PHLxjBx3ZV8RUBvfMafFl8uWH88jHeZgOijcRpkwgne7y2Ovx7WI0Ltzzw3fjZQ7dGaDhB8udyKVdm9N2S6BIw==} peerDependencies: '@svgr/core': '>=7.0.0' '@svgx/core': ^1.0.1 @@ -9800,13 +7673,13 @@ packages: '@iconify/utils': 2.1.11 debug: 4.3.4 kolorist: 1.8.0 - local-pkg: 0.4.3 + local-pkg: 0.5.0 unplugin: 1.5.0 transitivePeerDependencies: - supports-color dev: true - /unplugin-vue-components@0.25.2(rollup@2.79.1)(vue@3.3.4): + /unplugin-vue-components@0.25.2(vue@3.3.8): resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==} engines: {node: '>=14'} peerDependencies: @@ -9820,16 +7693,16 @@ packages: optional: true dependencies: '@antfu/utils': 0.7.6 - '@rollup/pluginutils': 5.0.5(rollup@2.79.1) + '@rollup/pluginutils': 5.0.5 chokidar: 3.5.3 debug: 4.3.4 - fast-glob: 3.3.1 + fast-glob: 3.3.2 local-pkg: 0.4.3 magic-string: 0.30.5 minimatch: 9.0.3 resolve: 1.22.8 unplugin: 1.5.0 - vue: 3.3.4 + vue: 3.3.8(typescript@5.2.2) transitivePeerDependencies: - rollup - supports-color @@ -9838,7 +7711,7 @@ packages: /unplugin@1.5.0: resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==} dependencies: - acorn: 8.10.0 + acorn: 8.11.2 chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 @@ -9857,11 +7730,6 @@ packages: engines: {node: '>=8'} dev: true - /upath@1.2.0: - resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} - engines: {node: '>=4'} - dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -9896,7 +7764,7 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /urix@0.1.0: @@ -9913,9 +7781,14 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.12 + which-typed-array: 1.1.13 dev: true /validate-npm-package-license@3.0.4: @@ -9937,88 +7810,48 @@ packages: engines: {node: '>= 0.8'} dev: true - /vdirs@0.1.8(vue@3.3.4): + /vdirs@0.1.8(vue@3.3.8): resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} peerDependencies: vue: ^3.0.11 dependencies: evtd: 0.2.4 - vue: 3.3.4 + vue: 3.3.8(typescript@5.2.2) dev: false - /vditor@3.9.6: - resolution: {integrity: sha512-97sPNHnBpfEFnk5WARCpmdKxgUiPtp0/fPLAUmzZ+axFFf7kExWHRNIUO7OTQzEUMJP/rcXESQTlYGhgKYrsOQ==} - dependencies: - diff-match-patch: 1.0.5 - dev: false - - /vite-hot-client@0.2.2(vite@4.4.11): + /vite-hot-client@0.2.2(vite@4.5.0): resolution: {integrity: sha512-iLBQWEJqcEvK1tx2glmQH1tq91zyN9eYC6Sfk+7aRM2he31W/UE4X5yOL4lP/cVQPPparg0ggjHcoNx4x/NNxQ==} peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 dependencies: - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) dev: true - /vite-plugin-compression@0.5.1(vite@4.4.11): - resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - chalk: 4.1.2 - debug: 4.3.4 - fs-extra: 10.1.0 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - transitivePeerDependencies: - - supports-color - dev: true - - /vite-plugin-inspect@0.7.40(rollup@2.79.1)(vite@4.4.11): - resolution: {integrity: sha512-tsfva6MCg0ch6ckReWHvJ/9xf/zjTuJvakONf2qcMBB/iu9JqiRixfxMa/yLGrlNaBe6fUZHOVhtN2Me3Kthow==} + /vite-plugin-inspect@0.7.42(vite@4.5.0): + resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: ^3.1.0 || ^4.0.0 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 peerDependenciesMeta: '@nuxt/kit': optional: true dependencies: '@antfu/utils': 0.7.6 - '@rollup/pluginutils': 5.0.5(rollup@2.79.1) + '@rollup/pluginutils': 5.0.5 debug: 4.3.4 error-stack-parser-es: 0.1.1 fs-extra: 11.1.1 open: 9.1.0 picocolors: 1.0.0 sirv: 2.0.3 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) transitivePeerDependencies: - rollup - supports-color dev: true - /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.4.11): - resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} - engines: {node: '>=12.0.0'} - peerDependencies: - mockjs: '>=1.1.0' - vite: '>=2.0.0' - dependencies: - '@types/mockjs': 1.0.8 - chalk: 4.1.2 - chokidar: 3.5.3 - connect: 3.7.0 - debug: 4.3.4 - esbuild: 0.14.54 - fast-glob: 3.3.1 - mockjs: 1.1.0(patch_hash=zljuuegabo7mnbroxnwxab3e2u) - path-to-regexp: 6.2.1 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - transitivePeerDependencies: - - supports-color - dev: true - - /vite-plugin-progress@0.0.7(vite@4.4.11): + /vite-plugin-progress@0.0.7(vite@4.5.0): resolution: {integrity: sha512-zyvKdcc/X+6hnw3J1HVV1TKrlFKC4Rh8GnDnWG/2qhRXjqytTcM++xZ+SAPnoDsSyWl8O93ymK0wZRgHAoglEQ==} engines: {node: '>=14', pnpm: '>=7.0.0'} peerDependencies: @@ -10027,28 +7860,10 @@ packages: picocolors: 1.0.0 progress: 2.0.3 rd: 2.0.1 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) dev: true - /vite-plugin-pwa@0.16.5(vite@4.4.11)(workbox-build@7.0.0)(workbox-window@7.0.0): - resolution: {integrity: sha512-Ahol4dwhMP2UHPQXkllSlXbihOaDFnvBIDPmAxoSZ1EObBUJGP4CMRyCyAVkIHjd6/H+//vH0DM2ON+XxHr81g==} - engines: {node: '>=16.0.0'} - peerDependencies: - vite: ^3.1.0 || ^4.0.0 - workbox-build: ^7.0.0 - workbox-window: ^7.0.0 - dependencies: - debug: 4.3.4 - fast-glob: 3.3.1 - pretty-bytes: 6.1.1 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - workbox-build: 7.0.0 - workbox-window: 7.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /vite-plugin-svg-icons@2.0.1(vite@4.4.11): + /vite-plugin-svg-icons@2.0.1(vite@4.5.0): resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} peerDependencies: vite: '>=2.0.0' @@ -10061,25 +7876,25 @@ packages: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) transitivePeerDependencies: - supports-color dev: true - /vite-plugin-vue-devtools@1.0.0-rc.5(pug@3.0.2)(rollup@2.79.1)(vite@4.4.11): + /vite-plugin-vue-devtools@1.0.0-rc.5(pug@3.0.2)(vite@4.5.0): resolution: {integrity: sha512-tAckFvkhSVJvqRKglP3bYi5FVGajNs/OJbSCMGxzog6wNin5Fb2RPPt1rsJDXwUJ4hcTY73QqlVO0UjYd1+39w==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 dependencies: - '@vite-plugin-vue-devtools/core': 1.0.0-rc.5(vite@4.4.11) + '@vite-plugin-vue-devtools/core': 1.0.0-rc.5(vite@4.5.0) '@webfansplz/vuedoc-parser': 0.0.4(pug@3.0.2) birpc: 0.2.14 execa: 8.0.1 sirv: 2.0.3 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) - vite-plugin-inspect: 0.7.40(rollup@2.79.1)(vite@4.4.11) - vite-plugin-vue-inspector: 3.7.2(vite@4.4.11) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) + vite-plugin-inspect: 0.7.42(vite@4.5.0) + vite-plugin-vue-inspector: 3.7.2(vite@4.5.0) transitivePeerDependencies: - '@nuxt/kit' - pug @@ -10087,27 +7902,27 @@ packages: - supports-color dev: true - /vite-plugin-vue-inspector@3.7.2(vite@4.4.11): + /vite-plugin-vue-inspector@3.7.2(vite@4.5.0): resolution: {integrity: sha512-PSe/t2RoVzB64Ofuec7W/Z0FuKHzmU7esLrMOGwX+BNyXt8dAMtYbz4wL/TqoH1zVPDdjQecQpM5+K9VnBYpAg==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.23.2) - '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.2) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.2) - '@vue/compiler-dom': 3.3.4 + '@babel/core': 7.23.3 + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.3) + '@vue/compiler-dom': 3.3.8 kolorist: 1.8.0 magic-string: 0.30.5 - vite: 4.4.11(@types/node@20.8.4)(sass@1.69.3) + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) transitivePeerDependencies: - supports-color dev: true - /vite@4.4.11(@types/node@20.8.4)(sass@1.69.3): - resolution: {integrity: sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==} + /vite@4.5.0(@types/node@20.9.0)(sass@1.69.5): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -10134,31 +7949,93 @@ packages: terser: optional: true dependencies: - '@types/node': 20.8.4 + '@types/node': 20.9.0 esbuild: 0.18.20 postcss: 8.4.31 rollup: 3.29.4 - sass: 1.69.3 + sass: 1.69.5 optionalDependencies: fsevents: 2.3.3 dev: true + /vitepress@1.0.0-rc.25(@algolia/client-search@4.20.0)(@types/node@20.9.0)(nprogress@0.2.0)(postcss@5.2.18)(sass@1.69.5)(search-insights@2.10.0)(typescript@5.2.2): + resolution: {integrity: sha512-1dqWiHNThNrVZ08ixmfEDBEH+764KOgnev9oXga/x6cN++Vb9pnuu8p3K6DQP+KZrYcG+WiX7jxal0iSNpAWuQ==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4.3.2 + postcss: ^8.4.31 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + dependencies: + '@docsearch/css': 3.5.2 + '@docsearch/js': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.10.0) + '@types/markdown-it': 13.0.6 + '@vitejs/plugin-vue': 4.3.1(vite@4.5.0)(vue@3.3.8) + '@vue/devtools-api': 6.5.1 + '@vueuse/core': 10.6.1(vue@3.3.8) + '@vueuse/integrations': 10.6.1(focus-trap@7.5.4)(nprogress@0.2.0)(vue@3.3.8) + focus-trap: 7.5.4 + mark.js: 8.11.1 + minisearch: 6.2.0 + postcss: 5.2.18 + shiki: 0.14.5 + vite: 4.5.0(@types/node@20.9.0)(sass@1.69.5) + vue: 3.3.8(typescript@5.2.2) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + dev: true + /void-elements@3.1.0: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} dev: true - /vooks@0.2.12(vue@3.3.4): + /vooks@0.2.12(vue@3.3.8): resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} peerDependencies: vue: ^3.0.0 dependencies: evtd: 0.2.4 - vue: 3.3.4 + vue: 3.3.8(typescript@5.2.2) dev: false - /vue-demi@0.14.5(vue@3.3.4): - resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} + /vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: true + + /vscode-textmate@8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true + + /vue-demi@0.13.11(vue@3.3.8): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -10169,10 +8046,10 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.3.4 + vue: 3.3.8(typescript@5.2.2) dev: false - /vue-demi@0.14.6(vue@3.3.4): + /vue-demi@0.14.6(vue@3.3.8): resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} engines: {node: '>=12'} hasBin: true @@ -10184,17 +8061,16 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.3.4 - dev: false + vue: 3.3.8(typescript@5.2.2) - /vue-eslint-parser@9.3.2(eslint@8.51.0): + /vue-eslint-parser@9.3.2(eslint@8.53.0): resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.51.0 + eslint: 8.53.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -10205,91 +8081,76 @@ packages: - supports-color dev: true - /vue-i18n@9.5.0(vue@3.3.4): - resolution: {integrity: sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg==} + /vue-i18n@9.6.5(vue@3.3.8): + resolution: {integrity: sha512-dpUEjKHg7pEsaS7ZPPxp1CflaR7bGmsvZJEhnszHPKl9OTNyno5j/DvMtMSo41kpddq4felLA7GK2prjpnXVlw==} engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 dependencies: - '@intlify/core-base': 9.5.0 - '@intlify/shared': 9.5.0 + '@intlify/core-base': 9.6.5 + '@intlify/shared': 9.6.5 '@vue/devtools-api': 6.5.1 - vue: 3.3.4 + vue: 3.3.8(typescript@5.2.2) dev: false - /vue-router@4.2.5(vue@3.3.4): + /vue-router@4.2.5(vue@3.3.8): resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.5.1 - vue: 3.3.4 + vue: 3.3.8(typescript@5.2.2) dev: false - /vue-template-compiler@2.7.14: - resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + /vue-template-compiler@2.7.15: + resolution: {integrity: sha512-yQxjxMptBL7UAog00O8sANud99C6wJF+7kgbcwqkvA38vCGF7HWE66w0ZFnS/kX5gSoJr/PQ4/oS3Ne2pW37Og==} dependencies: de-indent: 1.0.2 he: 1.2.0 dev: true - /vue-tsc@1.8.19(typescript@5.2.2): - resolution: {integrity: sha512-tacMQLQ0CXAfbhRycCL5sWIy1qujXaIEtP1hIQpzHWOUuICbtTj9gJyFf91PvzG5KCNIkA5Eg7k2Fmgt28l5DQ==} + /vue-tsc@1.8.22(typescript@5.2.2): + resolution: {integrity: sha512-j9P4kHtW6eEE08aS5McFZE/ivmipXy0JzrnTgbomfABMaVKx37kNBw//irL3+LlE3kOo63XpnRigyPC3w7+z+A==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.19(typescript@5.2.2) - '@vue/typescript': 1.8.19(typescript@5.2.2) + '@volar/typescript': 1.10.10 + '@vue/language-core': 1.8.22(typescript@5.2.2) semver: 7.5.4 typescript: 5.2.2 dev: true - /vue@3.3.4: - resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} - dependencies: - '@vue/compiler-dom': 3.3.4 - '@vue/compiler-sfc': 3.3.4 - '@vue/runtime-dom': 3.3.4 - '@vue/server-renderer': 3.3.4(vue@3.3.4) - '@vue/shared': 3.3.4 - - /vuedraggable@4.1.0(vue@3.3.4): - resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} + /vue@3.3.8(typescript@5.2.2): + resolution: {integrity: sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==} peerDependencies: - vue: ^3.0.1 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - sortablejs: 1.14.0 - vue: 3.3.4 - dev: false + '@vue/compiler-dom': 3.3.8 + '@vue/compiler-sfc': 3.3.8 + '@vue/runtime-dom': 3.3.8 + '@vue/server-renderer': 3.3.8(vue@3.3.8) + '@vue/shared': 3.3.8 + typescript: 5.2.2 - /vueuc@0.4.51(vue@3.3.4): + /vueuc@0.4.51(vue@3.3.8): resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==} peerDependencies: vue: ^3.0.11 dependencies: - '@css-render/vue3-ssr': 0.15.12(vue@3.3.4) + '@css-render/vue3-ssr': 0.15.12(vue@3.3.8) '@juggle/resize-observer': 3.4.0 css-render: 0.15.12 evtd: 0.2.4 seemly: 0.3.6 - vdirs: 0.1.8(vue@3.3.4) - vooks: 0.2.12(vue@3.3.4) - vue: 3.3.4 + vdirs: 0.1.8(vue@3.3.8) + vooks: 0.2.12(vue@3.3.8) + vue: 3.3.8(typescript@5.2.2) dev: false - /wangeditor@4.7.15: - resolution: {integrity: sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==} - dependencies: - '@babel/runtime': 7.23.2 - '@babel/runtime-corejs3': 7.23.2 - tslib: 2.6.2 - dev: false - - /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true - /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} @@ -10299,14 +8160,6 @@ packages: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} dev: true - /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} - dependencies: - lodash.sortby: 4.7.0 - tr46: 1.0.1 - webidl-conversions: 4.0.2 - dev: true - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -10317,44 +8170,24 @@ packages: is-symbol: 1.0.4 dev: true - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.11 - dev: true - - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 - dev: true - - /which-typed-array@1.1.11: - resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.5 - call-bind: 1.0.2 + call-bind: 1.0.5 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 dev: true + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -10388,162 +8221,12 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true - /wolfy87-eventemitter@5.2.9: - resolution: {integrity: sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw==} - dev: false - - /workbox-background-sync@7.0.0: - resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} - dependencies: - idb: 7.1.1 - workbox-core: 7.0.0 - dev: true - - /workbox-broadcast-update@7.0.0: - resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} - dependencies: - workbox-core: 7.0.0 - dev: true - - /workbox-build@7.0.0: - resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} - engines: {node: '>=16.0.0'} - dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.23.2 - '@babel/preset-env': 7.23.2(@babel/core@7.23.2) - '@babel/runtime': 7.23.2 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.2)(rollup@2.79.1) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) - '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) - '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.12.0 - common-tags: 1.8.2 - fast-json-stable-stringify: 2.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - lodash: 4.17.21 - pretty-bytes: 5.6.0 - rollup: 2.79.1 - rollup-plugin-terser: 7.0.2(rollup@2.79.1) - source-map: 0.8.0-beta.0 - stringify-object: 3.3.0 - strip-comments: 2.0.1 - tempy: 0.6.0 - upath: 1.2.0 - workbox-background-sync: 7.0.0 - workbox-broadcast-update: 7.0.0 - workbox-cacheable-response: 7.0.0 - workbox-core: 7.0.0 - workbox-expiration: 7.0.0 - workbox-google-analytics: 7.0.0 - workbox-navigation-preload: 7.0.0 - workbox-precaching: 7.0.0 - workbox-range-requests: 7.0.0 - workbox-recipes: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 - workbox-streams: 7.0.0 - workbox-sw: 7.0.0 - workbox-window: 7.0.0 - transitivePeerDependencies: - - '@types/babel__core' - - supports-color - dev: true - - /workbox-cacheable-response@7.0.0: - resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} - dependencies: - workbox-core: 7.0.0 - dev: true - - /workbox-core@7.0.0: - resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} - dev: true - - /workbox-expiration@7.0.0: - resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} - dependencies: - idb: 7.1.1 - workbox-core: 7.0.0 - dev: true - - /workbox-google-analytics@7.0.0: - resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} - dependencies: - workbox-background-sync: 7.0.0 - workbox-core: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 - dev: true - - /workbox-navigation-preload@7.0.0: - resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} - dependencies: - workbox-core: 7.0.0 - dev: true - - /workbox-precaching@7.0.0: - resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} - dependencies: - workbox-core: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 - dev: true - - /workbox-range-requests@7.0.0: - resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} - dependencies: - workbox-core: 7.0.0 - dev: true - - /workbox-recipes@7.0.0: - resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} - dependencies: - workbox-cacheable-response: 7.0.0 - workbox-core: 7.0.0 - workbox-expiration: 7.0.0 - workbox-precaching: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 - dev: true - - /workbox-routing@7.0.0: - resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} - dependencies: - workbox-core: 7.0.0 - dev: true - - /workbox-strategies@7.0.0: - resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} - dependencies: - workbox-core: 7.0.0 - dev: true - - /workbox-streams@7.0.0: - resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} - dependencies: - workbox-core: 7.0.0 - workbox-routing: 7.0.0 - dev: true - - /workbox-sw@7.0.0: - resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} - dev: true - - /workbox-window@7.0.0: - resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} - dependencies: - '@types/trusted-types': 2.0.4 - workbox-core: 7.0.0 - dev: true - /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -10575,56 +8258,16 @@ packages: typedarray-to-buffer: 3.1.5 dev: true - /ws@8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - /xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} engines: {node: '>=12'} dev: true - /xgplayer-subtitles@3.0.9(core-js@3.33.0): - resolution: {integrity: sha512-FPD9lQ4BKixm3AKRFWpUAlEpEcHpz1tG2Y+k/CtfzwMEDGKK9fjRlxZ+ZRB2A4f2IXkT+OInbZbrDvgjdproSQ==} - peerDependencies: - core-js: '>=3.12.1' - dependencies: - core-js: 3.33.0 - eventemitter3: 4.0.7 - dev: false - - /xgplayer@3.0.9(core-js@3.33.0): - resolution: {integrity: sha512-0Wz8B6NOQT+vSo+at64hHtR+fCtYwv44kMt5EM4w1O1Ok3KTBpL5Z6e/JTnkSkiC3MNsmbd4ZHayFdlaEGbxyg==} - peerDependencies: - core-js: '>=3.12.1' - dependencies: - core-js: 3.33.0 - danmu.js: 1.1.13 - delegate: 3.2.0 - downloadjs: 1.4.7 - eventemitter3: 4.0.7 - xgplayer-subtitles: 3.0.9(core-js@3.33.0) - dev: false - /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} dev: true - /xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} - engines: {node: '>=0.4.0'} - dev: false - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -10638,13 +8281,8 @@ packages: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} dev: true @@ -10670,9 +8308,3 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - - /zrender@5.4.4: - resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==} - dependencies: - tslib: 2.3.0 - dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..dee51e92 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - "packages/*" diff --git a/scripts/logo.ts b/scripts/logo.ts deleted file mode 100644 index 4edf7c4a..00000000 --- a/scripts/logo.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { readFile, writeFile } from 'fs/promises'; -import themeSettings from '../src/settings/theme.json'; - -async function updateFavicon(svgPath: string, color: string) { - const svgStr = await readFile(svgPath, 'utf-8'); - - const svgStrWithColor = svgStr.replace(/currentColor/g, color); - - await writeFile('./public/favicon.svg', svgStrWithColor); -} - -updateFavicon('./src/assets/svg-icon/logo.svg', themeSettings.themeColor); diff --git a/src/App.vue b/src/App.vue index a801c855..766aa80b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,26 +1,40 @@ - - + + diff --git a/src/assets/fonts/aguazyuan-bold.ttf b/src/assets/fonts/aguazyuan-bold.ttf deleted file mode 100644 index d9bd718d..00000000 Binary files a/src/assets/fonts/aguazyuan-bold.ttf and /dev/null differ diff --git a/src/assets/fonts/aguazyuan-light.ttf b/src/assets/fonts/aguazyuan-light.ttf deleted file mode 100644 index 85e2e5de..00000000 Binary files a/src/assets/fonts/aguazyuan-light.ttf and /dev/null differ diff --git a/src/assets/fonts/aguazyuan-regular.ttf b/src/assets/fonts/aguazyuan-regular.ttf deleted file mode 100644 index f01c6fe0..00000000 Binary files a/src/assets/fonts/aguazyuan-regular.ttf and /dev/null differ diff --git a/src/assets/svg-icon/expectation.svg b/src/assets/svg-icon/expectation.svg new file mode 100644 index 00000000..1d87d5e5 --- /dev/null +++ b/src/assets/svg-icon/expectation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg-icon/logo-fill.svg b/src/assets/svg-icon/logo-fill.svg deleted file mode 100644 index 4ceed1e5..00000000 --- a/src/assets/svg-icon/logo-fill.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/components/business/loading-empty-wrapper.vue b/src/components/business/loading-empty-wrapper.vue deleted file mode 100644 index 6c49aac2..00000000 --- a/src/components/business/loading-empty-wrapper.vue +++ /dev/null @@ -1,97 +0,0 @@ - - - - - diff --git a/src/components/business/login-agreement.vue b/src/components/business/login-agreement.vue deleted file mode 100644 index 60408ee5..00000000 --- a/src/components/business/login-agreement.vue +++ /dev/null @@ -1,50 +0,0 @@ - - - - - diff --git a/src/components/common/app-loading.vue b/src/components/common/app-loading.vue index f81875f7..b4eba669 100644 --- a/src/components/common/app-loading.vue +++ b/src/components/common/app-loading.vue @@ -1,6 +1,30 @@ + + - - diff --git a/src/components/common/app-provider.vue b/src/components/common/app-provider.vue new file mode 100644 index 00000000..7515b2a9 --- /dev/null +++ b/src/components/common/app-provider.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/src/components/common/dark-mode-container.vue b/src/components/common/dark-mode-container.vue index 5bb8714f..70f452ff 100644 --- a/src/components/common/dark-mode-container.vue +++ b/src/components/common/dark-mode-container.vue @@ -1,12 +1,3 @@ - - + + diff --git a/src/components/common/dark-mode-switch.vue b/src/components/common/dark-mode-switch.vue deleted file mode 100644 index fc14db10..00000000 --- a/src/components/common/dark-mode-switch.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - - diff --git a/src/components/common/exception-base.vue b/src/components/common/exception-base.vue index 78744caf..aba769a2 100644 --- a/src/components/common/exception-base.vue +++ b/src/components/common/exception-base.vue @@ -1,31 +1,41 @@ - - + + diff --git a/src/components/common/full-screen.vue b/src/components/common/full-screen.vue new file mode 100644 index 00000000..41c1c562 --- /dev/null +++ b/src/components/common/full-screen.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/components/common/hover-container.vue b/src/components/common/hover-container.vue deleted file mode 100644 index 1d198e23..00000000 --- a/src/components/common/hover-container.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/src/components/common/lang-switch.vue b/src/components/common/lang-switch.vue new file mode 100644 index 00000000..520a8907 --- /dev/null +++ b/src/components/common/lang-switch.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/common/menu-toggler.vue b/src/components/common/menu-toggler.vue new file mode 100644 index 00000000..37d85963 --- /dev/null +++ b/src/components/common/menu-toggler.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/components/common/naive-provider.vue b/src/components/common/naive-provider.vue deleted file mode 100644 index 47bf8460..00000000 --- a/src/components/common/naive-provider.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - diff --git a/src/components/common/pin-toggler.vue b/src/components/common/pin-toggler.vue new file mode 100644 index 00000000..7a20c8e0 --- /dev/null +++ b/src/components/common/pin-toggler.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/src/components/common/reload-button.vue b/src/components/common/reload-button.vue new file mode 100644 index 00000000..2881d03c --- /dev/null +++ b/src/components/common/reload-button.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/src/components/common/system-logo.vue b/src/components/common/system-logo.vue index 5450c321..7f23cc1a 100644 --- a/src/components/common/system-logo.vue +++ b/src/components/common/system-logo.vue @@ -1,19 +1,9 @@ - - + + diff --git a/src/components/common/theme-schema-switch.vue b/src/components/common/theme-schema-switch.vue new file mode 100644 index 00000000..59e6f48c --- /dev/null +++ b/src/components/common/theme-schema-switch.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/components/custom/better-scroll.vue b/src/components/custom/better-scroll.vue index 9deb46fa..d2d557e2 100644 --- a/src/components/custom/better-scroll.vue +++ b/src/components/custom/better-scroll.vue @@ -1,11 +1,3 @@ - - + + diff --git a/src/components/custom/button-icon.vue b/src/components/custom/button-icon.vue new file mode 100644 index 00000000..7c4919d2 --- /dev/null +++ b/src/components/custom/button-icon.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/src/components/custom/count-to.vue b/src/components/custom/count-to.vue deleted file mode 100644 index e5aba83e..00000000 --- a/src/components/custom/count-to.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - - diff --git a/src/components/custom/github-link.vue b/src/components/custom/github-link.vue deleted file mode 100644 index c7f7e016..00000000 --- a/src/components/custom/github-link.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/components/custom/icon-select.vue b/src/components/custom/icon-select.vue deleted file mode 100644 index 454501f3..00000000 --- a/src/components/custom/icon-select.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - - - diff --git a/src/components/custom/image-verify.vue b/src/components/custom/image-verify.vue deleted file mode 100644 index 6e2cc134..00000000 --- a/src/components/custom/image-verify.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/src/components/custom/look-forward.vue b/src/components/custom/look-forward.vue new file mode 100644 index 00000000..7c0db0bf --- /dev/null +++ b/src/components/custom/look-forward.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/custom/svg-icon.vue b/src/components/custom/svg-icon.vue index 500244a0..503d0cfe 100644 --- a/src/components/custom/svg-icon.vue +++ b/src/components/custom/svg-icon.vue @@ -1,14 +1,3 @@ - - + + diff --git a/src/components/custom/wave-bg.vue b/src/components/custom/wave-bg.vue new file mode 100644 index 00000000..2b7d0352 --- /dev/null +++ b/src/components/custom/wave-bg.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/src/components/custom/web-site-link.vue b/src/components/custom/web-site-link.vue deleted file mode 100644 index dd406741..00000000 --- a/src/components/custom/web-site-link.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/src/composables/echarts.ts b/src/composables/echarts.ts deleted file mode 100644 index 981016cf..00000000 --- a/src/composables/echarts.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { nextTick, effectScope, onScopeDispose, ref, watch } from 'vue'; -import type { ComputedRef, Ref } from 'vue'; -import * as echarts from 'echarts/core'; -import { BarChart, GaugeChart, LineChart, PictorialBarChart, PieChart, RadarChart, ScatterChart } from 'echarts/charts'; -import type { - BarSeriesOption, - GaugeSeriesOption, - LineSeriesOption, - PictorialBarSeriesOption, - PieSeriesOption, - RadarSeriesOption, - ScatterSeriesOption -} from 'echarts/charts'; -import { - DatasetComponent, - GridComponent, - LegendComponent, - TitleComponent, - ToolboxComponent, - TooltipComponent, - TransformComponent -} from 'echarts/components'; -import type { - DatasetComponentOption, - GridComponentOption, - LegendComponentOption, - TitleComponentOption, - ToolboxComponentOption, - TooltipComponentOption -} from 'echarts/components'; -import { LabelLayout, UniversalTransition } from 'echarts/features'; -import { CanvasRenderer } from 'echarts/renderers'; -import { useElementSize } from '@vueuse/core'; -import { useThemeStore } from '@/store'; - -export type ECOption = echarts.ComposeOption< - | BarSeriesOption - | LineSeriesOption - | PieSeriesOption - | ScatterSeriesOption - | PictorialBarSeriesOption - | RadarSeriesOption - | GaugeSeriesOption - | TitleComponentOption - | LegendComponentOption - | TooltipComponentOption - | GridComponentOption - | ToolboxComponentOption - | DatasetComponentOption ->; - -echarts.use([ - TitleComponent, - LegendComponent, - TooltipComponent, - GridComponent, - DatasetComponent, - TransformComponent, - ToolboxComponent, - BarChart, - LineChart, - PieChart, - ScatterChart, - PictorialBarChart, - RadarChart, - GaugeChart, - LabelLayout, - UniversalTransition, - CanvasRenderer -]); - -/** - * Echarts hooks函数 - * @param options - 图表配置 - * @param renderFun - 图表渲染函数(例如:图表监听函数) - * @description 按需引入图表组件,没注册的组件需要先引入 - */ -export function useEcharts( - options: Ref | ComputedRef, - renderFun?: (chartInstance: echarts.ECharts) => void -) { - const theme = useThemeStore(); - - const domRef = ref(); - - const initialSize = { width: 0, height: 0 }; - const { width, height } = useElementSize(domRef, initialSize); - - let chart: echarts.ECharts | null = null; - - function canRender() { - return initialSize.width > 0 && initialSize.height > 0; - } - - function isRendered() { - return Boolean(domRef.value && chart); - } - - function update(updateOptions: ECOption) { - if (isRendered()) { - chart?.clear(); - chart!.setOption({ ...updateOptions, backgroundColor: 'transparent' }); - } - } - - async function render() { - if (domRef.value) { - const chartTheme = theme.darkMode ? 'dark' : 'light'; - await nextTick(); - chart = echarts.init(domRef.value, chartTheme); - if (renderFun) { - renderFun(chart); - } - update(options.value); - } - } - - function resize() { - chart?.resize(); - } - - function destroy() { - chart?.dispose(); - } - - function updateTheme() { - destroy(); - render(); - } - - const scope = effectScope(); - - scope.run(() => { - watch([width, height], ([newWidth, newHeight]) => { - initialSize.width = newWidth; - initialSize.height = newHeight; - if (newWidth === 0 && newHeight === 0) { - // 节点被删除 将chart置为空 - chart = null; - } - if (canRender()) { - if (!isRendered()) { - render(); - } else { - resize(); - } - } - }); - - watch( - options, - newValue => { - update(newValue); - }, - { deep: true } - ); - - watch( - () => theme.darkMode, - () => { - updateTheme(); - } - ); - }); - - onScopeDispose(() => { - destroy(); - scope.stop(); - }); - - return { - domRef - }; -} diff --git a/src/composables/events.ts b/src/composables/events.ts deleted file mode 100644 index c780870a..00000000 --- a/src/composables/events.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { effectScope, onScopeDispose, watch } from 'vue'; -import { useRoute } from 'vue-router'; -import { useEventListener } from '@vueuse/core'; -import { useI18n } from 'vue-i18n'; -import { useTabStore, useThemeStore } from '@/store'; - -/** 全局事件 */ -export function useGlobalEvents() { - const theme = useThemeStore(); - const tab = useTabStore(); - const route = useRoute(); - const { locale, t } = useI18n(); - const scope = effectScope(); - - /** 页面离开时缓存多页签数据 */ - useEventListener(window, 'beforeunload', () => { - theme.cacheThemeSettings(); - tab.cacheTabRoutes(); - }); - - scope.run(() => { - // 国际化切换时更新浏览器标签文本 - watch( - () => locale.value, - () => { - document.title = route.meta.i18nTitle ? t(route.meta.i18nTitle) : route.meta.title; - } - ); - }); - - onScopeDispose(() => { - scope.stop(); - }); -} diff --git a/src/composables/icon.ts b/src/composables/icon.ts deleted file mode 100644 index aa41e339..00000000 --- a/src/composables/icon.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { h } from 'vue'; -import SvgIcon from '@/components/custom/svg-icon.vue'; - -/** - * 图标渲染 - * - 用于vue的render函数 - */ -export const useIconRender = () => { - interface IconConfig { - /** - * 图标名称(iconify图标的名称) - * - 例如:mdi-account 或者 mdi:account - */ - icon?: string; - /** - * 本地svg图标文件名(assets/svg-icon文件夹下) - */ - localIcon?: string; - /** 图标颜色 */ - color?: string; - /** 图标大小 */ - fontSize?: number; - } - - interface IconStyle { - color?: string; - fontSize?: string; - } - - /** - * 图标渲染 - * @param config - * @property icon - 图标名称(iconify图标的名称), 例如:mdi-account 或者 mdi:account - * @property localIcon - 本地svg图标文件名(assets/svg-icon文件夹下) - * @property color - 图标颜色 - * @property fontSize - 图标大小 - */ - const iconRender = (config: IconConfig) => { - const { color, fontSize, icon, localIcon } = config; - - const style: IconStyle = {}; - - if (color) { - style.color = color; - } - if (fontSize) { - style.fontSize = `${fontSize}px`; - } - - if (!icon && !localIcon) { - window.console.warn('没有传递图标名称,请确保给icon或localIcon传递有效值!'); - } - - return () => h(SvgIcon, { icon, localIcon, style }); - }; - - return { - iconRender - }; -}; diff --git a/src/composables/index.ts b/src/composables/index.ts deleted file mode 100644 index 72b8eed5..00000000 --- a/src/composables/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './system'; -export * from './router'; -export * from './layout'; -export * from './events'; -export * from './echarts'; -export * from './icon'; -export * from './websocket'; diff --git a/src/composables/layout.ts b/src/composables/layout.ts deleted file mode 100644 index 0db24db4..00000000 --- a/src/composables/layout.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { computed, watch } from 'vue'; -import { breakpointsTailwind, useBreakpoints } from '@vueuse/core'; -import { useAppStore, useThemeStore } from '@/store'; - -type LayoutMode = 'vertical' | 'horizontal'; -type LayoutHeaderProps = Record; - -export function useBasicLayout() { - const app = useAppStore(); - const theme = useThemeStore(); - const breakpoints = useBreakpoints(breakpointsTailwind); - - const mode = computed(() => { - const vertical: LayoutMode = 'vertical'; - const horizontal: LayoutMode = 'horizontal'; - return theme.layout.mode.includes(vertical) ? vertical : horizontal; - }); - - const isMobile = breakpoints.smaller('sm'); - - const layoutHeaderProps: LayoutHeaderProps = { - vertical: { - showLogo: false, - showHeaderMenu: false, - showMenuCollapse: true - }, - 'vertical-mix': { - showLogo: false, - showHeaderMenu: false, - showMenuCollapse: false - }, - horizontal: { - showLogo: true, - showHeaderMenu: true, - showMenuCollapse: false - }, - 'horizontal-mix': { - showLogo: true, - showHeaderMenu: false, - showMenuCollapse: true - } - }; - - const headerProps = computed(() => layoutHeaderProps[theme.layout.mode]); - - const siderVisible = computed(() => theme.layout.mode !== 'horizontal'); - const siderWidth = computed(() => { - const { width, mixWidth, mixChildMenuWidth } = theme.sider; - const isVerticalMix = theme.layout.mode === 'vertical-mix'; - let w = isVerticalMix ? mixWidth : width; - if (isVerticalMix && app.mixSiderFixed) { - w += mixChildMenuWidth; - } - return w; - }); - const siderCollapsedWidth = computed(() => { - const { collapsedWidth, mixCollapsedWidth, mixChildMenuWidth } = theme.sider; - const isVerticalMix = theme.layout.mode === 'vertical-mix'; - let w = isVerticalMix ? mixCollapsedWidth : collapsedWidth; - if (isVerticalMix && app.mixSiderFixed) { - w += mixChildMenuWidth; - } - return w; - }); - - watch( - isMobile, - newValue => { - if (newValue) { - app.setSiderCollapse(true); - } - }, - { immediate: true } - ); - - return { - mode, - isMobile, - headerProps, - siderVisible, - siderWidth, - siderCollapsedWidth - }; -} diff --git a/src/composables/router.ts b/src/composables/router.ts deleted file mode 100644 index 49c8ac0e..00000000 --- a/src/composables/router.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { useRouter } from 'vue-router'; -import type { RouteLocationRaw } from 'vue-router'; -import { router as globalRouter, routeName } from '@/router'; - -/** - * 路由跳转 - * @param inSetup - 是否在vue页面/组件的setup里面调用,在axios里面无法使用useRouter和useRoute - */ -export function useRouterPush(inSetup = true) { - const router = inSetup ? useRouter() : globalRouter; - const route = globalRouter.currentRoute; - - /** - * 路由跳转 - * @param to - 需要跳转的路由 - * @param newTab - 是否在新的浏览器Tab标签打开 - */ - function routerPush(to: RouteLocationRaw, newTab = false) { - if (newTab) { - const routerData = router.resolve(to); - window.open(routerData.href, '_blank'); - return Promise.resolve(); - } - return router.push(to); - } - - /** 返回上一级路由 */ - function routerBack() { - router.go(-1); - } - - /** - * 跳转首页 - * @param newTab - 在新的浏览器标签打开 - */ - function toHome(newTab = false) { - routerPush({ name: routeName('root') }, newTab); - } - - /** - * 跳转登录页面 - * @param loginModule - 展示的登录模块 - * @param redirectUrl - 重定向地址(登录成功后跳转的地址),默认undefined表示取当前地址为重定向地址 - */ - function toLogin(loginModule?: UnionKey.LoginModule, redirectUrl?: string) { - const module: UnionKey.LoginModule = loginModule || 'pwd-login'; - const routeLocation: RouteLocationRaw = { - name: routeName('login'), - params: { module } - }; - const redirect = redirectUrl || route.value.fullPath; - Object.assign(routeLocation, { query: { redirect } }); - routerPush(routeLocation); - } - - /** - * 登录页切换其他模块 - * @param module - 切换后的登录模块 - */ - function toLoginModule(module: UnionKey.LoginModule) { - const { query } = route.value; - routerPush({ name: routeName('login'), params: { module }, query }); - } - - /** - * 登录成功后跳转重定向的地址 - */ - function toLoginRedirect() { - const { query } = route.value; - if (query?.redirect) { - routerPush(query.redirect as string); - } else { - toHome(); - } - } - - return { - routerPush, - routerBack, - toHome, - toLogin, - toLoginModule, - toLoginRedirect - }; -} diff --git a/src/composables/system.ts b/src/composables/system.ts deleted file mode 100644 index a570234b..00000000 --- a/src/composables/system.ts +++ /dev/null @@ -1,34 +0,0 @@ -import UAParser from 'ua-parser-js'; -import { useAuthStore } from '@/store'; -import { isArray, isString } from '@/utils'; - -/** 获取设备信息 */ -export function useDeviceInfo() { - const parser = new UAParser(); - const result = parser.getResult(); - return result; -} - -/** 权限判断 */ -export function usePermission() { - const auth = useAuthStore(); - - function hasPermission(permission: Auth.RoleType | Auth.RoleType[]) { - const { userRole } = auth.userInfo; - - let has = userRole === 'super'; - if (!has) { - if (isArray(permission)) { - has = (permission as Auth.RoleType[]).includes(userRole); - } - if (isString(permission)) { - has = (permission as Auth.RoleType) === userRole; - } - } - return has; - } - - return { - hasPermission - }; -} diff --git a/src/composables/websocket.ts b/src/composables/websocket.ts deleted file mode 100644 index 0d0e8cc2..00000000 --- a/src/composables/websocket.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { io } from 'socket.io-client'; -import type { Socket } from 'socket.io-client'; -import { useAppStore } from '../store'; - -type ListenEvents = { - update: (id: string, data: { name: string; age: number }) => void; -}; - -type EmitEvents = { - update: (id: string, data: { name: string; age: number }) => void; -}; - -export function useWebsocket() { - const app = useAppStore(); - - const socket: Socket = (app.socket || io('ws://localhost:8080')) as Socket< - ListenEvents, - EmitEvents - >; - - if (!app.socket) { - app.setSocket(socket); - } - - function init() { - window.console.log('[socket.io] connecting...'); - - socket.on('connect', () => { - window.console.log('[socket.io] connected.'); - }); - - socket.on('disconnect', () => { - window.console.log('[socket.io] disconnected.'); - }); - - socket.on('update', (id, data) => { - window.console.log('[socket.io] update', id, data); - }); - } - - function handleUpdate(id: string, data: { name: string; age: number }) { - socket.emit('update', id, data); - } - - init(); - - return { - handleUpdate - }; -} diff --git a/src/config/index.ts b/src/config/index.ts deleted file mode 100644 index 847c47e2..00000000 --- a/src/config/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './service'; -export * from './regexp'; -export * from './map-sdk'; diff --git a/src/config/map-sdk.ts b/src/config/map-sdk.ts deleted file mode 100644 index e4c24179..00000000 --- a/src/config/map-sdk.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** 百度地图sdk地址 */ -export const BAIDU_MAP_SDK_URL = `https://api.map.baidu.com/getscript?v=3.0&ak=KSezYymXPth1DIGILRX3oYN9PxbOQQmU&services=&t=20210201100830&s=1`; - -/** 高德地图sdk地址 */ -export const AMAP_SDK_URL = 'https://webapi.amap.com/maps?v=2.0&key=e7bd02bd504062087e6563daf4d6721d'; - -/** 腾讯地图sdk地址 */ -export const TENCENT_MAP_SDK_URL = 'https://map.qq.com/api/gljs?v=1.exp&key=A6DBZ-KXPLW-JKSRY-ONZF4-CPHY3-K6BL7'; diff --git a/src/config/regexp.ts b/src/config/regexp.ts deleted file mode 100644 index 56909d6f..00000000 --- a/src/config/regexp.ts +++ /dev/null @@ -1,20 +0,0 @@ -/** 手机号码正则 */ -export const REGEXP_PHONE = - /^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/; - -/** 邮箱正则 */ -export const REGEXP_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; - -/** 密码正则(密码为6-18位数字/字符/符号的组合) */ -export const REGEXP_PWD = - /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[()])+$)(?!^.*[\u4E00-\u9FA5].*$)([^(0-9a-zA-Z)]|[()]|[a-z]|[A-Z]|[0-9]){6,18}$/; - -/** 6位数字验证码正则 */ -export const REGEXP_CODE_SIX = /^\d{6}$/; - -/** 4位数字验证码正则 */ -export const REGEXP_CODE_FOUR = /^\d{4}$/; - -/** url链接正则 */ -export const REGEXP_URL = - /(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/; diff --git a/src/config/service.ts b/src/config/service.ts deleted file mode 100644 index f4695463..00000000 --- a/src/config/service.ts +++ /dev/null @@ -1,46 +0,0 @@ -/** 请求超时时间 */ -export const REQUEST_TIMEOUT = 60 * 1000; - -/** 错误信息的显示时间 */ -export const ERROR_MSG_DURATION = 3 * 1000; - -/** 默认的请求错误code */ -export const DEFAULT_REQUEST_ERROR_CODE = 'DEFAULT'; - -/** 默认的请求错误文本 */ -export const DEFAULT_REQUEST_ERROR_MSG = '请求错误~'; - -/** 请求超时的错误code(为固定值:ECONNABORTED) */ -export const REQUEST_TIMEOUT_CODE = 'ECONNABORTED'; - -/** 请求超时的错误文本 */ -export const REQUEST_TIMEOUT_MSG = '请求超时~'; - -/** 网络不可用的code */ -export const NETWORK_ERROR_CODE = 'NETWORK_ERROR'; - -/** 网络不可用的错误文本 */ -export const NETWORK_ERROR_MSG = '网络不可用~'; - -/** 请求不成功各种状态的错误 */ -export const ERROR_STATUS = { - 400: '400: 请求出现语法错误~', - 401: '401: 用户未授权~', - 403: '403: 服务器拒绝访问~', - 404: '404: 请求的资源不存在~', - 405: '405: 请求方法未允许~', - 408: '408: 网络请求超时~', - 500: '500: 服务器内部错误~', - 501: '501: 服务器未实现请求功能~', - 502: '502: 错误网关~', - 503: '503: 服务不可用~', - 504: '504: 网关超时~', - 505: '505: http版本不支持该请求~', - [DEFAULT_REQUEST_ERROR_CODE]: DEFAULT_REQUEST_ERROR_MSG -}; - -/** 不弹出错误信息的code */ -export const NO_ERROR_MSG_CODE: (string | number)[] = []; - -/** token失效需要刷新token的code(这里的66666只是个例子,需要将后端表示token过期的code填进来) */ -export const REFRESH_TOKEN_CODE: (string | number)[] = [66666]; diff --git a/src/constants/_shared.ts b/src/constants/_shared.ts deleted file mode 100644 index 92d009db..00000000 --- a/src/constants/_shared.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function transformObjectToOption(obj: T) { - return Object.entries(obj).map(([value, label]) => ({ - value, - label - })) as Common.OptionWithKey[]; -} diff --git a/src/constants/app.ts b/src/constants/app.ts new file mode 100644 index 00000000..ca4f9276 --- /dev/null +++ b/src/constants/app.ts @@ -0,0 +1,52 @@ +import { transformRecordToOption } from '@/utils/common'; + +export const themeSchemaRecord: Record = { + light: 'theme.themeSchema.light', + dark: 'theme.themeSchema.dark', + auto: 'theme.themeSchema.auto' +}; + +export const themeSchemaOptions = transformRecordToOption(themeSchemaRecord); + +export const loginModuleRecord: Record = { + 'pwd-login': 'page.login.pwdLogin.title', + 'code-login': 'page.login.codeLogin.title', + register: 'page.login.register.title', + 'reset-pwd': 'page.login.resetPwd.title', + 'bind-wechat': 'page.login.bindWeChat.title' +}; + +export const themeLayoutModeRecord: Record = { + vertical: 'theme.layoutMode.vertical', + 'vertical-mix': 'theme.layoutMode.vertical-mix', + horizontal: 'theme.layoutMode.horizontal', + 'horizontal-mix': 'theme.layoutMode.horizontal-mix' +}; + +export const themeLayoutModeOptions = transformRecordToOption(themeLayoutModeRecord); + +export const themeScrollModeRecord: Record = { + wrapper: 'theme.scrollMode.wrapper', + content: 'theme.scrollMode.content' +}; + +export const themeScrollModeOptions = transformRecordToOption(themeScrollModeRecord); + +export const themeTabModeRecord: Record = { + chrome: 'theme.tab.mode.chrome', + button: 'theme.tab.mode.button' +}; + +export const themeTabModeOptions = transformRecordToOption(themeTabModeRecord); + +export const themePageAnimationModeRecord: Record = { + 'fade-slide': 'theme.page.mode.fade-slide', + fade: 'theme.page.mode.fade', + 'fade-bottom': 'theme.page.mode.fade-bottom', + 'fade-scale': 'theme.page.mode.fade-scale', + 'zoom-fade': 'theme.page.mode.zoom-fade', + 'zoom-out': 'theme.page.mode.zoom-out', + none: 'theme.page.mode.none' +}; + +export const themePageAnimationModeOptions = transformRecordToOption(themePageAnimationModeRecord); diff --git a/src/constants/business.ts b/src/constants/business.ts deleted file mode 100644 index 562fd2c0..00000000 --- a/src/constants/business.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { $t } from '@/locales'; -import { transformObjectToOption } from './_shared'; - -export const loginModuleLabels: Record = { - 'pwd-login': $t('page.login.pwdLogin.title'), - 'code-login': $t('page.login.codeLogin.title'), - register: $t('page.login.register.title'), - 'reset-pwd': $t('page.login.resetPwd.title'), - 'bind-wechat': $t('page.login.bindWeChat.title') -}; - -export const userRoleLabels: Record = { - super: $t('page.login.pwdLogin.superAdmin'), - admin: $t('page.login.pwdLogin.admin'), - user: $t('page.login.pwdLogin.user') -}; -export const userRoleOptions = transformObjectToOption(userRoleLabels); - -/** 用户性别 */ -export const genderLabels: Record = { - 0: '女', - 1: '男' -}; -export const genderOptions = transformObjectToOption(genderLabels); - -/** 用户状态 */ -export const userStatusLabels: Record = { - 1: '启用', - 2: '禁用', - 3: '冻结', - 4: '软删除' -}; -export const userStatusOptions = transformObjectToOption(userStatusLabels); diff --git a/src/constants/common.ts b/src/constants/common.ts deleted file mode 100644 index 54ea85ec..00000000 --- a/src/constants/common.ts +++ /dev/null @@ -1,18 +0,0 @@ -export const dataTypeLabels: { [K in TypeUtil.DataTypeStringKey]: TypeUtil.DataTypeString } = { - string: '[object String]', - number: '[object Number]', - boolean: '[object Boolean]', - null: '[object Null]', - undefined: '[object Undefined]', - symbol: '[object Symbol]', - bigInt: '[object BigInt]', - object: '[object Object]', - function: '[object Function]', - array: '[object Array]', - date: '[object Date]', - regExp: '[object RegExp]', - promise: '[object Promise]', - set: '[object Set]', - map: '[object Map]', - file: '[object File]' -}; diff --git a/src/constants/index.ts b/src/constants/index.ts deleted file mode 100644 index d44a269d..00000000 --- a/src/constants/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './common'; -export * from './system'; -export * from './business'; diff --git a/src/constants/reg.ts b/src/constants/reg.ts new file mode 100644 index 00000000..9e5c41b7 --- /dev/null +++ b/src/constants/reg.ts @@ -0,0 +1,34 @@ +export const REG_USER_NAME = /^[\u4e00-\u9fa5a-zA-Z0-9_-]{4,16}$/; + +/** + * phone reg + */ +export const REG_PHONE = + /^[1](([3][0-9])|([4][01456789])|([5][012356789])|([6][2567])|([7][0-8])|([8][0-9])|([9][012356789]))[0-9]{8}$/; + +/** + * password reg + * @description 6-18 characters, including letters, numbers, and underscores + */ +export const REG_PWD = /^\w{6,18}$/; + +/** + * email reg + */ +export const REG_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; + +/** + * six digit code reg + */ +export const REG_CODE_SIX = /^\d{6}$/; + +/** + * four digit code reg + */ +export const REG_CODE_FOUR = /^\d{4}$/; + +/** + * url reg + */ +export const REG_URL = + /(((^https?:(?:\/\/)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=+$,\w]+@)[A-Za-z0-9.-]+)((?:\/[+~%/.\w-_]*)?\??(?:[-+=&;%@.\w_]*)#?(?:[\w]*))?)$/; diff --git a/src/constants/system.ts b/src/constants/system.ts deleted file mode 100644 index 2ebb519c..00000000 --- a/src/constants/system.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { transformObjectToOption } from './_shared'; - -export const themeLayoutModeLabels: Record = { - vertical: '左侧菜单模式', - horizontal: '顶部菜单模式', - 'vertical-mix': '左侧菜单混合模式', - 'horizontal-mix': '顶部菜单混合模式' -}; -export const themeLayoutModeOptions = transformObjectToOption(themeLayoutModeLabels); - -export const themeScrollModeLabels: Record = { - wrapper: '外层滚动', - content: '主体滚动' -}; -export const themeScrollModeOptions = transformObjectToOption(themeScrollModeLabels); - -export const themeTabModeLabels: Record = { - chrome: '谷歌风格', - button: '按钮风格' -}; -export const themeTabModeOptions = transformObjectToOption(themeTabModeLabels); - -export const themeHorizontalMenuPositionLabels: Record = { - 'flex-start': '居左', - center: '居中', - 'flex-end': '居右' -}; -export const themeHorizontalMenuPositionOptions = transformObjectToOption(themeHorizontalMenuPositionLabels); - -export const themeAnimateModeLabels: Record = { - 'zoom-fade': '渐变', - 'zoom-out': '闪现', - 'fade-slide': '滑动', - fade: '消退', - 'fade-bottom': '底部消退', - 'fade-scale': '缩放消退' -}; -export const themeAnimateModeOptions = transformObjectToOption(themeAnimateModeLabels); diff --git a/src/context/demo.ts b/src/context/demo.ts deleted file mode 100644 index c7bc056b..00000000 --- a/src/context/demo.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { ref } from 'vue'; -import type { Ref } from 'vue'; -import { useContext } from '@/hooks'; - -interface DemoContext { - counts: Ref; - setCounts: (count: number) => void; -} - -const { useProvide: useDemoProvide, useInject: useDemoInject } = useContext(); - -export function useDemoContext() { - const counts = ref(0); - - function setCounts(count: number) { - counts.value = count; - } - - const demoContext: DemoContext = { - counts, - setCounts - }; - - function useProvide() { - return useDemoProvide(demoContext); - } - - return { - useProvide, - useInject: useDemoInject - }; -} - -// 示例用法: A.vue为父组件, B.vue为子孙组件 C.vue为子孙组件 -// A.vue -// import { useDemoContext } from '@/context'; -// const { useProvide } = useDemoContext(); -// const { counts, setCounts } = useProvide(); - -// B.vue 和 C.vue : 共享状态 counts -// import { useDemoContext } from '@/context'; -// const { useInject } = useDemoContext(); -// const { counts, setCounts } = useInject(); diff --git a/src/context/index.ts b/src/context/index.ts deleted file mode 100644 index 689b5cbc..00000000 --- a/src/context/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './demo'; diff --git a/src/directives/index.ts b/src/directives/index.ts deleted file mode 100644 index 7b7e7499..00000000 --- a/src/directives/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { App } from 'vue'; -import setupNetworkDirective from './network'; -import setupLoginDirective from './login'; -import setupPermissionDirective from './permission'; - -/** setup custom vue directives. - [安装自定义的vue指令] */ -export function setupDirectives(app: App) { - setupNetworkDirective(app); - setupLoginDirective(app); - setupPermissionDirective(app); -} diff --git a/src/directives/login.ts b/src/directives/login.ts deleted file mode 100644 index 450d78f9..00000000 --- a/src/directives/login.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { App, Directive } from 'vue'; -import { useAuthStore } from '@/store'; -import { useRouterPush } from '@/composables'; - -export default function setupLoginDirective(app: App) { - const auth = useAuthStore(); - const { toLogin } = useRouterPush(false); - function listenerHandler(event: MouseEvent) { - if (!auth.isLogin) { - event.stopPropagation(); - toLogin(); - } - } - - const loginDirective: Directive = { - mounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.addEventListener('click', listenerHandler, { capture: true }); - }, - unmounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.removeEventListener('click', listenerHandler); - } - }; - - app.directive('login', loginDirective); -} diff --git a/src/directives/network.ts b/src/directives/network.ts deleted file mode 100644 index 229b092f..00000000 --- a/src/directives/network.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { App, Directive } from 'vue'; -import { NETWORK_ERROR_MSG } from '@/config'; - -export default function setupNetworkDirective(app: App) { - function listenerHandler(event: MouseEvent) { - const hasNetwork = window.navigator.onLine; - if (!hasNetwork) { - window.$message?.error(NETWORK_ERROR_MSG); - event.stopPropagation(); - } - } - - const networkDirective: Directive = { - mounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.addEventListener('click', listenerHandler, { capture: true }); - }, - unmounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.removeEventListener('click', listenerHandler); - } - }; - - app.directive('network', networkDirective); -} diff --git a/src/directives/permission.ts b/src/directives/permission.ts deleted file mode 100644 index 5585586e..00000000 --- a/src/directives/permission.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { App, Directive } from 'vue'; -import { usePermission } from '@/composables'; - -export default function setupPermissionDirective(app: App) { - const { hasPermission } = usePermission(); - - function updateElVisible(el: HTMLElement, permission: Auth.RoleType | Auth.RoleType[]) { - if (!permission) { - throw new Error(`need roles: like v-permission="'admin'", v-permission="['admin', 'test]"`); - } - if (!hasPermission(permission)) { - el.parentElement?.removeChild(el); - } - } - - const permissionDirective: Directive = { - mounted(el, binding) { - updateElVisible(el, binding.value); - }, - beforeUpdate(el, binding) { - updateElVisible(el, binding.value); - } - }; - - app.directive('permission', permissionDirective); -} diff --git a/src/enum/index.ts b/src/enum/index.ts new file mode 100644 index 00000000..2739b3a4 --- /dev/null +++ b/src/enum/index.ts @@ -0,0 +1,7 @@ +export enum SetupStoreId { + App = 'app-store', + Theme = 'theme-store', + Auth = 'auth-store', + Route = 'route-store', + Tab = 'tab-store' +} diff --git a/src/hooks/business/index.ts b/src/hooks/business/index.ts deleted file mode 100644 index 90e7a332..00000000 --- a/src/hooks/business/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import useCountDown from './use-count-down'; -import useSmsCode from './use-sms-code'; -import useImageVerify from './use-image-verify'; - -export { useCountDown, useSmsCode, useImageVerify }; diff --git a/src/hooks/business/use-count-down.ts b/src/hooks/business/use-count-down.ts deleted file mode 100644 index 2c1903db..00000000 --- a/src/hooks/business/use-count-down.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { computed, onScopeDispose, ref } from 'vue'; -import { useBoolean } from '../common'; - -/** - * 倒计时 - * @param second - 倒计时的时间(s) - */ -export default function useCountDown(second: number) { - if (second <= 0 && second % 1 !== 0) { - throw new Error('倒计时的时间应该为一个正整数!'); - } - const { bool: isComplete, setTrue, setFalse } = useBoolean(false); - - const counts = ref(0); - const isCounting = computed(() => Boolean(counts.value)); - - let intervalId: any; - - /** - * 开始计时 - * @param updateSecond - 更改初时传入的倒计时时间 - */ - function start(updateSecond: number = second) { - if (!counts.value) { - setFalse(); - counts.value = updateSecond; - intervalId = setInterval(() => { - counts.value -= 1; - if (counts.value <= 0) { - clearInterval(intervalId); - setTrue(); - } - }, 1000); - } - } - - /** - * 停止计时 - */ - function stop() { - intervalId = clearInterval(intervalId); - counts.value = 0; - } - - onScopeDispose(stop); - - return { - counts, - isCounting, - start, - stop, - isComplete - }; -} diff --git a/src/hooks/business/use-hook-table.ts b/src/hooks/business/use-hook-table.ts deleted file mode 100644 index 49d43c8a..00000000 --- a/src/hooks/business/use-hook-table.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { ref, reactive } from 'vue'; -import type { Ref } from 'vue'; -import type { PaginationProps, DataTableBaseColumn, DataTableSelectionColumn, DataTableExpandColumn } from 'naive-ui'; -import type { TableColumnGroup } from 'naive-ui/es/data-table/src/interface'; -import { useLoadingEmpty } from '../common'; - -/** - * 接口请求函数 - */ -type ApiFn = (args: T) => Promise>; - -/** - * 接口请求函数的参数 - */ -type GetApiFnParameters = T extends (args: infer P) => Promise> - ? P - : never; - -/** - * 接口请求函数的返回值 - */ -type GetApiFnReturnType = T extends (args: P) => Promise> - ? R - : never; - -/** - * 表格接口请求后转换后的数据 - */ -type Transformer = (response: Response) => { - data: TableData[]; - pageNum: number; - pageSize: number; - total: number; -}; - -/** - * 列表接口参数更新 - */ -type ApiParamsUpdater = (params: P) => R; - -/** - * 分页参数 - */ -type PagePropsOfPagination = Pick; - -/** - * 自定义的列 key - */ -type CustomColumnKey = K | 'action'; - -/** - * 表格的列 - */ -type HookTableColumn> = - | (Omit, 'key'> & { key: CustomColumnKey }) - | (Omit, 'key'> & { key: CustomColumnKey }) - | DataTableSelectionColumn - | DataTableExpandColumn; - -/** - * 表格配置 - */ -type HookTableConfig = { - /** - * 列表接口参数 - */ - apiParams: GetApiFnParameters; - /** - * 列表接口返回数据转换 - */ - transformer: Transformer>; - /** - * 列表列 - */ - columns: () => HookTableColumn[]; - /** - * 列表接口参数更新 - * @description 用于更新分页参数, 如果列表接口的参数不包含同名分页参数属性 `page` 和 `pageSize`, 需要通过此函数更新 - * @default p => p - */ - apiParamsUpdater?: ApiParamsUpdater & Partial, GetApiFnParameters>; - /** - * 列表分页参数 - */ - pagination?: PaginationProps; - /** - * 是否立即请求 - * @default true - */ - immediate?: boolean; -}; - -/** - * 通用表格 hook - * @param apiFn 接口请求函数 - * @param config 表格配置 - */ -export default function useHookTable(apiFn: Fn, config: HookTableConfig) { - const { loading, startLoading, endLoading, empty, setEmpty } = useLoadingEmpty(); - - const { apiParams, transformer, apiParamsUpdater = p => p, immediate = true } = config; - - const data: Ref = ref([]); - - function updateData(update: TableData[]) { - data.value = update; - } - - const columns = ref(config.columns()) as Ref[]>; - - const requestParams = ref(apiParams) as Ref['apiParams']>; - - function updateRequestParamsByPagination(p: PagePropsOfPagination) { - requestParams.value = apiParamsUpdater({ ...requestParams.value, ...p }); - } - - const pagination = reactive({ - page: 1, - pageSize: 10, - showSizePicker: true, - pageSizes: [10, 15, 20, 25, 30], - onChange: (page: number) => { - pagination.page = page; - - updateRequestParamsByPagination({ page }); - getData(); - }, - onUpdatePageSize: (pageSize: number) => { - pagination.pageSize = pageSize; - pagination.page = 1; - - updateRequestParamsByPagination({ pageSize }); - getData(); - }, - ...config.pagination - }) as PaginationProps; - - function updatePagination(update: Partial) { - Object.assign(pagination, update); - - updateRequestParamsByPagination({ page: pagination.page, pageSize: pagination.pageSize }); - } - - async function getData() { - startLoading(); - - const { data: apiData, error } = await apiFn(requestParams.value); - - if (!error && data) { - const { data: tableData, pageNum, pageSize, total } = transformer(apiData); - - updateData(tableData); - - setEmpty(tableData.length === 0); - - updatePagination({ page: pageNum, pageSize, itemCount: total }); - } - - endLoading(); - } - - function reloadColumns() { - columns.value = config.columns(); - } - - if (immediate) { - getData(); - } - - return { - data, - columns, - loading, - empty, - pagination, - getData, - updatePagination, - reloadColumns - }; -} diff --git a/src/hooks/business/use-image-verify.ts b/src/hooks/business/use-image-verify.ts deleted file mode 100644 index 76bc3e62..00000000 --- a/src/hooks/business/use-image-verify.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { onMounted, ref } from 'vue'; - -/** - * 绘制图形验证码 - * @param width - 图形宽度 - * @param height - 图形高度 - */ -export default function useImageVerify(width = 152, height = 40) { - const domRef = ref(); - const imgCode = ref(''); - - function setImgCode(code: string) { - imgCode.value = code; - } - - function getImgCode() { - if (!domRef.value) return; - imgCode.value = draw(domRef.value, width, height); - } - - onMounted(() => { - getImgCode(); - }); - - return { - domRef, - imgCode, - setImgCode, - getImgCode - }; -} - -function randomNum(min: number, max: number) { - const num = Math.floor(Math.random() * (max - min) + min); - return num; -} - -function randomColor(min: number, max: number) { - const r = randomNum(min, max); - const g = randomNum(min, max); - const b = randomNum(min, max); - return `rgb(${r},${g},${b})`; -} - -function draw(dom: HTMLCanvasElement, width: number, height: number) { - let imgCode = ''; - - const NUMBER_STRING = '0123456789'; - - const ctx = dom.getContext('2d'); - if (!ctx) return imgCode; - - ctx.fillStyle = randomColor(180, 230); - ctx.fillRect(0, 0, width, height); - - for (let i = 0; i < 4; i += 1) { - const text = NUMBER_STRING[randomNum(0, NUMBER_STRING.length)]; - imgCode += text; - const fontSize = randomNum(18, 41); - const deg = randomNum(-30, 30); - ctx.font = `${fontSize}px Simhei`; - ctx.textBaseline = 'top'; - ctx.fillStyle = randomColor(80, 150); - ctx.save(); - ctx.translate(30 * i + 23, 15); - ctx.rotate((deg * Math.PI) / 180); - ctx.fillText(text, -15 + 5, -15); - ctx.restore(); - } - for (let i = 0; i < 5; i += 1) { - ctx.beginPath(); - ctx.moveTo(randomNum(0, width), randomNum(0, height)); - ctx.lineTo(randomNum(0, width), randomNum(0, height)); - ctx.strokeStyle = randomColor(180, 230); - ctx.closePath(); - ctx.stroke(); - } - for (let i = 0; i < 41; i += 1) { - ctx.beginPath(); - ctx.arc(randomNum(0, width), randomNum(0, height), 1, 0, 2 * Math.PI); - ctx.closePath(); - ctx.fillStyle = randomColor(150, 200); - ctx.fill(); - } - - return imgCode; -} diff --git a/src/hooks/business/use-sms-code.ts b/src/hooks/business/use-sms-code.ts deleted file mode 100644 index 5102cc0c..00000000 --- a/src/hooks/business/use-sms-code.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { computed } from 'vue'; -import { REGEXP_PHONE } from '@/config'; -import { fetchSmsCode } from '@/service'; -import { useLoading } from '../common'; -import useCountDown from './use-count-down'; - -export default function useSmsCode() { - const { loading, startLoading, endLoading } = useLoading(); - const { counts, start, isCounting } = useCountDown(60); - - const initLabel = '获取验证码'; - const countingLabel = (second: number) => `${second}秒后重新获取`; - const label = computed(() => { - let text = initLabel; - if (loading.value) { - text = ''; - } - if (isCounting.value) { - text = countingLabel(counts.value); - } - return text; - }); - - /** 判断手机号码格式是否正确 */ - function isPhoneValid(phone: string) { - let valid = true; - if (phone.trim() === '') { - window.$message?.error('手机号码不能为空!'); - valid = false; - } else if (!REGEXP_PHONE.test(phone)) { - window.$message?.error('手机号码格式错误!'); - valid = false; - } - return valid; - } - - /** - * 获取短信验证码 - * @param phone - 手机号 - */ - async function getSmsCode(phone: string) { - const valid = isPhoneValid(phone); - if (!valid || loading.value) return; - - startLoading(); - const { data } = await fetchSmsCode(phone); - if (data) { - window.$message?.success('验证码发送成功!'); - start(); - } - endLoading(); - } - - return { - label, - start, - isCounting, - getSmsCode, - loading - }; -} diff --git a/src/hooks/common/form.ts b/src/hooks/common/form.ts new file mode 100644 index 00000000..c93f8539 --- /dev/null +++ b/src/hooks/common/form.ts @@ -0,0 +1,74 @@ +import { ref } from 'vue'; +import type { FormInst } from 'naive-ui'; +import { REG_USER_NAME, REG_PHONE, REG_PWD, REG_CODE_SIX, REG_EMAIL } from '@/constants/reg'; +import { $t } from '@/locales'; + +export function useFormRules() { + const constantRules = { + userName: [ + createRequiredRule($t('form.userName.required')), + { + pattern: REG_USER_NAME, + message: $t('form.userName.invalid'), + trigger: 'change' + } + ], + phone: [ + createRequiredRule($t('form.phone.required')), + { + pattern: REG_PHONE, + message: $t('form.phone.invalid'), + trigger: 'change' + } + ], + pwd: [ + createRequiredRule($t('form.pwd.required')), + { + pattern: REG_PWD, + message: $t('form.pwd.invalid'), + trigger: 'change' + } + ], + code: [ + createRequiredRule($t('form.code.required')), + { + pattern: REG_CODE_SIX, + message: $t('form.code.invalid'), + trigger: 'change' + } + ], + email: [ + createRequiredRule($t('form.email.required')), + { + pattern: REG_EMAIL, + message: $t('form.email.invalid'), + trigger: 'change' + } + ] + } satisfies Record; + + function createRequiredRule(message: string) { + return { + required: true, + message + }; + } + + return { + constantRules, + createRequiredRule + }; +} + +export function useNaiveForm() { + const formRef = ref(null); + + async function validate() { + await formRef.value?.validate(); + } + + return { + formRef, + validate + }; +} diff --git a/src/hooks/common/index.ts b/src/hooks/common/index.ts deleted file mode 100644 index f5629846..00000000 --- a/src/hooks/common/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import useContext from './use-context'; -import useBoolean from './use-boolean'; -import useLoading from './use-loading'; -import useLoadingEmpty from './use-loading-empty'; -import useReload from './use-reload'; - -export { useContext, useBoolean, useLoading, useLoadingEmpty, useReload }; diff --git a/src/hooks/common/router.ts b/src/hooks/common/router.ts new file mode 100644 index 00000000..20a61f2f --- /dev/null +++ b/src/hooks/common/router.ts @@ -0,0 +1,101 @@ +import { useRouter } from 'vue-router'; +import type { RouteLocationRaw } from 'vue-router'; +import type { RouteKey } from '@elegant-router/types'; +import { router as globalRouter } from '@/router'; + +/** + * router push + * @description jump to the specified route, it can replace function router.push + * @param inSetup whether is in vue script setup + */ +export function useRouterPush(inSetup = true) { + const router = inSetup ? useRouter() : globalRouter; + const route = globalRouter.currentRoute; + + const routerPush = router.push; + + const routerBack = router.back; + + interface RouterPushOptions { + query?: Record; + params?: Record; + } + + async function routerPushByKey(key: RouteKey, options?: RouterPushOptions) { + const { query, params } = options || {}; + + const routeLocation: RouteLocationRaw = { + name: key + }; + + if (query) { + routeLocation.query = query; + } + + if (params) { + routeLocation.params = params; + } + + return routerPush(routeLocation); + } + + async function toHome() { + return routerPushByKey('root'); + } + + /** + * navigate to login page + * @param loginModule the login module + * @param redirectUrl the redirect url, if not specified, it will be the current route fullPath + */ + async function toLogin(loginModule?: UnionKey.LoginModule, redirectUrl?: string) { + const module = loginModule || 'pwd-login'; + + const options: RouterPushOptions = { + params: { + module + } + }; + + const redirect = redirectUrl || route.value.fullPath; + + options.query = { + redirect + }; + + return routerPushByKey('login', options); + } + + /** + * toggle login module + * @param module + */ + async function toggleLoginModule(module: UnionKey.LoginModule) { + const query = route.value.query as Record; + + return routerPushByKey('login', { query, params: { module } }); + } + + /** + * redirect from login + */ + async function redirectFromLogin() { + const redirect = route.value.query?.redirect as string; + + if (redirect) { + routerPush(redirect); + } else { + toHome(); + } + } + + return { + route, + routerPush, + routerBack, + routerPushByKey, + toLogin, + toggleLoginModule, + redirectFromLogin + }; +} diff --git a/src/hooks/common/use-context.ts b/src/hooks/common/use-context.ts deleted file mode 100644 index d5dd0df7..00000000 --- a/src/hooks/common/use-context.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { inject, provide } from 'vue'; -import type { InjectionKey } from 'vue'; - -/** 创建共享上下文状态 */ -export default function useContext(contextName = 'context') { - const injectKey: InjectionKey = Symbol(contextName); - - function useProvide(context: T) { - provide(injectKey, context); - return context; - } - - function useInject() { - return inject(injectKey) as T; - } - - return { - useProvide, - useInject - }; -} diff --git a/src/hooks/common/use-loading-empty.ts b/src/hooks/common/use-loading-empty.ts deleted file mode 100644 index 5a52c102..00000000 --- a/src/hooks/common/use-loading-empty.ts +++ /dev/null @@ -1,14 +0,0 @@ -import useBoolean from './use-boolean'; - -export default function useLoadingEmpty(initLoading = false, initEmpty = false) { - const { bool: loading, setTrue: startLoading, setFalse: endLoading } = useBoolean(initLoading); - const { bool: empty, setBool: setEmpty } = useBoolean(initEmpty); - - return { - loading, - startLoading, - endLoading, - empty, - setEmpty - }; -} diff --git a/src/hooks/common/use-reload.ts b/src/hooks/common/use-reload.ts deleted file mode 100644 index 851d9279..00000000 --- a/src/hooks/common/use-reload.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { nextTick } from 'vue'; -import useBoolean from './use-boolean'; - -/** 重载 */ -export default function useReload() { - // 重载的标志 - const { bool: reloadFlag, setTrue, setFalse } = useBoolean(true); - - /** - * 触发重载 - * @param duration - 延迟时间(ms) - */ - async function handleReload(duration = 0) { - setFalse(); - await nextTick(); - - if (duration > 0) { - setTimeout(() => { - setTrue(); - }, duration); - } - } - - return { - reloadFlag, - handleReload - }; -} diff --git a/src/hooks/index.ts b/src/hooks/index.ts deleted file mode 100644 index 5f193c38..00000000 --- a/src/hooks/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './common'; -export * from './business'; diff --git a/src/layouts/base-layout/index.vue b/src/layouts/base-layout/index.vue new file mode 100644 index 00000000..4ffb9ab3 --- /dev/null +++ b/src/layouts/base-layout/index.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/layouts/basic-layout/index.vue b/src/layouts/basic-layout/index.vue deleted file mode 100644 index 6044b9a4..00000000 --- a/src/layouts/basic-layout/index.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/src/layouts/blank-layout/index.vue b/src/layouts/blank-layout/index.vue index 45eece2e..2e393f01 100644 --- a/src/layouts/blank-layout/index.vue +++ b/src/layouts/blank-layout/index.vue @@ -1,11 +1,13 @@ - - + + diff --git a/src/layouts/common/global-content/index.vue b/src/layouts/common/global-content/index.vue deleted file mode 100644 index 0a32bfed..00000000 --- a/src/layouts/common/global-content/index.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-footer/index.vue b/src/layouts/common/global-footer/index.vue deleted file mode 100644 index abd1ef08..00000000 --- a/src/layouts/common/global-footer/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/full-screen.vue b/src/layouts/common/global-header/components/full-screen.vue deleted file mode 100644 index 42b32d49..00000000 --- a/src/layouts/common/global-header/components/full-screen.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/github-site.vue b/src/layouts/common/global-header/components/github-site.vue deleted file mode 100644 index c7c64433..00000000 --- a/src/layouts/common/global-header/components/github-site.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/global-breadcrumb.vue b/src/layouts/common/global-header/components/global-breadcrumb.vue deleted file mode 100644 index 6fa033b1..00000000 --- a/src/layouts/common/global-header/components/global-breadcrumb.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/header-menu.vue b/src/layouts/common/global-header/components/header-menu.vue deleted file mode 100644 index e67550c1..00000000 --- a/src/layouts/common/global-header/components/header-menu.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/index.ts b/src/layouts/common/global-header/components/index.ts deleted file mode 100644 index 3443505e..00000000 --- a/src/layouts/common/global-header/components/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import MenuCollapse from './menu-collapse.vue'; -import GlobalBreadcrumb from './global-breadcrumb.vue'; -import HeaderMenu from './header-menu.vue'; -import GithubSite from './github-site.vue'; -import FullScreen from './full-screen.vue'; -import ThemeMode from './theme-mode.vue'; -import UserAvatar from './user-avatar.vue'; -import SystemMessage from './system-message.vue'; -import SettingButton from './setting-button.vue'; -import ToggleLang from './toggle-lang.vue'; - -export { - MenuCollapse, - GlobalBreadcrumb, - HeaderMenu, - GithubSite, - FullScreen, - ThemeMode, - UserAvatar, - SystemMessage, - SettingButton, - ToggleLang -}; diff --git a/src/layouts/common/global-header/components/menu-collapse.vue b/src/layouts/common/global-header/components/menu-collapse.vue deleted file mode 100644 index ba41254b..00000000 --- a/src/layouts/common/global-header/components/menu-collapse.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/message-list.vue b/src/layouts/common/global-header/components/message-list.vue deleted file mode 100644 index 32c7f845..00000000 --- a/src/layouts/common/global-header/components/message-list.vue +++ /dev/null @@ -1,57 +0,0 @@ - - diff --git a/src/layouts/common/global-header/components/setting-button.vue b/src/layouts/common/global-header/components/setting-button.vue deleted file mode 100644 index 09174c52..00000000 --- a/src/layouts/common/global-header/components/setting-button.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/system-message.vue b/src/layouts/common/global-header/components/system-message.vue deleted file mode 100644 index a80db40d..00000000 --- a/src/layouts/common/global-header/components/system-message.vue +++ /dev/null @@ -1,217 +0,0 @@ - - - - diff --git a/src/layouts/common/global-header/components/theme-mode.vue b/src/layouts/common/global-header/components/theme-mode.vue deleted file mode 100644 index a59eea4e..00000000 --- a/src/layouts/common/global-header/components/theme-mode.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/components/toggle-lang.vue b/src/layouts/common/global-header/components/toggle-lang.vue deleted file mode 100644 index 8e27543f..00000000 --- a/src/layouts/common/global-header/components/toggle-lang.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/src/layouts/common/global-header/components/user-avatar.vue b/src/layouts/common/global-header/components/user-avatar.vue deleted file mode 100644 index 030b55e4..00000000 --- a/src/layouts/common/global-header/components/user-avatar.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-header/index.vue b/src/layouts/common/global-header/index.vue deleted file mode 100644 index 4c66c4c0..00000000 --- a/src/layouts/common/global-header/index.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-logo/index.vue b/src/layouts/common/global-logo/index.vue deleted file mode 100644 index 76aa27e1..00000000 --- a/src/layouts/common/global-logo/index.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-search/components/index.ts b/src/layouts/common/global-search/components/index.ts deleted file mode 100644 index 5fe537f4..00000000 --- a/src/layouts/common/global-search/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import SearchModal from './search-modal.vue'; - -export { SearchModal }; diff --git a/src/layouts/common/global-search/components/search-footer.vue b/src/layouts/common/global-search/components/search-footer.vue deleted file mode 100644 index f198591a..00000000 --- a/src/layouts/common/global-search/components/search-footer.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-search/components/search-modal.vue b/src/layouts/common/global-search/components/search-modal.vue deleted file mode 100644 index b562c77e..00000000 --- a/src/layouts/common/global-search/components/search-modal.vue +++ /dev/null @@ -1,146 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-search/components/search-result.vue b/src/layouts/common/global-search/components/search-result.vue deleted file mode 100644 index 66ab5409..00000000 --- a/src/layouts/common/global-search/components/search-result.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-search/index.vue b/src/layouts/common/global-search/index.vue deleted file mode 100644 index ae625a5a..00000000 --- a/src/layouts/common/global-search/index.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-sider/components/index.ts b/src/layouts/common/global-sider/components/index.ts deleted file mode 100644 index 3e7b5a66..00000000 --- a/src/layouts/common/global-sider/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import VerticalSider from './vertical-sider/index.vue'; -import VerticalMixSider from './vertical-mix-sider/index.vue'; - -export { VerticalSider, VerticalMixSider }; diff --git a/src/layouts/common/global-sider/components/vertical-mix-sider/components/index.ts b/src/layouts/common/global-sider/components/vertical-mix-sider/components/index.ts deleted file mode 100644 index 5d91cd57..00000000 --- a/src/layouts/common/global-sider/components/vertical-mix-sider/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import MixMenuDetail from './mix-menu-detail.vue'; -import MixMenuDrawer from './mix-menu-drawer.vue'; -import MixMenuCollapse from './mix-menu-collapse.vue'; - -export { MixMenuDetail, MixMenuDrawer, MixMenuCollapse }; diff --git a/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-collapse.vue b/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-collapse.vue deleted file mode 100644 index d7698ae2..00000000 --- a/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-collapse.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-detail.vue b/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-detail.vue deleted file mode 100644 index bbb8317d..00000000 --- a/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-detail.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-drawer.vue b/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-drawer.vue deleted file mode 100644 index 2fe723cd..00000000 --- a/src/layouts/common/global-sider/components/vertical-mix-sider/components/mix-menu-drawer.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-sider/components/vertical-mix-sider/index.vue b/src/layouts/common/global-sider/components/vertical-mix-sider/index.vue deleted file mode 100644 index 7a76da46..00000000 --- a/src/layouts/common/global-sider/components/vertical-mix-sider/index.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-sider/components/vertical-sider/components/index.ts b/src/layouts/common/global-sider/components/vertical-sider/components/index.ts deleted file mode 100644 index 6e162101..00000000 --- a/src/layouts/common/global-sider/components/vertical-sider/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import VerticalMenu from './vertical-menu.vue'; - -export { VerticalMenu }; diff --git a/src/layouts/common/global-sider/components/vertical-sider/components/vertical-menu.vue b/src/layouts/common/global-sider/components/vertical-sider/components/vertical-menu.vue deleted file mode 100644 index 8f5c4e09..00000000 --- a/src/layouts/common/global-sider/components/vertical-sider/components/vertical-menu.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-sider/components/vertical-sider/index.vue b/src/layouts/common/global-sider/components/vertical-sider/index.vue deleted file mode 100644 index f3cd224a..00000000 --- a/src/layouts/common/global-sider/components/vertical-sider/index.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-sider/index.vue b/src/layouts/common/global-sider/index.vue deleted file mode 100644 index fbcd4b89..00000000 --- a/src/layouts/common/global-sider/index.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-tab/components/index.ts b/src/layouts/common/global-tab/components/index.ts deleted file mode 100644 index b7105baa..00000000 --- a/src/layouts/common/global-tab/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import TabDetail from './tab-detail/index.vue'; -import ReloadButton from './reload-button/index.vue'; - -export { TabDetail, ReloadButton }; diff --git a/src/layouts/common/global-tab/components/reload-button/index.vue b/src/layouts/common/global-tab/components/reload-button/index.vue deleted file mode 100644 index d0a77714..00000000 --- a/src/layouts/common/global-tab/components/reload-button/index.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-tab/components/tab-detail/components/context-menu.vue b/src/layouts/common/global-tab/components/tab-detail/components/context-menu.vue deleted file mode 100644 index cf291de7..00000000 --- a/src/layouts/common/global-tab/components/tab-detail/components/context-menu.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-tab/components/tab-detail/components/index.ts b/src/layouts/common/global-tab/components/tab-detail/components/index.ts deleted file mode 100644 index 3ca94f0e..00000000 --- a/src/layouts/common/global-tab/components/tab-detail/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ContextMenu from './context-menu.vue'; - -export { ContextMenu }; diff --git a/src/layouts/common/global-tab/components/tab-detail/index.vue b/src/layouts/common/global-tab/components/tab-detail/index.vue deleted file mode 100644 index 6b3c97fa..00000000 --- a/src/layouts/common/global-tab/components/tab-detail/index.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - - diff --git a/src/layouts/common/global-tab/index.vue b/src/layouts/common/global-tab/index.vue deleted file mode 100644 index b22049bb..00000000 --- a/src/layouts/common/global-tab/index.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/src/layouts/common/index.ts b/src/layouts/common/index.ts deleted file mode 100644 index 7ea15e85..00000000 --- a/src/layouts/common/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import SettingDrawer from './setting-drawer/index.vue'; -import GlobalHeader from './global-header/index.vue'; -import GlobalTab from './global-tab/index.vue'; -import GlobalSider from './global-sider/index.vue'; -import GlobalContent from './global-content/index.vue'; -import GlobalFooter from './global-footer/index.vue'; -import GlobalLogo from './global-logo/index.vue'; - -export { SettingDrawer, GlobalHeader, GlobalTab, GlobalSider, GlobalContent, GlobalFooter, GlobalLogo }; diff --git a/src/layouts/common/setting-drawer/components/dark-mode/index.vue b/src/layouts/common/setting-drawer/components/dark-mode/index.vue deleted file mode 100644 index d2c79f24..00000000 --- a/src/layouts/common/setting-drawer/components/dark-mode/index.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - diff --git a/src/layouts/common/setting-drawer/components/drawer-button/index.vue b/src/layouts/common/setting-drawer/components/drawer-button/index.vue deleted file mode 100644 index 71d7b586..00000000 --- a/src/layouts/common/setting-drawer/components/drawer-button/index.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/index.ts b/src/layouts/common/setting-drawer/components/index.ts deleted file mode 100644 index 023172f6..00000000 --- a/src/layouts/common/setting-drawer/components/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import DrawerButton from './drawer-button/index.vue'; -import DarkMode from './dark-mode/index.vue'; -import LayoutMode from './layout-mode/index.vue'; -import ThemeColorSelect from './theme-color-select/index.vue'; -import PageFunc from './page-func/index.vue'; -import PageView from './page-view/index.vue'; -import ThemeConfig from './theme-config/index.vue'; - -export { DrawerButton, DarkMode, LayoutMode, ThemeColorSelect, PageFunc, PageView, ThemeConfig }; diff --git a/src/layouts/common/setting-drawer/components/layout-mode/components/index.ts b/src/layouts/common/setting-drawer/components/layout-mode/components/index.ts deleted file mode 100644 index d580731f..00000000 --- a/src/layouts/common/setting-drawer/components/layout-mode/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import LayoutCheckbox from './layout-checkbox.vue'; -import LayoutCard from './layout-card.vue'; - -export { LayoutCheckbox, LayoutCard }; diff --git a/src/layouts/common/setting-drawer/components/layout-mode/components/layout-card.vue b/src/layouts/common/setting-drawer/components/layout-mode/components/layout-card.vue deleted file mode 100644 index 0f6a5a67..00000000 --- a/src/layouts/common/setting-drawer/components/layout-mode/components/layout-card.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/layout-mode/components/layout-checkbox.vue b/src/layouts/common/setting-drawer/components/layout-mode/components/layout-checkbox.vue deleted file mode 100644 index 73a55a63..00000000 --- a/src/layouts/common/setting-drawer/components/layout-mode/components/layout-checkbox.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/layout-mode/index.vue b/src/layouts/common/setting-drawer/components/layout-mode/index.vue deleted file mode 100644 index dab82924..00000000 --- a/src/layouts/common/setting-drawer/components/layout-mode/index.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/page-func/index.vue b/src/layouts/common/setting-drawer/components/page-func/index.vue deleted file mode 100644 index b852b84b..00000000 --- a/src/layouts/common/setting-drawer/components/page-func/index.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/page-view/index.vue b/src/layouts/common/setting-drawer/components/page-view/index.vue deleted file mode 100644 index b469ea81..00000000 --- a/src/layouts/common/setting-drawer/components/page-view/index.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/setting-menu/index.vue b/src/layouts/common/setting-drawer/components/setting-menu/index.vue deleted file mode 100644 index d3d4351f..00000000 --- a/src/layouts/common/setting-drawer/components/setting-menu/index.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/theme-color-select/components/color-checkbox.vue b/src/layouts/common/setting-drawer/components/theme-color-select/components/color-checkbox.vue deleted file mode 100644 index 0c7aa72b..00000000 --- a/src/layouts/common/setting-drawer/components/theme-color-select/components/color-checkbox.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/theme-color-select/components/color-modal.vue b/src/layouts/common/setting-drawer/components/theme-color-select/components/color-modal.vue deleted file mode 100644 index 3b1f5de2..00000000 --- a/src/layouts/common/setting-drawer/components/theme-color-select/components/color-modal.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/theme-color-select/components/index.ts b/src/layouts/common/setting-drawer/components/theme-color-select/components/index.ts deleted file mode 100644 index b35b249a..00000000 --- a/src/layouts/common/setting-drawer/components/theme-color-select/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import ColorCheckbox from './color-checkbox.vue'; -import ColorModal from './color-modal.vue'; - -export { ColorCheckbox, ColorModal }; diff --git a/src/layouts/common/setting-drawer/components/theme-color-select/index.vue b/src/layouts/common/setting-drawer/components/theme-color-select/index.vue deleted file mode 100644 index 64a29eb8..00000000 --- a/src/layouts/common/setting-drawer/components/theme-color-select/index.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - diff --git a/src/layouts/common/setting-drawer/components/theme-config/index.vue b/src/layouts/common/setting-drawer/components/theme-config/index.vue deleted file mode 100644 index c3b60413..00000000 --- a/src/layouts/common/setting-drawer/components/theme-config/index.vue +++ /dev/null @@ -1,65 +0,0 @@ -