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
+
-前端模板
\ 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
+
+
+ 我是非默认布局custom
+
+
+
+```
+
+此时 `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
+
+
+
+ data: {{data}}
+ loading: {{loading}}
+ error: {{error}}
+
+```
+
+这里用到 [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
+
+
+
+ {{store.counter}}
+
+```
+
+2. `src/stores` 的导出将被按需自动引入。
+
+例如有个 `src/stores/counterStore.ts`
+
+```ts
+// default 导出
+export default defineStore("counter", {
+ state() {
+ return {
+ counter: 1,
+ };
+ },
+ actions: {
+ inc() {
+ this.counter++;
+ },
+ },
+});
+```
+
+此时就不再需要 `import`了
+
+```html
+
+
+
+ {{store.counter}}
+
+```
+
+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
+
+
+ Success
+
+```
+
+目前支持的组件库有:
+
+- [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/),随意选择点击进入其中一个图标库
+
+
+
+再点击选择其中一个喜欢的图标
+
+
+
+复制其名称
+
+
+
+在模板中即可通过 `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
+
+
+
+ x坐标 {{x}}
+ y坐标 {{y}}
+
+```
+
+具体可见 👉 [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
+
+
+
+ data: {{data}}
+ error: {{error}}
+ loading: {{loading}}
+
+```
+
+所有基本的数据,状态和缓存都帮你搞定了,不需要重新封装。
+
+具体可见 👉 [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
+
+
+
+
+ language: {{ t('index') }} click me!!
+
+
+```
+
+更详细的说明可见用到的 `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`
+
+
+
+当然还有暗黑模式适应。
+
+
+
+也支持简单的响应式适应。例如移动端浏览器上会有正确的显示。
+
+当然如果这个 `404` 的封面不符合你的口味,那么可以在 `pages/[...notFound].vue`
+中修改 `img` 标签的 `src`。默认是 `32.svg`,支持 `1 ~ 33` 的 `svg`。
+
+例如,默认 👇
+
+```html
+
+
+
+
+```
+
+修改 `/notFound/32.svg` 为 `/notFound/33.svg`
+
+```html
+
+
+
+
+```
+
+即可切换封面为 👇
+
+
+
+
+
+
+### 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 @@
+
+
+
+
+
+## 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
+
+
+ default
+
+
+
+```
+
+At this point, `src/pages/index.vue`:
+
+```html
+
+
+ home
+
+```
+
+When routing to `/`, the page will render:
+
+```html
+default home
+```
+
+Now, `src/pages/about.vue`:
+
+```html
+
+
+ about
+
+```
+
+When routing to `/about`, the page will render:
+
+```html
+default about
+```
+
+
+
+#### Non-Default Layout
+
+Create a `src/layouts/custom.vue` randomly:
+
+```html
+
+
+ custom
+
+
+
+```
+
+At this point, in `src/pages/index.vue`:
+
+```html
+
+
+ home
+
+
+
+
+{
+ "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
+
+ data: {{data}}
+ loading: {{loading}}
+ error: {{error}}
+
+```
+
+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
+
+
+
+ {{store.counter}}
+
+```
+
+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
+
+
+
+ {{store.counter}}
+
+```
+
+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
+
+
+ Success
+
+```
+
+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.
+
+
+
+Then click on one of the icons you like.
+
+
+
+Copy its name.
+
+
+
+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
+
+
+
+ x {{x}}
+ y {{y}}
+
+```
+
+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
+
+ I am white text on a red background.
+
+```
+
+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
+
+ I am white text on a red background.
+
+```
+
+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
+
+
+
+ data: {{data}}
+ error: {{error}}
+ loading: {{loading}}
+
+```
+
+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
+
+
+
+
+ language: {{ t('index') }} click me!!
+
+
+```
+
+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`
+
+
+
+Of course, there is also dark mode adaptation.
+
+
+
+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:
+
+
+
+
+
+
+### 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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