From 769eb676d2572f1fc3cff3d4c9d34abab70a00c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=B5=E5=AE=AA=E7=91=9E?= <9198107+min-xianrui@user.noreply.gitee.com> Date: Tue, 7 Jan 2025 15:29:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E9=87=8F=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/devcontainer.json | 45 + .dockerignore | 12 + .editorConfig | 23 + .env | 32 + .eslintignore | 4 + .eslintrc.json | 35 + .gitignore | 23 +- .husky/pre-commit | 4 + .idea/.gitignore | 5 + .idea/codeStyles/Project.xml | 61 + .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/front-template.iml | 12 + .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .npmrc | 1 + .nvmrc | 1 + .prettierignore | 3 + .prettierrc.json | 5 + README.md | 1306 +++- README_EN.md | 1373 ++++ index.html | 13 + locales/English/common.yml | 10 + locales/English/test.yml | 3 + locales/简体中文/common.yml | 10 + locales/简体中文/test.yml | 3 + mock/test.ts | 42 + netlify.toml | 4 + package.json | 132 + pnpm-lock.yaml | 7227 ++++++++++++++++++ presets/autoprefixer.ts | 33 + presets/index.ts | 275 + presets/plugins/alias.ts | 27 + presets/plugins/index.ts | 6 + presets/plugins/layers.ts | 41 + presets/plugins/lightningcss.ts | 62 + presets/plugins/optimize.ts | 19 + presets/plugins/restart.ts | 30 + presets/plugins/warmup.ts | 21 + presets/shared/detect.ts | 76 + presets/shared/mock.ts | 89 + presets/shared/path.ts | 15 + presets/types/vite.d.ts | 18 + public/docs/icons-first-step.png | Bin 0 -> 55892 bytes public/docs/icons-preview.png | Bin 0 -> 4351 bytes public/docs/icons-second-step.png | Bin 0 -> 68663 bytes public/docs/icons-third-step.png | Bin 0 -> 40283 bytes public/docs/notFound-dark.png | Bin 0 -> 44044 bytes public/docs/notFound-other.png | Bin 0 -> 37579 bytes public/docs/notFound.png | Bin 0 -> 45075 bytes public/favicon.ico | Bin 0 -> 52527 bytes public/logo.png | Bin 0 -> 17373 bytes public/notFound/33.svg | 1 + public/vite.svg | 1 + renovate.json | 3 + scripts/create.cjs | 76 + scripts/deps-fresh.cjs | 36 + scripts/release.cjs | 65 + scripts/remove.cjs | 75 + scripts/safe-init.cjs | 113 + scripts/shared/base.cjs | 41 + scripts/template/api.hbs | 2 + scripts/template/component.hbs | 11 + scripts/template/composable.hbs | 5 + scripts/template/layout.hbs | 4 + scripts/template/module.hbs | 6 + scripts/template/page.hbs | 17 + scripts/template/store.hbs | 9 + src/App.vue | 13 + src/api/mock.ts | 6 + src/components/Dropdown.vue | 62 + src/components/HelloWorld.vue | 52 + src/components/Navigation.vue | 146 + src/components/counter.vue | 16 + src/composables/env.ts | 27 + src/composables/http.ts | 60 + src/composables/path.ts | 7 + src/composables/toast.ts | 4 + src/composables/useLanguage.ts | 12 + src/composables/useTyped.ts | 14 + src/composables/useVisits.ts | 25 + src/layouts/default.vue | 14 + src/layouts/notFound.vue | 3 + src/main.ts | 13 + src/pages/[...notFound].vue | 58 + src/pages/about.md | 12 + src/pages/echarts.vue | 78 + src/pages/index.vue | 32 + src/plugins/i18n.ts | 36 + src/plugins/mock.ts | 23 + src/plugins/nprogress.ts | 9 + src/plugins/pinia.ts | 7 + src/plugins/router.ts | 26 + src/plugins/title.ts | 17 + src/stores/createCounter.ts | 15 + src/styles/main.css | 55 + src/styles/md.css | 83 + src/test/__snapshots__/index.test.ts.snap | 7 + src/test/index.test.ts | 16 + tsconfig.json | 32 + uno.config.ts | 24 + vite.config.ts | 6 + 102 files changed, 12588 insertions(+), 13 deletions(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .dockerignore create mode 100644 .editorConfig create mode 100644 .env create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .husky/pre-commit create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/front-template.iml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .npmrc create mode 100644 .nvmrc create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 README_EN.md create mode 100644 index.html create mode 100644 locales/English/common.yml create mode 100644 locales/English/test.yml create mode 100644 locales/简体中文/common.yml create mode 100644 locales/简体中文/test.yml create mode 100644 mock/test.ts create mode 100644 netlify.toml create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 presets/autoprefixer.ts create mode 100644 presets/index.ts create mode 100644 presets/plugins/alias.ts create mode 100644 presets/plugins/index.ts create mode 100644 presets/plugins/layers.ts create mode 100644 presets/plugins/lightningcss.ts create mode 100644 presets/plugins/optimize.ts create mode 100644 presets/plugins/restart.ts create mode 100644 presets/plugins/warmup.ts create mode 100644 presets/shared/detect.ts create mode 100644 presets/shared/mock.ts create mode 100644 presets/shared/path.ts create mode 100644 presets/types/vite.d.ts create mode 100644 public/docs/icons-first-step.png create mode 100644 public/docs/icons-preview.png create mode 100644 public/docs/icons-second-step.png create mode 100644 public/docs/icons-third-step.png create mode 100644 public/docs/notFound-dark.png create mode 100644 public/docs/notFound-other.png create mode 100644 public/docs/notFound.png create mode 100644 public/favicon.ico create mode 100644 public/logo.png create mode 100644 public/notFound/33.svg create mode 100644 public/vite.svg create mode 100644 renovate.json create mode 100644 scripts/create.cjs create mode 100644 scripts/deps-fresh.cjs create mode 100644 scripts/release.cjs create mode 100644 scripts/remove.cjs create mode 100644 scripts/safe-init.cjs create mode 100644 scripts/shared/base.cjs create mode 100644 scripts/template/api.hbs create mode 100644 scripts/template/component.hbs create mode 100644 scripts/template/composable.hbs create mode 100644 scripts/template/layout.hbs create mode 100644 scripts/template/module.hbs create mode 100644 scripts/template/page.hbs create mode 100644 scripts/template/store.hbs create mode 100644 src/App.vue create mode 100644 src/api/mock.ts create mode 100644 src/components/Dropdown.vue create mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/Navigation.vue create mode 100644 src/components/counter.vue create mode 100644 src/composables/env.ts create mode 100644 src/composables/http.ts create mode 100644 src/composables/path.ts create mode 100644 src/composables/toast.ts create mode 100644 src/composables/useLanguage.ts create mode 100644 src/composables/useTyped.ts create mode 100644 src/composables/useVisits.ts create mode 100644 src/layouts/default.vue create mode 100644 src/layouts/notFound.vue create mode 100644 src/main.ts create mode 100644 src/pages/[...notFound].vue create mode 100644 src/pages/about.md create mode 100644 src/pages/echarts.vue create mode 100644 src/pages/index.vue create mode 100644 src/plugins/i18n.ts create mode 100644 src/plugins/mock.ts create mode 100644 src/plugins/nprogress.ts create mode 100644 src/plugins/pinia.ts create mode 100644 src/plugins/router.ts create mode 100644 src/plugins/title.ts create mode 100644 src/stores/createCounter.ts create mode 100644 src/styles/main.css create mode 100644 src/styles/md.css create mode 100644 src/test/__snapshots__/index.test.ts.snap create mode 100644 src/test/index.test.ts create mode 100644 tsconfig.json create mode 100644 uno.config.ts create mode 100644 vite.config.ts diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..ebc3674 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,45 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node +{ + "name": "Node.js & TypeScript", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/typescript-node:1-18-buster", + "features": { + "ghcr.io/devcontainers-contrib/features/pnpm:2": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "antfu.goto-alias", + "mikestead.dotenv", + "redhat.vscode-yaml", + "Lokalise.i18n-ally", + "Vue.volar", + "steoates.autoimport", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "EditorConfig.EditorConfig", + "usernamehw.errorlens", + "shd101wyy.markdown-preview-enhanced", + "voorjaar.windicss-intellisense", + "yoavbls.pretty-ts-errors", + "bodil.prettier-toml", + "bungcip.better-toml" + ] + } + } + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "yarn install", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..00f2485 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +dist +.husky +.gitee +.github +.vscode +LICENSE +.gitignore +netlify.toml +CHANGELOG.md +node_modules +renovate.json +.devcontainer diff --git a/.editorConfig b/.editorConfig new file mode 100644 index 0000000..c2de21e --- /dev/null +++ b/.editorConfig @@ -0,0 +1,23 @@ +root = true + +# 匹配全部文件 +[*] +# 设置字符集 +charset = utf-8 +# 缩进风格,可选 space、tab +indent_style = tab +# 缩进的空格数,当 indent_style = tab 将使用 tab_width +# 否则使用 indent_size +indent_size = 2 +tab_width = 2 +# 结尾换行符,可选 lf、cr、crlf +end_of_line = crlf +# 在文件结尾插入新行 +insert_final_newline = true +# 删除一行中的前后空格 +trim_trailing_whitespace = true + +# 匹配 md 结尾的文件 +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.env b/.env new file mode 100644 index 0000000..4aea97c --- /dev/null +++ b/.env @@ -0,0 +1,32 @@ +# 通用环境变量 + +# api baseURL +VITE_API_BASE_URL = /api + +# 标题 +VITE_APP_TITLE = tov + + +# markdown 渲染支持 +VITE_APP_MARKDOWN = true + + +# 开发时的开发面板 +VITE_APP_DEV_TOOLS = true + + +# 生产时 mock 支持 +VITE_APP_MOCK_IN_PRODUCTION = false + + +# 生产时压缩算法,可选 gzip, brotliCompress, deflate, deflateRaw +VITE_APP_COMPRESSINON_ALGORITHM = gzip + + +# api 自动按需引入 +# 注意设置关闭时,其他的 api 自动按需引入也将自动关闭 +VITE_APP_API_AUTO_IMPORT = true + + +# 项目级 api 自动按需导入 +VITE_APP_DIR_API_AUTO_IMPORT = true diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..01a294a --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +# 忽略 eslint 检查 +dist +node_modules +presets/types diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..d780656 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,35 @@ +{ + "root": true, // 禁止接着往上找 + "env": { + "node": true, + "es2021": true, + "browser": true // 浏览器 + }, + "parser": "vue-eslint-parser", + "parserOptions": { + "ecmaVersion": "latest", + "parser": "@typescript-eslint/parser", + "ecmaFeatures": { + "jsx": true // 启用 jsx + } + }, + "plugins": ["prettier"], + "extends": [ + "@unocss", + "eslint:recommended", // 内置规则 + "plugin:vue/vue3-recommended", // 支持 vue sfc + "prettier", + "./presets/eslint/.eslintrc-auto-import.json" + ], + "rules": { + // 允许相同组件名 + "vue/multi-word-component-names": "off", + // prettier 作为规则 + "prettier/prettier": "error", + // 禁止使用 var,而应该用 let 或 const + "no-var": "error" + }, + "globals": { + "defineOptions": true + } +} diff --git a/.gitignore b/.gitignore index a19f004..70806e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,12 @@ -# ---> Vue -# gitignore template for Vue.js projects -# -# Recommended template: Node.gitignore - -# TODO: where does this rule come from? -docs/_book - -# TODO: where does this rule come from? -test/ - +dist +.nitro +.output +env.d.ts +node_modules +.eslintcache +components.d.ts +type-router.d.ts +auto-imports.d.ts +.eslintrc-auto-import.json +vite.config.ts.timestamp* +.idea diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..36af219 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ea7ed09 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..771ba70 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..307554b --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/front-template.iml b/.idea/front-template.iml new file mode 100644 index 0000000..0b872d8 --- /dev/null +++ b/.idea/front-template.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..03d9549 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..4bc5123 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..c8397c9 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..918fa4a --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmmirror.com/ \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..5802c69 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.12.2 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..3673c24 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +dist +node_modules +presets/types diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..6ef9e41 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,5 @@ +{ + "semi": false, + "singleQuote": true, + "endOfLine": "auto" +} diff --git a/README.md b/README.md index b307bba..d30a62d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,1305 @@ -# front-template +
+ +
+ 中文 | English +
+
+ + 帝莎编程 + https://pc.dishait.cn/ + +

+ tov-template +

+

vite + vue3 + ts 开箱即用现代开发模板

+
-前端模板 \ No newline at end of file +
+
+ +## 特点 🐳 + +1. Vite 的 +2. Vue3 的 +3. 文件路由 +4. 布局系统 +5. Mock 支持 +6. Api 自动引入 +7. 组件自动引入 +8. 图标自动引入 +9. VueUse 支持 +10. TypeScript 的 +11. UnoCss 的 +12. 暗黑模式支持 +13. SWR 请求支持 +14. pinia 状态管理 +15. pnpm 包管理器 +16. 跳转进度条支持 +17. 开发面板支持 +18. 插件自动加载支持 +19. Vitest 单元测试支持 +20. 支持 Markdown 渲染 +21. 路径别名支持 +22. 命令行自动创建与删除 +23. i18n 国际化支持 +24. 漂亮的 404 页 支持 +25. tsx 支持 +26. gzip 资源压缩支持 +27. 环境变量配置支持 +28. 统一的代码规范与风格支持 +29. 生产环境自动移除开发日志 +30. defineOptions 支持 +31. echarts 支持 +32. 全局通用 toast 通知 +33. 全局通用 axios 请求封装 +34. 自动生成环境变量类型声明 +35. `renovate` 自动更新依赖 +36. 自动版本更新并生成 `CHANGELOG` +37. 最快最小的 `dockerfile` 静态 `go` 服务 +38. `base` 安全的路径解析 +39. `lightningcss` 支持 +40. `vite` 配置层支持 (实验性) + +
+
+ +## 克隆模板 🦕 + +1. Github + +```shell +git clone git@github.com:dishait/tov-template.git +``` + +2. Gitee + +```shell +git clone git@gitee.com:dishait/tov-template.git +``` + +3. degit + +```shell +npx degit https://github.com/dishait/tov-template#main +``` + +4. 新的 `Github` 仓库 👉 + [Use this template](https://github.com/dishait/tov-template/generate) + +
+
+
+ +## `node` 版本推荐 🐎 + +因为该模板完全面向现代,所以推荐大家使用 `node` 当前的长期维护版本 `v20` + +
+
+
+ +## 使用 🐂 + +该模板仅支持 `pnpm` 包管理器 👉 [安装教程](https://pnpm.io/zh/installation) + +1. 安装依赖 + +```shell +pnpm install +``` + +2. 开发 + +```shell +pnpm dev + +# 开启 host +pnpm dev:host + +# 自动打开浏览器 +pnpm dev:open +``` + +3. 预览 + +```shell +pnpm preview + +# 开启 host +pnpm preview:host + +# 自动打开浏览器 +pnpm preview:open +``` + +4. 打包 + +```shell +pnpm build + +pnpm build:debug +``` + +5. 单元测试 + +```shell +pnpm test +``` + +6. 单元测试报告生成 + +```shell +pnpm coverage +``` + +7. 类型检查 + +```shell +pnpm typecheck +``` + +8. 自动创建 + +```shell +pnpm auto:create +``` + +9. 自动移除 + +```shell +pnpm auto:remove +``` + +10. 依赖更新 + +```shell +# 依赖版本更新 +pnpm deps:fresh +``` + +```shell +# 以上命令仅对包信息 package.json 进行写入,需要重新执行包安装命令 +pnpm i +``` + +11. 代码规范校验 + +```shell +pnpm lint + +# 校验时修复 +pnpm lint:fix +``` + +12. 安全初始化 + +```shell +pnpm safe:init +``` + +
+
+ +## 动机 🐗 + +为什么要做这个 **模板** 呢? + +1. 为下次开发节省浪费在配置上的时间 +2. 结合主流插件整合现代开发架构,提高开发效率 + +
+
+ +## 使用场景 🐻 + +什么时候你应该用? + +1. 不想浪费时间在项目配置上 +2. 希望尝试用更现代的方式开发 `web` 应用,提高开发效率 + +
+
+ +## 启发 🐃 + +该模板受 **[vitesse](https://github.com/antfu/vitesse)** 启发,如果你有 `SSG` +的场景,推荐你使用 **[vitesse](https://github.com/antfu/vitesse)**。 + +
+
+ +## 组织 🦔 + +欢迎关注 **帝莎编程** + +- [官网](http://dishaxy.dishait.cn/) +- [Gitee](https://gitee.com/dishait) +- [Github](https://github.com/dishait) +- [网易云课堂](https://study.163.com/provider/480000001892585/index.htm?share=2&shareId=480000001892585) + +
+
+ +## 详情 🐳 + +### [1. Vite 的](https://cn.vitejs.dev/) + +该模板采用 **[vite](https://cn.vitejs.dev/)** 作为构建工具,你可以在根目录下的 +`vite.config.ts` 对项目的构建进行配置。 + +对于众多主流插件的引入和繁杂配置已经整合到根目录下的预设 `presets` +中,大多数情况下你是不需要重新对它们进行配置的。 + +
+ +### [2. Vue3 的](https://v3.cn.vuejs.org/) + +
+ +### [3. 文件路由](https://github.com/posva/unplugin-vue-router) + +目录结构即路由。 + +eg: + +- `src/pages/index.vue` => `/` +- `src/pages/about.vue` => `/about` +- `src/pages/users/index.vue` => `/users` +- `src/pages/users/profile.vue` => `/users/profile` +- `src/pages/users/[id].vue` => `/users/:id` +- `src/pages/[user]/settings.vue` => `/:user/settings` +- `src/pages/[...notFound].vue` => 404 路由 + +具体可见 👉 [unplugin-vue-router](https://github.com/posva/unplugin-vue-router) + +
+ +### [4. 布局系统](https://github.com/dishait/vite-plugin-vue-meta-layouts) + +#### 默认布局 + +`src/layouts/default.vue` 将作为默认布局。 + +```html + + +``` + +此时 `src/pages/index.vue` + +```html + + +``` + +路由到 `/`时,页面将渲染 + +```html +我是默认布局 我是首页 +``` + +此时 `src/pages/about.vue` + +```html + + +``` + +路由到 `/about` 时,页面将渲染 + +```html +我是默认布局 我是关于页 +``` + +
+ +#### 非默认布局 + +随便创建一个 `src/layouts/custom.vue` + +```html + + +``` + +此时 `src/pages/index.vue` 内 + +```html + + + + + +{ + "meta": { + "layout": "custom" + } +} + +``` + +此时路由到 `/`, 页面将渲染 + +```html +我是非默认布局custom 我是首页 +``` + +具体可见 👉 +[vite-plugin-vue-meta-layouts](https://github.com/dishait/vite-plugin-vue-meta-layouts) + +
+ +### [5. Mock 支持](https://github.com/vbenjs/vite-plugin-mock) + +在根目录下的 `mock` 目录下,可以在模块中导出默认的 `api` 资源。 + +例如 `mock/test.ts` 内导出 + +```ts +import { MockMethod } from "vite-plugin-mock"; +export default [ + { + url: "/api/mock/get", + method: "get", + response: () => { + return { + code: 0, + data: { + name: "vben", + }, + }; + }, + }, +] as MockMethod[]; +``` + +在 `src` 中就可以进行模拟请求。 + +```html + + + +``` + +这里用到 [vue-request](https://cn.attojs.org/) 去做请求,不过因为该 `mock` +拦截的是一整个接口,所以换成 `axios` 等请求库也是可以的。 + +更多 `mock` 设置可见 👉 +[vite-plugin-mock](https://github.com/vbenjs/vite-plugin-mock) + +
+ +### [6. Api 自动引入](https://github.com/antfu/unplugin-auto-import) + +原本 `vue` 的 `api` 需要自行 `import`。 + +```ts +import { computed, ref } from "vue"; +const count = ref(0); +const doubled = computed(() => count.value * 2); +``` + +现在可以直接使用。 + +```ts +const count = ref(0); +const doubled = computed(() => count.value * 2); +``` + +而且上边的 `api` 是按需自动引入的。 + +目前模板支持自动引入 `api` 的库列表 👉 + +- `vue` +- `vuex` +- `pinia` +- `vue-i18n` +- `vue-router` +- `@vueuse/core` +- `@vueuse/head` +- `@vueuse/math` + +只要确保已经安装依赖即可,具体可见 👉 +[vite-auto-import-resolvers](https://github.com/dishait/vite-auto-import-resolvers#%E9%BB%98%E8%AE%A4%E6%94%AF%E6%8C%81%E5%88%97%E8%A1%A8), + +当然还有项目中的自动引入,只需要满足以下规范即可。 + +1. `src/composables` 的导出将被按需自动引入。 + +例如有个 `src/composables/foo.ts` + +```ts +// default 导出 +export default 1000; +``` + +此时就不再需要 `import`了 + +```html + + + +``` + +2. `src/stores` 的导出将被按需自动引入。 + +例如有个 `src/stores/counterStore.ts` + +```ts +// default 导出 +export default defineStore("counter", { + state() { + return { + counter: 1, + }; + }, + actions: { + inc() { + this.counter++; + }, + }, +}); +``` + +此时就不再需要 `import`了 + +```html + + + +``` + +3. `src/api` 也是自动按需导入,与上述类似 + +具体可见 👉 +[unplugin-auto-import](https://github.com/antfu/unplugin-auto-import)。 + +
+ +### [7. 组件自动引入](https://github.com/antfu/unplugin-vue-components) + +原来需要 `import` + +```html + + + + +``` + +现在只要在 `src/components` 下定义的组件都将会按需引入,即 `import` 是不需要的。 + +```html + + +``` + +当然也支持嵌套组件,例如 `src/components/foo/bar.vue` 👇 + +```html + + +``` + +同时流行组件库自动引入也是支持的,例如 `Naive ui`。 + +只需安装依赖。 + +```shell +pnpm add naive-ui +``` + +即可在模板中使用。 + +```html + + +``` + +目前支持的组件库有: + +- [vant](https://github.com/youzan/vant) +- [idux](https://github.com/IDuxFE/idux) +- [devui](https://github.com/DevCloudFE/vue-devui) +- [quasar](https://github.com/quasarframework/quasar) +- [varlet](https://github.com/varletjs/varlet) +- [inkline](https://github.com/inkline/inkline) +- [vuetify](https://github.com/vuetifyjs/vuetify) +- [naive-ui](https://github.com/TuSimple/naive-ui) +- [primevue](https://github.com/primefaces/primevue) +- [layui-vue](https://gitee.com/layui/layui-vue) +- [view-design](https://iviewui.com/) +- [arco-design](https://github.com/arco-design/arco-design) +- [element-plus](https://github.com/element-plus/element-plus) +- [ant-design-vue](https://github.com/vueComponent/ant-design-vue) +- [@headlessui/vue](https://github.com/tailwindlabs/headlessui) +- [tdesign-vue-next](https://github.com/Tencent/tdesign-vue-next) +- [@vueuse/components](https://github.com/vueuse/vueuse/tree/main/packages/components) + +具体可见 👉 +[unplugin-vue-components](https://github.com/antfu/unplugin-vue-components) + +
+ +### [8. 图标自动引入](https://unocss.dev/presets/icons) + +可前往 👉 [icones](https://icones.netlify.app/),随意选择点击进入其中一个图标库 + +![icons-first-step](public/docs/icons-first-step.png) + +再点击选择其中一个喜欢的图标 + +![icons-second-step](public/docs/icons-second-step.png) + +复制其名称 + +![icons-second-step](public/docs/icons-third-step.png) + +在模板中即可通过 `class` 的方式直接使用,注意加上前缀 `i-`。 + +```html + +``` + +保存后等待自动下载该图标库后,就可以在页面中看到对应图标。 + +同时推荐你使用 `vscode` 插件 +[Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify)。 + +该插件会在模板中显示图标的预览。 + +当然图标动态加载也是支持的 👇 + +```html + + + +``` + +注意动态图标,请确保在开发环境下所有的图标都测过一遍。 + +具体可见 👉 [unocss/presets/icons](https://unocss.dev/presets/icons) + +
+ +### [9. VueUse 支持](https://vueuse.org/) + +`VueUse` 是一个超级强的 `hooks` 库,例如你要获取鼠标位置,只需要这样 👇 + +```html + + + +``` + +具体可见 👉 [VueUse](https://vueuse.org/) + +
+ +### [10. TypeScript 的](https://www.tslang.cn/) + +不需要重新配置,直接用 `ts` 书写就行了。 + +
+ +### [11. unocss 的](https://unocss.dev/) + +`unocss` 是一个开发中速度更快的 `原子css` 库。 + +直接在模板中用就行了,不需要配置。 + +```html + +``` + +上述模板将渲染红色背景白色的字。 + +同时支持 [属性化模式](https://unocss.dev/presets/attributify),即可以用简写。 + +```html + +``` + +这在调整边距尺寸以及等方面可以减少代码量。 + +具体可见 👉 [unocss](https://unocss.dev/) + +
+ +### [12. 暗黑模式支持](https://github.com/dishait/vue-dark-switch) + +暗黑模式由 [vue-dark-switch](https://github.com/dishait/vue-dark-switch) 实现。 + +```html + + + +``` + +具体可见 👉 [vue-dark-switch](https://github.com/dishait/vue-dark-switch) + +
+ +### [13. SWR 请求支持](https://cn.attojs.org/) + +SWR 是更现代的请求方式,具体可见文章 👉 +[SWR](https://zhuanlan.zhihu.com/p/89570321)。 + +而 [vue-request](https://cn.attojs.org/) 是一个 `SWR` 的 `Vue` 版本请求库。 + +你可以这样用,例如请求 `/api/test` + +```html + + + +``` + +所有基本的数据,状态和缓存都帮你搞定了,不需要重新封装。 + +具体可见 👉 [vue-request](https://cn.attojs.org/) + +
+ +### [14. pinia 状态管理](https://pinia.vuejs.org/) + +`pinia` 是下一代的状态管理库,比 `vuex` 更简单,`ts` 支持更好。 + +你可以在 `src/stores` 中进行状态的定义。 + +例如创建 `src/stores/counter.ts` 👇 + +```ts +// src/stores/counter.ts +import { defineStore } from "pinia"; + +export const useCounterStore = defineStore("counter", { + state() { + return { count: 0 }; + }, + actions: { + inc() { + this.count++; + }, + }, +}); +``` + +定义完后在 `setup` 中直接使用即可 + +```html + + +``` + +
+
+ +### 22. 命令行自动创建与删除 + +只要输入 👇,即可创建一个标准的页面或组件 + +```shell +pnpm auto:create +``` + +当然也可以进行删除 👇 + +```shell +pnpm auto:remove +``` + +
+
+ +### [23. i18n 国际化支持](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n) + +在日常的业务当中,可能会存在一些需要国际化的场景。那么只需要在根目录下的 +`locales` 中定义不同语言的 `yml` 即可在项目中做到开箱即用的国际化支持。 + +比如 `locales/en.yml` 中用来定义需要国际化支持的英文内容。 + +```yml +# locales/en.yml +# English + +index: index +about: about +not-found: Notfound +``` + +又如 `locales/简体中文.yml` 中用来定义需要国际化支持的中文内容。 + +```yml +# locales/简体中文.yml +# 中文 + +index: 主页 +about: 关于 +not-found: 未找到页面 +``` + +此时在组件中即可这样用 👇 + +```html + + + +``` + +更详细的说明可见用到的 `vite 插件` 👉 +[@intlify/vite-plugin-vue-i18n](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n) +与 `vue插件` [vue-i18n](https://github.com/intlify/vue-i18n-next)。 + +另外 `yml` 是目前前端中流行的配置文件格式,语法可见阮一峰先生的 👉 +[YAML 语言教程](http://www.ruanyifeng.com/blog/2016/07/yaml.html)。 + +`vscode` 插件推荐: + +- 多合一的 `i18n` 支持 + [i18n Ally](https://marketplace.visualstudio.com/items?itemName=Lokalise.i18n-ally) + +
+
+ +### 24. 漂亮的 `404` 页支持 + +在日常业务中,当用户访问不存在的页面时,应该给到我们的用户一个不存在的信息提示,而这个提示的页面就是 +`404` 页。 + +你可以随便访问一个不存在的页面,例如 `/bucunzai` + +![notFound](public/docs/notFound.png) + +当然还有暗黑模式适应。 + +![notFound-dark](public/docs/notFound-dark.png) + +也支持简单的响应式适应。例如移动端浏览器上会有正确的显示。 + +当然如果这个 `404` 的封面不符合你的口味,那么可以在 `pages/[...notFound].vue` +中修改 `img` 标签的 `src`。默认是 `32.svg`,支持 `1 ~ 33` 的 `svg`。 + +例如,默认 👇 + +```html + + +``` + +修改 `/notFound/32.svg` 为 `/notFound/33.svg` + +```html + + +``` + +即可切换封面为 👇 + +![notFound-other](public/docs/notFound-other.png) + +
+
+ +### 25. [`tsx` 支持](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) + +只需要 `tsx` 文件放在 `src/components` 下,即可直接在模板中使用。 + +例如你有一个 `src/components/foo.tsx` 文件,那么即可直接在模板中使用。 + +```tsx +// src/components/foo.tsx +export default defineComponent({ + render() { + return
Test
; + }, +}); +``` + +```html + +``` + +具体可见 👉 +[@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) + +
+
+ +### 26. [`gzip` 资源压缩支持](https://github.com/vbenjs/vite-plugin-compression) + +生产环境下开箱即用的 `gzip` 资源压缩,无需配置。 + +具体可见 👉 +[vite-plugin-compression](https://github.com/vbenjs/vite-plugin-compression) + +
+
+ +### 27. [环境变量配置支持](https://cn.vitejs.dev/guide/env-and-mode.html) + +根目录下的 `.env` 用来对项目进行环境变量配置。 + +
+
+ +### 28. 统一的代码规范与风格支持 + +由 [eslint](https://github.com/eslint/eslint) 提供的代码规范校验,使用 +[prettier](https://github.com/prettier/prettier) 统一代码风格。 + +由 [husky](https://github.com/typicode/husky) + +[lint-staged](https://github.com/okonet/lint-staged) 提供的 `commit` 时校验。 + +
+
+ +### 29. [生产环境自动移除开发日志](https://github.com/dishait/vite-plugin-removelog) + +生产环境下 `console.log`,`console.warn` 与 `console.error` +等日志会被自动移除掉,以避免开发时日志的泄漏。 + +具体可见 👉 +[vite-plugin-removelog](https://github.com/dishait/vite-plugin-removelog) + +
+
+ +### 30. [defineOptions 支持](https://vuejs.org/api/sfc-script-setup.html#defineoptions) + +```html + +``` + +
+
+ +### 31. [echarts 支持](https://github.com/ecomfe/vue-echarts) + +简单集成了 [vue-echarts](https://github.com/ecomfe/vue-echarts),具体可见 +[echarts](https://github.com/apache/echarts) 和 +[vue-echarts](https://github.com/ecomfe/vue-echarts) 文档 + +
+
+ +### 32. [全局通用 toast 通知](https://github.com/euvl/vue-notification) + +集成了 [vue-toastification](https://github.com/euvl/vue-notification),你可以在 +`src` 目录下所有文件中使用它 👇 + +```ts +// src 下任何文件都是可用的 +toast.info("信息"); +toast.error("失败"); +toast.warning("警告"); +toast.success("成功"); +``` + +具体可见 👉 [全局通用 toast 通知](https://github.com/euvl/vue-notification) + +
+
+ +### 33. [全局通用 axios 请求封装](https://www.axios-http.cn/) + +封装了 [axios](https://www.axios-http.cn/),你可以在 `src` +目录下所有文件中使用它 👇 + +```ts +// src 下任何文件都是可用的 +http.get("..."); +http.post("...", { name: "张三", age: 20 }); +// ... 以此类推 +``` + +上述 `http` 是 `axios` +单独创建的实例,具有简单错误提示,以及响应数据转换。具体可见 +`src/composables/http.ts`。 + +如果你喜欢响应式风格和 `swr`,可以跟 +[vue-request](https://github.com/attojs/vue-request) 一起使用 + +```ts +import { useRequest } from "vue-request"; + +const { data, error, loading } = useRequest(() => http.get("...")); + +loading.value; // 是否加载中 + +error.value; // 错误内容 + +data.value; // 响应数据 +``` + +该 `http` 实例的 `baseURL` 取自环境变量文件 `.env` 的 +`VITE_API_BASE_URL`,默认为 `/api`,可以按自己需求更改。 + +具体可见 👉 [axios](https://www.axios-http.cn/) + +
+
+ +### 34. [自动生成环境变量类型声明](https://github.com/dishait/vite-plugin-env-types) + +在 `vite` 项目中,我们虽然可以在 `.env` 中设置环境变量,并在前端源码中通过 +`import.meta.env` +来使用它们,但是类型提示是糟糕的。这个功能可以自动生成类型声明以达到实时的类型提示,让你不需要关心和手动管理它们。 + +具体可见 👉 +[vite-plugin-env-types](https://github.com/dishait/vite-plugin-env-types) + +
+
+ +### 35. [`renovate` 自动更新依赖](https://github.com/renovatebot/renovate) + +`github` 的 [renovate](https://github.com/marketplace/renovate) 机器人会定期对 +`github` 检查依赖,并向仓库提起 `pr`,更新策略 👉 +[unjs/renovate-config](https://github.com/unjs/renovate-config) + +当然你也可以执行,来手动更新 👇 + +```shell +pnpm deps:fresh +``` + +具体可见 👉 [renovate](https://github.com/renovatebot/renovate) + +
+
+ +### 36. [自动版本更新并生成 `CHANGELOG`](https://github.com/unjs/changelogen) + +当我们执行 `pnpm run release` 时,会自动进行版本更新,并更新 +[CHANGELOG.md](./CHANGELOG.md)。 + +具体可见 👉 [unjs/changelogen](https://github.com/unjs/changelogen) + +
+
+ +### 37. [最快最小的 `dockerfile` 静态 `go` 服务](https://github.com/PierreZ/goStatic) + +根目录下的 `dockerfile` 配置最小最快的静态 `go` 服务容器,更方便云容器服务 + +具体可见 👉 [PierreZ/goStatic](https://github.com/PierreZ/goStatic) + +
+
+ +### 38. base 安全的路径解析 + +在 `vite` 中,如果我们改了 `vite.config.ts` 中的 +`base`,这导致资源路径和路由路径失效,使用 `safeResolve` +可以保证在开发环境和生产环境下都是统一的 `base`. + +```html + + + +``` + +
+
+ +### 39. `lightningcss` 支持 + +现在会默认检测当前项目是否支持 +[lightningcss](https://cn.vitejs.dev/guide/features.html#lightning-css) +并智能开启 + +
+
+ +### 40. `vite` 配置层支持 (实验性) + +现在在 `tov-template` 中,我们可以使用 `vite.config.[mode].ts` +的形式来支持不同环境下的配置文件。 + +1. 仅 vite.config.ts 时,通用选择该配置 +2. vite.config.ts + vite.config.dev.ts,开发时合并两者的配置,同时 + vite.config.dev.ts 的配置优先级更高 +3. vite.config.ts + vite.config.prod.ts 生产时合并两者的配置,同时 + vite.config.prod.ts 的配置优先级更高 + +以此类推,支持不同的 `mode` + +该特性由 [vite-layers](https://github.com/markthree/vite-layers) 提供支持 🥰 + +
+
+
+ +## License + +Made with [markthree](./LICENSE) + +Published under [MIT License](./LICENSE). + +
diff --git a/README_EN.md b/README_EN.md new file mode 100644 index 0000000..082003c --- /dev/null +++ b/README_EN.md @@ -0,0 +1,1373 @@ +
+ +
+ 中文 | English +
+
+ + dishait + https://pc.dishait.cn/ + +

