作者 姚富强

专业课程管理系统项目初始化

  1 +/* eslint-env node */
  2 +require('@rushstack/eslint-patch/modern-module-resolution')
  3 +
  4 +module.exports = {
  5 + root: true,
  6 + 'extends': [
  7 + 'plugin:vue/vue3-essential',
  8 + 'eslint:recommended',
  9 + '@vue/eslint-config-prettier/skip-formatting'
  10 + ],
  11 + parserOptions: {
  12 + ecmaVersion: 'latest'
  13 + }
  14 +}
  1 +# Logs
  2 +logs
  3 +*.log
  4 +npm-debug.log*
  5 +yarn-debug.log*
  6 +yarn-error.log*
  7 +pnpm-debug.log*
  8 +lerna-debug.log*
  9 +
  10 +node_modules
  11 +.DS_Store
  12 +dist
  13 +dist-ssr
  14 +coverage
  15 +*.local
  16 +
  17 +/cypress/videos/
  18 +/cypress/screenshots/
  19 +
  20 +# Editor directories and files
  21 +.vscode/*
  22 +!.vscode/extensions.json
  23 +.idea
  24 +*.suo
  25 +*.ntvs*
  26 +*.njsproj
  27 +*.sln
  28 +*.sw?
  29 +
  30 +*.tsbuildinfo
  1 +{
  2 + "$schema": "https://json.schemastore.org/prettierrc",
  3 + "semi": false,
  4 + "tabWidth": 2,
  5 + "singleQuote": true,
  6 + "printWidth": 100,
  7 + "trailingComma": "none"
  8 +}
  1 +{
  2 + "recommendations": [
  3 + "Vue.volar",
  4 + "Vue.vscode-typescript-vue-plugin",
  5 + "dbaeumer.vscode-eslint",
  6 + "esbenp.prettier-vscode"
  7 + ]
  8 +}
  1 +# 项目搭建
  2 +## 基于vite创建项目
  3 +
  4 +```bash
  5 +# 使用npx创建项目
  6 +pnpm create vue PCMS
  7 +
  8 +# 进入到项
  9 +cd PCMS
  10 +
  11 +# 安装依赖
  12 +pnpm i
  13 +
  14 +# 启动项目
  15 +pnpm dev
  16 +```
  17 +![image.png](assets/01.png)
  18 +## 调整项目目录结构
  19 +```bash
  20 +-src
  21 + -apis 项目接口函数
  22 + -assets 项目资源文件,比如,图片等
  23 + -components 通用组件
  24 + -pages 页面组件
  25 + -store 集中状态管理
  26 + -utils 工具,比如,token、axios 的封装等
  27 + -view 页面组件
  28 +```
  29 +# 使用scss预处理器
  30 +> `SASS` 是一种预编译的 CSS,支持一些比较高级的语法,可以提高编写样式的效率,接入scss非常简单只需要我们装一个sass工具
  31 +
  32 +
  33 +**实现步骤**
  34 +
  35 +1. 安装解析 sass 的包:`npm i sass -D`
  36 +
  37 +
  38 +# 配置别名路径
  39 +{
  40 + "compilerOptions": {
  41 + "target": "ES6",
  42 + "allowSyntheticDefaultImports": true,
  43 + "baseUrl": "./",
  44 + "paths": {
  45 + "@/*": [
  46 + "src/*"
  47 + ]
  48 + }
  49 + },
  50 + "exclude": [
  51 + "node_modules"
  52 + ]
  53 +}
  54 +
  55 +
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 + <head>
  4 + <meta charset="UTF-8">
  5 + <link rel="icon" href="/favicon.ico">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7 + <title>Vite App</title>
  8 + </head>
  9 + <body>
  10 + <div id="app"></div>
  11 + <script type="module" src="/src/main.js"></script>
  12 + </body>
  13 +</html>
  1 +{
  2 + "compilerOptions": {
  3 + "target": "ES6",
  4 + "allowSyntheticDefaultImports": true,
  5 + "baseUrl": "./",
  6 + "paths": {
  7 + "@/*": [
  8 + "src/*"
  9 + ]
  10 + }
  11 + },
  12 + "exclude": [
  13 + "node_modules"
  14 + ]
  15 +}
  16 +
  1 +{
  2 + "name": "pcms",
  3 + "version": "0.0.0",
  4 + "private": true,
  5 + "type": "module",
  6 + "scripts": {
  7 + "dev": "vite",
  8 + "build": "vite build",
  9 + "preview": "vite preview",
  10 + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
  11 + "format": "prettier --write src/"
  12 + },
  13 + "dependencies": {
  14 + "axios": "^1.6.5",
  15 + "pinia": "^2.1.7",
  16 + "pinia-plugin-persistedstate": "^3.2.1",
  17 + "vue": "^3.3.11",
  18 + "vue-router": "^4.2.5"
  19 + },
  20 + "devDependencies": {
  21 + "@rushstack/eslint-patch": "^1.3.3",
  22 + "@vitejs/plugin-vue": "^4.5.2",
  23 + "@vue/eslint-config-prettier": "^8.0.0",
  24 + "eslint": "^8.49.0",
  25 + "eslint-plugin-vue": "^9.17.0",
  26 + "prettier": "^3.0.3",
  27 + "sass": "^1.69.7",
  28 + "vite": "^5.0.10"
  29 + }
  30 +}
  1 +lockfileVersion: '6.0'
  2 +
  3 +settings:
  4 + autoInstallPeers: true
  5 + excludeLinksFromLockfile: false
  6 +
  7 +dependencies:
  8 + axios:
  9 + specifier: ^1.6.5
  10 + version: 1.6.5
  11 + pinia:
  12 + specifier: ^2.1.7
  13 + version: 2.1.7(vue@3.4.13)
  14 + pinia-plugin-persistedstate:
  15 + specifier: ^3.2.1
  16 + version: 3.2.1(pinia@2.1.7)
  17 + vue:
  18 + specifier: ^3.3.11
  19 + version: 3.4.13
  20 + vue-router:
  21 + specifier: ^4.2.5
  22 + version: 4.2.5(vue@3.4.13)
  23 +
  24 +devDependencies:
  25 + '@rushstack/eslint-patch':
  26 + specifier: ^1.3.3
  27 + version: 1.6.1
  28 + '@vitejs/plugin-vue':
  29 + specifier: ^4.5.2
  30 + version: 4.6.2(vite@5.0.11)(vue@3.4.13)
  31 + '@vue/eslint-config-prettier':
  32 + specifier: ^8.0.0
  33 + version: 8.0.0(eslint@8.56.0)(prettier@3.2.1)
  34 + eslint:
  35 + specifier: ^8.49.0
  36 + version: 8.56.0
  37 + eslint-plugin-vue:
  38 + specifier: ^9.17.0
  39 + version: 9.20.1(eslint@8.56.0)
  40 + prettier:
  41 + specifier: ^3.0.3
  42 + version: 3.2.1
  43 + sass:
  44 + specifier: ^1.69.7
  45 + version: 1.69.7
  46 + vite:
  47 + specifier: ^5.0.10
  48 + version: 5.0.11(sass@1.69.7)
  49 +
  50 +packages:
  51 +
  52 + /@aashutoshrathi/word-wrap@1.2.6:
  53 + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
  54 + engines: {node: '>=0.10.0'}
  55 + dev: true
  56 +
  57 + /@babel/helper-string-parser@7.23.4:
  58 + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
  59 + engines: {node: '>=6.9.0'}
  60 +
  61 + /@babel/helper-validator-identifier@7.22.20:
  62 + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
  63 + engines: {node: '>=6.9.0'}
  64 +
  65 + /@babel/parser@7.23.6:
  66 + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==}
  67 + engines: {node: '>=6.0.0'}
  68 + hasBin: true
  69 + dependencies:
  70 + '@babel/types': 7.23.6
  71 +
  72 + /@babel/types@7.23.6:
  73 + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==}
  74 + engines: {node: '>=6.9.0'}
  75 + dependencies:
  76 + '@babel/helper-string-parser': 7.23.4
  77 + '@babel/helper-validator-identifier': 7.22.20
  78 + to-fast-properties: 2.0.0
  79 +
  80 + /@esbuild/aix-ppc64@0.19.11:
  81 + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==}
  82 + engines: {node: '>=12'}
  83 + cpu: [ppc64]
  84 + os: [aix]
  85 + requiresBuild: true
  86 + dev: true
  87 + optional: true
  88 +
  89 + /@esbuild/android-arm64@0.19.11:
  90 + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==}
  91 + engines: {node: '>=12'}
  92 + cpu: [arm64]
  93 + os: [android]
  94 + requiresBuild: true
  95 + dev: true
  96 + optional: true
  97 +
  98 + /@esbuild/android-arm@0.19.11:
  99 + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==}
  100 + engines: {node: '>=12'}
  101 + cpu: [arm]
  102 + os: [android]
  103 + requiresBuild: true
  104 + dev: true
  105 + optional: true
  106 +
  107 + /@esbuild/android-x64@0.19.11:
  108 + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==}
  109 + engines: {node: '>=12'}
  110 + cpu: [x64]
  111 + os: [android]
  112 + requiresBuild: true
  113 + dev: true
  114 + optional: true
  115 +
  116 + /@esbuild/darwin-arm64@0.19.11:
  117 + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==}
  118 + engines: {node: '>=12'}
  119 + cpu: [arm64]
  120 + os: [darwin]
  121 + requiresBuild: true
  122 + dev: true
  123 + optional: true
  124 +
  125 + /@esbuild/darwin-x64@0.19.11:
  126 + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==}
  127 + engines: {node: '>=12'}
  128 + cpu: [x64]
  129 + os: [darwin]
  130 + requiresBuild: true
  131 + dev: true
  132 + optional: true
  133 +
  134 + /@esbuild/freebsd-arm64@0.19.11:
  135 + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==}
  136 + engines: {node: '>=12'}
  137 + cpu: [arm64]
  138 + os: [freebsd]
  139 + requiresBuild: true
  140 + dev: true
  141 + optional: true
  142 +
  143 + /@esbuild/freebsd-x64@0.19.11:
  144 + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==}
  145 + engines: {node: '>=12'}
  146 + cpu: [x64]
  147 + os: [freebsd]
  148 + requiresBuild: true
  149 + dev: true
  150 + optional: true
  151 +
  152 + /@esbuild/linux-arm64@0.19.11:
  153 + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==}
  154 + engines: {node: '>=12'}
  155 + cpu: [arm64]
  156 + os: [linux]
  157 + requiresBuild: true
  158 + dev: true
  159 + optional: true
  160 +
  161 + /@esbuild/linux-arm@0.19.11:
  162 + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==}
  163 + engines: {node: '>=12'}
  164 + cpu: [arm]
  165 + os: [linux]
  166 + requiresBuild: true
  167 + dev: true
  168 + optional: true
  169 +
  170 + /@esbuild/linux-ia32@0.19.11:
  171 + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==}
  172 + engines: {node: '>=12'}
  173 + cpu: [ia32]
  174 + os: [linux]
  175 + requiresBuild: true
  176 + dev: true
  177 + optional: true
  178 +
  179 + /@esbuild/linux-loong64@0.19.11:
  180 + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==}
  181 + engines: {node: '>=12'}
  182 + cpu: [loong64]
  183 + os: [linux]
  184 + requiresBuild: true
  185 + dev: true
  186 + optional: true
  187 +
  188 + /@esbuild/linux-mips64el@0.19.11:
  189 + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==}
  190 + engines: {node: '>=12'}
  191 + cpu: [mips64el]
  192 + os: [linux]
  193 + requiresBuild: true
  194 + dev: true
  195 + optional: true
  196 +
  197 + /@esbuild/linux-ppc64@0.19.11:
  198 + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==}
  199 + engines: {node: '>=12'}
  200 + cpu: [ppc64]
  201 + os: [linux]
  202 + requiresBuild: true
  203 + dev: true
  204 + optional: true
  205 +
  206 + /@esbuild/linux-riscv64@0.19.11:
  207 + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==}
  208 + engines: {node: '>=12'}
  209 + cpu: [riscv64]
  210 + os: [linux]
  211 + requiresBuild: true
  212 + dev: true
  213 + optional: true
  214 +
  215 + /@esbuild/linux-s390x@0.19.11:
  216 + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==}
  217 + engines: {node: '>=12'}
  218 + cpu: [s390x]
  219 + os: [linux]
  220 + requiresBuild: true
  221 + dev: true
  222 + optional: true
  223 +
  224 + /@esbuild/linux-x64@0.19.11:
  225 + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==}
  226 + engines: {node: '>=12'}
  227 + cpu: [x64]
  228 + os: [linux]
  229 + requiresBuild: true
  230 + dev: true
  231 + optional: true
  232 +
  233 + /@esbuild/netbsd-x64@0.19.11:
  234 + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==}
  235 + engines: {node: '>=12'}
  236 + cpu: [x64]
  237 + os: [netbsd]
  238 + requiresBuild: true
  239 + dev: true
  240 + optional: true
  241 +
  242 + /@esbuild/openbsd-x64@0.19.11:
  243 + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==}
  244 + engines: {node: '>=12'}
  245 + cpu: [x64]
  246 + os: [openbsd]
  247 + requiresBuild: true
  248 + dev: true
  249 + optional: true
  250 +
  251 + /@esbuild/sunos-x64@0.19.11:
  252 + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==}
  253 + engines: {node: '>=12'}
  254 + cpu: [x64]
  255 + os: [sunos]
  256 + requiresBuild: true
  257 + dev: true
  258 + optional: true
  259 +
  260 + /@esbuild/win32-arm64@0.19.11:
  261 + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==}
  262 + engines: {node: '>=12'}
  263 + cpu: [arm64]
  264 + os: [win32]
  265 + requiresBuild: true
  266 + dev: true
  267 + optional: true
  268 +
  269 + /@esbuild/win32-ia32@0.19.11:
  270 + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==}
  271 + engines: {node: '>=12'}
  272 + cpu: [ia32]
  273 + os: [win32]
  274 + requiresBuild: true
  275 + dev: true
  276 + optional: true
  277 +
  278 + /@esbuild/win32-x64@0.19.11:
  279 + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==}
  280 + engines: {node: '>=12'}
  281 + cpu: [x64]
  282 + os: [win32]
  283 + requiresBuild: true
  284 + dev: true
  285 + optional: true
  286 +
  287 + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
  288 + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
  289 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
  290 + peerDependencies:
  291 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
  292 + dependencies:
  293 + eslint: 8.56.0
  294 + eslint-visitor-keys: 3.4.3
  295 + dev: true
  296 +
  297 + /@eslint-community/regexpp@4.10.0:
  298 + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
  299 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
  300 + dev: true
  301 +
  302 + /@eslint/eslintrc@2.1.4:
  303 + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
  304 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
  305 + dependencies:
  306 + ajv: 6.12.6
  307 + debug: 4.3.4
  308 + espree: 9.6.1
  309 + globals: 13.24.0
  310 + ignore: 5.3.0
  311 + import-fresh: 3.3.0
  312 + js-yaml: 4.1.0
  313 + minimatch: 3.1.2
  314 + strip-json-comments: 3.1.1
  315 + transitivePeerDependencies:
  316 + - supports-color
  317 + dev: true
  318 +
  319 + /@eslint/js@8.56.0:
  320 + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
  321 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
  322 + dev: true
  323 +
  324 + /@humanwhocodes/config-array@0.11.14:
  325 + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
  326 + engines: {node: '>=10.10.0'}
  327 + dependencies:
  328 + '@humanwhocodes/object-schema': 2.0.2
  329 + debug: 4.3.4
  330 + minimatch: 3.1.2
  331 + transitivePeerDependencies:
  332 + - supports-color
  333 + dev: true
  334 +
  335 + /@humanwhocodes/module-importer@1.0.1:
  336 + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
  337 + engines: {node: '>=12.22'}
  338 + dev: true
  339 +
  340 + /@humanwhocodes/object-schema@2.0.2:
  341 + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
  342 + dev: true
  343 +
  344 + /@jridgewell/sourcemap-codec@1.4.15:
  345 + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
  346 +
  347 + /@nodelib/fs.scandir@2.1.5:
  348 + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
  349 + engines: {node: '>= 8'}
  350 + dependencies:
  351 + '@nodelib/fs.stat': 2.0.5
  352 + run-parallel: 1.2.0
  353 + dev: true
  354 +
  355 + /@nodelib/fs.stat@2.0.5:
  356 + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
  357 + engines: {node: '>= 8'}
  358 + dev: true
  359 +
  360 + /@nodelib/fs.walk@1.2.8:
  361 + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
  362 + engines: {node: '>= 8'}
  363 + dependencies:
  364 + '@nodelib/fs.scandir': 2.1.5
  365 + fastq: 1.16.0
  366 + dev: true
  367 +
  368 + /@pkgr/core@0.1.0:
  369 + resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==}
  370 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
  371 + dev: true
  372 +
  373 + /@rollup/rollup-android-arm-eabi@4.9.5:
  374 + resolution: {integrity: sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==}
  375 + cpu: [arm]
  376 + os: [android]
  377 + requiresBuild: true
  378 + dev: true
  379 + optional: true
  380 +
  381 + /@rollup/rollup-android-arm64@4.9.5:
  382 + resolution: {integrity: sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==}
  383 + cpu: [arm64]
  384 + os: [android]
  385 + requiresBuild: true
  386 + dev: true
  387 + optional: true
  388 +
  389 + /@rollup/rollup-darwin-arm64@4.9.5:
  390 + resolution: {integrity: sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==}
  391 + cpu: [arm64]
  392 + os: [darwin]
  393 + requiresBuild: true
  394 + dev: true
  395 + optional: true
  396 +
  397 + /@rollup/rollup-darwin-x64@4.9.5:
  398 + resolution: {integrity: sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==}
  399 + cpu: [x64]
  400 + os: [darwin]
  401 + requiresBuild: true
  402 + dev: true
  403 + optional: true
  404 +
  405 + /@rollup/rollup-linux-arm-gnueabihf@4.9.5:
  406 + resolution: {integrity: sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==}
  407 + cpu: [arm]
  408 + os: [linux]
  409 + requiresBuild: true
  410 + dev: true
  411 + optional: true
  412 +
  413 + /@rollup/rollup-linux-arm64-gnu@4.9.5:
  414 + resolution: {integrity: sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==}
  415 + cpu: [arm64]
  416 + os: [linux]
  417 + libc: [glibc]
  418 + requiresBuild: true
  419 + dev: true
  420 + optional: true
  421 +
  422 + /@rollup/rollup-linux-arm64-musl@4.9.5:
  423 + resolution: {integrity: sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==}
  424 + cpu: [arm64]
  425 + os: [linux]
  426 + libc: [musl]
  427 + requiresBuild: true
  428 + dev: true
  429 + optional: true
  430 +
  431 + /@rollup/rollup-linux-riscv64-gnu@4.9.5:
  432 + resolution: {integrity: sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==}
  433 + cpu: [riscv64]
  434 + os: [linux]
  435 + libc: [glibc]
  436 + requiresBuild: true
  437 + dev: true
  438 + optional: true
  439 +
  440 + /@rollup/rollup-linux-x64-gnu@4.9.5:
  441 + resolution: {integrity: sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==}
  442 + cpu: [x64]
  443 + os: [linux]
  444 + libc: [glibc]
  445 + requiresBuild: true
  446 + dev: true
  447 + optional: true
  448 +
  449 + /@rollup/rollup-linux-x64-musl@4.9.5:
  450 + resolution: {integrity: sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==}
  451 + cpu: [x64]
  452 + os: [linux]
  453 + libc: [musl]
  454 + requiresBuild: true
  455 + dev: true
  456 + optional: true
  457 +
  458 + /@rollup/rollup-win32-arm64-msvc@4.9.5:
  459 + resolution: {integrity: sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==}
  460 + cpu: [arm64]
  461 + os: [win32]
  462 + requiresBuild: true
  463 + dev: true
  464 + optional: true
  465 +
  466 + /@rollup/rollup-win32-ia32-msvc@4.9.5:
  467 + resolution: {integrity: sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==}
  468 + cpu: [ia32]
  469 + os: [win32]
  470 + requiresBuild: true
  471 + dev: true
  472 + optional: true
  473 +
  474 + /@rollup/rollup-win32-x64-msvc@4.9.5:
  475 + resolution: {integrity: sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==}
  476 + cpu: [x64]
  477 + os: [win32]
  478 + requiresBuild: true
  479 + dev: true
  480 + optional: true
  481 +
  482 + /@rushstack/eslint-patch@1.6.1:
  483 + resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==}
  484 + dev: true
  485 +
  486 + /@types/estree@1.0.5:
  487 + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
  488 + dev: true
  489 +
  490 + /@ungap/structured-clone@1.2.0:
  491 + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
  492 + dev: true
  493 +
  494 + /@vitejs/plugin-vue@4.6.2(vite@5.0.11)(vue@3.4.13):
  495 + resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==}
  496 + engines: {node: ^14.18.0 || >=16.0.0}
  497 + peerDependencies:
  498 + vite: ^4.0.0 || ^5.0.0
  499 + vue: ^3.2.25
  500 + dependencies:
  501 + vite: 5.0.11(sass@1.69.7)
  502 + vue: 3.4.13
  503 + dev: true
  504 +
  505 + /@vue/compiler-core@3.4.13:
  506 + resolution: {integrity: sha512-zGUdmB3j3Irn9z51GXLJ5s0EAHxmsm5/eXl0y6MBaajMeOAaiT4+zaDoxui4Ets98dwIRr8BBaqXXHtHSfm+KA==}
  507 + dependencies:
  508 + '@babel/parser': 7.23.6
  509 + '@vue/shared': 3.4.13
  510 + entities: 4.5.0
  511 + estree-walker: 2.0.2
  512 + source-map-js: 1.0.2
  513 +
  514 + /@vue/compiler-dom@3.4.13:
  515 + resolution: {integrity: sha512-XSNbpr5Rs3kCfVAmBqMu/HDwOS+RL6y28ZZjDlnDUuf146pRWt2sQkwhsOYc9uu2lxjjJy2NcyOkK7MBLVEc7w==}
  516 + dependencies:
  517 + '@vue/compiler-core': 3.4.13
  518 + '@vue/shared': 3.4.13
  519 +
  520 + /@vue/compiler-sfc@3.4.13:
  521 + resolution: {integrity: sha512-SkpmQN8xIFBd5onT413DFSDdjxULJf6jmJg/t3w/DZ9I8ZzyNlLIBLO0qFLewVHyHCiAgpPZlWqSRZXYrawk3Q==}
  522 + dependencies:
  523 + '@babel/parser': 7.23.6
  524 + '@vue/compiler-core': 3.4.13
  525 + '@vue/compiler-dom': 3.4.13
  526 + '@vue/compiler-ssr': 3.4.13
  527 + '@vue/shared': 3.4.13
  528 + estree-walker: 2.0.2
  529 + magic-string: 0.30.5
  530 + postcss: 8.4.33
  531 + source-map-js: 1.0.2
  532 +
  533 + /@vue/compiler-ssr@3.4.13:
  534 + resolution: {integrity: sha512-rwnw9SVBgD6eGKh8UucnwztieQo/R3RQrEGpE0b0cxb2xxvJeLs/fe7DoYlhEfaSyzM/qD5odkK87hl3G3oW+A==}
  535 + dependencies:
  536 + '@vue/compiler-dom': 3.4.13
  537 + '@vue/shared': 3.4.13
  538 +
  539 + /@vue/devtools-api@6.5.1:
  540 + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==}
  541 + dev: false
  542 +
  543 + /@vue/eslint-config-prettier@8.0.0(eslint@8.56.0)(prettier@3.2.1):
  544 + resolution: {integrity: sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==}
  545 + peerDependencies:
  546 + eslint: '>= 8.0.0'
  547 + prettier: '>= 3.0.0'
  548 + dependencies:
  549 + eslint: 8.56.0
  550 + eslint-config-prettier: 8.10.0(eslint@8.56.0)
  551 + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.1)
  552 + prettier: 3.2.1
  553 + transitivePeerDependencies:
  554 + - '@types/eslint'
  555 + dev: true
  556 +
  557 + /@vue/reactivity@3.4.13:
  558 + resolution: {integrity: sha512-/ZdUOrGKkGVONzVJkfDqNcn2fLMvaa5VlYx2KwTbnRbX06YZ4GJE0PVTmWzIxtBYdpSTLLXgw3pDggO+96KXzg==}
  559 + dependencies:
  560 + '@vue/shared': 3.4.13
  561 +
  562 + /@vue/runtime-core@3.4.13:
  563 + resolution: {integrity: sha512-Ov4d4At7z3goxqzSqQxdfVYEcN5HY4dM1uDYL6Hu/Es9Za9BEN602zyjWhhi2+BEki5F9NizRSvn02k/tqNWlg==}
  564 + dependencies:
  565 + '@vue/reactivity': 3.4.13
  566 + '@vue/shared': 3.4.13
  567 +
  568 + /@vue/runtime-dom@3.4.13:
  569 + resolution: {integrity: sha512-ynde9p16eEV3u1VCxUre2e0nKzD0l3NzH0r599+bXeLT1Yhac8Atcot3iL9XNqwolxYCI89KBII+2MSVzfrz6w==}
  570 + dependencies:
  571 + '@vue/runtime-core': 3.4.13
  572 + '@vue/shared': 3.4.13
  573 + csstype: 3.1.3
  574 +
  575 + /@vue/server-renderer@3.4.13(vue@3.4.13):
  576 + resolution: {integrity: sha512-hkw+UQyDZZtSn1q30nObMfc8beVEQv2pG08nghigxGw+iOWodR+tWSuJak0mzWAHlP/xt/qLc//dG6igfgvGEA==}
  577 + peerDependencies:
  578 + vue: 3.4.13
  579 + dependencies:
  580 + '@vue/compiler-ssr': 3.4.13
  581 + '@vue/shared': 3.4.13
  582 + vue: 3.4.13
  583 +
  584 + /@vue/shared@3.4.13:
  585 + resolution: {integrity: sha512-56crFKLPpzk85WXX1L1c0QzPOuoapWlPVys8eMG8kkRmqdMjWUqK8KpFdE2d7BQA4CEbXwyyHPq6MpFr8H9rcg==}
  586 +
  587 + /acorn-jsx@5.3.2(acorn@8.11.3):
  588 + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
  589 + peerDependencies:
  590 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
  591 + dependencies:
  592 + acorn: 8.11.3
  593 + dev: true
  594 +
  595 + /acorn@8.11.3:
  596 + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
  597 + engines: {node: '>=0.4.0'}
  598 + hasBin: true
  599 + dev: true
  600 +
  601 + /ajv@6.12.6:
  602 + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
  603 + dependencies:
  604 + fast-deep-equal: 3.1.3
  605 + fast-json-stable-stringify: 2.1.0
  606 + json-schema-traverse: 0.4.1
  607 + uri-js: 4.4.1
  608 + dev: true
  609 +
  610 + /ansi-regex@5.0.1:
  611 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
  612 + engines: {node: '>=8'}
  613 + dev: true
  614 +
  615 + /ansi-styles@4.3.0:
  616 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
  617 + engines: {node: '>=8'}
  618 + dependencies:
  619 + color-convert: 2.0.1
  620 + dev: true
  621 +
  622 + /anymatch@3.1.3:
  623 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
  624 + engines: {node: '>= 8'}
  625 + dependencies:
  626 + normalize-path: 3.0.0
  627 + picomatch: 2.3.1
  628 + dev: true
  629 +
  630 + /argparse@2.0.1:
  631 + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
  632 + dev: true
  633 +
  634 + /asynckit@0.4.0:
  635 + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
  636 + dev: false
  637 +
  638 + /axios@1.6.5:
  639 + resolution: {integrity: sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==}
  640 + dependencies:
  641 + follow-redirects: 1.15.5
  642 + form-data: 4.0.0
  643 + proxy-from-env: 1.1.0
  644 + transitivePeerDependencies:
  645 + - debug
  646 + dev: false
  647 +
  648 + /balanced-match@1.0.2:
  649 + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
  650 + dev: true
  651 +
  652 + /binary-extensions@2.2.0:
  653 + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
  654 + engines: {node: '>=8'}
  655 + dev: true
  656 +
  657 + /boolbase@1.0.0:
  658 + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
  659 + dev: true
  660 +
  661 + /brace-expansion@1.1.11:
  662 + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
  663 + dependencies:
  664 + balanced-match: 1.0.2
  665 + concat-map: 0.0.1
  666 + dev: true
  667 +
  668 + /braces@3.0.2:
  669 + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
  670 + engines: {node: '>=8'}
  671 + dependencies:
  672 + fill-range: 7.0.1
  673 + dev: true
  674 +
  675 + /callsites@3.1.0:
  676 + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
  677 + engines: {node: '>=6'}
  678 + dev: true
  679 +
  680 + /chalk@4.1.2:
  681 + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
  682 + engines: {node: '>=10'}
  683 + dependencies:
  684 + ansi-styles: 4.3.0
  685 + supports-color: 7.2.0
  686 + dev: true
  687 +
  688 + /chokidar@3.5.3:
  689 + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
  690 + engines: {node: '>= 8.10.0'}
  691 + dependencies:
  692 + anymatch: 3.1.3
  693 + braces: 3.0.2
  694 + glob-parent: 5.1.2
  695 + is-binary-path: 2.1.0
  696 + is-glob: 4.0.3
  697 + normalize-path: 3.0.0
  698 + readdirp: 3.6.0
  699 + optionalDependencies:
  700 + fsevents: 2.3.3
  701 + dev: true
  702 +
  703 + /color-convert@2.0.1:
  704 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
  705 + engines: {node: '>=7.0.0'}
  706 + dependencies:
  707 + color-name: 1.1.4
  708 + dev: true
  709 +
  710 + /color-name@1.1.4:
  711 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
  712 + dev: true
  713 +
  714 + /combined-stream@1.0.8:
  715 + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
  716 + engines: {node: '>= 0.8'}
  717 + dependencies:
  718 + delayed-stream: 1.0.0
  719 + dev: false
  720 +
  721 + /concat-map@0.0.1:
  722 + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
  723 + dev: true
  724 +
  725 + /cross-spawn@7.0.3:
  726 + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
  727 + engines: {node: '>= 8'}
  728 + dependencies:
  729 + path-key: 3.1.1
  730 + shebang-command: 2.0.0
  731 + which: 2.0.2
  732 + dev: true
  733 +
  734 + /cssesc@3.0.0:
  735 + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
  736 + engines: {node: '>=4'}
  737 + hasBin: true
  738 + dev: true
  739 +
  740 + /csstype@3.1.3:
  741 + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
  742 +
  743 + /debug@4.3.4:
  744 + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
  745 + engines: {node: '>=6.0'}
  746 + peerDependencies:
  747 + supports-color: '*'
  748 + peerDependenciesMeta:
  749 + supports-color:
  750 + optional: true
  751 + dependencies:
  752 + ms: 2.1.2
  753 + dev: true
  754 +
  755 + /deep-is@0.1.4:
  756 + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
  757 + dev: true
  758 +
  759 + /delayed-stream@1.0.0:
  760 + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
  761 + engines: {node: '>=0.4.0'}
  762 + dev: false
  763 +
  764 + /doctrine@3.0.0:
  765 + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
  766 + engines: {node: '>=6.0.0'}
  767 + dependencies:
  768 + esutils: 2.0.3
  769 + dev: true
  770 +
  771 + /entities@4.5.0:
  772 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
  773 + engines: {node: '>=0.12'}
  774 +
  775 + /esbuild@0.19.11:
  776 + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==}
  777 + engines: {node: '>=12'}
  778 + hasBin: true
  779 + requiresBuild: true
  780 + optionalDependencies:
  781 + '@esbuild/aix-ppc64': 0.19.11
  782 + '@esbuild/android-arm': 0.19.11
  783 + '@esbuild/android-arm64': 0.19.11
  784 + '@esbuild/android-x64': 0.19.11
  785 + '@esbuild/darwin-arm64': 0.19.11
  786 + '@esbuild/darwin-x64': 0.19.11
  787 + '@esbuild/freebsd-arm64': 0.19.11
  788 + '@esbuild/freebsd-x64': 0.19.11
  789 + '@esbuild/linux-arm': 0.19.11
  790 + '@esbuild/linux-arm64': 0.19.11
  791 + '@esbuild/linux-ia32': 0.19.11
  792 + '@esbuild/linux-loong64': 0.19.11
  793 + '@esbuild/linux-mips64el': 0.19.11
  794 + '@esbuild/linux-ppc64': 0.19.11
  795 + '@esbuild/linux-riscv64': 0.19.11
  796 + '@esbuild/linux-s390x': 0.19.11
  797 + '@esbuild/linux-x64': 0.19.11
  798 + '@esbuild/netbsd-x64': 0.19.11
  799 + '@esbuild/openbsd-x64': 0.19.11
  800 + '@esbuild/sunos-x64': 0.19.11
  801 + '@esbuild/win32-arm64': 0.19.11
  802 + '@esbuild/win32-ia32': 0.19.11
  803 + '@esbuild/win32-x64': 0.19.11
  804 + dev: true
  805 +
  806 + /escape-string-regexp@4.0.0:
  807 + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
  808 + engines: {node: '>=10'}
  809 + dev: true
  810 +
  811 + /eslint-config-prettier@8.10.0(eslint@8.56.0):
  812 + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==}
  813 + hasBin: true
  814 + peerDependencies:
  815 + eslint: '>=7.0.0'
  816 + dependencies:
  817 + eslint: 8.56.0
  818 + dev: true
  819 +
  820 + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@8.10.0)(eslint@8.56.0)(prettier@3.2.1):
  821 + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==}
  822 + engines: {node: ^14.18.0 || >=16.0.0}
  823 + peerDependencies:
  824 + '@types/eslint': '>=8.0.0'
  825 + eslint: '>=8.0.0'
  826 + eslint-config-prettier: '*'
  827 + prettier: '>=3.0.0'
  828 + peerDependenciesMeta:
  829 + '@types/eslint':
  830 + optional: true
  831 + eslint-config-prettier:
  832 + optional: true
  833 + dependencies:
  834 + eslint: 8.56.0
  835 + eslint-config-prettier: 8.10.0(eslint@8.56.0)
  836 + prettier: 3.2.1
  837 + prettier-linter-helpers: 1.0.0
  838 + synckit: 0.8.8
  839 + dev: true
  840 +
  841 + /eslint-plugin-vue@9.20.1(eslint@8.56.0):
  842 + resolution: {integrity: sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ==}
  843 + engines: {node: ^14.17.0 || >=16.0.0}
  844 + peerDependencies:
  845 + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
  846 + dependencies:
  847 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
  848 + eslint: 8.56.0
  849 + natural-compare: 1.4.0
  850 + nth-check: 2.1.1
  851 + postcss-selector-parser: 6.0.15
  852 + semver: 7.5.4
  853 + vue-eslint-parser: 9.4.0(eslint@8.56.0)
  854 + xml-name-validator: 4.0.0
  855 + transitivePeerDependencies:
  856 + - supports-color
  857 + dev: true
  858 +
  859 + /eslint-scope@7.2.2:
  860 + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
  861 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
  862 + dependencies:
  863 + esrecurse: 4.3.0
  864 + estraverse: 5.3.0
  865 + dev: true
  866 +
  867 + /eslint-visitor-keys@3.4.3:
  868 + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
  869 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
  870 + dev: true
  871 +
  872 + /eslint@8.56.0:
  873 + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
  874 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
  875 + hasBin: true
  876 + dependencies:
  877 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
  878 + '@eslint-community/regexpp': 4.10.0
  879 + '@eslint/eslintrc': 2.1.4
  880 + '@eslint/js': 8.56.0
  881 + '@humanwhocodes/config-array': 0.11.14
  882 + '@humanwhocodes/module-importer': 1.0.1
  883 + '@nodelib/fs.walk': 1.2.8
  884 + '@ungap/structured-clone': 1.2.0
  885 + ajv: 6.12.6
  886 + chalk: 4.1.2
  887 + cross-spawn: 7.0.3
  888 + debug: 4.3.4
  889 + doctrine: 3.0.0
  890 + escape-string-regexp: 4.0.0
  891 + eslint-scope: 7.2.2
  892 + eslint-visitor-keys: 3.4.3
  893 + espree: 9.6.1
  894 + esquery: 1.5.0
  895 + esutils: 2.0.3
  896 + fast-deep-equal: 3.1.3
  897 + file-entry-cache: 6.0.1
  898 + find-up: 5.0.0
  899 + glob-parent: 6.0.2
  900 + globals: 13.24.0
  901 + graphemer: 1.4.0
  902 + ignore: 5.3.0
  903 + imurmurhash: 0.1.4
  904 + is-glob: 4.0.3
  905 + is-path-inside: 3.0.3
  906 + js-yaml: 4.1.0
  907 + json-stable-stringify-without-jsonify: 1.0.1
  908 + levn: 0.4.1
  909 + lodash.merge: 4.6.2
  910 + minimatch: 3.1.2
  911 + natural-compare: 1.4.0
  912 + optionator: 0.9.3
  913 + strip-ansi: 6.0.1
  914 + text-table: 0.2.0
  915 + transitivePeerDependencies:
  916 + - supports-color
  917 + dev: true
  918 +
  919 + /espree@9.6.1:
  920 + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
  921 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
  922 + dependencies:
  923 + acorn: 8.11.3
  924 + acorn-jsx: 5.3.2(acorn@8.11.3)
  925 + eslint-visitor-keys: 3.4.3
  926 + dev: true
  927 +
  928 + /esquery@1.5.0:
  929 + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
  930 + engines: {node: '>=0.10'}
  931 + dependencies:
  932 + estraverse: 5.3.0
  933 + dev: true
  934 +
  935 + /esrecurse@4.3.0:
  936 + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
  937 + engines: {node: '>=4.0'}
  938 + dependencies:
  939 + estraverse: 5.3.0
  940 + dev: true
  941 +
  942 + /estraverse@5.3.0:
  943 + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
  944 + engines: {node: '>=4.0'}
  945 + dev: true
  946 +
  947 + /estree-walker@2.0.2:
  948 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
  949 +
  950 + /esutils@2.0.3:
  951 + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
  952 + engines: {node: '>=0.10.0'}
  953 + dev: true
  954 +
  955 + /fast-deep-equal@3.1.3:
  956 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
  957 + dev: true
  958 +
  959 + /fast-diff@1.3.0:
  960 + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
  961 + dev: true
  962 +
  963 + /fast-json-stable-stringify@2.1.0:
  964 + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
  965 + dev: true
  966 +
  967 + /fast-levenshtein@2.0.6:
  968 + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
  969 + dev: true
  970 +
  971 + /fastq@1.16.0:
  972 + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==}
  973 + dependencies:
  974 + reusify: 1.0.4
  975 + dev: true
  976 +
  977 + /file-entry-cache@6.0.1:
  978 + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
  979 + engines: {node: ^10.12.0 || >=12.0.0}
  980 + dependencies:
  981 + flat-cache: 3.2.0
  982 + dev: true
  983 +
  984 + /fill-range@7.0.1:
  985 + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
  986 + engines: {node: '>=8'}
  987 + dependencies:
  988 + to-regex-range: 5.0.1
  989 + dev: true
  990 +
  991 + /find-up@5.0.0:
  992 + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
  993 + engines: {node: '>=10'}
  994 + dependencies:
  995 + locate-path: 6.0.0
  996 + path-exists: 4.0.0
  997 + dev: true
  998 +
  999 + /flat-cache@3.2.0:
  1000 + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
  1001 + engines: {node: ^10.12.0 || >=12.0.0}
  1002 + dependencies:
  1003 + flatted: 3.2.9
  1004 + keyv: 4.5.4
  1005 + rimraf: 3.0.2
  1006 + dev: true
  1007 +
  1008 + /flatted@3.2.9:
  1009 + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
  1010 + dev: true
  1011 +
  1012 + /follow-redirects@1.15.5:
  1013 + resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==}
  1014 + engines: {node: '>=4.0'}
  1015 + peerDependencies:
  1016 + debug: '*'
  1017 + peerDependenciesMeta:
  1018 + debug:
  1019 + optional: true
  1020 + dev: false
  1021 +
  1022 + /form-data@4.0.0:
  1023 + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
  1024 + engines: {node: '>= 6'}
  1025 + dependencies:
  1026 + asynckit: 0.4.0
  1027 + combined-stream: 1.0.8
  1028 + mime-types: 2.1.35
  1029 + dev: false
  1030 +
  1031 + /fs.realpath@1.0.0:
  1032 + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
  1033 + dev: true
  1034 +
  1035 + /fsevents@2.3.3:
  1036 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
  1037 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
  1038 + os: [darwin]
  1039 + requiresBuild: true
  1040 + dev: true
  1041 + optional: true
  1042 +
  1043 + /glob-parent@5.1.2:
  1044 + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
  1045 + engines: {node: '>= 6'}
  1046 + dependencies:
  1047 + is-glob: 4.0.3
  1048 + dev: true
  1049 +
  1050 + /glob-parent@6.0.2:
  1051 + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
  1052 + engines: {node: '>=10.13.0'}
  1053 + dependencies:
  1054 + is-glob: 4.0.3
  1055 + dev: true
  1056 +
  1057 + /glob@7.2.3:
  1058 + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
  1059 + dependencies:
  1060 + fs.realpath: 1.0.0
  1061 + inflight: 1.0.6
  1062 + inherits: 2.0.4
  1063 + minimatch: 3.1.2
  1064 + once: 1.4.0
  1065 + path-is-absolute: 1.0.1
  1066 + dev: true
  1067 +
  1068 + /globals@13.24.0:
  1069 + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
  1070 + engines: {node: '>=8'}
  1071 + dependencies:
  1072 + type-fest: 0.20.2
  1073 + dev: true
  1074 +
  1075 + /graphemer@1.4.0:
  1076 + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
  1077 + dev: true
  1078 +
  1079 + /has-flag@4.0.0:
  1080 + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
  1081 + engines: {node: '>=8'}
  1082 + dev: true
  1083 +
  1084 + /ignore@5.3.0:
  1085 + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
  1086 + engines: {node: '>= 4'}
  1087 + dev: true
  1088 +
  1089 + /immutable@4.3.4:
  1090 + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==}
  1091 + dev: true
  1092 +
  1093 + /import-fresh@3.3.0:
  1094 + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
  1095 + engines: {node: '>=6'}
  1096 + dependencies:
  1097 + parent-module: 1.0.1
  1098 + resolve-from: 4.0.0
  1099 + dev: true
  1100 +
  1101 + /imurmurhash@0.1.4:
  1102 + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
  1103 + engines: {node: '>=0.8.19'}
  1104 + dev: true
  1105 +
  1106 + /inflight@1.0.6:
  1107 + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
  1108 + dependencies:
  1109 + once: 1.4.0
  1110 + wrappy: 1.0.2
  1111 + dev: true
  1112 +
  1113 + /inherits@2.0.4:
  1114 + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
  1115 + dev: true
  1116 +
  1117 + /is-binary-path@2.1.0:
  1118 + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
  1119 + engines: {node: '>=8'}
  1120 + dependencies:
  1121 + binary-extensions: 2.2.0
  1122 + dev: true
  1123 +
  1124 + /is-extglob@2.1.1:
  1125 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
  1126 + engines: {node: '>=0.10.0'}
  1127 + dev: true
  1128 +
  1129 + /is-glob@4.0.3:
  1130 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
  1131 + engines: {node: '>=0.10.0'}
  1132 + dependencies:
  1133 + is-extglob: 2.1.1
  1134 + dev: true
  1135 +
  1136 + /is-number@7.0.0:
  1137 + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
  1138 + engines: {node: '>=0.12.0'}
  1139 + dev: true
  1140 +
  1141 + /is-path-inside@3.0.3:
  1142 + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
  1143 + engines: {node: '>=8'}
  1144 + dev: true
  1145 +
  1146 + /isexe@2.0.0:
  1147 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
  1148 + dev: true
  1149 +
  1150 + /js-yaml@4.1.0:
  1151 + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
  1152 + hasBin: true
  1153 + dependencies:
  1154 + argparse: 2.0.1
  1155 + dev: true
  1156 +
  1157 + /json-buffer@3.0.1:
  1158 + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
  1159 + dev: true
  1160 +
  1161 + /json-schema-traverse@0.4.1:
  1162 + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
  1163 + dev: true
  1164 +
  1165 + /json-stable-stringify-without-jsonify@1.0.1:
  1166 + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
  1167 + dev: true
  1168 +
  1169 + /keyv@4.5.4:
  1170 + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
  1171 + dependencies:
  1172 + json-buffer: 3.0.1
  1173 + dev: true
  1174 +
  1175 + /levn@0.4.1:
  1176 + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
  1177 + engines: {node: '>= 0.8.0'}
  1178 + dependencies:
  1179 + prelude-ls: 1.2.1
  1180 + type-check: 0.4.0
  1181 + dev: true
  1182 +
  1183 + /locate-path@6.0.0:
  1184 + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
  1185 + engines: {node: '>=10'}
  1186 + dependencies:
  1187 + p-locate: 5.0.0
  1188 + dev: true
  1189 +
  1190 + /lodash.merge@4.6.2:
  1191 + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
  1192 + dev: true
  1193 +
  1194 + /lodash@4.17.21:
  1195 + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
  1196 + dev: true
  1197 +
  1198 + /lru-cache@6.0.0:
  1199 + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
  1200 + engines: {node: '>=10'}
  1201 + dependencies:
  1202 + yallist: 4.0.0
  1203 + dev: true
  1204 +
  1205 + /magic-string@0.30.5:
  1206 + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==}
  1207 + engines: {node: '>=12'}
  1208 + dependencies:
  1209 + '@jridgewell/sourcemap-codec': 1.4.15
  1210 +
  1211 + /mime-db@1.52.0:
  1212 + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
  1213 + engines: {node: '>= 0.6'}
  1214 + dev: false
  1215 +
  1216 + /mime-types@2.1.35:
  1217 + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
  1218 + engines: {node: '>= 0.6'}
  1219 + dependencies:
  1220 + mime-db: 1.52.0
  1221 + dev: false
  1222 +
  1223 + /minimatch@3.1.2:
  1224 + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
  1225 + dependencies:
  1226 + brace-expansion: 1.1.11
  1227 + dev: true
  1228 +
  1229 + /ms@2.1.2:
  1230 + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
  1231 + dev: true
  1232 +
  1233 + /nanoid@3.3.7:
  1234 + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
  1235 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
  1236 + hasBin: true
  1237 +
  1238 + /natural-compare@1.4.0:
  1239 + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
  1240 + dev: true
  1241 +
  1242 + /normalize-path@3.0.0:
  1243 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
  1244 + engines: {node: '>=0.10.0'}
  1245 + dev: true
  1246 +
  1247 + /nth-check@2.1.1:
  1248 + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
  1249 + dependencies:
  1250 + boolbase: 1.0.0
  1251 + dev: true
  1252 +
  1253 + /once@1.4.0:
  1254 + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
  1255 + dependencies:
  1256 + wrappy: 1.0.2
  1257 + dev: true
  1258 +
  1259 + /optionator@0.9.3:
  1260 + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
  1261 + engines: {node: '>= 0.8.0'}
  1262 + dependencies:
  1263 + '@aashutoshrathi/word-wrap': 1.2.6
  1264 + deep-is: 0.1.4
  1265 + fast-levenshtein: 2.0.6
  1266 + levn: 0.4.1
  1267 + prelude-ls: 1.2.1
  1268 + type-check: 0.4.0
  1269 + dev: true
  1270 +
  1271 + /p-limit@3.1.0:
  1272 + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
  1273 + engines: {node: '>=10'}
  1274 + dependencies:
  1275 + yocto-queue: 0.1.0
  1276 + dev: true
  1277 +
  1278 + /p-locate@5.0.0:
  1279 + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
  1280 + engines: {node: '>=10'}
  1281 + dependencies:
  1282 + p-limit: 3.1.0
  1283 + dev: true
  1284 +
  1285 + /parent-module@1.0.1:
  1286 + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
  1287 + engines: {node: '>=6'}
  1288 + dependencies:
  1289 + callsites: 3.1.0
  1290 + dev: true
  1291 +
  1292 + /path-exists@4.0.0:
  1293 + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
  1294 + engines: {node: '>=8'}
  1295 + dev: true
  1296 +
  1297 + /path-is-absolute@1.0.1:
  1298 + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
  1299 + engines: {node: '>=0.10.0'}
  1300 + dev: true
  1301 +
  1302 + /path-key@3.1.1:
  1303 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
  1304 + engines: {node: '>=8'}
  1305 + dev: true
  1306 +
  1307 + /picocolors@1.0.0:
  1308 + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
  1309 +
  1310 + /picomatch@2.3.1:
  1311 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
  1312 + engines: {node: '>=8.6'}
  1313 + dev: true
  1314 +
  1315 + /pinia-plugin-persistedstate@3.2.1(pinia@2.1.7):
  1316 + resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==}
  1317 + peerDependencies:
  1318 + pinia: ^2.0.0
  1319 + dependencies:
  1320 + pinia: 2.1.7(vue@3.4.13)
  1321 + dev: false
  1322 +
  1323 + /pinia@2.1.7(vue@3.4.13):
  1324 + resolution: {integrity: sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==}
  1325 + peerDependencies:
  1326 + '@vue/composition-api': ^1.4.0
  1327 + typescript: '>=4.4.4'
  1328 + vue: ^2.6.14 || ^3.3.0
  1329 + peerDependenciesMeta:
  1330 + '@vue/composition-api':
  1331 + optional: true
  1332 + typescript:
  1333 + optional: true
  1334 + dependencies:
  1335 + '@vue/devtools-api': 6.5.1
  1336 + vue: 3.4.13
  1337 + vue-demi: 0.14.6(vue@3.4.13)
  1338 + dev: false
  1339 +
  1340 + /postcss-selector-parser@6.0.15:
  1341 + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
  1342 + engines: {node: '>=4'}
  1343 + dependencies:
  1344 + cssesc: 3.0.0
  1345 + util-deprecate: 1.0.2
  1346 + dev: true
  1347 +
  1348 + /postcss@8.4.33:
  1349 + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
  1350 + engines: {node: ^10 || ^12 || >=14}
  1351 + dependencies:
  1352 + nanoid: 3.3.7
  1353 + picocolors: 1.0.0
  1354 + source-map-js: 1.0.2
  1355 +
  1356 + /prelude-ls@1.2.1:
  1357 + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
  1358 + engines: {node: '>= 0.8.0'}
  1359 + dev: true
  1360 +
  1361 + /prettier-linter-helpers@1.0.0:
  1362 + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
  1363 + engines: {node: '>=6.0.0'}
  1364 + dependencies:
  1365 + fast-diff: 1.3.0
  1366 + dev: true
  1367 +
  1368 + /prettier@3.2.1:
  1369 + resolution: {integrity: sha512-qSUWshj1IobVbKc226Gw2pync27t0Kf0EdufZa9j7uBSJay1CC+B3K5lAAZoqgX3ASiKuWsk6OmzKRetXNObWg==}
  1370 + engines: {node: '>=14'}
  1371 + hasBin: true
  1372 + dev: true
  1373 +
  1374 + /proxy-from-env@1.1.0:
  1375 + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
  1376 + dev: false
  1377 +
  1378 + /punycode@2.3.1:
  1379 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
  1380 + engines: {node: '>=6'}
  1381 + dev: true
  1382 +
  1383 + /queue-microtask@1.2.3:
  1384 + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
  1385 + dev: true
  1386 +
  1387 + /readdirp@3.6.0:
  1388 + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
  1389 + engines: {node: '>=8.10.0'}
  1390 + dependencies:
  1391 + picomatch: 2.3.1
  1392 + dev: true
  1393 +
  1394 + /resolve-from@4.0.0:
  1395 + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
  1396 + engines: {node: '>=4'}
  1397 + dev: true
  1398 +
  1399 + /reusify@1.0.4:
  1400 + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
  1401 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
  1402 + dev: true
  1403 +
  1404 + /rimraf@3.0.2:
  1405 + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
  1406 + hasBin: true
  1407 + dependencies:
  1408 + glob: 7.2.3
  1409 + dev: true
  1410 +
  1411 + /rollup@4.9.5:
  1412 + resolution: {integrity: sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==}
  1413 + engines: {node: '>=18.0.0', npm: '>=8.0.0'}
  1414 + hasBin: true
  1415 + dependencies:
  1416 + '@types/estree': 1.0.5
  1417 + optionalDependencies:
  1418 + '@rollup/rollup-android-arm-eabi': 4.9.5
  1419 + '@rollup/rollup-android-arm64': 4.9.5
  1420 + '@rollup/rollup-darwin-arm64': 4.9.5
  1421 + '@rollup/rollup-darwin-x64': 4.9.5
  1422 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.5
  1423 + '@rollup/rollup-linux-arm64-gnu': 4.9.5
  1424 + '@rollup/rollup-linux-arm64-musl': 4.9.5
  1425 + '@rollup/rollup-linux-riscv64-gnu': 4.9.5
  1426 + '@rollup/rollup-linux-x64-gnu': 4.9.5
  1427 + '@rollup/rollup-linux-x64-musl': 4.9.5
  1428 + '@rollup/rollup-win32-arm64-msvc': 4.9.5
  1429 + '@rollup/rollup-win32-ia32-msvc': 4.9.5
  1430 + '@rollup/rollup-win32-x64-msvc': 4.9.5
  1431 + fsevents: 2.3.3
  1432 + dev: true
  1433 +
  1434 + /run-parallel@1.2.0:
  1435 + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
  1436 + dependencies:
  1437 + queue-microtask: 1.2.3
  1438 + dev: true
  1439 +
  1440 + /sass@1.69.7:
  1441 + resolution: {integrity: sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==}
  1442 + engines: {node: '>=14.0.0'}
  1443 + hasBin: true
  1444 + dependencies:
  1445 + chokidar: 3.5.3
  1446 + immutable: 4.3.4
  1447 + source-map-js: 1.0.2
  1448 + dev: true
  1449 +
  1450 + /semver@7.5.4:
  1451 + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
  1452 + engines: {node: '>=10'}
  1453 + hasBin: true
  1454 + dependencies:
  1455 + lru-cache: 6.0.0
  1456 + dev: true
  1457 +
  1458 + /shebang-command@2.0.0:
  1459 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
  1460 + engines: {node: '>=8'}
  1461 + dependencies:
  1462 + shebang-regex: 3.0.0
  1463 + dev: true
  1464 +
  1465 + /shebang-regex@3.0.0:
  1466 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
  1467 + engines: {node: '>=8'}
  1468 + dev: true
  1469 +
  1470 + /source-map-js@1.0.2:
  1471 + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
  1472 + engines: {node: '>=0.10.0'}
  1473 +
  1474 + /strip-ansi@6.0.1:
  1475 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
  1476 + engines: {node: '>=8'}
  1477 + dependencies:
  1478 + ansi-regex: 5.0.1
  1479 + dev: true
  1480 +
  1481 + /strip-json-comments@3.1.1:
  1482 + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
  1483 + engines: {node: '>=8'}
  1484 + dev: true
  1485 +
  1486 + /supports-color@7.2.0:
  1487 + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
  1488 + engines: {node: '>=8'}
  1489 + dependencies:
  1490 + has-flag: 4.0.0
  1491 + dev: true
  1492 +
  1493 + /synckit@0.8.8:
  1494 + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==}
  1495 + engines: {node: ^14.18.0 || >=16.0.0}
  1496 + dependencies:
  1497 + '@pkgr/core': 0.1.0
  1498 + tslib: 2.6.2
  1499 + dev: true
  1500 +
  1501 + /text-table@0.2.0:
  1502 + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
  1503 + dev: true
  1504 +
  1505 + /to-fast-properties@2.0.0:
  1506 + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
  1507 + engines: {node: '>=4'}
  1508 +
  1509 + /to-regex-range@5.0.1:
  1510 + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
  1511 + engines: {node: '>=8.0'}
  1512 + dependencies:
  1513 + is-number: 7.0.0
  1514 + dev: true
  1515 +
  1516 + /tslib@2.6.2:
  1517 + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
  1518 + dev: true
  1519 +
  1520 + /type-check@0.4.0:
  1521 + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
  1522 + engines: {node: '>= 0.8.0'}
  1523 + dependencies:
  1524 + prelude-ls: 1.2.1
  1525 + dev: true
  1526 +
  1527 + /type-fest@0.20.2:
  1528 + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
  1529 + engines: {node: '>=10'}
  1530 + dev: true
  1531 +
  1532 + /uri-js@4.4.1:
  1533 + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
  1534 + dependencies:
  1535 + punycode: 2.3.1
  1536 + dev: true
  1537 +
  1538 + /util-deprecate@1.0.2:
  1539 + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
  1540 + dev: true
  1541 +
  1542 + /vite@5.0.11(sass@1.69.7):
  1543 + resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==}
  1544 + engines: {node: ^18.0.0 || >=20.0.0}
  1545 + hasBin: true
  1546 + peerDependencies:
  1547 + '@types/node': ^18.0.0 || >=20.0.0
  1548 + less: '*'
  1549 + lightningcss: ^1.21.0
  1550 + sass: '*'
  1551 + stylus: '*'
  1552 + sugarss: '*'
  1553 + terser: ^5.4.0
  1554 + peerDependenciesMeta:
  1555 + '@types/node':
  1556 + optional: true
  1557 + less:
  1558 + optional: true
  1559 + lightningcss:
  1560 + optional: true
  1561 + sass:
  1562 + optional: true
  1563 + stylus:
  1564 + optional: true
  1565 + sugarss:
  1566 + optional: true
  1567 + terser:
  1568 + optional: true
  1569 + dependencies:
  1570 + esbuild: 0.19.11
  1571 + postcss: 8.4.33
  1572 + rollup: 4.9.5
  1573 + sass: 1.69.7
  1574 + optionalDependencies:
  1575 + fsevents: 2.3.3
  1576 + dev: true
  1577 +
  1578 + /vue-demi@0.14.6(vue@3.4.13):
  1579 + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==}
  1580 + engines: {node: '>=12'}
  1581 + hasBin: true
  1582 + requiresBuild: true
  1583 + peerDependencies:
  1584 + '@vue/composition-api': ^1.0.0-rc.1
  1585 + vue: ^3.0.0-0 || ^2.6.0
  1586 + peerDependenciesMeta:
  1587 + '@vue/composition-api':
  1588 + optional: true
  1589 + dependencies:
  1590 + vue: 3.4.13
  1591 + dev: false
  1592 +
  1593 + /vue-eslint-parser@9.4.0(eslint@8.56.0):
  1594 + resolution: {integrity: sha512-7KsNBb6gHFA75BtneJsoK/dbZ281whUIwFYdQxA68QrCrGMXYzUMbPDHGcOQ0OocIVKrWSKWXZ4mL7tonCXoUw==}
  1595 + engines: {node: ^14.17.0 || >=16.0.0}
  1596 + peerDependencies:
  1597 + eslint: '>=6.0.0'
  1598 + dependencies:
  1599 + debug: 4.3.4
  1600 + eslint: 8.56.0
  1601 + eslint-scope: 7.2.2
  1602 + eslint-visitor-keys: 3.4.3
  1603 + espree: 9.6.1
  1604 + esquery: 1.5.0
  1605 + lodash: 4.17.21
  1606 + semver: 7.5.4
  1607 + transitivePeerDependencies:
  1608 + - supports-color
  1609 + dev: true
  1610 +
  1611 + /vue-router@4.2.5(vue@3.4.13):
  1612 + resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==}
  1613 + peerDependencies:
  1614 + vue: ^3.2.0
  1615 + dependencies:
  1616 + '@vue/devtools-api': 6.5.1
  1617 + vue: 3.4.13
  1618 + dev: false
  1619 +
  1620 + /vue@3.4.13:
  1621 + resolution: {integrity: sha512-FE3UZ0p+oUZTwz+SzlH/hDFg+XsVRFvwmx0LXjdD1pRK/cO4fu5v6ltAZji4za4IBih3dV78elUK3di8v3pWIg==}
  1622 + peerDependencies:
  1623 + typescript: '*'
  1624 + peerDependenciesMeta:
  1625 + typescript:
  1626 + optional: true
  1627 + dependencies:
  1628 + '@vue/compiler-dom': 3.4.13
  1629 + '@vue/compiler-sfc': 3.4.13
  1630 + '@vue/runtime-dom': 3.4.13
  1631 + '@vue/server-renderer': 3.4.13(vue@3.4.13)
  1632 + '@vue/shared': 3.4.13
  1633 +
  1634 + /which@2.0.2:
  1635 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
  1636 + engines: {node: '>= 8'}
  1637 + hasBin: true
  1638 + dependencies:
  1639 + isexe: 2.0.0
  1640 + dev: true
  1641 +
  1642 + /wrappy@1.0.2:
  1643 + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
  1644 + dev: true
  1645 +
  1646 + /xml-name-validator@4.0.0:
  1647 + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
  1648 + engines: {node: '>=12'}
  1649 + dev: true
  1650 +
  1651 + /yallist@4.0.0:
  1652 + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
  1653 + dev: true
  1654 +
  1655 + /yocto-queue@0.1.0:
  1656 + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
  1657 + engines: {node: '>=10'}
  1658 + dev: true
不能预览此文件类型
  1 +<script setup>
  2 +import { RouterView } from 'vue-router'
  3 +</script>
  4 +
  5 +<template>
  6 + <RouterView />
  7 +</template>
  8 +
  9 +<style scoped>
  10 +
  11 +</style>
  1 +import { createApp } from 'vue'
  2 +import { createPinia } from 'pinia'
  3 +
  4 +import App from './App.vue'
  5 +import store from './store/index.js'
  6 +import router from './router'
  7 +
  8 +const app = createApp(App)
  9 +
  10 +app.use(createPinia())
  11 +app.use(store)
  12 +app.use(router)
  13 +app.mount('#app')
  1 +import { createRouter, createWebHistory } from 'vue-router'
  2 +import Layout from '@/views/Layout.vue'
  3 +
  4 +const router = createRouter({
  5 + history: createWebHistory(import.meta.env.BASE_URL),
  6 + routes: [
  7 + {
  8 + path: '/',
  9 + name: 'home',
  10 + component: Layout
  11 + },
  12 + {
  13 + path: '/login',
  14 + name: 'login',
  15 +
  16 + component: () => import('@/views/Login.vue')
  17 + }
  18 + ]
  19 +})
  20 +
  21 +export default router
  1 +import { createPinia } from 'pinia'
  2 +import persist from 'pinia-plugin-persistedstate'
  3 +
  4 +// 创建 pinia 实例
  5 +const pinia = createPinia()
  6 +// 使用持久化存储插件
  7 +pinia.use(persist)
  8 +
  9 +// 默认导出,给 main.ts 使用
  10 +export default pinia
  11 +
  12 +// 模块统一导出
  13 +export * from './modules/member'
  1 +import { defineStore } from 'pinia'
  2 +import { ref } from 'vue'
  3 +
  4 +// 定义 Store
  5 +export const useMemberStore = defineStore(
  6 + 'member',
  7 + () => {
  8 + // 会员信息
  9 + const profile = ref()
  10 +
  11 + // 保存会员信息,登录时使用
  12 + const setProfile = () => {
  13 + profile.value = val
  14 + }
  15 +
  16 + // 清理会员信息,退出时使用
  17 + const clearProfile = () => {
  18 + profile.value = undefined
  19 + }
  20 +
  21 + // 记得 return
  22 + return {
  23 + profile,
  24 + setProfile,
  25 + clearProfile,
  26 + }
  27 + },
  28 + // TODO: 持久化
  29 + {
  30 + persist: true,
  31 + },
  32 +)
  1 +// 请求基地址
  2 +const baseURL = 'http://scholl.shs.broing.cn/api';
  3 +import { useMemberStore } from "@/store/modules/member";
  4 +// 拦截器配置
  5 +const httpInterceptor = {
  6 + invoke(options) {
  7 + // 1. 非 http 开头需拼接地址
  8 + if (!options.url.startsWith('http')) {
  9 + options.url = baseURL + options.url;
  10 + }
  11 + // 2. 请求超时
  12 + options.timeout = 10000;
  13 + // 3. 添加小程序端请求头标识
  14 + options.header = {
  15 + 'source-client': 'miniapp',
  16 + headers: { 'Content-Type': 'application/json'},
  17 + ...options.header,
  18 + };
  19 + // 4. 添加 token 请求头标识
  20 + const memberStore = useMemberStore()
  21 + const token = memberStore.profile?.token
  22 + if (token) {
  23 + options.header.Authorization = token
  24 + }
  25 + },
  26 +};
  27 +
  28 +// 2.2 添加类型
  29 +export const http = function(options) {
  30 + // 1. 返回 Promise 对象
  31 + return new Promise((resolve, reject) => {
  32 + uni.request({
  33 + ...options,
  34 + // 响应成功
  35 + success(res) {
  36 + // 状态码 2xx,参考 axios 的设计
  37 + if (res.statusCode >= 200 && res.statusCode < 300) {
  38 + // 2.1 提取核心数据 res.data
  39 + resolve(res.data);
  40 + } else{
  41 + // 其他错误 -> 根据后端错误信息轻提示
  42 + uni.showToast({
  43 + icon: 'none',
  44 + title: (res.data).msg || '请求错误',
  45 + });
  46 + reject(res);
  47 + }
  48 + },
  49 + // 响应失败
  50 + fail(err) {
  51 + uni.showToast({
  52 + icon: 'none',
  53 + title: '网络错误,换个网络试试',
  54 + });
  55 + reject(err);
  56 + },
  57 + });
  58 + });
  59 +};
  60 +// 拦截 request 请求
  61 +uni.addInterceptor('request', httpInterceptor);
  62 +// 拦截 uploadFile 文件上传
  63 +uni.addInterceptor('uploadFile', httpInterceptor);
  1 +<script setup>
  2 +
  3 +</script>
  4 +
  5 +<template>
  6 + <div>这是首页架子</div>
  7 +</template>
  1 +<template>
  2 + <div class="about">
  3 + 我是登录页面
  4 + </div>
  5 +</template>
  6 +
  7 +<style>
  8 +
  9 +</style>
  1 +import { defineConfig } from 'vite'
  2 +import vue from '@vitejs/plugin-vue'
  3 +import { resolve } from "path";
  4 +
  5 +// https://vitejs.dev/config/
  6 +export default defineConfig({
  7 + plugins: [
  8 + vue(),
  9 + ],
  10 + resolve: {
  11 + alias: {
  12 + // '@': fileURLToPath(new URL('./src', import.meta.url))
  13 + '@': resolve(__dirname, './src')
  14 + }
  15 + }
  16 +})