+ tov-template +

+

vite + vue3 + ts out-of-the-box modern development template

+
+ +
+
+ +## Features 🐳 + +1. Vite-based +2. Vue3-compatible +3. File-based routing +4. Layout system +5. Mock support +6. Auto import APIs +7. Auto import components +8. Auto import icons +9. VueUse support +10. TypeScript-friendly +11. UnoCss integration +12. Dark mode support +13. SWR request support +14. Pinia state management +15. pnpm package manager +16. Progress bar for navigation +17. Devtools panel support +18. Plugin auto-loading support +19. Vitest unit testing support +20. Markdown rendering support +21. Path aliases support +22. Command line auto creation and deletion +23. i18n internationalization support +24. Beautiful 404 page support +25. TSX support +26. Gzip resource compression support +27. Environment variable configuration support +28. Unified code style and formatting support +29. Production environment automatically removes development logs +30. defineOptions support +31. Echarts integration +32. Global toast notifications +33. Global axios request wrapping +34. Auto generate type declarations for environment variables +35. `renovate` automatic dependency updates +36. Auto version update and generate `CHANGELOG` +37. Fastest and smallest `dockerfile` for static `go` service with minimal + configuration +38. `base` secure path resolution +39. `lightningcss` support +40. Vite configuration layer support (experimental) + +
+
+ +## Clone Template 🦕 + +1. Github + +```shell +git clone git@github.com:dishait/tov-template.git +``` + +2. Gitee + +```shell +git clone git@gitee.com:dishait/tov-template.git +``` + +3. degit + +```shell +npx degit https://github.com/dishait/tov-template#main +``` + +4. New `Github` repository 👉 + [Use this template](https://github.com/dishait/tov-template/generate) + +
+
+
+ +## Node version recommendation 🐎 + +Since this template is fully geared towards modern development, it is +recommended to use the current long-term maintenance version of `node`, which is +`v20`. + +
+
+
+ +## Use 🐂 + +This template only supports the `pnpm` package manager. 👉 +[Installation guide](https://pnpm.io/zh/installation) + +1. Install dependencies + +```shell +pnpm install +``` + +2. Development + +```shell +pnpm dev + +# Open host +pnpm dev:host + +# Auto-open browser +pnpm dev:open +``` + +3. Preview + +```shell +pnpm preview + +# Open host +pnpm preview:host + +# Auto-open browser +pnpm preview:open +``` + +4. Build + +```shell +pnpm build + +pnpm build:debug +``` + +5. Unit testing + +```shell +pnpm test +``` + +6. Unit test report generation + +```shell +pnpm coverage +``` + +7. Type checking + +```shell +pnpm typecheck +``` + +8. Auto creation + +```shell +pnpm auto:create +``` + +9. Auto removal + +```shell +pnpm auto:remove +``` + +10. Dependency updates + +```shell +# Update dependency version +pnpm deps:fresh +``` + +```shell +# The above commands only write to the package information file package.json, and need to re-execute the package installation command. +pnpm i +``` + +11. Code style checking + +```shell +pnpm lint + +# Fix errors during linting +pnpm lint:fix +``` + +12. Safe Init + +```shell +pnpm safe:init +``` + +
+
+ +## Motivation 🐗 + +Why did we create this template? + +1. Save time on configuration for future development projects. +2. Integrate modern development architecture with mainstream plugins to improve + development efficiency. + +
+
+ +## Use Cases 🐻 + +When should you use this template? + +1. Don't want to waste time on project configuration. +2. Want to try developing web applications in a more modern way and improve + development efficiency. + +
+
+ +## Inspiration 🐃 + +This template is inspired by [vitesse](https://github.com/antfu/vitesse). If you +have an SSR scenario, we recommend that you use +[vitesse](https://github.com/antfu/vitesse). + +
+
+ +## Organization 🦔 + +Welcome to follow **dishait** + +- [Official Website](http://dishaxy.dishait.cn/) +- [Gitee](https://gitee.com/dishait) +- [Github](https://github.com/dishait) +- [NetEase Cloud Classroom](https://study.163.com/provider/480000001892585/index.htm?share=2&shareId=480000001892585) +
+
+ +## Details 🐳 + +### [1. Vite](https://cn.vitejs.dev/) + +This template uses **[Vite](https://cn.vitejs.dev/)** as the build tool. You can +configure the project's build in `vite.config.ts` at the root directory. + +For the introduction of many mainstream plugins and complex configurations, they +have been integrated into the presets under the root directory. In most cases, +you do not need to reconfigure them. + +
+ +### [2. Vue3](https://v3.cn.vuejs.org/) + +
+ +### [3. File-based Routing](https://github.com/posva/unplugin-vue-router) + +The directory structure is the route. + +For example: + +- `src/pages/index.vue` => `/` +- `src/pages/about.vue` => `/about` +- `src/pages/users/index.vue` => `/users` +- `src/pages/users/profile.vue` => `/users/profile` +- `src/pages/users/[id].vue` => `/users/:id` +- `src/pages/[user]/settings.vue` => `/:user/settings` +- `src/pages/[...notFound].vue` => 404 route + +For more details, please refer to +[unplugin-vue-router](https://github.com/posva/unplugin-vue-router). + +
+ +### [4. Layout System](https://github.com/dishait/vite-plugin-vue-meta-layouts) + +#### Default Layout + +`src/layouts/default.vue` will be used as the default layout. + +```html + + +``` + +At this point, `src/pages/index.vue`: + +```html + + +``` + +When routing to `/`, the page will render: + +```html +default home +``` + +Now, `src/pages/about.vue`: + +```html + + +``` + +When routing to `/about`, the page will render: + +```html +default about +``` + +
+ +#### Non-Default Layout + +Create a `src/layouts/custom.vue` randomly: + +```html + + +``` + +At this point, in `src/pages/index.vue`: + +```html + + + + + +{ + "meta": { + "layout": "custom" + } +} + +``` + +When routing to `/`, the page will render: + +```html +custom home +``` + +See specifically 👉 +[vite-plugin-vue-meta-layouts](https://github.com/dishait/vite-plugin-vue-meta-layouts) + +
+ +### [5. Mock Support](https://github.com/vbenjs/vite-plugin-mock) + +In the `mock` directory under the root directory, you can export default `api` +resources in modules. + +For example, export from `mock/test.ts`: + +```ts +import { MockMethod } from "vite-plugin-mock"; +export default [ + { + url: "/api/mock/get", + method: "get", + response: () => { + return { + code: 0, + data: { + name: "vben", + }, + }; + }, + }, +] as MockMethod[]; +``` + +You can then make mock requests in the `src` directory. + +```html + +``` + +Here we use [vue-request](https://cn.attojs.org/) to make requests, but since +this `mock` intercepts an entire interface, it is also possible to use request +libraries such as `axios`. + +
+ +### [6. Api Auto Import](https://github.com/antfu/unplugin-auto-import) + +The original `vue` `api` needs to be manually `import`ed. + +```ts +import { computed, ref } from "vue"; +const count = ref(0); +const doubled = computed(() => count.value * 2); +``` + +Now it can be directly used. + +```ts +const count = ref(0); +const doubled = computed(() => count.value * 2); +``` + +And the above `api` is automatically imported on demand. + +Currently, the template supports automatic import of libraries that support +auto-importing `api`. + +- `vue` +- `vuex` +- `pinia` +- `vue-i18n` +- `vue-router` +- `@vueuse/core` +- `@vueuse/head` +- `@vueuse/math` + +Just make sure to install the dependencies and see the specific details here +👉 +[vite-auto-import-resolvers](https://github.com/dishait/vite-auto-import-resolvers#%E9%BB%98%E8%AE%A4%E6%94%AF%E6%8C%81%E5%88%97%E8%A1%A8), + +Of course, there are also automatic imports in projects, just need to meet the +following specifications. + +1. The export from `src/composables` will be automatically imported as needed. + +For example, there is a `src/composables/foo.ts` file: + +```ts +// default export +export default 1000; +``` + +1. No need for `import` at this point. + +```html + + + +``` + +2. The export from `src/stores` will be automatically imported as needed. + +For example, there is a `src/stores/counterStore.ts` file: + +```ts +// default export +export default defineStore("counter", { + state() { + return { + counter: 1, + }; + }, + actions: { + inc() { + this.counter++; + }, + }, +}); +``` + +At this point, there is no need for `import` anymore. + +```html + + + +``` + +3. `src/api` is also automatically imported on demand, similar to the above. + +You can see more details in the +[unplugin-auto-import](https://github.com/antfu/unplugin-auto-import) +documentation. + +
+ +### [7. Automatic component importing](https://github.com/antfu/unplugin-vue-components) + +It turns out that `import` is required. + +```html + + + + +``` + +Now, any components defined in the `src/components` directory will be +automatically imported on demand, meaning that `import` statements are not +required. + +```html + + +``` + +Of course, it also supports nested components, such as +`src/components/foo/bar.vue` 👇 + +```html + + +``` + +Automatic importing of popular component libraries is also supported, such as +`Naive ui`. + +You only need to install the dependency. + +```shell +pnpm add naive-ui +``` + +Then you can use it in your templates. + +```html + + +``` + +Currently supported component libraries are: + +- [vant](https://github.com/youzan/vant) +- [idux](https://github.com/IDuxFE/idux) +- [devui](https://github.com/DevCloudFE/vue-devui) +- [quasar](https://github.com/quasarframework/quasar) +- [varlet](https://github.com/varletjs/varlet) +- [inkline](https://github.com/inkline/inkline) +- [vuetify](https://github.com/vuetifyjs/vuetify) +- [naive-ui](https://github.com/TuSimple/naive-ui) +- [primevue](https://github.com/primefaces/primevue) +- [layui-vue](https://gitee.com/layui/layui-vue) +- [view-design](https://iviewui.com/) +- [arco-design](https://github.com/arco-design/arco-design) +- [element-plus](https://github.com/element-plus/element-plus) +- [ant-design-vue](https://github.com/vueComponent/ant-design-vue) +- [@headlessui/vue](https://github.com/tailwindlabs/headlessui) +- [tdesign-vue-next](https://github.com/Tencent/tdesign-vue-next) +- [@vueuse/components](https://github.com/vueuse/vueuse/tree/main/packages/components) + +Please refer to 👉 +[unplugin-vue-components](https://github.com/antfu/unplugin-vue-components) + +
+ +### [8. Automatic icon importing](https://unocss.dev/presets/icons) + +You can go to [icones](https://icones.netlify.app/) and click on any icon +library you like. + +![icons-first-step](public/docs/icons-first-step.png) + +Then click on one of the icons you like. + +![icons-second-step](public/docs/icons-second-step.png) + +Copy its name. + +![icons-third-step](public/docs/icons-third-step.png) + +In the template, you can use it directly through the `class` method, remember to +add the prefix `i-`. + +```html + +``` + +After saving, wait for the automatic download of theAfter saving, wait for the +automatic download of the icon library and you can see the corresponding icon in +the page. + +I also recommend using the `vscode` plugin +[Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify). + +This plugin displays a preview of the icons in the template. + +Of course, dynamic loading of icons is also supported: + +```html + + + +``` + +Please note that for dynamic icons, make sure to test all the icons in the +development environment. + +For more information, please refer to +[unocss/presets/icons](https://unocss.dev/presets/icons). + +
+ +### [9. VueUse Support](https://vueuse.org/) + +`VueUse` is a powerful `hooks` library. For example, if you want to get the +mouse position, you only need to do this: + +```html + + + +``` + +Please refer to 👉 [VueUse](https://vueuse.org/) + +
+ +### [10. TypeScript's](https://www.tslang.cn/) + +You don't need to reconfigure, just write it in `ts` directly. + +
+ +### [11. unocss's](https://unocss.dev/) + +`unocss` is a faster development `atomic CSS` library. + +You can use it directly in the template, no configuration is needed. + +```html + +``` + +The above template will render white text on a red background. + +It also supports [attribute mode](https://unocss.dev/presets/attributify), which +means you can use shorthand notation. + +```html + +``` + +This can reduce the amount of code when adjusting margin sizes, among other +things. + +For more information, please refer to [unocss](https://unocss.dev/). + +
+ +### [12. Dark mode support](https://github.com/dishait/vue-dark-switch) + +Dark mode is implemented by +[vue-dark-switch](https://github.com/dishait/vue-dark-switch). + +```html + + + +``` + +Please refer to 👉 [vue-dark-switch](https://github.com/dishait/vue-dark-switch) + +
+ +### [13. SWR Request Support](https://cn.attojs.org/) + +SWR is a more modern way of making requests, for more information please refer +to the article 👉 [SWR](https://zhuanlan.zhihu.com/p/89570321). + +And [vue-request](https://cn.attojs.org/) is a Vue version request library for +SWR. + +You can use it like this, for example, to request `/api/test` + +```html + + + +``` + +All the basic data, state, and caching are handled for you, so there's no need +to re-wrap things. + +For more information, please refer to [vue-request](https://cn.attojs.org/). + +
+ +### [14. Pinia State Management](https://pinia.vuejs.org/) + +`Pinia` is the next-generation state management library, which is simpler than +`Vuex` and has better TypeScript support. + +You can define your states in the `src/stores` directory. + +For example, create a `src/stores/counter.ts` file: + +```ts +// src/stores/counter.ts +import { defineStore } from "pinia"; + +export const useCounterStore = defineStore("counter", { + state() { + return { count: 0 }; + }, + actions: { + inc() { + this.count++; + }, + }, +}); +``` + +After defining it, you can use it directly in the `setup`. + +```html + + +``` + +
+
+ +### 22. Command Line Auto Create and Remove + +To create a standard page or component just enter 👇, + +```shell +pnpm auto:create +``` + +Of course, you can also delete 👇, + +```shell +pnpm auto:remove +``` + +
+
+ +### [23. i18n Internationalization Support](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n) + +In daily business, there may be some scenarios that require +internationalization. Then you only need to define different languages' `yml` in +the `locales` directory at the root level to achieve out-of-the-box +internationalization support in the project. + +For example, `locales/en.yml` is used to define the English content that +requires internationalization support. + +```yml +# locales/en.yml +# English + +index: index +about: about +not-found: Notfound +``` + +For example, `locales/简体中文.yml` is used to define the Chinese content that +requires internationalization support. + +```yml +# locales/简体中文.yml +# 中文 + +index: 主页 +about: 关于 +not-found: 未找到页面 +``` + +You can use it in components like this at this time 👇 + +```html + + + +``` + +For more detailed instructions, please refer to the +[@intlify/vite-plugin-vue-i18n](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n) +and [vue-i18n](https://github.com/intlify/vue-i18n-next). + +In addition, `yml` is a popular configuration file format in frontend +development, and you can find its syntax in Mr. Ruan Yifeng's tutorial: +[YAML Language Tutorial](http://www.ruanyifeng.com/blog/2016/07/yaml.html). + +Here are some recommended VS Code plugins: + +- Multifunctional `i18n` support: + [i18n Ally](https://marketplace.visualstudio.com/items?itemName=Lokalise.i18n-ally) + +
+
+ +For more detailed instructions, please refer to the +[@intlify/vite-plugin-vue-i18n](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n) +and [vue-i18n](https://github.com/intlify/vue-i18n-next). + +In addition, `yml` is a popular configuration file format in frontend +development, and you can find its syntax in Mr. Ruan Yifeng's tutorial: +[YAML Language Tutorial](http://www.ruanyifeng.com/blog/2016/07/yaml.html). + +Here are some recommended VS Code plugins: + +Multifunctional `i18n` support: +[i18n Ally](https://marketplace.visualstudio.com/items?itemName=Lokalise.i18n-ally) + +
+
+ +### 24. Beautiful `404` Page Support + +In daily business, when a user visits a non-existent page, they should be given +an information prompt that the page does not exist, and this prompt page is the +`404` page. + +You can visit any non-existent page at random, for example `/bucunzai` + +![notFound](public/docs/notFound.png) + +Of course, there is also dark mode adaptation. + +![notFound-dark](public/docs/notFound-dark.png) + +It also supports simple responsive adaptation. For example, it will display +correctly on mobile browsers. + +If the cover of this `404` page does not meet your taste, you can modify the +`src` attribute of the `img` tag in `pages/[...notFound].vue`. The default is +`32.svg`, supporting `1 ~ 33` `svg`. + +For example, the default is: + +```html + + +``` + +To change the cover to `/notFound/33.svg`, modify it as follows: + +```html + + +``` + +This will switch the cover to: + +![notFound-other](public/docs/notFound-other.png) + +
+
+ +### 25. [`tsx` Support](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) + +You only need to place the `.tsx` file under `src/components`, and you can +directly use it in the template. + +For example, if you have a `src/components/foo.tsx` file, you can directly use +it in the template. + +```tsx +// src/components/foo.tsx +export default defineComponent({ + render() { + return
Test
; + }, +}); +``` + +```html + +``` + +For more details, please refer to: +[@vitejs/plugin-vue-jsx](https://github.com/vitejs/vite/tree/main/packages/plugin-vue-jsx) + +
+
+ +### 26. [`gzip` Resource Compression Support](https://github.com/vbenjs/vite-plugin-compression) + +Out-of-the-box `gzip` resource compression in production environment, no +configuration required. + +For more details, please refer to: +[vite-plugin-compression](https://github.com/vbenjs/vite-plugin-compression) + +
+
+ +### 27. [Environment Variable Configuration Support](https://cn.vitejs.dev/guide/env-and-mode.html) + +The `.env` file in the root directory is used to configure environment variables +for the project. + +
+
+ +### 28. Unified Code Standards and Style Support + +Code style verification provided by [eslint](https://github.com/eslint/eslint) +and code standardization using [prettier](https://github.com/prettier/prettier). + +Provided by [husky](https://github.com/typicode/husky) + +[lint-staged](https://github.com/okonet/lint-staged) during `commit` +verification. + +
+
+ +### 29. [Automatic Removal of Development Logs in Production Environment](https://github.com/dishait/vite-plugin-removelog) + +In the production environment, logs such as `console.log`, `console.warn`, and +`console.error` will be automatically removed to avoid the leakage of +development logs. + +For more details, please refer to: +[vite-plugin-removelog](https://github.com/dishait/vite-plugin-removelog) + +
+
+ +### 30. [defineOptions Support](https://vuejs.org/api/sfc-script-setup.html#defineoptions) + +```html + +``` + +
+
+ +### 31. [Echarts Support](https://github.com/ecomfe/vue-echarts) + +A simple integration with [vue-echarts](https://github.com/ecomfe/vue-echarts), +please refer to the documentation of +[echarts](https://github.com/apache/echarts) and +[vue-echarts](https://github.com/ecomfe/vue-echarts). + +
+
+ +### 32. [Global Toast Notification](https://github.com/euvl/vue-notification) + +Integrated with [vue-toastification](https://github.com/euvl/vue-notification), +you can use it in all files under the `src` directory: + +```ts +// Any file under the `src` directory is available. +toast.info("info"); +toast.error("error"); +toast.warning("warning"); +toast.success("success"); +``` + +For more details, please refer to: +[Global Toast Notification](https://github.com/euvl/vue-notification) + +
+
+ +### 33. [Global Axios Request Wrapper](https://www.axios-http.cn/) + +The [axios](https://www.axios-http.cn/) is wrapped, and you can use it in all +files under the `src` directory: + +```ts +// Available in any file under src +http.get("..."); +http.post("...", { name: "张三", age: 20 }); +// ... and so on +``` + +The above `http` is an instance created separately by `axios`, with simple error +prompts and response data conversion. For more details, please refer to +`src/composables/http.ts`. + +If you prefer a reactive style and `swr`, you can use it together with +[vue-request](https://github.com/attojs/vue-request). + +```ts +import { useRequest } from "vue-request"; + +const { data, error, loading } = useRequest(() => http.get("...")); + +loading.value; // loading + +error.value; // error + +data.value; // data +``` + +The `http` instance's `baseURL` takes the value from the environment variable +file `.env` for `VITE_API_BASE_URL`, defaulting to `/api`, which can be changed +according to your needs. + +For more details, please refer to 👉 [axios](https://www.axios-http.cn/). + +
+
+ +### 34. [Automatic Generation of Environment Variable Type Declarations](https://github.com/dishait/vite-plugin-env-types) + +In Vite projects, we can set environment variables in `.env` and use them in the +frontend source code through `import.meta.env`, but the type hinting is poor. +This feature can automatically generate type declarations to achieve real-time +type hinting, so you don't need to worry about and manage them manually. + +For more details, please refer to: +[vite-plugin-env-types](https://github.com/dishait/vite-plugin-env-types). + +
+
+ +### 35. [`renovate` Automatically Updates Dependencies](https://github.com/renovatebot/renovate) + +The [renovate](https://github.com/marketplace/renovate) bot on GitHub will +periodically check dependencies on GitHub and raise a `pr` to update the +repository, with the update strategy available at: +[unjs/renovate-config](https://github.com/unjs/renovate-config). + +Of course, you can also manually execute it to update: + +```shell +pnpm deps:fresh +``` + +For more details, please refer to: +[renovate](https://github.com/renovatebot/renovate) + +
+
+ +### 36. [Automatic Version Update and Generating `CHANGELOG`](https://github.com/unjs/changelogen) + +When we execute `pnpm run release`, it will automatically update the version and +update the `CHANGELOG.md` file. + +For more details, please refer to: +[unjs/changelogen](https://github.com/unjs/changelogen). + +
+
+ +### 37. [Fastest and Smallest `dockerfile` for Static `go` Service](https://github.com/PierreZ/goStatic) + +The `dockerfile` in the root directory configures the smallest and fastest +container for a static `go` service, making it more convenient for cloud +container services. + +For more details, please refer to: +[PierreZ/goStatic](https://github.com/PierreZ/goStatic). + +
+
+ +### 38. Base Secure Path Resolution + +In Vite, if we change the `base` in `vite.config.ts`, it causes the resource +paths and route paths to become invalid. Using `safeResolve` can ensure that the +same `base` is used in both development and production environments. + +```html + + + +``` + +
+
+ +### 39. `lightningcss` Support + +Now it will automatically detect whether the current project supports +[lightningcss](https://cn.vitejs.dev/guide/features.html#lightning-css) and +enable it intelligently. + +
+
+ +### 40. Vite Config Layer Support (Experimental) + +Now in `tov-template`, we can use the form of `vite.config.[mode].ts` to support +configuration files for different environments. + +1. Only vite.config.ts is selected when there is no specific mode. +2. When both vite.config.ts and vite.config.dev.ts exist, their configurations + are merged during development, with the configuration in vite.config.dev.ts + having higher priority. +3. When both vite.config.ts and vite.config.prod.ts exist, their configurations + are merged during production, with the configuration in vite.config.prod.ts + having higher priority. + +This feature is supported by +[vite-layers](https://github.com/markthree/vite-layers). + +
+
+
+ +## License + +Made with [markthree](./LICENSE) + +Published under [MIT License](./LICENSE). + +
diff --git a/index.html b/index.html new file mode 100644 index 0000000..65b9479 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + + + +
+ + + diff --git a/locales/English/common.yml b/locales/English/common.yml new file mode 100644 index 0000000..85625b7 --- /dev/null +++ b/locales/English/common.yml @@ -0,0 +1,10 @@ +# English + +home: home +about: about +echarts: echarts +edit: Edit +to test HMR: to test HMR +check out: Check out +The total number of views is: The total number of views is +the official Tov + Vue + Vite template: the official Tov + Vue + Vite template diff --git a/locales/English/test.yml b/locales/English/test.yml new file mode 100644 index 0000000..66a41ce --- /dev/null +++ b/locales/English/test.yml @@ -0,0 +1,3 @@ +# English + +test.module: lanugae module test diff --git a/locales/简体中文/common.yml b/locales/简体中文/common.yml new file mode 100644 index 0000000..85e5868 --- /dev/null +++ b/locales/简体中文/common.yml @@ -0,0 +1,10 @@ +# 中文 + +home: 主页 +about: 关于 +echarts: 图表 +edit: 编辑 +to test HMR: 测试热更新 +check out: 查看 +The total number of views is: 总浏览数 +the official Tov + Vue + Vite template: 公共的 Tov + Vue + Vite 模板 \ No newline at end of file diff --git a/locales/简体中文/test.yml b/locales/简体中文/test.yml new file mode 100644 index 0000000..efb8f3d --- /dev/null +++ b/locales/简体中文/test.yml @@ -0,0 +1,3 @@ +# 简体中文 + +test.module: 多语言多模块测试 diff --git a/mock/test.ts b/mock/test.ts new file mode 100644 index 0000000..3264db9 --- /dev/null +++ b/mock/test.ts @@ -0,0 +1,42 @@ +import { MockMethod } from 'vite-plugin-mock' +export default [ + { + url: '/api/mock/get', + method: 'get', + response: () => { + return { + code: 0, + data: { + name: 'mock', + }, + } + }, + }, + { + url: '/api/mock/post', + method: 'post', + timeout: 2000, + response: { + code: 0, + data: { + name: 'mock', + }, + }, + }, + { + url: '/api/mock/text', + method: 'post', + rawResponse: async (req, res) => { + let reqbody = '' + await new Promise((resolve) => { + req.on('data', (chunk) => { + reqbody += chunk + }) + req.on('end', () => resolve(undefined)) + }) + res.setHeader('Content-Type', 'text/plain') + res.statusCode = 200 + res.end(`hello, ${reqbody}`) + }, + }, +] as MockMethod[] diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..3a01cb0 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,4 @@ +[[redirects]] +to = "/index.html" +from = "/*" +status = 200 diff --git a/package.json b/package.json new file mode 100644 index 0000000..e260cce --- /dev/null +++ b/package.json @@ -0,0 +1,132 @@ +{ + "name": "tov-template", + "version": "1.19.0", + "description": "vite + vue3 + ts 开箱即用现代开发模板 | vite + vue3 + ts out-of-the-box modern development template", + "type": "module", + "scripts": { + "dev": "vite", + "test": "vitest", + "build": "vite build", + "prepare": "husky install", + "dev:host": "vite --host", + "dev:open": "vite --open", + "preview": "vite preview", + "coverage": "vitest --coverage", + "preinstall": "npx only-allow pnpm", + "typecheck": "npx vue-tsc --noEmit", + "preview:host": "vite preview --host", + "preview:open": "vite preview --open", + "lint": "eslint --ext .ts,.js,.jsx,.vue .", + "release": "plop --plopfile scripts/release.cjs", + "auto:remove": "plop --plopfile scripts/remove.cjs", + "auto:create": "plop --plopfile scripts/create.cjs", + "build:debug": "cross-env NODE_ENV=debug vite build", + "safe:init": "plop --plopfile scripts/safe-init.cjs", + "deps:fresh": "plop --plopfile scripts/deps-fresh.cjs", + "lint:fix": "eslint --fix --ext .ts,.js,.jsx,.vue,.cjs ." + }, + "engines": { + "node": ">=20.12.2" + }, + "packageManager": "pnpm@8.15.8", + "devDependencies": { + "@intlify/unplugin-vue-i18n": "^3.0.1", + "@types/ityped": "^1.0.3", + "@types/node": "^20.12.7", + "@typescript-eslint/parser": "7.8.0", + "@unocss/eslint-config": "0.59.4", + "@unocss/reset": "^0.59.4", + "@vitejs/plugin-vue": "^5.0.4", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vueuse/components": "^10.9.0", + "@vueuse/core": "^10.9.0", + "@vueuse/integrations": "^10.9.0", + "axios": "^1.6.8", + "browserslist": "^4.23.0", + "c8": "^9.1.0", + "changelogen": "^0.5.5", + "consola": "^3.2.3", + "cross-env": "^7.0.3", + "defu": "^6.1.4", + "echarts": "^5.5.0", + "eslint": "8.57.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-prettier": "5.1.3", + "eslint-plugin-vue": "^9.25.0", + "fs-extra": "^11.2.0", + "husky": "^9.0.11", + "ityped": "^1.0.3", + "kolorist": "^1.8.0", + "lightningcss": "^1.24.1", + "lint-staged": "^15.2.2", + "local-pkg": "^0.5.0", + "markdown-it-prism": "^2.3.0", + "mockjs": "^1.1.0", + "nprogress": "^0.2.0", + "perfect-debounce": "^1.0.0", + "pinia": "^2.1.7", + "pinia-plugin-persistedstate": "^3.2.1", + "plop": "^4.0.1", + "prettier": "^3.2.5", + "prism-theme-vars": "^0.2.5", + "simple-git": "^3.24.0", + "taze": "^0.13.7", + "terser": "^5.31.0", + "typescript": "^5.4.5", + "unocss": "^0.59.4", + "unplugin-auto-import": "^0.17.5", + "unplugin-vue-components": "^0.26.0", + "unplugin-vue-markdown": "^0.26.2", + "unplugin-vue-router": "^0.8.6", + "vite": "^5.2.10", + "vite-auto-import-resolvers": "^3.2.1", + "vite-layers": "^0.5.2", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-env-types": "^0.1.4", + "vite-plugin-legacy-swc": "^1.1.0", + "vite-plugin-mock": "2.9.8", + "vite-plugin-removelog": "^0.2.2", + "vite-plugin-use-modules": "^1.4.8", + "vite-plugin-vue-devtools": "^7.1.3", + "vite-plugin-vue-meta-layouts": "^0.4.3", + "vitest": "^1.5.3", + "vue": "^3.4.26", + "vue-dark-switch": "^1.0.6", + "vue-echarts": "^6.7.1", + "vue-i18n": "^9.13.1", + "vue-request": "2.0.4", + "vue-router": "^4.3.2", + "vue-toastification": "2.0.0-rc.5" + }, + "lint-staged": { + "*.{js,jsx,ts,tsx,vue}": "eslint --cache --fix" + }, + "overrides": { + "sourcemap-codec": "npm:@jridgewell/sourcemap-codec@latest", + "array-includes": "npm:@nolyfill/array-includes@latest", + "array.prototype.findlastindex": "npm:@nolyfill/array.prototype.findlastindex@latest", + "array.prototype.flat": "npm:@nolyfill/array.prototype.flat@latest", + "array.prototype.flatmap": "npm:@nolyfill/array.prototype.flatmap@latest", + "arraybuffer.prorotype.slice": "npm:@nolyfill/arraybuffer.prorotype.slice@latest", + "function.prototype.name": "npm:@nolyfill/function.prototype.name@latest", + "has": "npm:@nolyfill/has@latest", + "is-regex": "npm:@nolyfill/is-regex@latest", + "object-keys": "npm:@nolyfill/object-keys@latest", + "object.assign": "npm:@nolyfill/object.assign@latest", + "object.entries": "npm:@nolyfill/object.entries@latest", + "object.fromentries": "npm:@nolyfill/object.fromentries@latest", + "object.values": "npm:@nolyfill/object.values@latest", + "vue-demi": "npm:vue-demi@latest" + }, + "repository": { + "url": "https://github.com/dishait/tov-template" + }, + "browserslist": [ + ">= 0.25%", + "last 2 versions", + "not dead", + "not ie <= 11", + "Android >= 4.0", + "iOS >= 8" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..59f33c7 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,7227 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +devDependencies: + '@intlify/unplugin-vue-i18n': + specifier: ^3.0.1 + version: 3.0.1(vue-i18n@9.13.1) + '@types/ityped': + specifier: ^1.0.3 + version: 1.0.3 + '@types/node': + specifier: ^20.12.7 + version: 20.12.7 + '@typescript-eslint/parser': + specifier: 7.8.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@unocss/eslint-config': + specifier: 0.59.4 + version: 0.59.4(eslint@8.57.0)(typescript@5.4.5) + '@unocss/reset': + specifier: ^0.59.4 + version: 0.59.4 + '@vitejs/plugin-vue': + specifier: ^5.0.4 + version: 5.0.4(vite@5.2.10)(vue@3.4.26) + '@vitejs/plugin-vue-jsx': + specifier: ^3.1.0 + version: 3.1.0(vite@5.2.10)(vue@3.4.26) + '@vueuse/components': + specifier: ^10.9.0 + version: 10.9.0(vue@3.4.26) + '@vueuse/core': + specifier: ^10.9.0 + version: 10.9.0(vue@3.4.26) + '@vueuse/integrations': + specifier: ^10.9.0 + version: 10.9.0(axios@1.6.8)(nprogress@0.2.0)(vue@3.4.26) + axios: + specifier: ^1.6.8 + version: 1.6.8 + browserslist: + specifier: ^4.23.0 + version: 4.23.0 + c8: + specifier: ^9.1.0 + version: 9.1.0 + changelogen: + specifier: ^0.5.5 + version: 0.5.5 + consola: + specifier: ^3.2.3 + version: 3.2.3 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + defu: + specifier: ^6.1.4 + version: 6.1.4 + echarts: + specifier: ^5.5.0 + version: 5.5.0 + eslint: + specifier: 8.57.0 + version: 8.57.0 + eslint-config-prettier: + specifier: 9.1.0 + version: 9.1.0(eslint@8.57.0) + eslint-plugin-prettier: + specifier: 5.1.3 + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) + eslint-plugin-vue: + specifier: ^9.25.0 + version: 9.25.0(eslint@8.57.0) + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 + husky: + specifier: ^9.0.11 + version: 9.0.11 + ityped: + specifier: ^1.0.3 + version: 1.0.3 + kolorist: + specifier: ^1.8.0 + version: 1.8.0 + lightningcss: + specifier: ^1.24.1 + version: 1.24.1 + lint-staged: + specifier: ^15.2.2 + version: 15.2.2 + local-pkg: + specifier: ^0.5.0 + version: 0.5.0 + markdown-it-prism: + specifier: ^2.3.0 + version: 2.3.0 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + perfect-debounce: + specifier: ^1.0.0 + version: 1.0.0 + pinia: + specifier: ^2.1.7 + version: 2.1.7(typescript@5.4.5)(vue@3.4.26) + pinia-plugin-persistedstate: + specifier: ^3.2.1 + version: 3.2.1(pinia@2.1.7) + plop: + specifier: ^4.0.1 + version: 4.0.1 + prettier: + specifier: ^3.2.5 + version: 3.2.5 + prism-theme-vars: + specifier: ^0.2.5 + version: 0.2.5 + simple-git: + specifier: ^3.24.0 + version: 3.24.0 + taze: + specifier: ^0.13.7 + version: 0.13.7 + terser: + specifier: ^5.31.0 + version: 5.31.0 + typescript: + specifier: ^5.4.5 + version: 5.4.5 + unocss: + specifier: ^0.59.4 + version: 0.59.4(postcss@8.4.38)(vite@5.2.10) + unplugin-auto-import: + specifier: ^0.17.5 + version: 0.17.5(@vueuse/core@10.9.0) + unplugin-vue-components: + specifier: ^0.26.0 + version: 0.26.0(vue@3.4.26) + unplugin-vue-markdown: + specifier: ^0.26.2 + version: 0.26.2(vite@5.2.10) + unplugin-vue-router: + specifier: ^0.8.6 + version: 0.8.6(vue-router@4.3.2)(vue@3.4.26) + vite: + specifier: ^5.2.10 + version: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vite-auto-import-resolvers: + specifier: ^3.2.1 + version: 3.2.1(unplugin-auto-import@0.17.5)(vite@5.2.10) + vite-layers: + specifier: ^0.5.2 + version: 0.5.2(vite@5.2.10) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@5.2.10) + vite-plugin-env-types: + specifier: ^0.1.4 + version: 0.1.4(vite@5.2.10) + vite-plugin-legacy-swc: + specifier: ^1.1.0 + version: 1.1.0(vite@5.2.10) + vite-plugin-mock: + specifier: 2.9.8 + version: 2.9.8(mockjs@1.1.0)(vite@5.2.10) + vite-plugin-removelog: + specifier: ^0.2.2 + version: 0.2.2(vue@3.4.26) + vite-plugin-use-modules: + specifier: ^1.4.8 + version: 1.4.8(vite@5.2.10)(vue@3.4.26) + vite-plugin-vue-devtools: + specifier: ^7.1.3 + version: 7.1.3(vite@5.2.10)(vue@3.4.26) + vite-plugin-vue-meta-layouts: + specifier: ^0.4.3 + version: 0.4.3(vite@5.2.10)(vue-router@4.3.2) + vitest: + specifier: ^1.5.3 + version: 1.5.3(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vue: + specifier: ^3.4.26 + version: 3.4.26(typescript@5.4.5) + vue-dark-switch: + specifier: ^1.0.6 + version: 1.0.6(vite@5.2.10)(vue@3.4.26) + vue-echarts: + specifier: ^6.7.1 + version: 6.7.1(echarts@5.5.0)(vue@3.4.26) + vue-i18n: + specifier: ^9.13.1 + version: 9.13.1(vue@3.4.26) + vue-request: + specifier: 2.0.4 + version: 2.0.4(vue@3.4.26) + vue-router: + specifier: ^4.3.2 + version: 4.3.2(vue@3.4.26) + vue-toastification: + specifier: 2.0.0-rc.5 + version: 2.0.0-rc.5(vue@3.4.26) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} + dependencies: + execa: 5.1.1 + find-up: 5.0.0 + dev: true + + /@antfu/ni@0.21.12: + resolution: {integrity: sha512-2aDL3WUv8hMJb2L3r/PIQWsTLyq7RQr3v9xD16fiz6O8ys1xEyLhhTOv8gxtZvJiTzjTF5pHoArvRdesGL1DMQ==} + hasBin: true + dev: true + + /@antfu/utils@0.7.7: + resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} + dev: true + + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 + dev: true + + /@babel/compat-data@7.24.1: + resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.24.3: + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helpers': 7.24.1 + '@babel/parser': 7.24.1 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core@7.24.4: + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.24.1: + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + + /@babel/generator@7.24.4: + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.1 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.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.24.1(@babel/core@7.24.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-class-features-plugin@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@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.24.1(@babel/core@7.24.4) + '@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-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + 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.24.0 + 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.24.0 + dev: true + + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.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 + dev: true + + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + 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.24.0 + 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.24.0 + dev: true + + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.24.1: + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers@7.24.4: + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + dev: true + + /@babel/parser@7.24.1: + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.4) + dev: true + + /@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) + dev: true + + /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + dev: true + + /@babel/preset-typescript@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.4) + dev: true + + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + dev: true + + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@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.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + 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.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.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.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@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.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: true + + /@iconify/utils@2.1.23: + resolution: {integrity: sha512-YGNbHKM5tyDvdWZ92y2mIkrfvm5Fvhe6WJSkWu7vvOFhMtYDP0casZpoRz0XEHZCrYsR4stdGT3cZ52yp5qZdQ==} + dependencies: + '@antfu/install-pkg': 0.1.1 + '@antfu/utils': 0.7.7 + '@iconify/types': 2.0.0 + debug: 4.3.4 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@intlify/bundle-utils@7.5.1(vue-i18n@9.13.1): + resolution: {integrity: sha512-UovJl10oBIlmYEcWw+VIHdKY5Uv5sdPG0b/b6bOYxGLln3UwB75+2dlc0F3Fsa0RhoznQ5Rp589/BZpABpE4Xw==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + dependencies: + '@intlify/message-compiler': 9.10.2 + '@intlify/shared': 9.10.2 + acorn: 8.11.3 + escodegen: 2.1.0 + estree-walker: 2.0.2 + jsonc-eslint-parser: 2.4.0 + magic-string: 0.30.8 + mlly: 1.6.1 + source-map-js: 1.2.0 + vue-i18n: 9.13.1(vue@3.4.26) + yaml-eslint-parser: 1.2.2 + dev: true + + /@intlify/core-base@9.13.1: + resolution: {integrity: sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==} + engines: {node: '>= 16'} + dependencies: + '@intlify/message-compiler': 9.13.1 + '@intlify/shared': 9.13.1 + dev: true + + /@intlify/message-compiler@9.10.2: + resolution: {integrity: sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA==} + engines: {node: '>= 16'} + dependencies: + '@intlify/shared': 9.10.2 + source-map-js: 1.2.0 + dev: true + + /@intlify/message-compiler@9.13.1: + resolution: {integrity: sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==} + engines: {node: '>= 16'} + dependencies: + '@intlify/shared': 9.13.1 + source-map-js: 1.2.0 + dev: true + + /@intlify/shared@9.10.2: + resolution: {integrity: sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q==} + engines: {node: '>= 16'} + dev: true + + /@intlify/shared@9.13.1: + resolution: {integrity: sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==} + engines: {node: '>= 16'} + dev: true + + /@intlify/unplugin-vue-i18n@3.0.1(vue-i18n@9.13.1): + resolution: {integrity: sha512-q1zJhA/WpoLBzAAuKA5/AEp0e+bMOM10ll/HxT4g1VAw/9JhC4TTobP9KobKH90JMZ4U2daLFlYQfKNd29lpqw==} + engines: {node: '>= 14.16'} + peerDependencies: + petite-vue-i18n: '*' + vue-i18n: '*' + vue-i18n-bridge: '*' + peerDependenciesMeta: + petite-vue-i18n: + optional: true + vue-i18n: + optional: true + vue-i18n-bridge: + optional: true + dependencies: + '@intlify/bundle-utils': 7.5.1(vue-i18n@9.13.1) + '@intlify/shared': 9.10.2 + '@rollup/pluginutils': 5.1.0 + '@vue/compiler-sfc': 3.4.21 + debug: 4.3.4 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + json5: 2.2.3 + pathe: 1.1.2 + picocolors: 1.0.0 + source-map-js: 1.2.0 + unplugin: 1.10.0 + vue-i18n: 9.13.1(vue@3.4.26) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@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 + + /@kwsites/file-exists@1.1.1: + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@kwsites/promise-deferred@1.1.1: + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + dev: true + + /@ljharb/through@2.3.13: + resolution: {integrity: sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + dev: true + + /@mdit-vue/plugin-component@2.1.2: + resolution: {integrity: sha512-n1HcAC82l912HhtiMSxl5pQLKBYbPok/IcdGRD49rTt53NXBqct68qo58+7jvsj+f8Lmo7kjD+em3tP4BSgl0A==} + dependencies: + '@types/markdown-it': 14.0.1 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/plugin-frontmatter@2.1.2: + resolution: {integrity: sha512-2YOVOsMRtf11bZ6mEB4xoWD6RG5X0Ex+g/1c1iXoYUMUahlZnz9flXUM6WAE++HsLR3Wkvd5FNhGUArrcxn0dA==} + dependencies: + '@mdit-vue/types': 2.1.0 + '@types/markdown-it': 14.0.1 + gray-matter: 4.0.3 + markdown-it: 14.1.0 + dev: true + + /@mdit-vue/types@2.1.0: + resolution: {integrity: sha512-TMBB/BQWVvwtpBdWD75rkZx4ZphQ6MN0O4QB2Bc0oI5PC2uE57QerhNxdRZ7cvBHE2iY2C+BUNUziCfJbjIRRA==} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: true + + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/rollup-android-arm-eabi@4.13.0: + resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.13.0: + resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.13.0: + resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.13.0: + resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.13.0: + resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.13.0: + resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.13.0: + resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.13.0: + resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.13.0: + resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.13.0: + resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.13.0: + resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.13.0: + resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.13.0: + resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@swc/core-darwin-arm64@1.4.8: + resolution: {integrity: sha512-hhQCffRTgzpTIbngSnC30vV6IJVTI9FFBF954WEsshsecVoCGFiMwazBbrkLG+RwXENTrMhgeREEFh6R3KRgKQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.4.8: + resolution: {integrity: sha512-P3ZBw8Jr8rKhY/J8d+6WqWriqngGTgHwtFeJ8MIakQJTbdYbFgXSZxcvDiERg3psbGeFXaUaPI0GO6BXv9k/OQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.4.8: + resolution: {integrity: sha512-PP9JIJt19bUWhAGcQW6qMwTjZOcMyzkvZa0/LWSlDm0ORYVLmDXUoeQbGD3e0Zju9UiZxyulnpjEN0ZihJgPTA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.4.8: + resolution: {integrity: sha512-HvEWnwKHkoVUr5iftWirTApFJ13hGzhAY2CMw4lz9lur2m+zhPviRRED0FCI6T95Knpv7+8eUOr98Z7ctrG6DQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.4.8: + resolution: {integrity: sha512-kY8+qa7k/dEeBq9p0Hrta18QnJPpsiJvDQSLNaTIFpdM3aEM9zbkshWz8gaX5VVGUEALowCBUWqmzO4VaqM+2w==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.4.8: + resolution: {integrity: sha512-0WWyIw432wpO/zeGblwq4f2YWam4pn8Z/Ig4KzHMgthR/KmiLU3f0Z7eo45eVmq5vcU7Os1zi/Zb65OOt09q/w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.4.8: + resolution: {integrity: sha512-p4yxvVS05rBNCrBaSTa20KK88vOwtg8ifTW7ec/yoab0bD5EwzzB8KbDmLLxE6uziFa0sdjF0dfRDwSZPex37Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.4.8: + resolution: {integrity: sha512-jKuXihxAaqUnbFfvPxtmxjdJfs87F1GdBf33il+VUmSyWCP4BE6vW+/ReDAe8sRNsKyrZ3UH1vI5q1n64csBUA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.4.8: + resolution: {integrity: sha512-O0wT4AGHrX8aBeH6c2ADMHgagAJc5Kf6W48U5moyYDAkkVnKvtSc4kGhjWhe1Yl0sI0cpYh2In2FxvYsb44eWw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.4.8: + resolution: {integrity: sha512-C2AYc3A2o+ECciqsJWRgIpp83Vk5EaRzHe7ed/xOWzVd0MsWR+fweEsyOjlmzHfpUxJSi46Ak3/BIZJlhZbXbg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.4.8: + resolution: {integrity: sha512-uY2RSJcFPgNOEg12RQZL197LZX+MunGiKxsbxmh22VfVxrOYGRvh4mPANFlrD1yb38CgmW1wI6YgIi8LkIwmWg==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.6 + optionalDependencies: + '@swc/core-darwin-arm64': 1.4.8 + '@swc/core-darwin-x64': 1.4.8 + '@swc/core-linux-arm-gnueabihf': 1.4.8 + '@swc/core-linux-arm64-gnu': 1.4.8 + '@swc/core-linux-arm64-musl': 1.4.8 + '@swc/core-linux-x64-gnu': 1.4.8 + '@swc/core-linux-x64-musl': 1.4.8 + '@swc/core-win32-arm64-msvc': 1.4.8 + '@swc/core-win32-ia32-msvc': 1.4.8 + '@swc/core-win32-x64-msvc': 1.4.8 + dev: true + + /@swc/counter@0.1.3: + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + dev: true + + /@swc/types@0.1.6: + resolution: {integrity: sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==} + dependencies: + '@swc/counter': 0.1.3 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/fined@1.1.5: + resolution: {integrity: sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==} + dev: true + + /@types/inquirer@9.0.7: + resolution: {integrity: sha512-Q0zyBupO6NxGRZut/JdmqYKOnN95Eg5V8Csg3PGKkP+FnvsUZx1jAyK7fztIszxxMuoBA6E3KXWvdZVXIpx60g==} + dependencies: + '@types/through': 0.0.33 + rxjs: 7.8.1 + dev: true + + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true + + /@types/ityped@1.0.3: + resolution: {integrity: sha512-89dSbYe+TuNYRgw5stHSAlQ1ABp5Ca9UPw/yCvaFBUn6W7M2wG1XjivvohYCkOC2rIKCnSAjezIXe8oDmrJPew==} + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/liftoff@4.0.3: + resolution: {integrity: sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==} + dependencies: + '@types/fined': 1.1.5 + '@types/node': 20.12.7 + dev: true + + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: true + + /@types/markdown-it@14.0.1: + resolution: {integrity: sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==} + 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/mockjs@1.0.10: + resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==} + dev: true + + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true + + /@types/through@0.0.33: + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} + dependencies: + '@types/node': 20.12.7 + dev: true + + /@types/web-bluetooth@0.0.20: + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + dev: true + + /@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@7.8.0: + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 + dev: true + + /@typescript-eslint/types@7.8.0: + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true + + /@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5): + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.4 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@7.8.0: + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} + engines: {node: ^18.18.0 || >=20.0.0} + dependencies: + '@typescript-eslint/types': 7.8.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true + + /@unocss/astro@0.59.4(vite@5.2.10): + resolution: {integrity: sha512-DU3OR5MMR1Uvvec4/wB9EetDASHRg19Moy6z/MiIhn8JWJ0QzWYgSeJcfUX8exomMYv6WUEQJL+CyLI34Wmn8w==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@unocss/core': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/vite': 0.59.4(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/cli@0.59.4: + resolution: {integrity: sha512-TT+WKedSifhsRqnpoYD2LfyYipVzEbzIU4DDGIaDNeDxGXYOGpb876zzkPDcvZSpI37IJ/efkkV7PGYpPBcQBQ==} + engines: {node: '>=14'} + hasBin: true + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0 + '@unocss/config': 0.59.4 + '@unocss/core': 0.59.4 + '@unocss/preset-uno': 0.59.4 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.2.3 + fast-glob: 3.3.2 + magic-string: 0.30.10 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/config@0.59.4: + resolution: {integrity: sha512-h3yhj+D5Ygn5R7gbK4wMrtXZX6FF5DF6YD517sSSb0XB3lxHD9PhhT4HaV1hpHknvu0cMFU3460M45+TN1TI0Q==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.59.4 + unconfig: 0.3.13 + dev: true + + /@unocss/core@0.59.4: + resolution: {integrity: sha512-bBZ1sgcAtezQVZ1BST9IS3jqcsTLyqKNjiIf7FTnX3DHpfpYuMDFzSOtmkZDzBleOLO/CtcRWjT0HwTSQAmV0A==} + dev: true + + /@unocss/eslint-config@0.59.4(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-a0FWOXQtdheYplZI+Oba2QMNWzCsfTUV/EuYEUDuKFARcsqpzO0PgRSH0MDHz0nROYmxeKkEKW/56dbAXmjBFQ==} + engines: {node: '>=14'} + dependencies: + '@unocss/eslint-plugin': 0.59.4(eslint@8.57.0)(typescript@5.4.5) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + dev: true + + /@unocss/eslint-plugin@0.59.4(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-bWxr0ax0X8F97/JcQ8V34Zl4ZSPklMkYAExj+svfanng7i6ymBCmMDfSVcNjb7VJFP1ealNuEnJ9PJcV0N0aQQ==} + engines: {node: '>=14'} + dependencies: + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@unocss/config': 0.59.4 + '@unocss/core': 0.59.4 + magic-string: 0.30.10 + synckit: 0.9.0 + transitivePeerDependencies: + - eslint + - supports-color + - typescript + dev: true + + /@unocss/extractor-arbitrary-variants@0.59.4: + resolution: {integrity: sha512-RDe4FgMGJQ+tp9GLvhPHni7Cc2O0lHBRMElVlN8LoXJAdODMICdbrEPGJlEfrc+7x/QgVFoR895KpYJh3hIgGA==} + dependencies: + '@unocss/core': 0.59.4 + dev: true + + /@unocss/inspector@0.59.4: + resolution: {integrity: sha512-QczJFNDiggmekkJyNcbcZIUVwlhvxz7ZwjnSf0w7K4znxfjKkZ1hNUbqLviM1HumkTKOdT27VISW7saN/ysO4w==} + dependencies: + '@unocss/core': 0.59.4 + '@unocss/rule-utils': 0.59.4 + gzip-size: 6.0.0 + sirv: 2.0.4 + dev: true + + /@unocss/postcss@0.59.4(postcss@8.4.38): + resolution: {integrity: sha512-KVz+AD7McHKp7VEWHbFahhyyVEo0oP/e1vnuNSuPlHthe+1V2zfH6lps+iJcvfL2072r5J+0PvD/1kOp5ryUSg==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + dependencies: + '@unocss/config': 0.59.4 + '@unocss/core': 0.59.4 + '@unocss/rule-utils': 0.59.4 + css-tree: 2.3.1 + fast-glob: 3.3.2 + magic-string: 0.30.10 + postcss: 8.4.38 + dev: true + + /@unocss/preset-attributify@0.59.4: + resolution: {integrity: sha512-BeogWuYaIakC1gmOZFFCjFVWmu/m3AqEX8UYQS6tY6lAaK2L4Qf4AstYBlT2zAMxy9LNxPDxFQrvfSfFk5Klsg==} + dependencies: + '@unocss/core': 0.59.4 + dev: true + + /@unocss/preset-icons@0.59.4: + resolution: {integrity: sha512-Afjwh5oC4KRE8TNZDUkRK6hvvV1wKLrS1e5trniE0B0AM9HK3PBolQaIU7QmzPv6WQrog+MZgIwafg1eqsPUCA==} + dependencies: + '@iconify/utils': 2.1.23 + '@unocss/core': 0.59.4 + ofetch: 1.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@unocss/preset-mini@0.59.4: + resolution: {integrity: sha512-ZLywGrXi1OCr4My5vX2rLUb5Xgx6ufR9WTQOvpQJGBdIV/jnZn/pyE5avCs476SnOq2K172lnd8mFmTK7/zArA==} + dependencies: + '@unocss/core': 0.59.4 + '@unocss/extractor-arbitrary-variants': 0.59.4 + '@unocss/rule-utils': 0.59.4 + dev: true + + /@unocss/preset-tagify@0.59.4: + resolution: {integrity: sha512-vWMdTUoghOSmTbdmZtERssffmdUdOuhh4vUdl0R8Kv6KxB0PkvEFCu2FItn97nRJdSPlZSFxxDkaOIg9w+STNQ==} + dependencies: + '@unocss/core': 0.59.4 + dev: true + + /@unocss/preset-typography@0.59.4: + resolution: {integrity: sha512-ZX9bxZUqlXK1qEDzO5lkK96ICt9itR/oNyn/7mMc1JPqwj263LumQMn5silocgzoLSUXEeq//L6GylqYjkL8GA==} + dependencies: + '@unocss/core': 0.59.4 + '@unocss/preset-mini': 0.59.4 + dev: true + + /@unocss/preset-uno@0.59.4: + resolution: {integrity: sha512-G1f8ZluplvXZ3bERj+sM/8zzY//XD++nNOlAQNKOANSVht3qEoJebrfEiMClNpA5qW5VWOZhEhPkh0M7GsXtnA==} + dependencies: + '@unocss/core': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/preset-wind': 0.59.4 + '@unocss/rule-utils': 0.59.4 + dev: true + + /@unocss/preset-web-fonts@0.59.4: + resolution: {integrity: sha512-ehutTjKHnf2KPmdatN42N9a8+y+glKSU3UlcBRNsVIIXVIlaBQuPVGZSPhnMtrKD17IgWylXq2K6RJK+ab0hZA==} + dependencies: + '@unocss/core': 0.59.4 + ofetch: 1.3.4 + dev: true + + /@unocss/preset-wind@0.59.4: + resolution: {integrity: sha512-CNX6w0ZpSQg/i1oF0/WKWzto8PtLqoknC5h8JmmcGb7VsyBQeV0oNnhbURxpbuMEhbv1MWVIGvk8a+P6y0rFkQ==} + dependencies: + '@unocss/core': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/rule-utils': 0.59.4 + dev: true + + /@unocss/reset@0.59.4: + resolution: {integrity: sha512-Upy4xzdWl4RChbLAXBq1BoR4WqxXMoIfjvtcwSZcZK2sylXCFAseSWnyzJFdSiXPqNfmMuNgPXgiSxiQB+cmNA==} + dev: true + + /@unocss/rule-utils@0.59.4: + resolution: {integrity: sha512-1qoLJlBWAkS4D4sg73990S1MT7E8E5md/YhopKjTQuEC9SyeVmEg+5pR/Xd8xhPKMqbcuBPl/DS8b6l/GQO56A==} + engines: {node: '>=14'} + dependencies: + '@unocss/core': 0.59.4 + magic-string: 0.30.10 + dev: true + + /@unocss/scope@0.59.4: + resolution: {integrity: sha512-wBQJ39kw4Tfj4km7AoGvSIobPKVnRZVsgc0bema5Y0PL3g1NeVQ/LopBI2zEJWdpxGXUWxSDsXm7BZo6qVlD/A==} + dev: true + + /@unocss/transformer-attributify-jsx-babel@0.59.4: + resolution: {integrity: sha512-xtCRSgeTaDBiNJLVX7oOSFe63JiFB5nrdK23PHn3IlZM9O7Bxx4ZxI3MQJtFZFQNE+INFko+DVyY1WiFEm1p/Q==} + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/preset-typescript': 7.24.1(@babel/core@7.24.4) + '@unocss/core': 0.59.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@unocss/transformer-attributify-jsx@0.59.4: + resolution: {integrity: sha512-m4b83utzKMfUQH/45V2QkjJoXd8Tu2pRP1nic91Xf7QRceyKDD+BxoTneo2JNC2K274cQu7HqqotnCm2aFfEGw==} + dependencies: + '@unocss/core': 0.59.4 + dev: true + + /@unocss/transformer-compile-class@0.59.4: + resolution: {integrity: sha512-Vgk2OCLPW0pU+Uzr1IgDtHVspSBb+gPrQFkV+5gxHk9ZdKi3oYKxLuufVWYDSwv7o9yfQGbYrMH9YLsjRsnA7Q==} + dependencies: + '@unocss/core': 0.59.4 + dev: true + + /@unocss/transformer-directives@0.59.4: + resolution: {integrity: sha512-nXUTEclUbs0vQ4KfLhKt4J/5SLSEq1az2FNlJmiXMmqmn75X89OrtCu2OJu9sGXhn+YyBApxgcSSdxmtpqMi1Q==} + dependencies: + '@unocss/core': 0.59.4 + '@unocss/rule-utils': 0.59.4 + css-tree: 2.3.1 + dev: true + + /@unocss/transformer-variant-group@0.59.4: + resolution: {integrity: sha512-9XLixxn1NRgP62Kj4R/NC/rpqhql5F2s6ulJ8CAMTEbd/NylVhEANluPGDVUGcLJ4cj6E02hFa8C1PLGSm7/xw==} + dependencies: + '@unocss/core': 0.59.4 + dev: true + + /@unocss/vite@0.59.4(vite@5.2.10): + resolution: {integrity: sha512-q7GN7vkQYn79n7vYIUlaa7gXGwc7pk0Qo3z3ZFwWGE43/DtZnn2Hwl5UjgBAgi9McA+xqHJEHRsJnI7HJPHUYA==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0 + '@unocss/config': 0.59.4 + '@unocss/core': 0.59.4 + '@unocss/inspector': 0.59.4 + '@unocss/scope': 0.59.4 + '@unocss/transformer-directives': 0.59.4 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.10 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - rollup + dev: true + + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.10)(vue@3.4.26): + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.24.3 + '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.3) + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vue: 3.4.26(typescript@5.4.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@5.0.4(vite@5.2.10)(vue@3.4.26): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + dependencies: + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vue: 3.4.26(typescript@5.4.5) + dev: true + + /@vitest/expect@1.5.3: + resolution: {integrity: sha512-y+waPz31pOFr3rD7vWTbwiLe5+MgsMm40jTZbQE8p8/qXyBX3CQsIXRx9XK12IbY7q/t5a5aM/ckt33b4PxK2g==} + dependencies: + '@vitest/spy': 1.5.3 + '@vitest/utils': 1.5.3 + chai: 4.4.1 + dev: true + + /@vitest/runner@1.5.3: + resolution: {integrity: sha512-7PlfuReN8692IKQIdCxwir1AOaP5THfNkp0Uc4BKr2na+9lALNit7ub9l3/R7MP8aV61+mHKRGiqEKRIwu6iiQ==} + dependencies: + '@vitest/utils': 1.5.3 + p-limit: 5.0.0 + pathe: 1.1.2 + dev: true + + /@vitest/snapshot@1.5.3: + resolution: {integrity: sha512-K3mvIsjyKYBhNIDujMD2gfQEzddLe51nNOAf45yKRt/QFJcUIeTQd2trRvv6M6oCBHNVnZwFWbQ4yj96ibiDsA==} + dependencies: + magic-string: 0.30.10 + pathe: 1.1.2 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@1.5.3: + resolution: {integrity: sha512-Llj7Jgs6lbnL55WoshJUUacdJfjU2honvGcAJBxhra5TPEzTJH8ZuhI3p/JwqqfnTr4PmP7nDmOXP53MS7GJlg==} + dependencies: + tinyspy: 2.2.1 + dev: true + + /@vitest/utils@1.5.3: + resolution: {integrity: sha512-rE9DTN1BRhzkzqNQO+kw8ZgfeEBCLXiHJwetk668shmNBpSagQxneT5eSqEBLP+cqSiAeecvQmbpFfdMyLcIQA==} + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + dev: true + + /@vue-macros/common@1.10.2(vue@3.4.26): + resolution: {integrity: sha512-WC66NPVh2mJWqm4L0l/u/cOqm4pNOIwVdMGnDYAH2rHcOWy5x68GkhpkYTBu1+xwCSeHWOQn1TCGGbD+98fFpA==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true + dependencies: + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0 + '@vue/compiler-sfc': 3.4.21 + ast-kit: 0.12.1 + local-pkg: 0.5.0 + magic-string-ast: 0.3.0 + vue: 3.4.26(typescript@5.4.5) + transitivePeerDependencies: + - rollup + dev: true + + /@vue/babel-helper-vue-transform-on@1.2.2: + resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} + dev: true + + /@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.3): + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.24.3 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + '@vue/babel-helper-vue-transform-on': 1.2.2 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.3) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.4): + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + '@vue/babel-helper-vue-transform-on': 1.2.2 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.4) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.3): + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/core': 7.24.3 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/parser': 7.24.1 + '@vue/compiler-sfc': 3.4.21 + dev: true + + /@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.4): + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/parser': 7.24.1 + '@vue/compiler-sfc': 3.4.21 + dev: true + + /@vue/compiler-core@3.0.11: + resolution: {integrity: sha512-6sFj6TBac1y2cWCvYCA8YzHJEbsVkX7zdRs/3yK/n1ilvRqcn983XvpBbnN3v4mZ1UiQycTvOiajJmOgN9EVgw==} + dependencies: + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + '@vue/shared': 3.0.11 + estree-walker: 2.0.2 + source-map: 0.6.1 + dev: true + + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + dependencies: + '@babel/parser': 7.24.1 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + dev: true + + /@vue/compiler-core@3.4.24: + resolution: {integrity: sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A==} + dependencies: + '@babel/parser': 7.24.4 + '@vue/shared': 3.4.24 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + dev: true + + /@vue/compiler-core@3.4.26: + resolution: {integrity: sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==} + dependencies: + '@babel/parser': 7.24.4 + '@vue/shared': 3.4.26 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + dev: true + + /@vue/compiler-dom@3.0.11: + resolution: {integrity: sha512-+3xB50uGeY5Fv9eMKVJs2WSRULfgwaTJsy23OIltKgMrynnIj8hTYY2UL97HCoz78aDw1VDXdrBQ4qepWjnQcw==} + dependencies: + '@vue/compiler-core': 3.0.11 + '@vue/shared': 3.0.11 + dev: true + + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + + /@vue/compiler-dom@3.4.24: + resolution: {integrity: sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA==} + dependencies: + '@vue/compiler-core': 3.4.24 + '@vue/shared': 3.4.24 + dev: true + + /@vue/compiler-dom@3.4.26: + resolution: {integrity: sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==} + dependencies: + '@vue/compiler-core': 3.4.26 + '@vue/shared': 3.4.26 + dev: true + + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + dependencies: + '@babel/parser': 7.24.1 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + magic-string: 0.30.8 + postcss: 8.4.38 + source-map-js: 1.2.0 + dev: true + + /@vue/compiler-sfc@3.4.26: + resolution: {integrity: sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==} + dependencies: + '@babel/parser': 7.24.4 + '@vue/compiler-core': 3.4.26 + '@vue/compiler-dom': 3.4.26 + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 + estree-walker: 2.0.2 + magic-string: 0.30.10 + postcss: 8.4.38 + source-map-js: 1.2.0 + dev: true + + /@vue/compiler-ssr@3.0.11: + resolution: {integrity: sha512-66yUGI8SGOpNvOcrQybRIhl2M03PJ+OrDPm78i7tvVln86MHTKhM3ERbALK26F7tXl0RkjX4sZpucCpiKs3MnA==} + dependencies: + '@vue/compiler-dom': 3.0.11 + '@vue/shared': 3.0.11 + dev: true + + /@vue/compiler-ssr@3.4.21: + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + + /@vue/compiler-ssr@3.4.26: + resolution: {integrity: sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==} + dependencies: + '@vue/compiler-dom': 3.4.26 + '@vue/shared': 3.4.26 + dev: true + + /@vue/devtools-api@6.6.1: + resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} + dev: true + + /@vue/devtools-core@7.1.3(vite@5.2.10)(vue@3.4.26): + resolution: {integrity: sha512-pVbWi8pf2Z/fZPioYOIgu+cv9pQG55k4D8bL31ec+Wfe+pQR0ImFDu0OhHfch1Ra8uvLLrAZTF4IKeGAkmzD4A==} + dependencies: + '@vue/devtools-kit': 7.1.3(vue@3.4.26) + '@vue/devtools-shared': 7.1.3 + mitt: 3.0.1 + nanoid: 3.3.7 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.2.10) + transitivePeerDependencies: + - vite + - vue + dev: true + + /@vue/devtools-kit@7.1.3(vue@3.4.26): + resolution: {integrity: sha512-NFskFSJMVCBXTkByuk2llzI3KD3Blcm7WqiRorWjD6nClHPgkH5BobDH08rfulqq5ocRt5xV+3qOT1Q9FXJrwQ==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-shared': 7.1.3 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + vue: 3.4.26(typescript@5.4.5) + dev: true + + /@vue/devtools-shared@7.1.3: + resolution: {integrity: sha512-KJ3AfgjTn3tJz/XKF+BlVShNPecim3G21oHRue+YQOsooW+0s+qXvm09U09aO7yBza5SivL1QgxSrzAbiKWjhQ==} + dependencies: + rfdc: 1.3.1 + dev: true + + /@vue/reactivity@3.4.26: + resolution: {integrity: sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==} + dependencies: + '@vue/shared': 3.4.26 + dev: true + + /@vue/runtime-core@3.4.26: + resolution: {integrity: sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==} + dependencies: + '@vue/reactivity': 3.4.26 + '@vue/shared': 3.4.26 + dev: true + + /@vue/runtime-dom@3.4.26: + resolution: {integrity: sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==} + dependencies: + '@vue/runtime-core': 3.4.26 + '@vue/shared': 3.4.26 + csstype: 3.1.3 + dev: true + + /@vue/server-renderer@3.4.26(vue@3.4.26): + resolution: {integrity: sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==} + peerDependencies: + vue: 3.4.26 + dependencies: + '@vue/compiler-ssr': 3.4.26 + '@vue/shared': 3.4.26 + vue: 3.4.26(typescript@5.4.5) + dev: true + + /@vue/shared@3.0.11: + resolution: {integrity: sha512-b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA==} + dev: true + + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + dev: true + + /@vue/shared@3.4.24: + resolution: {integrity: sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw==} + dev: true + + /@vue/shared@3.4.26: + resolution: {integrity: sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==} + dev: true + + /@vueuse/components@10.9.0(vue@3.4.26): + resolution: {integrity: sha512-BHQpA0yIi3y7zKa1gYD0FUzLLkcRTqVhP8smnvsCK6GFpd94Nziq1XVPD7YpFeho0k5BzbBiNZF7V/DpkJ967A==} + dependencies: + '@vueuse/core': 10.9.0(vue@3.4.26) + '@vueuse/shared': 10.9.0(vue@3.4.26) + vue-demi: 0.14.7(vue@3.4.26) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/core@10.9.0(vue@3.4.26): + resolution: {integrity: sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.9.0 + '@vueuse/shared': 10.9.0(vue@3.4.26) + vue-demi: 0.14.7(vue@3.4.26) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/integrations@10.9.0(axios@1.6.8)(nprogress@0.2.0)(vue@3.4.26): + resolution: {integrity: sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q==} + 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.9.0(vue@3.4.26) + '@vueuse/shared': 10.9.0(vue@3.4.26) + axios: 1.6.8 + nprogress: 0.2.0 + vue-demi: 0.14.7(vue@3.4.26) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/metadata@10.9.0: + resolution: {integrity: sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==} + dev: true + + /@vueuse/shared@10.9.0(vue@3.4.26): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} + dependencies: + vue-demi: 0.14.7(vue@3.4.26) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /aggregate-error@4.0.1: + resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} + engines: {node: '>=12'} + dependencies: + clean-stack: 4.2.0 + indent-string: 5.0.0 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} + dependencies: + type-fest: 3.13.1 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} + engines: {node: '>=0.10.0'} + dev: true + + /array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} + engines: {node: '>=0.10.0'} + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + + /ast-kit@0.12.1: + resolution: {integrity: sha512-O+33g7x6irsESUcd47KdfWUrS2F6aGp9KeVJFGj0YjIznfXpBxVGjA0w+y/1OKqX4mFOfmZ9Xpf1ixPT4n9xxw==} + engines: {node: '>=16.14.0'} + dependencies: + '@babel/parser': 7.24.4 + pathe: 1.1.2 + dev: true + + /ast-types-yx@0.14.2: + resolution: {integrity: sha512-lre9vXZvn5azJcNM60Ub19NzoXsaGS/vJ76ral4BbGSOYJoBo/OrXOXI2uClYzDSzDfRR6D8K+FJrYT3BHUM8w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.2 + dev: true + + /ast-walker-scope@0.6.1: + resolution: {integrity: sha512-0ZdQEsSfH3mX4BFbRCc3xOBjx5bDbm73+aAdQOHerPQNf8K0XFMAv79ucd2BpnSc4UMyvBDixiroT8yjm2Y6bw==} + engines: {node: '>=16.14.0'} + dependencies: + '@babel/parser': 7.24.4 + ast-kit: 0.12.1 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + + /axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.52 + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist-to-esbuild@2.1.1(browserslist@4.23.0): + resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + browserslist: '*' + dependencies: + browserslist: 4.23.0 + meow: 13.2.0 + dev: true + + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001600 + electron-to-chromium: 1.4.715 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + dependencies: + run-applescript: 7.0.0 + dev: true + + /c12@1.10.0: + resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + dependencies: + chokidar: 3.6.0 + confbox: 0.1.3 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.0 + mlly: 1.6.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.0.3 + rc9: 2.1.1 + dev: true + + /c8@9.1.0: + resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} + engines: {node: '>=14.14.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 3.1.1 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.1.7 + test-exclude: 6.0.0 + v8-to-istanbul: 9.2.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + + /call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001600: + resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} + dev: true + + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /changelogen@0.5.5: + resolution: {integrity: sha512-IzgToIJ/R9NhVKmL+PW33ozYkv53bXvufDNUSH3GTKXq1iCHGgkbgbtqEWbo8tnWNnt7nPDpjL8PwSG2iS8RVw==} + hasBin: true + dependencies: + c12: 1.10.0 + colorette: 2.0.20 + consola: 3.2.3 + convert-gitmoji: 0.1.5 + execa: 8.0.1 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + open: 9.1.0 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + semver: 7.6.0 + std-env: 3.7.0 + yaml: 2.4.1 + dev: true + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + dependencies: + consola: 3.2.3 + dev: true + + /clean-stack@4.2.0: + resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} + engines: {node: '>=12'} + dependencies: + escape-string-regexp: 5.0.0 + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + 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-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + dependencies: + slice-ansi: 5.0.0 + string-width: 7.1.0 + dev: true + + /cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + dev: true + + /commander@12.0.0: + resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} + engines: {node: '>=18'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /confbox@0.1.3: + resolution: {integrity: sha512-eH3ZxAihl1PhKfpr4VfEN6/vUd87fmgb6JkldHgg/YR6aEBhW63qUDgzP2Y6WM0UumdsYp5H3kibalXAdHfbgg==} + 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} + dev: true + + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case: 2.0.2 + dev: true + + /convert-gitmoji@0.1.5: + resolution: {integrity: sha512-4wqOafJdk2tqZC++cjcbGcaJ13BZ3kwldf06PTiAQRAB76Z1KJwZNL1SaRZMi2w1FM9RYTgZ6QErS8NUl/GBmQ==} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} + requiresBuild: true + dev: true + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + + /deep-is@0.1.4: + 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'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + dev: true + + /del@7.1.0: + resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} + engines: {node: '>=14.16'} + dependencies: + globby: 13.2.2 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 3.0.0 + is-path-inside: 4.0.0 + p-map: 5.5.0 + rimraf: 3.0.2 + slash: 4.0.0 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + + /destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + dev: true + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + engines: {node: '>=12.20'} + dev: true + + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + dev: true + + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /echarts@5.5.0: + resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==} + dependencies: + tslib: 2.3.0 + zrender: 5.5.0 + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium@1.4.715: + resolution: {integrity: sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==} + dev: true + + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-stack-parser-es@0.1.1: + resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + + /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.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + 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'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.57.0 + dev: true + + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.2.5 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + dev: true + + /eslint-plugin-vue@9.25.0(eslint@8.57.0): + resolution: {integrity: sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + eslint: 8.57.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.16 + semver: 7.6.0 + vue-eslint-parser: 9.4.2(eslint@8.57.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@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 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + 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'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + 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'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 + dev: true + + /fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} + engines: {node: '>= 10.13.0'} + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 5.0.0 + object.defaults: 1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + dev: true + + /flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} + engines: {node: '>= 10.13.0'} + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true + + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /generic-names@2.0.1: + resolution: {integrity: sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==} + dependencies: + loader-utils: 1.4.2 + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: true + + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.8 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /gogocode@1.0.55(vue@3.4.26): + resolution: {integrity: sha512-PhT2EnPTaXODiPsZDhRwGe03cb9Eg0nBlvjp3WyQqLAz5lfK7hFQgq/ybTA5BZBThWQnFJGTDjy/Dht7dAtlDw==} + dependencies: + '@babel/parser': 7.24.1 + glob: 7.2.3 + hyntax-yx: 1.0.9 + indent-string: 4.0.0 + recast-yx: 0.18.12 + vue3-browser-compiler-yx: 1.0.4(vue@3.4.26) + transitivePeerDependencies: + - vue + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + dev: true + + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + dependencies: + duplexer: 0.1.2 + dev: true + + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + dependencies: + capital-case: 1.0.4 + tslib: 2.6.2 + dev: true + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /husky@9.0.11: + resolution: {integrity: sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==} + engines: {node: '>=18'} + hasBin: true + dev: true + + /hyntax-yx@1.0.9: + resolution: {integrity: sha512-T7HXVm1dEt6NFNQaYuzLfhyM+jiK1Z3elYUOz5ulf9fCG/vfJ+F51mPFaoBX4J1naaqIx82NCaVtK8L1oq5TwA==} + engines: {node: '>=6.11.1', npm: '>=5.3.0'} + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + dev: true + + /icss-utils@5.1.0(postcss@8.1.10): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.1.10 + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + dev: true + + /indexes-of@1.0.1: + resolution: {integrity: sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inquirer@9.2.16: + resolution: {integrity: sha512-qzgbB+yNjgSzk2omeqMDtO9IgJet/UL67luT1MaaggRpGK73DBQct5Q4pipwFQcIKK1GbMODYd4UfsRCkSP1DA==} + engines: {node: '>=18'} + dependencies: + '@ljharb/through': 2.3.13 + ansi-escapes: 4.3.2 + chalk: 5.3.0 + cli-cursor: 3.1.0 + cli-width: 4.1.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 1.0.0 + ora: 5.4.1 + run-async: 3.0.0 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + dev: true + + /is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.3.0 + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.2 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + dependencies: + get-east-asian-width: 1.2.0 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-cwd@3.0.0: + resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 + dev: true + + /isbinaryfile@5.0.2: + resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==} + engines: {node: '>= 18.0.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + + /ityped@1.0.3: + resolution: {integrity: sha512-46Qnh3qs+6EJlWDHmvWRW6qiz5jFy2mkh9UvtTvQmLJMZIjKrdz4du68le7hLX4tAWCp6QTKiq/OuLv6huHxZg==} + dev: true + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-tokens@8.0.3: + resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.6.0 + dev: true + + /jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /liftoff@4.0.0: + resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==} + engines: {node: '>=10.13.0'} + dependencies: + extend: 3.0.2 + findup-sync: 5.0.0 + fined: 2.0.0 + flagged-respawn: 2.0.0 + is-plain-object: 5.0.0 + object.map: 1.0.1 + rechoir: 0.8.0 + resolve: 1.22.8 + dev: true + + /lightningcss-darwin-arm64@1.24.1: + resolution: {integrity: sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /lightningcss-darwin-x64@1.24.1: + resolution: {integrity: sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /lightningcss-freebsd-x64@1.24.1: + resolution: {integrity: sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-arm-gnueabihf@1.24.1: + resolution: {integrity: sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-arm64-gnu@1.24.1: + resolution: {integrity: sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-arm64-musl@1.24.1: + resolution: {integrity: sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-x64-gnu@1.24.1: + resolution: {integrity: sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + /lightningcss-linux-x64-musl@1.24.1: + resolution: {integrity: sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + /lightningcss-win32-x64-msvc@1.24.1: + resolution: {integrity: sha512-joEupPjYJ7PjZtDsS5lzALtlAudAbgIBMGJPNeFe5HfdmJXFd13ECmEM+5rXNxYVMRHua2w8132R6ab5Z6K9Ow==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /lightningcss@1.24.1: + resolution: {integrity: sha512-kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg==} + engines: {node: '>= 12.0.0'} + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.24.1 + lightningcss-darwin-x64: 1.24.1 + lightningcss-freebsd-x64: 1.24.1 + lightningcss-linux-arm-gnueabihf: 1.24.1 + lightningcss-linux-arm64-gnu: 1.24.1 + lightningcss-linux-arm64-musl: 1.24.1 + lightningcss-linux-x64-gnu: 1.24.1 + lightningcss-linux-x64-musl: 1.24.1 + lightningcss-win32-x64-msvc: 1.24.1 + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + + /linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + dependencies: + uc.micro: 2.1.0 + dev: true + + /lint-staged@15.2.2: + resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.1 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2@8.0.1: + resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + engines: {node: '>=18.0.0'} + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.0.0 + rfdc: 1.3.1 + wrap-ansi: 9.0.0 + dev: true + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.6.1 + pkg-types: 1.0.3 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: true + + /log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} + dependencies: + ansi-escapes: 6.2.0 + cli-cursor: 4.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + dev: true + + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + dependencies: + get-func-name: 2.0.2 + dev: true + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /m-type-tools@0.4.1: + resolution: {integrity: sha512-3QarLN7adHAnqM/BnNp9nMn7Zm+1DBtKeQEGcYcM1tkYhJGxxxPOHKTehuB7F3USX7B0JNalx+xMFs9vgyOc1w==} + dev: true + + /m-type-tools@0.5.3: + resolution: {integrity: sha512-UycDrrmHNEqKn5KZblX+fGP2tMNyaZPIBPCE+H4aE+adD3LoKDrVir1hwZfa049yIZ/q3UoLpcWs7Mgqi5G9ig==} + dev: true + + /magic-string-ast@0.3.0: + resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==} + engines: {node: '>=16.14.0'} + dependencies: + magic-string: 0.30.9 + dev: true + + /magic-string@0.25.7: + resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.9: + resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: true + + /make-iterator@1.0.1: + resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /markdown-it-prism@2.3.0: + resolution: {integrity: sha512-ePtHY80gZyeje4bn3R3SL0jpd1C9HFaYffJW2Ma0YD+tspqa2v9TuVwUyFwboFu4jnFNcO8oPQROgbcYJbmBvw==} + engines: {node: '>=6.0.0'} + dependencies: + prismjs: 1.29.0 + dev: true + + /markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + dev: true + + /meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + dev: true + + /merge-source-map@1.1.0: + resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==} + dependencies: + source-map: 0.6.1 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: true + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.5.3 + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + dependencies: + commander: 12.0.0 + dev: true + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + dev: true + + /node-plop@0.32.0: + resolution: {integrity: sha512-lKFSRSRuDHhwDKMUobdsvaWCbbDRbV3jMUSMiajQSQux1aNUevAZVxUHc2JERI//W8ABPRbi3ebYuSuIzkNIpQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/inquirer': 9.0.7 + change-case: 4.1.2 + del: 7.1.0 + globby: 13.2.2 + handlebars: 4.7.8 + inquirer: 9.2.16 + isbinaryfile: 5.0.2 + lodash.get: 4.4.2 + lower-case: 2.0.2 + mkdirp: 3.0.1 + resolve: 1.22.8 + title-case: 3.0.3 + upper-case: 2.0.2 + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /nypm@0.3.8: + resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + ufo: 1.5.3 + dev: true + + /object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} + engines: {node: '>=0.10.0'} + dependencies: + array-each: 1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + dev: true + + /object.map@1.0.1: + resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.3 + dev: true + + /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: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + dev: true + + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.1.0 + strip-ansi: 7.1.0 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map@5.5.0: + resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} + engines: {node: '>=12'} + dependencies: + aggregate-error: 4.0.1 + dev: true + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + dev: true + + /path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pinia-plugin-persistedstate@3.2.1(pinia@2.1.7): + resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==} + peerDependencies: + pinia: ^2.0.0 + dependencies: + pinia: 2.1.7(typescript@5.4.5)(vue@3.4.26) + dev: true + + /pinia@2.1.7(typescript@5.4.5)(vue@3.4.26): + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.3.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.6.1 + typescript: 5.4.5 + vue: 3.4.26(typescript@5.4.5) + vue-demi: 0.14.7(vue@3.4.26) + dev: true + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.1 + mlly: 1.6.1 + pathe: 1.1.2 + dev: true + + /plop@4.0.1: + resolution: {integrity: sha512-5n8QU93kvL/ObOzBcPAB1siVFtAH1TZM6TntJ3JK5kXT0jIgnQV+j+uaOWWFJlg1cNkzLYm8klgASF65K36q9w==} + engines: {node: '>=18'} + hasBin: true + dependencies: + '@types/liftoff': 4.0.3 + chalk: 5.3.0 + interpret: 3.1.1 + liftoff: 4.0.0 + minimist: 1.2.8 + node-plop: 0.32.0 + ora: 8.0.1 + v8flags: 4.0.1 + dev: true + + /postcss-modules-extract-imports@3.0.0(postcss@8.1.10): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.1.10 + dev: true + + /postcss-modules-local-by-default@4.0.4(postcss@8.1.10): + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.1.10) + postcss: 8.1.10 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.1.1(postcss@8.1.10): + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.1.10 + postcss-selector-parser: 6.0.16 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.1.10): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.1.10) + postcss: 8.1.10 + dev: true + + /postcss-modules@4.0.0(postcss@8.1.10): + resolution: {integrity: sha512-ghS/ovDzDqARm4Zj6L2ntadjyQMoyJmi0JkLlYtH2QFLrvNlxH5OAVRPWPeKilB0pY7SbuhO173KOWkPAxRJcw==} + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 2.0.1 + icss-replace-symbols: 1.1.0 + lodash.camelcase: 4.3.0 + postcss: 8.1.10 + postcss-modules-extract-imports: 3.0.0(postcss@8.1.10) + postcss-modules-local-by-default: 4.0.4(postcss@8.1.10) + postcss-modules-scope: 3.1.1(postcss@8.1.10) + postcss-modules-values: 4.0.0(postcss@8.1.10) + string-hash: 1.1.3 + dev: true + + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-selector-parser@6.0.4: + resolution: {integrity: sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + indexes-of: 1.0.1 + uniq: 1.0.1 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.1.10: + resolution: {integrity: sha512-iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + colorette: 1.4.0 + nanoid: 3.3.7 + source-map: 0.6.1 + vfile-location: 3.2.0 + dev: true + + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.2.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /prism-theme-vars@0.2.5: + resolution: {integrity: sha512-/D8gBTScYzi9afwE6v3TC1U/1YFZ6k+ly17mtVRdLpGy7E79YjJJWkXFgUDHJ2gDksV/ZnXF7ydJ4TvoDm2z/Q==} + dev: true + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: true + + /private@0.1.8: + resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} + engines: {node: '>= 0.6'} + 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 + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /rc9@2.1.1: + resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==} + dependencies: + defu: 6.1.4 + destr: 2.0.3 + flat: 5.0.2 + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /recast-yx@0.18.12: + resolution: {integrity: sha512-hYM2QgEbYxmevT66lDhQv+24erth+RbQfCFjft89cvHjJzRNyhf4QY1UtDs91IMh3duRhX1vLvPNoc1XOBMbIQ==} + engines: {node: '>= 4'} + dependencies: + ast-types-yx: 0.14.2 + esprima: 4.0.1 + private: 0.1.8 + source-map: 0.6.1 + dev: true + + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + dependencies: + resolve: 1.22.8 + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /resize-detector@0.3.0: + resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==} + dev: true + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup@4.13.0: + resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.13.0 + '@rollup/rollup-android-arm64': 4.13.0 + '@rollup/rollup-darwin-arm64': 4.13.0 + '@rollup/rollup-darwin-x64': 4.13.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 + '@rollup/rollup-linux-arm64-gnu': 4.13.0 + '@rollup/rollup-linux-arm64-musl': 4.13.0 + '@rollup/rollup-linux-riscv64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-musl': 4.13.0 + '@rollup/rollup-win32-arm64-msvc': 4.13.0 + '@rollup/rollup-win32-ia32-msvc': 4.13.0 + '@rollup/rollup-win32-x64-msvc': 4.13.0 + fsevents: 2.3.3 + dev: true + + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + dev: true + + /run-async@3.0.0: + resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + dev: true + + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: true + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /simple-git@3.24.0: + resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + dev: true + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + dev: true + + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + dev: true + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + /speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + dev: true + + /stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-hash@1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.11.3 + dev: true + + /strip-literal@2.0.0: + resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} + dependencies: + js-tokens: 8.0.3 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.2 + dev: true + + /synckit@0.9.0: + resolution: {integrity: sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.2 + dev: true + + /systemjs@6.14.3: + resolution: {integrity: sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==} + dev: true + + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /taze@0.13.7: + resolution: {integrity: sha512-7of7fg1+2O5fm4eykJdCOkr9D0TEjZeXDdgm8hST4C+iFxa24Vzjm3Dk5TQ7JjId2ut+yRE2KE++YaSY7Vh5ng==} + hasBin: true + dependencies: + '@antfu/ni': 0.21.12 + '@jsdevtools/ez-spawn': 3.0.4 + cli-progress: 3.12.0 + deepmerge: 4.3.1 + detect-indent: 7.0.1 + picocolors: 1.0.0 + prompts: 2.4.2 + ufo: 1.5.3 + unconfig: 0.3.13 + yargs: 17.7.2 + dev: true + + /terser@5.31.0: + resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.11.3 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + dev: true + + /tinypool@0.8.3: + resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + dev: true + + /title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + dependencies: + tslib: 2.6.2 + dev: true + + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.4.5 + dev: true + + /tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + 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.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + dev: true + + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + dev: true + + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + dev: true + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /unconfig@0.3.13: + resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} + dependencies: + '@antfu/utils': 0.7.7 + defu: 6.1.4 + jiti: 1.21.0 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unimport@3.7.1: + resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} + dependencies: + '@rollup/pluginutils': 5.1.0 + acorn: 8.11.3 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.10 + mlly: 1.6.1 + pathe: 1.1.2 + pkg-types: 1.0.3 + scule: 1.3.0 + strip-literal: 1.3.0 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + dev: true + + /uniq@1.0.1: + resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /unocss@0.59.4(postcss@8.4.38)(vite@5.2.10): + resolution: {integrity: sha512-QmCVjRObvVu/gsGrJGVt0NnrdhFFn314BUZn2WQyXV9rIvHLRmG5bIu0j5vibJkj7ZhFchTrnTM1pTFXP1xt5g==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.59.4 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.59.4(vite@5.2.10) + '@unocss/cli': 0.59.4 + '@unocss/core': 0.59.4 + '@unocss/extractor-arbitrary-variants': 0.59.4 + '@unocss/postcss': 0.59.4(postcss@8.4.38) + '@unocss/preset-attributify': 0.59.4 + '@unocss/preset-icons': 0.59.4 + '@unocss/preset-mini': 0.59.4 + '@unocss/preset-tagify': 0.59.4 + '@unocss/preset-typography': 0.59.4 + '@unocss/preset-uno': 0.59.4 + '@unocss/preset-web-fonts': 0.59.4 + '@unocss/preset-wind': 0.59.4 + '@unocss/reset': 0.59.4 + '@unocss/transformer-attributify-jsx': 0.59.4 + '@unocss/transformer-attributify-jsx-babel': 0.59.4 + '@unocss/transformer-compile-class': 0.59.4 + '@unocss/transformer-directives': 0.59.4 + '@unocss/transformer-variant-group': 0.59.4 + '@unocss/vite': 0.59.4(vite@5.2.10) + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unplugin-auto-import@0.17.5(@vueuse/core@10.9.0): + resolution: {integrity: sha512-fHNDkDSxv3PGagX1wmKBYBkgaM4AKAgZmdJw/bxjhNljx9KSXSgHpGfX0MwUrq9qw6q1bhHIZVWyOwoY2koo4w==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + dependencies: + '@antfu/utils': 0.7.7 + '@rollup/pluginutils': 5.1.0 + '@vueuse/core': 10.9.0(vue@3.4.26) + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.8 + minimatch: 9.0.3 + unimport: 3.7.1 + unplugin: 1.10.0 + transitivePeerDependencies: + - rollup + dev: true + + /unplugin-vue-components@0.26.0(vue@3.4.26): + resolution: {integrity: sha512-s7IdPDlnOvPamjunVxw8kNgKNK8A5KM1YpK5j/p97jEKTjlPNrA0nZBiSfAKKlK1gWZuyWXlKL5dk3EDw874LQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.7 + '@rollup/pluginutils': 5.1.0 + chokidar: 3.6.0 + debug: 4.3.4 + fast-glob: 3.3.2 + local-pkg: 0.4.3 + magic-string: 0.30.8 + minimatch: 9.0.3 + resolve: 1.22.8 + unplugin: 1.10.0 + vue: 3.4.26(typescript@5.4.5) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /unplugin-vue-markdown@0.26.2(vite@5.2.10): + resolution: {integrity: sha512-FjmhLZ+RRx7PFmfBCTwNUZLAj0Y9z0y/j79rTgYuXH9u+K6tZBFB+GpFFBm+4yMQ0la3MNCl7KHbaSvfna2bEA==} + peerDependencies: + vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + dependencies: + '@mdit-vue/plugin-component': 2.1.2 + '@mdit-vue/plugin-frontmatter': 2.1.2 + '@mdit-vue/types': 2.1.0 + '@rollup/pluginutils': 5.1.0 + '@types/markdown-it': 14.0.1 + markdown-it: 14.1.0 + unplugin: 1.10.1 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - rollup + dev: true + + /unplugin-vue-router@0.8.6(vue-router@4.3.2)(vue@3.4.26): + resolution: {integrity: sha512-yd7A4qIT2ZvCELchL32qVueFXx8BE9zD0UEzWJjHAlVy2Xb2luPkNJG6uCAeqdObCS1lSKTOFAFmQXAxdchqTw==} + peerDependencies: + vue-router: ^4.3.0 + peerDependenciesMeta: + vue-router: + optional: true + dependencies: + '@babel/types': 7.24.0 + '@rollup/pluginutils': 5.1.0 + '@vue-macros/common': 1.10.2(vue@3.4.26) + ast-walker-scope: 0.6.1 + chokidar: 3.6.0 + fast-glob: 3.3.2 + json5: 2.2.3 + local-pkg: 0.5.0 + mlly: 1.6.1 + pathe: 1.1.2 + scule: 1.3.0 + unplugin: 1.10.1 + vue-router: 4.3.2(vue@3.4.26) + yaml: 2.4.1 + transitivePeerDependencies: + - rollup + - vue + dev: true + + /unplugin@1.10.0: + resolution: {integrity: sha512-CuZtvvO8ua2Wl+9q2jEaqH6m3DoQ38N7pvBYQbbaeNlWGvK2l6GHiKi29aIHDPoSxdUzQ7Unevf1/ugil5X6Pg==} + engines: {node: '>=14.0.0'} + dependencies: + acorn: 8.11.3 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + dev: true + + /unplugin@1.10.1: + resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} + engines: {node: '>=14.0.0'} + dependencies: + acorn: 8.11.3 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + dev: true + + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 + dev: true + + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: 2.6.2 + dev: true + + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + dependencies: + tslib: 2.6.2 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + dev: true + + /v8flags@4.0.1: + resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} + engines: {node: '>= 10.13.0'} + dev: true + + /vfile-location@3.2.0: + resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} + dev: true + + /vite-auto-import-resolvers@3.2.1(unplugin-auto-import@0.17.5)(vite@5.2.10): + resolution: {integrity: sha512-xXUl1VAJCqHIqU7xzkMNWvQ4cb6MjKHSs4OyjgfxNeJNFqu2hVKJnVxWr8co6I4Ikdvw0CdAy5M3wj4UWGPwVA==} + engines: {node: '>=16'} + peerDependencies: + unplugin-auto-import: '>=0.6.9' + vite: '>=2.9.1' + dependencies: + fast-glob: 3.3.2 + local-pkg: 0.4.3 + scule: 1.3.0 + unplugin-auto-import: 0.17.5(@vueuse/core@10.9.0) + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + dev: true + + /vite-hot-client@0.2.3(vite@5.2.10): + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 + dependencies: + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + dev: true + + /vite-layers@0.5.2(vite@5.2.10): + resolution: {integrity: sha512-/FFYE7kCsYPNBIEfGmHFf1a2UElFjDM/IIGgZDwS6bmEg7xlxuv1dqNgLoSUPy6W1fRs8RmouHry0W9GBt6ubg==} + peerDependencies: + vite: '>=3.0.0' + dependencies: + consola: 3.2.3 + defu: 6.1.4 + jiti: 1.21.0 + kolorist: 1.8.0 + m-type-tools: 0.5.3 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + dev: true + + /vite-node@1.5.3(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0): + resolution: {integrity: sha512-axFo00qiCpU/JLd8N1gu9iEYL3xTbMbMrbe5nDp9GL0nb6gurIdZLkkFogZXWnE8Oyy5kfSLwNVIcVsnhE7lgQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite-plugin-compression@0.5.1(vite@5.2.10): + 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: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-env-types@0.1.4(vite@5.2.10): + resolution: {integrity: sha512-u+sZv4Q8HB51cT0EsZtjqdmgSDytZoo1AyQsPmIj8QPM9QjtdG3YE1eHkuAvCapf/llagvZbC6M+Ekhbt3bw9w==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + fast-glob: 3.3.2 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + dev: true + + /vite-plugin-inspect@0.8.4(vite@5.2.10): + resolution: {integrity: sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.7 + '@rollup/pluginutils': 5.1.0 + debug: 4.3.4 + error-stack-parser-es: 0.1.1 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.0.0 + sirv: 2.0.4 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /vite-plugin-legacy-swc@1.1.0(vite@5.2.10): + resolution: {integrity: sha512-ELJGMso5mukCSj7//P13HYlo2tmo0WsXR7rs0r4oRO5s8xmQQi0J26UAjBsnbXAumTIUT71MP4uYWvI4zjs8Eg==} + peerDependencies: + vite: '>=4.0.0' + dependencies: + '@swc/core': 1.4.8 + browserslist: 4.23.0 + browserslist-to-esbuild: 2.1.1(browserslist@4.23.0) + core-js: 3.36.1 + magic-string: 0.30.8 + regenerator-runtime: 0.14.1 + systemjs: 6.14.3 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - '@swc/helpers' + dev: true + + /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@5.2.10): + 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.10 + chalk: 4.1.2 + chokidar: 3.6.0 + connect: 3.7.0 + debug: 4.3.4 + esbuild: 0.14.54 + fast-glob: 3.3.2 + mockjs: 1.1.0 + path-to-regexp: 6.2.1 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-removelog@0.2.2(vue@3.4.26): + resolution: {integrity: sha512-lVfQxdDIpvjbxxWZbSRAtQNYFHuf/JniL6x2mKpmM5HsCDk4XmxbMSFjRmr6K89JM5iohFjhzhNcdVLQp2/gtg==} + dependencies: + gogocode: 1.0.55(vue@3.4.26) + m-type-tools: 0.4.1 + transitivePeerDependencies: + - vue + dev: true + + /vite-plugin-use-modules@1.4.8(vite@5.2.10)(vue@3.4.26): + resolution: {integrity: sha512-SydvdNUuwuwk9YjeA2sE6acK2xmTOgpVarEiTcccczcNL7JIMZ2C3Cbw2bvmkH2Od8JDtdIxIpMvswJ8rlEufA==} + peerDependencies: + vite: '>=2.0.0' + vue: '>=3.0.0' + dependencies: + local-pkg: 0.5.0 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vite-plugin-vue-devtools@7.1.3(vite@5.2.10)(vue@3.4.26): + resolution: {integrity: sha512-qv8Z4yok9RYo6TEs89WnIAlmTHby/+XTim8tlSnMs3lAPcQqqcl/wGRY8gAeYrGCANngOqO+VuabW3Jb1HZtyw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 + dependencies: + '@vue/devtools-core': 7.1.3(vite@5.2.10)(vue@3.4.26) + '@vue/devtools-kit': 7.1.3(vue@3.4.26) + '@vue/devtools-shared': 7.1.3 + execa: 8.0.1 + sirv: 2.0.4 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vite-plugin-inspect: 0.8.4(vite@5.2.10) + vite-plugin-vue-inspector: 5.0.1(vite@5.2.10) + transitivePeerDependencies: + - '@nuxt/kit' + - rollup + - supports-color + - vue + dev: true + + /vite-plugin-vue-inspector@5.0.1(vite@5.2.10): + resolution: {integrity: sha512-R93P8iFa6BPODhc/aOtO04A8FFMMyFIfm8ZVSmN+8vU1TgwsHya734APGpX4fVHSPX2aVwYyiezXBUYQ0Opsqw==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.4) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.4) + '@vue/compiler-dom': 3.4.24 + kolorist: 1.8.0 + magic-string: 0.30.10 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-vue-meta-layouts@0.4.3(vite@5.2.10)(vue-router@4.3.2): + resolution: {integrity: sha512-KlC1gtgw+a8h+o99QsnqnGCkQp4FxVdm0P7vuMZIqYNLKywSnbRLrKQ+WATB25efDldpfBrNB1J8OgurHi3LBg==} + peerDependencies: + vite: '>=2.0.0' + vue-router: '>=4.0.14' + dependencies: + local-pkg: 0.5.0 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vue-router: 4.3.2(vue@3.4.26) + dev: true + + /vite@5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0): + resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.12.7 + esbuild: 0.20.2 + lightningcss: 1.24.1 + postcss: 8.4.38 + rollup: 4.13.0 + terser: 5.31.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@1.5.3(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0): + resolution: {integrity: sha512-2oM7nLXylw3mQlW6GXnRriw+7YvZFk/YNV8AxIC3Z3MfFbuziLGWP9GPxxu/7nRlXhqyxBikpamr+lEEj1sUEw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.5.3 + '@vitest/ui': 1.5.3 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/node': 20.12.7 + '@vitest/expect': 1.5.3 + '@vitest/runner': 1.5.3 + '@vitest/snapshot': 1.5.3 + '@vitest/spy': 1.5.3 + '@vitest/utils': 1.5.3 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.10 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.6.0 + tinypool: 0.8.3 + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vite-node: 1.5.3(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vue-dark-switch@1.0.6(vite@5.2.10)(vue@3.4.26): + resolution: {integrity: sha512-M8P2pdoEfO98Zgj3OMDjOgSKTU961oqZoOUidzaP61JzfqVbsEa7KUvQ1pNVx7oeNNXJiYMN147eYxb2oZzPKw==} + engines: {node: '>=16', pnpm: '>=7.0.0'} + peerDependencies: + vite: '>=4.0.0' + vue: '>=3.0.0' + dependencies: + vite: 5.2.10(@types/node@20.12.7)(lightningcss@1.24.1)(terser@5.31.0) + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vue-demi@0.13.11(vue@3.4.26): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vue-demi@0.14.7(vue@3.4.26): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vue-echarts@6.7.1(echarts@5.5.0)(vue@3.4.26): + resolution: {integrity: sha512-HYn54QBk1ILaQ+qA1PQGHwm3MsEFTD5NN9bmgk6wco8LcwKLnRC4HRM0ualYDGOJcCccTpnqD5DvIG0UH1+wDQ==} + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.5 + '@vue/runtime-core': ^3.0.0 + echarts: ^5.4.1 + vue: ^2.6.12 || ^3.1.1 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + '@vue/runtime-core': + optional: true + dependencies: + echarts: 5.5.0 + resize-detector: 0.3.0 + vue: 3.4.26(typescript@5.4.5) + vue-demi: 0.13.11(vue@3.4.26) + dev: true + + /vue-eslint-parser@9.4.2(eslint@8.57.0): + resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.57.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /vue-i18n@9.13.1(vue@3.4.26): + resolution: {integrity: sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.13.1 + '@intlify/shared': 9.13.1 + '@vue/devtools-api': 6.6.1 + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vue-request@2.0.4(vue@3.4.26): + resolution: {integrity: sha512-+Tu5rDy6ItF9UdD21Mmbjiq5Pq6NZSN9juH72hNQTMn1whHh4KZPTKWVLK2YS4nzbuEnPs+82G91AA2Fgd93mg==} + engines: {node: '>=14'} + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^2.0.0 || >=3.0.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.26(typescript@5.4.5) + vue-demi: 0.14.7(vue@3.4.26) + dev: true + + /vue-router@4.3.2(vue@3.4.26): + resolution: {integrity: sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.6.1 + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vue-toastification@2.0.0-rc.5(vue@3.4.26): + resolution: {integrity: sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==} + peerDependencies: + vue: ^3.0.2 + dependencies: + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vue3-browser-compiler-yx@1.0.4(vue@3.4.26): + resolution: {integrity: sha512-F42+9OGvZT83zOPCp0jycA76ZEozv7DTaYkVVGdpf+Syjh/S/8xj/GRnJ+P8/AkfpHoCOR2WAZupDJS6/qS4OQ==} + peerDependencies: + vue: ^2.0.0||^3.0.0 + dependencies: + '@babel/parser': 7.24.1 + '@babel/types': 7.24.0 + '@vue/compiler-core': 3.0.11 + '@vue/compiler-dom': 3.0.11 + '@vue/compiler-ssr': 3.0.11 + '@vue/shared': 3.0.11 + estree-walker: 2.0.2 + hash-sum: 2.0.0 + lru-cache: 5.1.1 + magic-string: 0.25.7 + merge-source-map: 1.1.0 + postcss: 8.1.10 + postcss-modules: 4.0.0(postcss@8.1.10) + postcss-selector-parser: 6.0.4 + source-map: 0.6.1 + vue: 3.4.26(typescript@5.4.5) + dev: true + + /vue@3.4.26(typescript@5.4.5): + resolution: {integrity: sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.26 + '@vue/compiler-sfc': 3.4.26 + '@vue/runtime-dom': 3.4.26 + '@vue/server-renderer': 3.4.26(vue@3.4.26) + '@vue/shared': 3.4.26 + typescript: 5.4.5 + dev: true + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + dev: true + + /which@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'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + string-width: 7.1.0 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml-eslint-parser@1.2.2: + resolution: {integrity: sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.3 + lodash: 4.17.21 + yaml: 2.4.1 + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + + /zrender@5.5.0: + resolution: {integrity: sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==} + dependencies: + tslib: 2.3.0 + dev: true diff --git a/presets/autoprefixer.ts b/presets/autoprefixer.ts new file mode 100644 index 0000000..01837f8 --- /dev/null +++ b/presets/autoprefixer.ts @@ -0,0 +1,33 @@ +import type { Preset } from 'unocss' +import browserslist from 'browserslist' +import { defaultBuildTargets } from './shared/detect' +import { browserslistToTargets, transformStyleAttribute } from 'lightningcss' + +export default function autoprefixerPreset( + targets: string[] = defaultBuildTargets, +): Preset { + return { + name: 'unocss-preset-autoprefixer', + postprocess: (util) => { + const entries = util.entries + const { code } = transformStyleAttribute({ + code: Buffer.from( + entries + .filter((item) => !item[0].startsWith('--un')) + .map((x) => x.join(':')) + .join(';'), + ), + targets: browserslistToTargets(browserslist(targets)), + minify: true, + }) + + util.entries = [ + ...entries.filter((item) => item[0].startsWith('--un')), + ...(code + .toString() + .split(';') + .map((i) => i.split(':')) as [string, string | number][]), + ] + }, + } +} diff --git a/presets/index.ts b/presets/index.ts new file mode 100644 index 0000000..ab63f0e --- /dev/null +++ b/presets/index.ts @@ -0,0 +1,275 @@ +import Prism from 'markdown-it-prism' +import UnoCss from 'unocss/vite' +import AutoImport from 'unplugin-auto-import/vite' +import { + AntDesignVueResolver, + ArcoResolver, + DevUiResolver, + ElementPlusResolver, + HeadlessUiResolver, + IduxResolver, + InklineResolver, + LayuiVueResolver, + NaiveUiResolver, + PrimeVueResolver, + QuasarResolver, + TDesignResolver, + VantResolver, + VarletUIResolver, + ViewUiResolver, + VueUseComponentsResolver, + Vuetify3Resolver, +} from 'unplugin-vue-components/resolvers' +import Components from 'unplugin-vue-components/vite' +import Markdown from 'unplugin-vue-markdown/vite' +import { VueRouterAutoImports } from 'unplugin-vue-router' +import Router from 'unplugin-vue-router/vite' + +import { AutoGenerateImports, vue3Presets } from 'vite-auto-import-resolvers' +import Compression from 'vite-plugin-compression' +import EnvTypes from 'vite-plugin-env-types' +import { viteMockServe as Mock } from 'vite-plugin-mock' +import Removelog from 'vite-plugin-removelog' +import Modules from 'vite-plugin-use-modules' +import VueDevTools from 'vite-plugin-vue-devtools' +import Layouts from 'vite-plugin-vue-meta-layouts' + +import I18N from '@intlify/unplugin-vue-i18n/vite' +import Legacy from 'vite-plugin-legacy-swc' +import Vue from '@vitejs/plugin-vue' +import Jsx from '@vitejs/plugin-vue-jsx' + +// 内置插件 +import { + Alias, + Lightningcss, + Restart, + Warmup, + Layers, + Optimize, +} from './plugins' +import { defaultBuildTargets, detectResolvers, useEnv } from './shared/detect' +import { r } from './shared/path' +import type { PluginOption } from 'vite' + +export default function () { + const env = useEnv() + const safelist = + 'prose px-2 sm:px-0 md:prose-lg lg:prose-lg dark:prose-invert text-left w-screen prose-slate prose-img:rounded-xl prose-headings:underline prose-a:text-blue-600' + + const plugins: PluginOption[] = [ + /** + * vite 配置层 + * 通过 mode 区分 vite 配置文件 (experimental) + */ + Layers(), + /** + * 兼容不支持 esmModule 的浏览器 + * https://www.npmjs.com/package/@vitejs/plugin-legacy + */ + Legacy({ + targets: defaultBuildTargets, + }), + /** + * 智能启动 lightningcss + */ + Lightningcss(), + /** + * 启动优化 + */ + Optimize(), + /** + * 环境变量类型提示 + * https://github.com/dishait/vite-plugin-env-types + */ + EnvTypes({ + dts: r('presets/types/env.d.ts'), + }), + /** + * 内置的预热,可以加快冷启动 + */ + Warmup(), + /** + * 文件路由 + * https://github.com/posva/unplugin-vue-router + */ + Router({ + routesFolder: r('src/pages'), + dts: r('presets/types/type-router.d.ts'), + extensions: ['.md', '.vue', '.tsx', '.jsx'], + }), + /** + * 自动安装 vue 插件 + * https://github.com/dishait/vite-plugin-use-modules + */ + Modules({ + auto: true, + // 内部使用虚拟模块,运行在前端,所以不需要 r 重写路径 + target: 'src/plugins', + }), + /** + * vue 官方插件,用来解析 sfc 单文件组件 + * https://www.npmjs.com/package/@vitejs/plugin-vue + */ + Vue({ + include: [/\.vue$/, /\.md$/], + }), + /** + * 布局系统 + * https://github.com/dishait/vite-plugin-vue-meta-layouts + */ + Layouts({ + skipTopLevelRouteLayout: true, + }), + /** + * mock 服务 + * https://github.com/vbenjs/vite-plugin-mock + */ + Mock({ + prodEnabled: env.VITE_APP_MOCK_IN_PRODUCTION, + }), + /** + * 组件自动按需引入 + * https://github.com/antfu/unplugin-vue-components + */ + Components({ + directoryAsNamespace: true, + include: [/\.vue$/, /\.vue\?vue/, /\.[tj]sx$/, /\.md$/], + extensions: ['md', 'vue', 'tsx', 'jsx'], + dts: r('presets/types/components.d.ts'), + types: [ + { + from: 'vue-router', + names: ['RouterLink', 'RouterView'], + }, + ], + resolvers: detectResolvers({ + onlyExist: [ + [VantResolver(), 'vant'], + [QuasarResolver(), 'quasar'], + [DevUiResolver(), 'vue-devui'], + [NaiveUiResolver(), 'naive-ui'], + [Vuetify3Resolver(), 'vuetify'], + [PrimeVueResolver(), 'primevue'], + [ViewUiResolver(), 'view-design'], + [LayuiVueResolver(), 'layui-vue'], + [VarletUIResolver(), '@varlet/ui'], + [IduxResolver(), '@idux/components'], + [InklineResolver(), '@inkline/inkline'], + [ElementPlusResolver(), 'element-plus'], + [HeadlessUiResolver(), '@headlessui/vue'], + [ArcoResolver(), '@arco-design/web-vue'], + [AntDesignVueResolver({ importStyle: false }), 'ant-design-vue'], + [VueUseComponentsResolver(), '@vueuse/components'], + [TDesignResolver({ library: 'vue-next' }), 'tdesign-vue-next'], + ], + }), + }), + /** + * i18n 国际化支持 + * https://www.npmjs.com/package/@intlify/unplugin-vue-i18n + */ + I18N({ + runtimeOnly: false, + compositionOnly: true, + include: ['locales/**'], + }), + /** + * jsx 和 tsx 支持 + * https://www.npmjs.com/package/@vitejs/plugin-vue-jsx + */ + Jsx(), + /** + * 生产环境资源压缩 + * https://github.com/vbenjs/vite-plugin-compression + */ + Compression({ + // @ts-ignore + algorithm: env.VITE_APP_COMPRESSINON_ALGORITHM, + }), + /** + * 别名插件 (内置) + * 支持 `~` 和 `@` 别名到 `src` + */ + Alias(), + /** + * 强制重启 (内置) + * 如果 package.json 或 pnpm-lock.yaml 更新的话,强制重启 + */ + Restart(), + /** + * css 原子引擎 + * https://github.com/unocss/unocss + */ + UnoCss({ + safelist: env.VITE_APP_MARKDOWN ? safelist.split(' ') : undefined, + }), + ] + /** + * 开发面板 + * https://github.com/webfansplz/vite-plugin-vue-devtools + */ + if (env.VITE_APP_DEV_TOOLS) { + plugins.push(VueDevTools()) + } + + /** + * 生产环境下移除 console.log, console.warn, console.error + * https://github.com/dishait/vite-plugin-removelog + */ + if (process.env.NODE_ENV !== 'debug') { + plugins.push(Removelog()) + } + + /** + * markdown 渲染插件 + * https://github.com/mdit-vue/unplugin-vue-markdown + */ + if (env.VITE_APP_MARKDOWN) { + plugins.push( + Markdown({ + wrapperClasses: safelist, + markdownItSetup(md) { + md.use(Prism) + }, + }), + ) + } + + /** + * api 自动按需引入 + * https://github.com/antfu/unplugin-auto-import + */ + if (env.VITE_APP_API_AUTO_IMPORT) { + const dirs = env.VITE_APP_DIR_API_AUTO_IMPORT + ? ['src/stores/**', 'src/composables/**', 'src/api/**'] + : [] + plugins.push( + AutoImport({ + dirs, + vueTemplate: true, + dts: r('presets/types/auto-imports.d.ts'), + imports: [ + ...AutoGenerateImports({ + include: [...vue3Presets], + exclude: ['vue-router'], + }), + VueRouterAutoImports, + ], + resolvers: detectResolvers({ + onlyExist: [ + [ElementPlusResolver(), 'element-plus'], + [TDesignResolver({ library: 'vue-next' }), 'tdesign-vue-next'], + ], + }), + eslintrc: { + enabled: true, + globalsPropValue: true, + filepath: r('presets/eslint/.eslintrc-auto-import.json'), + }, + }), + ) + } + + return plugins +} diff --git a/presets/plugins/alias.ts b/presets/plugins/alias.ts new file mode 100644 index 0000000..e4acd64 --- /dev/null +++ b/presets/plugins/alias.ts @@ -0,0 +1,27 @@ +import type { Plugin } from 'vite' +import { r } from '../shared/path' + +/** + * 别名插件 + * @description 支持 `~` 和 `@` 别名到 `src` + */ +export function Alias(): Plugin { + const src = r('./src') + return { + name: 'vite-alias', + enforce: 'pre', + config(config) { + config.resolve ??= {} + config.resolve.alias = [ + { + find: /^~/, + replacement: src, + }, + { + find: /^@\//, + replacement: src + '/', + }, + ] + }, + } +} diff --git a/presets/plugins/index.ts b/presets/plugins/index.ts new file mode 100644 index 0000000..e775cce --- /dev/null +++ b/presets/plugins/index.ts @@ -0,0 +1,6 @@ +export { Alias } from './alias' +export { Layers } from './layers' +export { Warmup } from './warmup' +export { Restart } from './restart' +export { Optimize } from './optimize' +export { Lightningcss } from './lightningcss' diff --git a/presets/plugins/layers.ts b/presets/plugins/layers.ts new file mode 100644 index 0000000..6cf143b --- /dev/null +++ b/presets/plugins/layers.ts @@ -0,0 +1,41 @@ +import { existsSync } from 'fs' +import { gray } from 'kolorist' +import { basename } from 'path' +import { r } from '../shared/path' +import { Restart } from './restart' +import { createConsola } from 'consola' +import type { Plugin, UserConfig } from 'vite' +import { Layers as loadLayer, detectMode } from 'vite-layers' + +const logger = createConsola().withTag('layers') + +/** + * vite 配置层 + * @description 通过 mode 区分 vite 配置文件 (experimental) + */ +export function Layers(): Plugin { + const mode = detectMode() + const modeFiles = [mode.slice(0, 3), mode].map((mode) => + r(`vite.config.${mode}.ts`), + ) + return { + ...Restart(modeFiles.map((modeFile) => basename(modeFile))), + name: 'vite-plugin-layers', + enforce: 'post', + async config(config) { + const modeFile = modeFiles.find((modeFile) => existsSync(modeFile)) + if (modeFile) { + logger + .withTag(mode) + .success( + `vite.config.ts → ${basename(modeFile)} ${gray(`(experimental)`)}`, + ) + return loadLayer({ + logger: false, + extends: [config, modeFile], + }) as UserConfig + } + return config + }, + } +} diff --git a/presets/plugins/lightningcss.ts b/presets/plugins/lightningcss.ts new file mode 100644 index 0000000..d495e28 --- /dev/null +++ b/presets/plugins/lightningcss.ts @@ -0,0 +1,62 @@ +import { existsSync } from 'fs' +import { gray } from 'kolorist' +import type { Plugin } from 'vite' +import { createConsola } from 'consola' +import { isPackageExists } from 'local-pkg' +import { browserslistToTargets } from 'lightningcss' +import { defaultBuildTargets } from '../shared/detect' + +const name = 'vite-plugin-fire-lightningcss' + +const logger = createConsola().withTag('css') + +/** + * 智能开启 lightningcss (如果不使用预处理器,或者 postcss) + */ +export function Lightningcss(): Plugin { + const packages = ['less', 'sass', 'stylus'] + return { + name, + config(config) { + config.css ??= {} + config.build ??= {} + const hasPreprocessor = packages.some((p) => isPackageExists(p)) + + const { postcss, modules, transformer } = config.css + const conflictConfiguration = [postcss, modules, transformer].some( + (c) => !isUndefined(c), + ) + + const hasPostcssConfigFile = [ + 'postcss.config.js', + 'postcss.config.cts', + 'postcss.config.ts', + ].some((c) => existsSync(c)) + + // 如果有预处理器,冲突配置或者 postcss 配置文件则禁用 + const disabled = + hasPreprocessor || conflictConfiguration || hasPostcssConfigFile + if (!disabled) { + const transformer = 'lightningcss' + config.css.transformer = transformer + let tip = `${transformer} ${gray(transformer)}` + + if (isUndefined(config.build.cssMinify)) { + config.build.cssMinify = 'lightningcss' + tip = `${transformer} ${gray('(transformer + cssMinify)')}` + } + + if (isUndefined(config.css.lightningcss?.targets)) { + config.css.lightningcss ??= {} + config.css.lightningcss.targets = + browserslistToTargets(defaultBuildTargets) + } + logger.success(tip) + } + }, + } + + function isUndefined(v: unknown): v is undefined { + return typeof v === 'undefined' + } +} diff --git a/presets/plugins/optimize.ts b/presets/plugins/optimize.ts new file mode 100644 index 0000000..63bca9c --- /dev/null +++ b/presets/plugins/optimize.ts @@ -0,0 +1,19 @@ +import { createConsola } from 'consola' +import { gray } from 'kolorist' +import type { Plugin } from 'vite' + +const logger = createConsola().withTag('optimize') +export function Optimize(): Plugin { + return { + name: 'vite-optimize', + config(config) { + config.css ??= {} + config.optimizeDeps ??= {} + config.css.preprocessorMaxWorkers = true + config.optimizeDeps.holdUntilCrawlEnd = false + logger.success( + `optimize ${gray('(preprocessorMaxWorkers + closeHoldUntilCrawlEnd)')}`, + ) + }, + } +} diff --git a/presets/plugins/restart.ts b/presets/plugins/restart.ts new file mode 100644 index 0000000..bf117d0 --- /dev/null +++ b/presets/plugins/restart.ts @@ -0,0 +1,30 @@ +import type { Plugin } from 'vite' +import { utimes } from 'fs/promises' +import { r } from '../shared/path' +import { debounce } from 'perfect-debounce' +import { resolve } from 'path' +import { slash } from 'vite-layers' + +const defaultPaths = ['package.json', 'pnpm-lock.yaml'] + +/** + * 强制重启 + * @description 如果监听更新的话,强制重启项目 + * @param paths 监听重启路径,默认为 ['package.json', 'pnpm-lock.yaml'] + */ +export function Restart(paths = defaultPaths): Plugin { + paths = paths.map((path) => slash(resolve(path))) + const restart = debounce(async function touch() { + const time = new Date() + await utimes(r('vite.config.ts'), time, time) + }, 1000) + return { + name: 'vite-plugin-force-restart', + apply: 'serve', + async watchChange(id) { + if (paths.includes(id)) { + await restart() + } + }, + } +} diff --git a/presets/plugins/warmup.ts b/presets/plugins/warmup.ts new file mode 100644 index 0000000..22c0e5d --- /dev/null +++ b/presets/plugins/warmup.ts @@ -0,0 +1,21 @@ +import type { Plugin } from 'vite' + +/** + * 预热 + * @description 内置的预热,可以加快冷启动 + */ +export function Warmup(): Plugin { + return { + name: 'vite-plugin-warmup', + apply: 'serve', + config(config) { + const src = './src/**/*' + config.server ??= {} + config.server.warmup ??= {} + config.server.warmup.clientFiles ??= [] + if (!config.server.warmup.clientFiles.includes(src)) { + config.server.warmup.clientFiles.push(src) + } + }, + } +} diff --git a/presets/shared/detect.ts b/presets/shared/detect.ts new file mode 100644 index 0000000..9af4cde --- /dev/null +++ b/presets/shared/detect.ts @@ -0,0 +1,76 @@ +/** + * 侦察模块 + * @description 自动检测环境并智能生成 + */ + +import { r } from './path' +import { loadEnv } from 'vite' +import browserslist from 'browserslist' +import { detectMode } from 'vite-layers' +import { isPackageExists } from 'local-pkg' +import type { ComponentResolver } from 'unplugin-vue-components' + +const { loadConfig: browserslistLoadConfig } = browserslist + +/** + * 默认打包目标 (浏览器兼容程度) + */ +export const defaultBuildTargets = browserslistLoadConfig({ + path: r('./'), +}) || ['last 2 versions and not dead, > 0.3%, Firefox ESR'] + +type Arrayable = T | Array + +interface Options { + onlyExist?: [Arrayable, string][] + include?: ComponentResolver[] +} + +/** + * 发现 resolvers + */ +export function detectResolvers(options: Options = {}) { + const { onlyExist = [], include = [] } = options + + const existedResolvers = [] + for (let i = 0; i < onlyExist.length; i++) { + const [resolver, packageName] = onlyExist[i] + if ( + isPackageExists(packageName, { + paths: [r('./')], + }) + ) { + existedResolvers.push(resolver) + } + } + existedResolvers.push(...include) + + return existedResolvers +} + +// 获取环境变量 +export function useEnv() { + function stringToBoolean(v: string) { + return Boolean(v === 'true' || false) + } + + const { + VITE_APP_TITLE, + VITE_APP_DEV_TOOLS, + VITE_APP_MARKDOWN, + VITE_APP_API_AUTO_IMPORT, + VITE_APP_MOCK_IN_PRODUCTION, + VITE_APP_DIR_API_AUTO_IMPORT, + VITE_APP_COMPRESSINON_ALGORITHM, + } = loadEnv(detectMode(), '.') + + return { + VITE_APP_TITLE, + VITE_APP_COMPRESSINON_ALGORITHM, + VITE_APP_DEV_TOOLS: stringToBoolean(VITE_APP_DEV_TOOLS), + VITE_APP_MARKDOWN: stringToBoolean(VITE_APP_MARKDOWN), + VITE_APP_API_AUTO_IMPORT: stringToBoolean(VITE_APP_API_AUTO_IMPORT), + VITE_APP_MOCK_IN_PRODUCTION: stringToBoolean(VITE_APP_MOCK_IN_PRODUCTION), + VITE_APP_DIR_API_AUTO_IMPORT: stringToBoolean(VITE_APP_DIR_API_AUTO_IMPORT), + } +} diff --git a/presets/shared/mock.ts b/presets/shared/mock.ts new file mode 100644 index 0000000..b2bcfb0 --- /dev/null +++ b/presets/shared/mock.ts @@ -0,0 +1,89 @@ +// @ts-nocheck +/** + * issue: https://github.com/vbenjs/vite-plugin-mock/issues/47 + * fix: https://github.com/vbenjs/vite-plugin-mock/issues/47#issuecomment-982724613 + */ +import Mock from 'mockjs' + +export function createFetchSever(mockList: any[]) { + if (!window['originFetch']) { + window['originFetch'] = window.fetch + window.fetch = function (fetchUrl: string, init: any) { + const currentMock = mockList.find((mi) => fetchUrl.includes(mi.url)) + if (currentMock) { + const result = createFetchReturn(currentMock, init) + return result + } else { + return window['originFetch'](fetchUrl, init) + } + } + } +} + +function __param2Obj__(url: string) { + const search = url.split('?')[1] + if (!search) { + return {} + } + return JSON.parse( + '{"' + + decodeURIComponent(search) + .replace(/"/g, '\\"') + .replace(/&/g, '","') + .replace(/=/g, '":"') + .replace(/\+/g, ' ') + + '"}', + ) +} + +function __Fetch2ExpressReqWrapper__(handle: () => any) { + return function (options: any) { + let result = null + if (typeof handle === 'function') { + const { body, method, url, headers } = options + + let b = body + b = JSON.parse(body) + result = handle({ + method, + body: b, + query: __param2Obj__(url), + headers, + }) + } else { + result = handle + } + + return Mock.mock(result) + } +} + +const sleep = (delay = 0) => { + if (delay) { + return new Promise((resolve) => { + setTimeout(resolve, delay) + }) + } + return null +} + +async function createFetchReturn(mock: any, init) { + const { timeout, response } = mock + const mockFn = __Fetch2ExpressReqWrapper__(response) + const data = mockFn(init) + await sleep(timeout) + const result = { + ok: true, + status: 200, + clone() { + return result + }, + text() { + return Promise.resolve(data) + }, + json() { + return Promise.resolve(data) + }, + } + return result +} diff --git a/presets/shared/path.ts b/presets/shared/path.ts new file mode 100644 index 0000000..2e687ce --- /dev/null +++ b/presets/shared/path.ts @@ -0,0 +1,15 @@ +import { dirname, resolve } from 'path' +import { fileURLToPath } from 'url' + +const _dirname = dirname(fileURLToPath(import.meta.url)) + +const root = resolve(_dirname, '../../') + +/** + * 路径重写 + * @param path 相对路径 + * @returns 基于根目录的相对路径 + */ +export function r(path: string) { + return resolve(root, path).replaceAll('\\', '/') +} diff --git a/presets/types/vite.d.ts b/presets/types/vite.d.ts new file mode 100644 index 0000000..2bf1db3 --- /dev/null +++ b/presets/types/vite.d.ts @@ -0,0 +1,18 @@ +/// +/// +/// +/// +/// +/// + +declare module "*.vue" { + import type { DefineComponent } from "vue"; + const component: DefineComponent<{}, {}, any>; + export default component; +} + +declare module "*.md" { + import { ComponentOptions } from "vue"; + const Component: ComponentOptions; + export default Component; +} diff --git a/public/docs/icons-first-step.png b/public/docs/icons-first-step.png new file mode 100644 index 0000000000000000000000000000000000000000..a8889ea1e0a92fde9b37b5ef0138152a9cec9ac3 GIT binary patch literal 55892 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 !o`%v_^#h`OgzZmRkm<^7>_=zr@=y=A5 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
4< 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 Qx&QzG07*qoM6N<$f@3{)QUCw| literal 0 HcmV?d00001 diff --git a/public/docs/icons-preview.png b/public/docs/icons-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..b9575445d3b482bc1bf49a222c9c32b4a9aab7d0 GIT binary patch literal 4351 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 AvH$=8 literal 0 HcmV?d00001 diff --git a/public/docs/icons-second-step.png b/public/docs/icons-second-step.png new file mode 100644 index 0000000000000000000000000000000000000000..98c2ec4344ebbea47a7ec12ed0436e6756784221 GIT binary patch literal 68663 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 literal 0 HcmV?d00001 diff --git a/public/docs/icons-third-step.png b/public/docs/icons-third-step.png new file mode 100644 index 0000000000000000000000000000000000000000..504ce0fa64d0718b47bf807831040d965eaee58e GIT binary patch literal 40283 zcmaHS1yq#XyYD;0(A`K$NJ)!Q(nv^(NFxkVBHaxG2#ADAH%Lnk-7ta*g0yrE-Q6(2 z9lr1U?>Tp^v+k@lGtayC)BE}Dz2CL=j(DM=M2JU=2LJ%!bLD3*0RS5Y02n$r80eOA z1i3Hz4`MB=E(-vapYTy;nCNGa>q{j$puC@c1O0&Oq-@{{0Ay}=U(lS@eJ=n2AHPt0 zrEq(Di$YzmtZi*>ZeCqoZSU+)&&*!m+>eH-A@??qj!#Zc&rm3oh^*G$-u}kMR%d7D*4EC!!C^*D$^OC7+WN-% z`T6zrO-MxC?(W{j<>mg_@#*R5-u~g)+4<(y_R-Pt%IZ4m`ub;gUqyA(<>gg$eEP=b z7II;EZDVt4X5J?#Dl4z_^z!27=C-a8ad>zdj{5y_QIkP?cIWM3d;YEPwng; z)HNY=P3;m=a~(ZG_74t}UYIT{t!y42M8&3g_(!CD{dRJ4c5-^YySqCvH5(qCd~kk} z_pK7q*}c8JU0vVW+dp)Cdg@b{a(ce2r~eXl^(i59Y+`2n z1unT^N7!a{U(^m$9mQGEQ-moJHl ziPw93){ef%7w6gexSk|>FMcnb91*>SLgsMzPkmsK2m}HShp#s^ucxGL&dslQ`xIESrvd;I@cfzVE3c{T3{{849$Hw0 z#p_<(XN8cDq)M`Q-C7h#WljMz8Js3_kz9h$RUsb;XP#pjKvcW&s@jY!n^9rOQZ_M9 zZ`!mtjfrO*0&jXx-abYn?SJ{)aNgYElmi=t{zK7$!?ce=w9ySP7zhAJ1ke-{6#WAs zK>y&-pnvZ805BE+$RNP4PA#fbJh4g386llBt<8ChFLbz=acp@CQFp;NeC$f;KE z1HIK&lAV!Pn7|9yTe96(nh2}jx*Y|+3xxtHe}xN4=9cM0@a{Bde785_#9b#rX3TGZ z-W_eh=@Cd3|KqGTyL(l_w_UyXy`EscUi=2GH!TM{sL0}nL8X&YOI2Xl-unC-Mo|$; z68QRR$nOwv9b@k)!@NYK``S2!=iYr+fBGUk5C-D6z~1gdN=FvtJNyZaB࿦QsM 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 K=~~Gz-~JEqHE=Kh literal 0 HcmV?d00001 diff --git a/public/docs/notFound-other.png b/public/docs/notFound-other.png new file mode 100644 index 0000000000000000000000000000000000000000..9cc261fa2d5cc9933fccf4edbe1ca348f9732ae0 GIT binary patch literal 37579 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 literal 0 HcmV?d00001 diff --git a/public/docs/notFound.png b/public/docs/notFound.png new file mode 100644 index 0000000000000000000000000000000000000000..c47d638ad9dc5a3ef96aa02ba92de8138bc5c88d GIT binary patch literal 45075 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

}w9Zo;|QFE6} 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 G_#B-UQIbYMBtQfJ04TCD5^4YdFSEe0`BnnYR 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 Bf6o8_ literal 0 HcmV?d00001 diff --git a/public/notFound/33.svg b/public/notFound/33.svg new file mode 100644 index 0000000..a9ed703 --- /dev/null +++ b/public/notFound/33.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..68947be --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..57fe916 --- /dev/null +++ b/renovate.json @@ -0,0 +1,3 @@ +{ + "extends": ["github>unjs/renovate-config"] +} diff --git a/scripts/create.cjs b/scripts/create.cjs new file mode 100644 index 0000000..fa45555 --- /dev/null +++ b/scripts/create.cjs @@ -0,0 +1,76 @@ +const { existsSync } = require('fs') + +const { showDir, showExt, moduleTypes } = require('./shared/base.cjs') + +/** + * 自动创建 + * @param {import('plop').NodePlopAPI} plop + */ +function create(plop) { + let exist = null + let modulePath = null + + plop.setGenerator('controller', { + description: '自动创建', + prompts: [ + { + name: 'type', + type: 'list', + default: 'component', + message: '您希望生成哪种类型的模块?', + choices: moduleTypes, + }, + { + name: 'isMarkdown', + type: 'confirm', + message: '是否 markdown 类型?', + default: false, + // 如果是 page 类型需要询问是否为 markdown 类型 + when({ type }) { + return type === 'page' + }, + }, + { + name: 'name', + type: 'input', + message({ type }) { + return `请输入 ${type} 的命名` + }, + }, + { + name: 'shouldReset', + type: 'confirm', + default: false, + message({ type }) { + return `目标 ${type} 已存在,是否重置?` + }, + // 确认模块是否已存在,是则询问是否重置 + when({ type, name, isMarkdown }) { + const dir = showDir(type) + const ext = showExt(type, isMarkdown) + modulePath = `src/${dir}/${name}.${ext}` + exist = existsSync(modulePath) + if (exist) { + return true + } + }, + }, + ], + actions(answer) { + const { type, shouldReset } = answer + if (exist && !shouldReset) { + throw new Error(`${type} 创建失败`) + } + return [ + { + type: 'add', + force: true, + path: `../${modulePath}`, + templateFile: `./template/${type}.hbs`, + }, + ] + }, + }) +} + +module.exports = create diff --git a/scripts/deps-fresh.cjs b/scripts/deps-fresh.cjs new file mode 100644 index 0000000..f9bae6a --- /dev/null +++ b/scripts/deps-fresh.cjs @@ -0,0 +1,36 @@ +const { execSync } = require('child_process') + +/** + * 自动更新依赖 + * @param {import('plop').NodePlopAPI} plop + */ +function depsFresh(plop) { + plop.setGenerator('controller', { + description: '自动更新依赖', + prompts: [ + { + name: 'type', + type: 'list', + default: 'patch', + message: '你希望发布一个什么版本?', + choices: ['patch', 'minor', 'major'], + }, + { + name: 'shouldWrite', + type: 'confirm', + default: false, + message: '是否直接更新?', + }, + ], + actions(answer) { + const { type, shouldWrite } = answer + + execSync(`npx taze ${type} ${shouldWrite ? '-w' : ''}`, { + stdio: 'inherit', + }) + return [] + }, + }) +} + +module.exports = depsFresh diff --git a/scripts/release.cjs b/scripts/release.cjs new file mode 100644 index 0000000..d6009d1 --- /dev/null +++ b/scripts/release.cjs @@ -0,0 +1,65 @@ +const { createConsola } = require('consola') +const { execSync } = require('child_process') +const { repository } = require('../package.json') +const { gray } = require('kolorist') +const { simpleGit } = require('simple-git') +const logger = createConsola().withTag('release') + +/** + * 自动发版 + * @param {import('plop').NodePlopAPI} plop + */ +async function release(plop) { + const git = simpleGit() + + const remotes = await git.getRemotes(true) + + const urls = remotes.map((r) => { + return r.refs.push + .replace('git@github.com:', 'https://github.com/') + .replace('.git', '') + }) + let allowRelease = false + if (!urls.includes(repository.url)) { + allowRelease = await logger.prompt(`是否发布到 ${gray(repository.url)}`, { + type: 'confirm', + }) + } else { + allowRelease = true + } + + if (allowRelease) { + plop.setGenerator('controller', { + description: '自动发版', + prompts: [ + { + name: 'type', + type: 'list', + default: 'patch', + message: '你希望发布一个什么版本?', + choices: [ + 'patch', + 'minor', + 'major', + 'prepatch', + 'premajor', + 'preminor', + 'prerelease', + ], + }, + ], + actions(answer) { + const { type } = answer + execSync( + `npx changelogen --${type} --release && git push --follow-tags`, + { + stdio: 'inherit', + }, + ) + return [] + }, + }) + } +} + +module.exports = release diff --git a/scripts/remove.cjs b/scripts/remove.cjs new file mode 100644 index 0000000..d42ffb5 --- /dev/null +++ b/scripts/remove.cjs @@ -0,0 +1,75 @@ +const { unlinkSync } = require('fs') +const { readdir } = require('fs/promises') +const { basename } = require('path') +const { showDir, moduleTypes } = require('./shared/base.cjs') + +/** + * 自动删除 + * @param {import('plop').NodePlopAPI} plop + */ +function remove(plop) { + plop.setActionType('remove', (answers) => { + const { name, type, shouldRemove } = answers + const dir = showDir(type) + const target = `./src/${dir}/${name}` + if (shouldRemove) { + return unlinkSync(target) + } + throw new Error(`删除 ${target} 失败`) + }) + + plop.setGenerator('controller', { + description: '自动删除', + prompts: [ + { + name: 'type', + type: 'list', + message: '请选择您要删除的类型', + async choices() { + const entrys = await readdir('./src', { + recursive: false, + withFileTypes: true, + }) + const dirs = entrys.filter((e) => e.isDirectory()) + const types = moduleTypes.filter((type) => { + const dir = showDir(type) + return dirs.includes(`./src/${dir}`) + }) + return types + }, + }, + { + name: 'name', + type: 'list', + message({ type }) { + return `请选择您要删除的 ${type} 模块` + }, + async choices({ type }) { + const dir = showDir(type) + const entrys = await readdir(`src/${dir}`, { + recursive: false, + withFileTypes: true, + }) + let modules = entrys.filter((e) => e.isFile()) + modules = modules.map((module) => { + return basename(module) + }) + return modules + }, + }, + { + name: 'shouldRemove', + type: 'confirm', + default: false, + message: '再次确认是否删除', + }, + ], + actions: [ + { + type: 'remove', + }, + ], + }) +} + +module.exports = remove diff --git a/scripts/safe-init.cjs b/scripts/safe-init.cjs new file mode 100644 index 0000000..e43486a --- /dev/null +++ b/scripts/safe-init.cjs @@ -0,0 +1,113 @@ +const { resolve } = require('path') +const { gray, green } = require('kolorist') +const { createConsola } = require('consola') +const { existsSync, lstatSync } = require('fs') +const { removeSync, emptyDirSync } = require('fs-extra') + +function slash(path) { + return path.replace(/\\/g, '/') +} + +function r(dir) { + return slash(resolve(__dirname, '../', dir)) +} + +const entrys = [ + 'src/components', + 'src/api', + 'mock', + 'layouts/default.vue', + 'src/pages/index.vue', + 'src/pages/about.md', + 'src/pages/echarts.vue', + 'src/stores', + 'locales/简体中文', + 'locales/English', +] + +const resolvedEntrys = entrys.map((entry) => r(entry)) + +/** + * 安全初始化 + * @param {import('plop').NodePlopAPI} plop + */ +function safeInit(plop) { + const logger = createConsola().withTag('safe:init') + + logger.warn('实验性功能') + + plop.setGenerator('controller', { + description: '安全初始化', + prompts: [ + { + name: 'yes', + type: 'confirm', + message: '是否安全的初始化?', + default: false, + }, + { + name: 'cleanStyles', + type: 'confirm', + message: '是否清理 styles?', + default: false, + }, + ], + actions(answer) { + if (!answer.yes) { + return [] + } + + if (answer.cleanStyles) { + resolvedEntrys.push(r('src/styles')) + } + + console.log() + + // 这里不用异步是因为 plop action 只支持同步 + resolvedEntrys.forEach((e) => { + if (!existsSync(e)) { + return + } + const entry = lstatSync(e) + if (entry.isFile()) { + removeSync(e) + logClean(e) + return + } + + if (entry.isDirectory()) { + emptyDirSync(e) + logClean(e) + } + }) + + return [ + { + type: 'add', + force: true, + path: '../src/pages/index.vue', + templateFile: './template/page.hbs', + data: { + name: 'index', + isMarkdown: false, + }, + }, + { + type: 'add', + force: true, + path: '../src/layouts/default.vue', + templateFile: './template/layout.hbs', + data: { + name: 'default', + }, + }, + ] + }, + }) +} + +function logClean(path) { + console.log(`${green('√ clean')} ${gray(path)}`) +} + +module.exports = safeInit diff --git a/scripts/shared/base.cjs b/scripts/shared/base.cjs new file mode 100644 index 0000000..644cc43 --- /dev/null +++ b/scripts/shared/base.cjs @@ -0,0 +1,41 @@ +/** + * 获取扩展名 + * @param {string} type 模块类型 + * @param {boolean} isMarkdown 是否是 markdown,默认为 false + * @returns {string} 扩展名 + */ +const showExt = (type, isMarkdown = false) => { + const isTs = type === 'api' || type === 'store' || type === 'module' + const ext = isMarkdown ? 'md' : isTs ? 'ts' : 'vue' + return ext +} + +/** + * 模块类型 + */ +const moduleTypes = [ + 'api', + 'page', + 'store', + 'layout', + 'module', + 'component', + 'composable', +] + +/** + * 获取目录 + * @param {string} type 类型 + */ +const showDir = (type) => { + if (type === 'api') { + return 'api' + } + return `${type}s` +} + +module.exports = { + showExt, + showDir, + moduleTypes, +} diff --git a/scripts/template/api.hbs b/scripts/template/api.hbs new file mode 100644 index 0000000..725fdcb --- /dev/null +++ b/scripts/template/api.hbs @@ -0,0 +1,2 @@ +import axios from "axios" + diff --git a/scripts/template/component.hbs b/scripts/template/component.hbs new file mode 100644 index 0000000..3ca24eb --- /dev/null +++ b/scripts/template/component.hbs @@ -0,0 +1,11 @@ + + + + + diff --git a/scripts/template/composable.hbs b/scripts/template/composable.hbs new file mode 100644 index 0000000..d55de55 --- /dev/null +++ b/scripts/template/composable.hbs @@ -0,0 +1,5 @@ +import { ref } from "vue" + +export default {{name}} = () => { + +} diff --git a/scripts/template/layout.hbs b/scripts/template/layout.hbs new file mode 100644 index 0000000..fbc03c4 --- /dev/null +++ b/scripts/template/layout.hbs @@ -0,0 +1,4 @@ + diff --git a/scripts/template/module.hbs b/scripts/template/module.hbs new file mode 100644 index 0000000..fd294b5 --- /dev/null +++ b/scripts/template/module.hbs @@ -0,0 +1,6 @@ +import type { App } from "vue" + + +export default (app: App) => { + +} diff --git a/scripts/template/page.hbs b/scripts/template/page.hbs new file mode 100644 index 0000000..6b160cb --- /dev/null +++ b/scripts/template/page.hbs @@ -0,0 +1,17 @@ +{{#if isMarkdown}} +## {{pascalCase name}} Page + +> The page is markdown file +{{else}} + + + + + +{{/if}} diff --git a/scripts/template/store.hbs b/scripts/template/store.hbs new file mode 100644 index 0000000..099829f --- /dev/null +++ b/scripts/template/store.hbs @@ -0,0 +1,9 @@ +import { defineStore } from 'pinia' + +export default defineStore('{{name}}', { + state() { + return {} + }, + getters: {}, + actions: {} +}) diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..61dc1be --- /dev/null +++ b/src/App.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/api/mock.ts b/src/api/mock.ts new file mode 100644 index 0000000..b137da7 --- /dev/null +++ b/src/api/mock.ts @@ -0,0 +1,6 @@ +import { useRequest } from 'vue-request' + +export const testRequest = () => { + const { data, loading, error } = useRequest(() => http.post('/mock/post')) + return { data, loading, error } +} diff --git a/src/components/Dropdown.vue b/src/components/Dropdown.vue new file mode 100644 index 0000000..b46dc62 --- /dev/null +++ b/src/components/Dropdown.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000..85acc6e --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/components/Navigation.vue b/src/components/Navigation.vue new file mode 100644 index 0000000..468af7f --- /dev/null +++ b/src/components/Navigation.vue @@ -0,0 +1,146 @@ + + + diff --git a/src/components/counter.vue b/src/components/counter.vue new file mode 100644 index 0000000..87311e5 --- /dev/null +++ b/src/components/counter.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/composables/env.ts b/src/composables/env.ts new file mode 100644 index 0000000..96a242e --- /dev/null +++ b/src/composables/env.ts @@ -0,0 +1,27 @@ +/** + * 是否在开发环境 + * @description 在 `if (IN_DEV)` 块中的代码在 `vite build` 时会自动编译掉,不会带到生产环境 + * @example + * ```ts + * if (IN_DEV) { + * console.log("开发环境") + * } + * ``` + */ +export const IN_DEV = import.meta.env.DEV + +/** + * 是否在生产环境 + * @example + * if (IN_PROD) { + * console.log("生产环境") + * } + */ +export const IN_PROD = import.meta.env.PROD + +/** + * 不带尾部 / 的 BASE_URL + */ +export const BASE_URL_WITHOUT_TAIL = import.meta.env.BASE_URL.endsWith('/') + ? import.meta.env.BASE_URL.slice(0, -1) + : import.meta.env.BASE_URL diff --git a/src/composables/http.ts b/src/composables/http.ts new file mode 100644 index 0000000..483624b --- /dev/null +++ b/src/composables/http.ts @@ -0,0 +1,60 @@ +import axios from 'axios' + +export const http = axios.create({ + baseURL: import.meta.env.VITE_API_BASE_URL, +}) + +// 添加请求拦截器 +http.interceptors.request.use( + function (config) { + // 在发送请求之前做些什么 + return config + }, + function (error) { + toast.warning(error.message ?? '未知请求错误') + // 对请求错误做些什么 + return Promise.reject(error) + }, +) + +// 添加响应拦截器 +http.interceptors.response.use( + function (response) { + // 2xx 范围内的状态码都会触发该函数。 + // 对响应数据进行格式化 + if (response.data) { + return response.data + } + return response + }, + function (error) { + const status = error.response?.status + let { msg, message } = error.response?.data ?? {} + + if (!msg && message) { + msg = message + } + + if (!msg) { + switch (status) { + case 400: + msg = '参数错误' + break + case 500: + msg = '服务端错误' + break + case 404: + msg = '路由未找到' + break + default: + msg = error.message ?? '未知响应错误' + break + } + } + + toast.warning(msg) + // 超出 2xx 范围的状态码都会触发该函数。 + // 对响应错误做点什么 + return Promise.reject(error) + }, +) diff --git a/src/composables/path.ts b/src/composables/path.ts new file mode 100644 index 0000000..f37ee08 --- /dev/null +++ b/src/composables/path.ts @@ -0,0 +1,7 @@ +/** + * base 安全的路径解析 + * @param path 路径 + */ +export function safeResolve(path: string) { + return BASE_URL_WITHOUT_TAIL + path +} diff --git a/src/composables/toast.ts b/src/composables/toast.ts new file mode 100644 index 0000000..73bd785 --- /dev/null +++ b/src/composables/toast.ts @@ -0,0 +1,4 @@ +import 'vue-toastification/dist/index.css' +import { createToastInterface } from 'vue-toastification' + +export default createToastInterface() diff --git a/src/composables/useLanguage.ts b/src/composables/useLanguage.ts new file mode 100644 index 0000000..24ef719 --- /dev/null +++ b/src/composables/useLanguage.ts @@ -0,0 +1,12 @@ +export default () => { + const { t, locale } = useI18n() + const toggleLocale = () => { + locale.value = locale.value === 'zh-CN' ? 'en' : 'zh-CN' + } + + const language = computed(() => + locale.value === 'zh-CN' ? '中文' : 'English', + ) + + return { t, language, toggleLocale } +} diff --git a/src/composables/useTyped.ts b/src/composables/useTyped.ts new file mode 100644 index 0000000..4f89fb8 --- /dev/null +++ b/src/composables/useTyped.ts @@ -0,0 +1,14 @@ +import { init } from 'ityped' + +export default (strings: string[]) => { + const typedRef = ref() + + onMounted(() => { + init(typedRef.value!, { + strings, + showCursor: false, + disableBackTyping: true, + }) + }) + return typedRef +} diff --git a/src/composables/useVisits.ts b/src/composables/useVisits.ts new file mode 100644 index 0000000..829cbbe --- /dev/null +++ b/src/composables/useVisits.ts @@ -0,0 +1,25 @@ +import { useRequest } from 'vue-request' + +export function useVisits() { + // 开发环境下 + if (import.meta.env.DEV) { + const visits = useStorage('visits-kv', 0) + if (typeof visits.value === 'number') { + visits.value++ + } + return visits + } + + const { data: visits } = useRequest(async function () { + try { + const n = await http.get('https://visits-kv.deno.dev/tov-template', { + baseURL: '', + }) + return Number(n) ?? 0 + } catch (error) { + console.error(error) + return 0 + } + }) + return visits ?? 0 +} diff --git a/src/layouts/default.vue b/src/layouts/default.vue new file mode 100644 index 0000000..42966cf --- /dev/null +++ b/src/layouts/default.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/layouts/notFound.vue b/src/layouts/notFound.vue new file mode 100644 index 0000000..4437b0a --- /dev/null +++ b/src/layouts/notFound.vue @@ -0,0 +1,3 @@ + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..673a1ff --- /dev/null +++ b/src/main.ts @@ -0,0 +1,13 @@ +// https://unocss.dev/ 原子 css 库 +import '@unocss/reset/tailwind-compat.css' // unocss reset +import 'virtual:uno.css' +import 'virtual:unocss-devtools' + +// 你自定义的 css +import './styles/main.css' + +import App from './App.vue' + +const app = createApp(App) + +app.mount('#app') diff --git a/src/pages/[...notFound].vue b/src/pages/[...notFound].vue new file mode 100644 index 0000000..c029377 --- /dev/null +++ b/src/pages/[...notFound].vue @@ -0,0 +1,58 @@ + + + + + + + +{ + "meta": { + "title": "404", + "layout": "notFound" + } +} + diff --git a/src/pages/about.md b/src/pages/about.md new file mode 100644 index 0000000..93177fa --- /dev/null +++ b/src/pages/about.md @@ -0,0 +1,12 @@ +# About + +> The page is markdown file + +```js +console.log("hello"); +``` + +
+ + + diff --git a/src/pages/echarts.vue b/src/pages/echarts.vue new file mode 100644 index 0000000..ef08c27 --- /dev/null +++ b/src/pages/echarts.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/src/pages/index.vue b/src/pages/index.vue new file mode 100644 index 0000000..a865793 --- /dev/null +++ b/src/pages/index.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts new file mode 100644 index 0000000..4687c2e --- /dev/null +++ b/src/plugins/i18n.ts @@ -0,0 +1,36 @@ +import { defu } from 'defu' +import { createI18n } from 'vue-i18n' + +const yamls = import.meta.glob('../../locales/*/**.y(a)?ml', { + eager: true, +}) + +const languages = Object.entries(yamls).map(([key, value]) => { + const yaml = key.endsWith('.yaml') + key = key.slice(14, yaml ? -5 : -4) + // 如果有子模块,则分割 + if (key.includes('/')) { + key = key.split('/')[0] + } + // @ts-ignore + return { [key]: value.default } +}) + +const messages = defu({}, ...languages) + +// localStorage 中的 locale,第二个参数为默认值 +// https://vueuse.org/core/useStorage/#usestorage +const storageLocale = useStorage('locale', '简体中文') + +export const i18n = createI18n({ + messages, + legacy: false, + globalInjection: true, + allowComposition: true, +}) + +// 同步本地 localStorage 和 i18n +// https://vueuse.org/shared/syncRef/#syncref +syncRef(storageLocale, i18n.global.locale) + +export default i18n diff --git a/src/plugins/mock.ts b/src/plugins/mock.ts new file mode 100644 index 0000000..bc99a40 --- /dev/null +++ b/src/plugins/mock.ts @@ -0,0 +1,23 @@ +/** + * 该模块主要给生产时的 mock 用,一般情况下你并不需要关注 + */ +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer' +import { createFetchSever } from '../../presets/shared/mock' + +const shouldCreateServer = + !import.meta.env.DEV && import.meta.env.VITE_APP_MOCK_IN_PRODUCTION === 'true' + +// 生产环境时才创建服务 +if (shouldCreateServer) { + const mockModules: any[] = [] + const modules = import.meta.glob('../../mock/*.ts', { + eager: true, + }) + Object.values(modules).forEach((v: any) => { + if (Array.isArray(v.default)) { + mockModules.push(...v.default) + } + }) + createProdMockServer(mockModules) + createFetchSever(mockModules) +} diff --git a/src/plugins/nprogress.ts b/src/plugins/nprogress.ts new file mode 100644 index 0000000..c512b07 --- /dev/null +++ b/src/plugins/nprogress.ts @@ -0,0 +1,9 @@ +import { router } from './router' +import { useNProgress } from '@vueuse/integrations/useNProgress' + +// https://vueuse.org/integrations/useNProgress/ +const { start, done } = useNProgress() + +router.beforeEach(() => start()) + +router.afterEach(() => done(true)) diff --git a/src/plugins/pinia.ts b/src/plugins/pinia.ts new file mode 100644 index 0000000..96ff6f1 --- /dev/null +++ b/src/plugins/pinia.ts @@ -0,0 +1,7 @@ +import persistedstate from 'pinia-plugin-persistedstate' + +const pinia = createPinia() + +pinia.use(persistedstate) + +export default pinia diff --git a/src/plugins/router.ts b/src/plugins/router.ts new file mode 100644 index 0000000..c1a9ef5 --- /dev/null +++ b/src/plugins/router.ts @@ -0,0 +1,26 @@ +import { createGetRoutes, setupLayouts } from 'virtual:meta-layouts' +import { createRouter, createWebHistory } from 'vue-router' +import { routes as fileRoutes } from 'vue-router/auto-routes' + +declare module 'vue-router' { + // 在这里定义你的 meta 类型 + // eslint-disable-next-line no-unused-vars + interface RouteMeta { + title?: string + layout?: string + } +} + +// 重定向 BASE_URL +fileRoutes.flat(Infinity).forEach((route) => { + route.path = safeResolve(route.path) +}) + +export const router = createRouter({ + history: createWebHistory(), + routes: setupLayouts(fileRoutes), +}) + +export const getRoutes = createGetRoutes(router) + +export default router diff --git a/src/plugins/title.ts b/src/plugins/title.ts new file mode 100644 index 0000000..f7bbeb0 --- /dev/null +++ b/src/plugins/title.ts @@ -0,0 +1,17 @@ +import { router } from './router' + +useTitle( + () => { + const { path, meta } = router.currentRoute.value + if (meta.title) { + return `· ${meta.title}` + } + if (path === '/') { + return '· home' + } + return path.replaceAll('/', ' · ') + }, + { + titleTemplate: `${import.meta.env.VITE_APP_TITLE} %s`, + }, +) diff --git a/src/stores/createCounter.ts b/src/stores/createCounter.ts new file mode 100644 index 0000000..4851f4a --- /dev/null +++ b/src/stores/createCounter.ts @@ -0,0 +1,15 @@ +import { defineStore } from 'pinia' + +export default defineStore('counter', { + state() { + return { + count: 0, + } + }, + actions: { + inc() { + this.count++ + }, + }, + persist: true, +}) diff --git a/src/styles/main.css b/src/styles/main.css new file mode 100644 index 0000000..5f9753f --- /dev/null +++ b/src/styles/main.css @@ -0,0 +1,55 @@ +@import './md.css'; + + +html.dark { + background: #100c2a !important; +} + +.prose { + scroll-behavior: smooth; +} + +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + @apply bg-blue-700 bg-opacity-75; + + background: repeating-linear-gradient(90deg, #00dc82 0, #34cdfe 50%, #0047e1); + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +/* +* 全局滚动条 +*/ +::-webkit-scrollbar { + width: 8px; + height: 11px; + background-color: rgb(246, 247, 248); +} + +::-webkit-scrollbar-thumb { + background-color: rgb(233, 236, 239); + border-radius: 10px; +} + +::-webkit-scrollbar-track { + background-color: rgb(246, 247, 248); + border-radius: 10px; +} + +html.dark ::-webkit-scrollbar, +html.dark ::-webkit-scrollbar-track { + background-color: #212529; +} + +html.dark ::-webkit-scrollbar-thumb { + background-color: #343a40; +} \ No newline at end of file diff --git a/src/styles/md.css b/src/styles/md.css new file mode 100644 index 0000000..a68fa21 --- /dev/null +++ b/src/styles/md.css @@ -0,0 +1,83 @@ +@import 'prism-theme-vars/base.css'; + +.prose { + --prism-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, + Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; +} + +.prose pre { + font-weight: 500; + font-size: 1rem; +} + +html:not(.dark) { + --prism-foreground: #393a34; + --prism-background: #f8f8f8; + + --prism-comment: #868e96; + --prism-namespace: #444444; + --prism-string: #bc8671; + --prism-punctuation: #80817d; + --prism-literal: #36acaa; + --prism-keyword: #d73a49; + --prism-function: #0c4c7d; + --prism-deleted: #9a050f; + --prism-class: #2b91af; + --prism-builtin: #800000; + --prism-property: #ce9178; + --prism-regex: #ad502b; +} + +html.dark { + --prism-foreground: #d4d4d4; + --prism-background: #1e1e1e; + + --prism-namespace: #aaaaaa; + --prism-comment: #868e96; + --prism-namespace: #444444; + --prism-string: #ce9178; + --prism-punctuation: #d4d4d4; + --prism-literal: #36acaa; + --prism-keyword: #0ca678; + --prism-function: #dcdcaa; + --prism-deleted: #9a050f; + --prism-class: #4ec9b0; + --prism-builtin: #d16969; + --prism-property: #ce9178; + --prism-regex: #ad502b; +} +ol { + padding-left: 15px; +} + +.prose blockquote p:first-of-type::before { + content: none; +} + +.prose pre { + color: #495057; + background: #f8f9fa; +} + +.prose-sm p { + font-weight: 500; +} + +.prose blockquote { + margin: 0; + font-style: normal; +} + +html.dark .prose blockquote { + color: white; +} + +html.dark .prose pre { + color: #f8f9fa; + background: #2a2f33; +} + +.token.comment { + font-style: normal; + font-size: 0.5rem; +} diff --git a/src/test/__snapshots__/index.test.ts.snap b/src/test/__snapshots__/index.test.ts.snap new file mode 100644 index 0000000..ecbbcf2 --- /dev/null +++ b/src/test/__snapshots__/index.test.ts.snap @@ -0,0 +1,7 @@ +// Vitest Snapshot v1 + +exports[`suite name > snapshot 1`] = ` +{ + "foo": "bar", +} +`; diff --git a/src/test/index.test.ts b/src/test/index.test.ts new file mode 100644 index 0000000..616df29 --- /dev/null +++ b/src/test/index.test.ts @@ -0,0 +1,16 @@ +import { assert, describe, expect, it } from 'vitest' + +describe('suite name', () => { + it('foo', () => { + expect(1 + 1).toEqual(2) + expect(true).to.be.true + }) + + it('bar', () => { + assert.equal(Math.sqrt(4), 2) + }) + + it('snapshot', () => { + expect({ foo: 'bar' }).toMatchSnapshot() + }) +}) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b31d1f8 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "strict": true, + "jsx": "preserve", + "target": "esnext", + "module": "esnext", + "sourceMap": true, + "skipLibCheck": true, + "isolatedModules": true, + "jsxImportSource": "vue", + "esModuleInterop": true, + "lib": ["esnext", "dom"], + "resolveJsonModule": true, + "moduleResolution": "node", + "useDefineForClassFields": true, + "baseUrl": ".", + "paths": { + "~/*": ["src/*"], + "@/*": ["src/*"] + } + }, + "include": [ + "srcipts", + "presets", + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "./vite.config.ts" + ], + "exclude": ["node_modules", "dist"] +} diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 0000000..936f25d --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,24 @@ +import { + defineConfig, + presetAttributify, + presetIcons, + presetTypography, + presetUno, + transformerVariantGroup, + transformerDirectives, +} from 'unocss' + +import presetAutoprefixer from './presets/autoprefixer' + +export default defineConfig({ + transformers: [transformerDirectives(), transformerVariantGroup()], + presets: [ + presetAttributify(), + presetIcons({ + autoInstall: true, + }), + presetUno(), + presetTypography(), + presetAutoprefixer(), + ], +}) diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..90972a4 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,6 @@ +import Tov from './presets' +import { defineConfig } from 'vite' + +export default defineConfig({ + plugins: [Tov()], +})