From 8045acadfe9ab4edce26fc82a63a299017518780 Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Wed, 17 Aug 2022 12:07:56 +0700 Subject: [PATCH 01/27] initial commit --- client-admin/.eslintrc.cjs | 14 + client-admin/.gitignore | 28 + client-admin/.vscode/extensions.json | 3 + client-admin/README.md | 35 + client-admin/index.html | 13 + client-admin/package-lock.json | 3832 +++++++++++++++++ client-admin/package.json | 24 + client-admin/public/favicon.ico | Bin 0 -> 4286 bytes client-admin/src/App.vue | 85 + client-admin/src/assets/base.css | 74 + client-admin/src/assets/logo.svg | 1 + client-admin/src/assets/main.css | 35 + client-admin/src/components/HelloWorld.vue | 43 + client-admin/src/components/TheWelcome.vue | 84 + client-admin/src/components/WelcomeItem.vue | 86 + .../src/components/icons/IconCommunity.vue | 7 + .../components/icons/IconDocumentation.vue | 7 + .../src/components/icons/IconEcosystem.vue | 7 + .../src/components/icons/IconSupport.vue | 7 + .../src/components/icons/IconTooling.vue | 19 + client-admin/src/main.js | 14 + client-admin/src/router/index.js | 23 + client-admin/src/stores/counter.js | 16 + client-admin/src/views/AboutView.vue | 15 + client-admin/src/views/HomeView.vue | 9 + client-admin/vite.config.js | 14 + 26 files changed, 4495 insertions(+) create mode 100644 client-admin/.eslintrc.cjs create mode 100644 client-admin/.gitignore create mode 100644 client-admin/.vscode/extensions.json create mode 100644 client-admin/README.md create mode 100644 client-admin/index.html create mode 100644 client-admin/package-lock.json create mode 100644 client-admin/package.json create mode 100644 client-admin/public/favicon.ico create mode 100644 client-admin/src/App.vue create mode 100644 client-admin/src/assets/base.css create mode 100644 client-admin/src/assets/logo.svg create mode 100644 client-admin/src/assets/main.css create mode 100644 client-admin/src/components/HelloWorld.vue create mode 100644 client-admin/src/components/TheWelcome.vue create mode 100644 client-admin/src/components/WelcomeItem.vue create mode 100644 client-admin/src/components/icons/IconCommunity.vue create mode 100644 client-admin/src/components/icons/IconDocumentation.vue create mode 100644 client-admin/src/components/icons/IconEcosystem.vue create mode 100644 client-admin/src/components/icons/IconSupport.vue create mode 100644 client-admin/src/components/icons/IconTooling.vue create mode 100644 client-admin/src/main.js create mode 100644 client-admin/src/router/index.js create mode 100644 client-admin/src/stores/counter.js create mode 100644 client-admin/src/views/AboutView.vue create mode 100644 client-admin/src/views/HomeView.vue create mode 100644 client-admin/vite.config.js diff --git a/client-admin/.eslintrc.cjs b/client-admin/.eslintrc.cjs new file mode 100644 index 0000000..a2160fc --- /dev/null +++ b/client-admin/.eslintrc.cjs @@ -0,0 +1,14 @@ +/* eslint-env node */ +require("@rushstack/eslint-patch/modern-module-resolution"); + +module.exports = { + "root": true, + "extends": [ + "plugin:vue/vue3-essential", + "eslint:recommended", + "@vue/eslint-config-prettier" + ], + "parserOptions": { + "ecmaVersion": "latest" + } +} diff --git a/client-admin/.gitignore b/client-admin/.gitignore new file mode 100644 index 0000000..38adffa --- /dev/null +++ b/client-admin/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/client-admin/.vscode/extensions.json b/client-admin/.vscode/extensions.json new file mode 100644 index 0000000..c0a6e5a --- /dev/null +++ b/client-admin/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/client-admin/README.md b/client-admin/README.md new file mode 100644 index 0000000..e4c33d9 --- /dev/null +++ b/client-admin/README.md @@ -0,0 +1,35 @@ +# client-admin + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Compile and Minify for Production + +```sh +npm run build +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +npm run lint +``` diff --git a/client-admin/index.html b/client-admin/index.html new file mode 100644 index 0000000..030a6ff --- /dev/null +++ b/client-admin/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/client-admin/package-lock.json b/client-admin/package-lock.json new file mode 100644 index 0000000..6b8164d --- /dev/null +++ b/client-admin/package-lock.json @@ -0,0 +1,3832 @@ +{ + "name": "client-admin", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "client-admin", + "version": "0.0.0", + "dependencies": { + "pinia": "^2.0.17", + "vue": "^3.2.37", + "vue-router": "^4.1.3" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.1.4", + "@vitejs/plugin-vue": "^3.0.1", + "@vue/eslint-config-prettier": "^7.0.0", + "eslint": "^8.21.0", + "eslint-plugin-vue": "^9.3.0", + "prettier": "^2.7.1", + "vite": "^3.0.4" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", + "integrity": "sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz", + "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz", + "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz", + "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==", + "dependencies": { + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz", + "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-ssr": "3.2.37", + "@vue/reactivity-transform": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz", + "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==", + "dependencies": { + "@vue/compiler-dom": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz", + "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==" + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", + "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0" + }, + "peerDependencies": { + "eslint": ">= 7.28.0", + "prettier": ">= 2.0.0" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz", + "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", + "dependencies": { + "@vue/shared": "3.2.37" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz", + "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz", + "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==", + "dependencies": { + "@vue/reactivity": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz", + "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==", + "dependencies": { + "@vue/runtime-core": "3.2.37", + "@vue/shared": "3.2.37", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.37.tgz", + "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.37", + "@vue/shared": "3.2.37" + }, + "peerDependencies": { + "vue": "3.2.37" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz", + "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==" + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "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" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.3.0.tgz", + "integrity": "sha512-iscKKkBZgm6fGZwFt6poRoWC0Wy2dQOlwUPW++CiPoQiw1enctV2Hj5DBzzjJZfyqs+FAXhgzL4q0Ww03AgSmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.18.tgz", + "integrity": "sha512-I5MW05UVX6a5Djka136oH3VzYFiZUgeOApBwFjMx6pL91eHtGVlE3adjNUKLgtwGnrxiBRuJ8+4R3LKJKwnyZg==", + "dependencies": { + "@vue/devtools-api": "^6.2.1", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vite": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.8.tgz", + "integrity": "sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.14.47", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.37.tgz", + "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-sfc": "3.2.37", + "@vue/runtime-dom": "3.2.37", + "@vue/server-renderer": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "node_modules/vue-demi": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.8.tgz", + "integrity": "sha512-Vy1zbZhCOdsmvGR6tJhAvO5vhP7eiS8xkbYQSoVa7o6KlIy3W8Rc53ED4qI4qpeRDjv3mLfXSEpYU6Yq4pgXRg==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", + "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz", + "integrity": "sha512-XvK81bcYglKiayT7/vYAg/f36ExPC4t90R/HIpzrZ5x+17BOWptXLCrEPufGgZeuq68ww4ekSIMBZY1qdUdfjA==", + "dependencies": { + "@vue/devtools-api": "^6.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==" + }, + "@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "dev": true, + "optional": true + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rushstack/eslint-patch": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", + "integrity": "sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==", + "dev": true + }, + "@vitejs/plugin-vue": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.0.3.tgz", + "integrity": "sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==", + "dev": true + }, + "@vue/compiler-core": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz", + "integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz", + "integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==", + "requires": { + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz", + "integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-ssr": "3.2.37", + "@vue/reactivity-transform": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz", + "integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==", + "requires": { + "@vue/compiler-dom": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/devtools-api": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.2.1.tgz", + "integrity": "sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==" + }, + "@vue/eslint-config-prettier": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", + "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==", + "dev": true, + "requires": { + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0" + } + }, + "@vue/reactivity": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz", + "integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==", + "requires": { + "@vue/shared": "3.2.37" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz", + "integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.37", + "@vue/shared": "3.2.37", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz", + "integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==", + "requires": { + "@vue/reactivity": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/runtime-dom": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz", + "integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==", + "requires": { + "@vue/runtime-core": "3.2.37", + "@vue/shared": "3.2.37", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.37.tgz", + "integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==", + "requires": { + "@vue/compiler-ssr": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "@vue/shared": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz", + "integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==" + }, + "acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "requires": { + "@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" + } + }, + "esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "dev": true, + "optional": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true + }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-vue": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.3.0.tgz", + "integrity": "sha512-iscKKkBZgm6fGZwFt6poRoWC0Wy2dQOlwUPW++CiPoQiw1enctV2Hj5DBzzjJZfyqs+FAXhgzL4q0Ww03AgSmQ==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pinia": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.18.tgz", + "integrity": "sha512-I5MW05UVX6a5Djka136oH3VzYFiZUgeOApBwFjMx6pL91eHtGVlE3adjNUKLgtwGnrxiBRuJ8+4R3LKJKwnyZg==", + "requires": { + "@vue/devtools-api": "^6.2.1", + "vue-demi": "*" + } + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "vite": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.8.tgz", + "integrity": "sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==", + "dev": true, + "requires": { + "esbuild": "^0.14.47", + "fsevents": "~2.3.2", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" + } + }, + "vue": { + "version": "3.2.37", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.37.tgz", + "integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==", + "requires": { + "@vue/compiler-dom": "3.2.37", + "@vue/compiler-sfc": "3.2.37", + "@vue/runtime-dom": "3.2.37", + "@vue/server-renderer": "3.2.37", + "@vue/shared": "3.2.37" + } + }, + "vue-demi": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.8.tgz", + "integrity": "sha512-Vy1zbZhCOdsmvGR6tJhAvO5vhP7eiS8xkbYQSoVa7o6KlIy3W8Rc53ED4qI4qpeRDjv3mLfXSEpYU6Yq4pgXRg==" + }, + "vue-eslint-parser": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", + "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + } + }, + "vue-router": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz", + "integrity": "sha512-XvK81bcYglKiayT7/vYAg/f36ExPC4t90R/HIpzrZ5x+17BOWptXLCrEPufGgZeuq68ww4ekSIMBZY1qdUdfjA==", + "requires": { + "@vue/devtools-api": "^6.1.4" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/client-admin/package.json b/client-admin/package.json new file mode 100644 index 0000000..71be442 --- /dev/null +++ b/client-admin/package.json @@ -0,0 +1,24 @@ +{ + "name": "client-admin", + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview --port 4173", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore" + }, + "dependencies": { + "pinia": "^2.0.17", + "vue": "^3.2.37", + "vue-router": "^4.1.3" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.1.4", + "@vitejs/plugin-vue": "^3.0.1", + "@vue/eslint-config-prettier": "^7.0.0", + "eslint": "^8.21.0", + "eslint-plugin-vue": "^9.3.0", + "prettier": "^2.7.1", + "vite": "^3.0.4" + } +} diff --git a/client-admin/public/favicon.ico b/client-admin/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/client-admin/src/App.vue b/client-admin/src/App.vue new file mode 100644 index 0000000..e864195 --- /dev/null +++ b/client-admin/src/App.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/client-admin/src/assets/base.css b/client-admin/src/assets/base.css new file mode 100644 index 0000000..71dc55a --- /dev/null +++ b/client-admin/src/assets/base.css @@ -0,0 +1,74 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + position: relative; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: color 0.5s, background-color 0.5s; + line-height: 1.6; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/client-admin/src/assets/logo.svg b/client-admin/src/assets/logo.svg new file mode 100644 index 0000000..bc826fe --- /dev/null +++ b/client-admin/src/assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/client-admin/src/assets/main.css b/client-admin/src/assets/main.css new file mode 100644 index 0000000..c133f91 --- /dev/null +++ b/client-admin/src/assets/main.css @@ -0,0 +1,35 @@ +@import "./base.css"; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/client-admin/src/components/HelloWorld.vue b/client-admin/src/components/HelloWorld.vue new file mode 100644 index 0000000..1b8faac --- /dev/null +++ b/client-admin/src/components/HelloWorld.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/client-admin/src/components/TheWelcome.vue b/client-admin/src/components/TheWelcome.vue new file mode 100644 index 0000000..d3d2e7a --- /dev/null +++ b/client-admin/src/components/TheWelcome.vue @@ -0,0 +1,84 @@ + + + diff --git a/client-admin/src/components/WelcomeItem.vue b/client-admin/src/components/WelcomeItem.vue new file mode 100644 index 0000000..ba0def3 --- /dev/null +++ b/client-admin/src/components/WelcomeItem.vue @@ -0,0 +1,86 @@ + + + diff --git a/client-admin/src/components/icons/IconCommunity.vue b/client-admin/src/components/icons/IconCommunity.vue new file mode 100644 index 0000000..2dc8b05 --- /dev/null +++ b/client-admin/src/components/icons/IconCommunity.vue @@ -0,0 +1,7 @@ + diff --git a/client-admin/src/components/icons/IconDocumentation.vue b/client-admin/src/components/icons/IconDocumentation.vue new file mode 100644 index 0000000..6d4791c --- /dev/null +++ b/client-admin/src/components/icons/IconDocumentation.vue @@ -0,0 +1,7 @@ + diff --git a/client-admin/src/components/icons/IconEcosystem.vue b/client-admin/src/components/icons/IconEcosystem.vue new file mode 100644 index 0000000..c3a4f07 --- /dev/null +++ b/client-admin/src/components/icons/IconEcosystem.vue @@ -0,0 +1,7 @@ + diff --git a/client-admin/src/components/icons/IconSupport.vue b/client-admin/src/components/icons/IconSupport.vue new file mode 100644 index 0000000..7452834 --- /dev/null +++ b/client-admin/src/components/icons/IconSupport.vue @@ -0,0 +1,7 @@ + diff --git a/client-admin/src/components/icons/IconTooling.vue b/client-admin/src/components/icons/IconTooling.vue new file mode 100644 index 0000000..660598d --- /dev/null +++ b/client-admin/src/components/icons/IconTooling.vue @@ -0,0 +1,19 @@ + + diff --git a/client-admin/src/main.js b/client-admin/src/main.js new file mode 100644 index 0000000..4fb24b7 --- /dev/null +++ b/client-admin/src/main.js @@ -0,0 +1,14 @@ +import { createApp } from 'vue' +import { createPinia } from 'pinia' + +import App from './App.vue' +import router from './router' + +import './assets/main.css' + +const app = createApp(App) + +app.use(createPinia()) +app.use(router) + +app.mount('#app') diff --git a/client-admin/src/router/index.js b/client-admin/src/router/index.js new file mode 100644 index 0000000..a49ae50 --- /dev/null +++ b/client-admin/src/router/index.js @@ -0,0 +1,23 @@ +import { createRouter, createWebHistory } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'home', + component: HomeView + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (About.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import('../views/AboutView.vue') + } + ] +}) + +export default router diff --git a/client-admin/src/stores/counter.js b/client-admin/src/stores/counter.js new file mode 100644 index 0000000..4a2d242 --- /dev/null +++ b/client-admin/src/stores/counter.js @@ -0,0 +1,16 @@ +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore({ + id: 'counter', + state: () => ({ + counter: 0 + }), + getters: { + doubleCount: (state) => state.counter * 2 + }, + actions: { + increment() { + this.counter++ + } + } +}) diff --git a/client-admin/src/views/AboutView.vue b/client-admin/src/views/AboutView.vue new file mode 100644 index 0000000..756ad2a --- /dev/null +++ b/client-admin/src/views/AboutView.vue @@ -0,0 +1,15 @@ + + + diff --git a/client-admin/src/views/HomeView.vue b/client-admin/src/views/HomeView.vue new file mode 100644 index 0000000..225d93a --- /dev/null +++ b/client-admin/src/views/HomeView.vue @@ -0,0 +1,9 @@ + + + diff --git a/client-admin/vite.config.js b/client-admin/vite.config.js new file mode 100644 index 0000000..de5cb31 --- /dev/null +++ b/client-admin/vite.config.js @@ -0,0 +1,14 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +}) From 717035f221337acb438a7ac95ac4f542f36532f6 Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Wed, 17 Aug 2022 15:41:05 +0700 Subject: [PATCH 02/27] login feature done --- client-admin/index.html | 27 ++- client-admin/package-lock.json | 194 ++++++++++++++++++ client-admin/package.json | 6 +- client-admin/src/App.vue | 84 +------- client-admin/src/api/axiosInstance.js | 7 + client-admin/src/assets/base.css | 74 ------- client-admin/src/assets/logo.png | Bin 0 -> 37468 bytes client-admin/src/assets/logo.svg | 1 - client-admin/src/assets/logo2.png | Bin 0 -> 41258 bytes client-admin/src/assets/main.css | 156 ++++++++++---- client-admin/src/components/HelloWorld.vue | 43 ---- client-admin/src/components/TheWelcome.vue | 84 -------- client-admin/src/components/WelcomeItem.vue | 86 -------- .../src/components/icons/IconCommunity.vue | 7 - .../components/icons/IconDocumentation.vue | 7 - .../src/components/icons/IconEcosystem.vue | 7 - .../src/components/icons/IconSupport.vue | 7 - .../src/components/icons/IconTooling.vue | 19 -- client-admin/src/main.js | 3 +- client-admin/src/router/index.js | 16 +- client-admin/src/stores/authStore.js | 42 ++++ client-admin/src/views/AboutView.vue | 15 -- client-admin/src/views/HomeView.vue | 9 - client-admin/src/views/LoginPage.vue | 73 +++++++ 24 files changed, 467 insertions(+), 500 deletions(-) create mode 100644 client-admin/src/api/axiosInstance.js delete mode 100644 client-admin/src/assets/base.css create mode 100644 client-admin/src/assets/logo.png delete mode 100644 client-admin/src/assets/logo.svg create mode 100644 client-admin/src/assets/logo2.png delete mode 100644 client-admin/src/components/HelloWorld.vue delete mode 100644 client-admin/src/components/TheWelcome.vue delete mode 100644 client-admin/src/components/WelcomeItem.vue delete mode 100644 client-admin/src/components/icons/IconCommunity.vue delete mode 100644 client-admin/src/components/icons/IconDocumentation.vue delete mode 100644 client-admin/src/components/icons/IconEcosystem.vue delete mode 100644 client-admin/src/components/icons/IconSupport.vue delete mode 100644 client-admin/src/components/icons/IconTooling.vue create mode 100644 client-admin/src/stores/authStore.js delete mode 100644 client-admin/src/views/AboutView.vue delete mode 100644 client-admin/src/views/HomeView.vue create mode 100644 client-admin/src/views/LoginPage.vue diff --git a/client-admin/index.html b/client-admin/index.html index 030a6ff..8563db7 100644 --- a/client-admin/index.html +++ b/client-admin/index.html @@ -1,13 +1,18 @@ - - - - - Vite App - - -
- - - + + + + + + + + Beauty8 + + + +
+ + + + \ No newline at end of file diff --git a/client-admin/package-lock.json b/client-admin/package-lock.json index 6b8164d..ab8e356 100644 --- a/client-admin/package-lock.json +++ b/client-admin/package-lock.json @@ -8,7 +8,11 @@ "name": "client-admin", "version": "0.0.0", "dependencies": { + "@popperjs/core": "^2.11.6", + "axios": "^0.27.2", + "bootstrap": "^5.2.0", "pinia": "^2.0.17", + "sweetalert2": "^11.4.27", "vue": "^3.2.37", "vue-router": "^4.1.3" }, @@ -134,6 +138,15 @@ "node": ">= 8" } }, + "node_modules/@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@rushstack/eslint-patch": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", @@ -350,6 +363,20 @@ "node": ">=8" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -362,6 +389,24 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, + "node_modules/bootstrap": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0.tgz", + "integrity": "sha512-qlnS9GL6YZE6Wnef46GxGv1UpGGzAwO0aPL1yOjzDIJpeApeMvqV24iL+pjr2kU4dduoBA9fINKWKgMToobx9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.5" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -427,6 +472,17 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -487,6 +543,14 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1222,6 +1286,38 @@ "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1552,6 +1648,25 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2067,6 +2182,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sweetalert2": { + "version": "11.4.27", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.27.tgz", + "integrity": "sha512-UEahwAhaSUiL8+fyH7ziuXgC/yHrCgZZuVAXYzNj52tOkjUWFPlYyZN3JVpKtBqDxNDOk76gQ1FZbFst7wnU+A==", + "funding": { + "type": "individual", + "url": "https://sweetalert2.github.io/#donations" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -2383,6 +2507,11 @@ "fastq": "^1.6.0" } }, + "@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" + }, "@rushstack/eslint-patch": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", @@ -2560,6 +2689,20 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2572,6 +2715,11 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, + "bootstrap": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.0.tgz", + "integrity": "sha512-qlnS9GL6YZE6Wnef46GxGv1UpGGzAwO0aPL1yOjzDIJpeApeMvqV24iL+pjr2kU4dduoBA9fINKWKgMToobx9A==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2622,6 +2770,14 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2665,6 +2821,11 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -3115,6 +3276,21 @@ "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3366,6 +3542,19 @@ "picomatch": "^2.3.1" } }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3685,6 +3874,11 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "sweetalert2": { + "version": "11.4.27", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.27.tgz", + "integrity": "sha512-UEahwAhaSUiL8+fyH7ziuXgC/yHrCgZZuVAXYzNj52tOkjUWFPlYyZN3JVpKtBqDxNDOk76gQ1FZbFst7wnU+A==" + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/client-admin/package.json b/client-admin/package.json index 71be442..58d9d8b 100644 --- a/client-admin/package.json +++ b/client-admin/package.json @@ -2,13 +2,17 @@ "name": "client-admin", "version": "0.0.0", "scripts": { - "dev": "vite", + "dev": "vite --port 8080 --host", "build": "vite build", "preview": "vite preview --port 4173", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore" }, "dependencies": { + "@popperjs/core": "^2.11.6", + "axios": "^0.27.2", + "bootstrap": "^5.2.0", "pinia": "^2.0.17", + "sweetalert2": "^11.4.27", "vue": "^3.2.37", "vue-router": "^4.1.3" }, diff --git a/client-admin/src/App.vue b/client-admin/src/App.vue index e864195..d35e270 100644 --- a/client-admin/src/App.vue +++ b/client-admin/src/App.vue @@ -1,85 +1,7 @@ - - - + \ No newline at end of file diff --git a/client-admin/src/api/axiosInstance.js b/client-admin/src/api/axiosInstance.js new file mode 100644 index 0000000..d5cabf3 --- /dev/null +++ b/client-admin/src/api/axiosInstance.js @@ -0,0 +1,7 @@ +import axios from 'axios' + +const instance = axios.create({ + baseURL: "http://localhost:3000" +}) + +export default instance; diff --git a/client-admin/src/assets/base.css b/client-admin/src/assets/base.css deleted file mode 100644 index 71dc55a..0000000 --- a/client-admin/src/assets/base.css +++ /dev/null @@ -1,74 +0,0 @@ -/* color palette from */ -:root { - --vt-c-white: #ffffff; - --vt-c-white-soft: #f8f8f8; - --vt-c-white-mute: #f2f2f2; - - --vt-c-black: #181818; - --vt-c-black-soft: #222222; - --vt-c-black-mute: #282828; - - --vt-c-indigo: #2c3e50; - - --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); - --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); - --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); - --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); - - --vt-c-text-light-1: var(--vt-c-indigo); - --vt-c-text-light-2: rgba(60, 60, 60, 0.66); - --vt-c-text-dark-1: var(--vt-c-white); - --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); -} - -/* semantic color variables for this project */ -:root { - --color-background: var(--vt-c-white); - --color-background-soft: var(--vt-c-white-soft); - --color-background-mute: var(--vt-c-white-mute); - - --color-border: var(--vt-c-divider-light-2); - --color-border-hover: var(--vt-c-divider-light-1); - - --color-heading: var(--vt-c-text-light-1); - --color-text: var(--vt-c-text-light-1); - - --section-gap: 160px; -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--vt-c-black); - --color-background-soft: var(--vt-c-black-soft); - --color-background-mute: var(--vt-c-black-mute); - - --color-border: var(--vt-c-divider-dark-2); - --color-border-hover: var(--vt-c-divider-dark-1); - - --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); - } -} - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - position: relative; - font-weight: normal; -} - -body { - min-height: 100vh; - color: var(--color-text); - background: var(--color-background); - transition: color 0.5s, background-color 0.5s; - line-height: 1.6; - font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, - Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; - font-size: 15px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/client-admin/src/assets/logo.png b/client-admin/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b553e148a22bb7c4beb689fbf8bd668f8e0d51e0 GIT binary patch literal 37468 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%0AC45)S^Zvu9uc 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 AQUCw| literal 0 HcmV?d00001 diff --git a/client-admin/src/assets/logo.svg b/client-admin/src/assets/logo.svg deleted file mode 100644 index bc826fe..0000000 --- a/client-admin/src/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client-admin/src/assets/logo2.png b/client-admin/src/assets/logo2.png new file mode 100644 index 0000000000000000000000000000000000000000..56d6eec62298e04354e1ae3518bb3b0c452656ad GIT binary patch literal 41258 zcmd43^;cV8&^JnPhv4oMid%8lLR-AJYjJlg9s&d?6e%8{P+W=?cXx`rJHesY8~T0L zd)NH~o^|gJSy?C9=j_>gW{Frmi3jS3XLy54%9Lmij0K2Uit`@nDJsyGC<hv)wCd9`9i?F|Q))21jZ zrRi;S{J5LKp!j_!6$9)!?dh4DzSi5gYf9+riONoMz~Wf)(OSyoL;cm7?%1TTe@#RteggM&F5TJAJQ(`3-Q#)-VZ)@@Iy(>5#WK4T z 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, +a[aria-expanded="true"] { + color: #fff; + background: #6d7fcc; +} + +a[data-toggle="collapse"] { + position: relative; +} + +ul ul a { + font-size: 0.9em !important; + padding-left: 30px !important; + background: #6d7fcc; + font-size: medium; +} + +#content { + background-color: rgb(241 245 249); + padding: 50px; + height: 680px; +} + +@media (max-width: 768px) { + #sidebar { + margin-left: -300px; + } + + #sidebar.active { + margin-left: 0; + } + + #sidebarCollapse span { + display: none; + } +} \ No newline at end of file diff --git a/client-admin/src/components/HelloWorld.vue b/client-admin/src/components/HelloWorld.vue deleted file mode 100644 index 1b8faac..0000000 --- a/client-admin/src/components/HelloWorld.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - - diff --git a/client-admin/src/components/TheWelcome.vue b/client-admin/src/components/TheWelcome.vue deleted file mode 100644 index d3d2e7a..0000000 --- a/client-admin/src/components/TheWelcome.vue +++ /dev/null @@ -1,84 +0,0 @@ - - - diff --git a/client-admin/src/components/WelcomeItem.vue b/client-admin/src/components/WelcomeItem.vue deleted file mode 100644 index ba0def3..0000000 --- a/client-admin/src/components/WelcomeItem.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - diff --git a/client-admin/src/components/icons/IconCommunity.vue b/client-admin/src/components/icons/IconCommunity.vue deleted file mode 100644 index 2dc8b05..0000000 --- a/client-admin/src/components/icons/IconCommunity.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client-admin/src/components/icons/IconDocumentation.vue b/client-admin/src/components/icons/IconDocumentation.vue deleted file mode 100644 index 6d4791c..0000000 --- a/client-admin/src/components/icons/IconDocumentation.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client-admin/src/components/icons/IconEcosystem.vue b/client-admin/src/components/icons/IconEcosystem.vue deleted file mode 100644 index c3a4f07..0000000 --- a/client-admin/src/components/icons/IconEcosystem.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client-admin/src/components/icons/IconSupport.vue b/client-admin/src/components/icons/IconSupport.vue deleted file mode 100644 index 7452834..0000000 --- a/client-admin/src/components/icons/IconSupport.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/client-admin/src/components/icons/IconTooling.vue b/client-admin/src/components/icons/IconTooling.vue deleted file mode 100644 index 660598d..0000000 --- a/client-admin/src/components/icons/IconTooling.vue +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/client-admin/src/main.js b/client-admin/src/main.js index 4fb24b7..c3a3aaa 100644 --- a/client-admin/src/main.js +++ b/client-admin/src/main.js @@ -3,7 +3,8 @@ import { createPinia } from 'pinia' import App from './App.vue' import router from './router' - +import 'bootstrap'; +import 'bootstrap/dist/css/bootstrap.min.css'; import './assets/main.css' const app = createApp(App) diff --git a/client-admin/src/router/index.js b/client-admin/src/router/index.js index a49ae50..828115f 100644 --- a/client-admin/src/router/index.js +++ b/client-admin/src/router/index.js @@ -1,21 +1,13 @@ import { createRouter, createWebHistory } from 'vue-router' -import HomeView from '../views/HomeView.vue' +import LoginPage from '@/views/LoginPage.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { - path: '/', - name: 'home', - component: HomeView - }, - { - path: '/about', - name: 'about', - // route level code-splitting - // this generates a separate chunk (About.[hash].js) for this route - // which is lazy-loaded when the route is visited. - component: () => import('../views/AboutView.vue') + path: '/login', + name: 'login', + component: LoginPage } ] }) diff --git a/client-admin/src/stores/authStore.js b/client-admin/src/stores/authStore.js new file mode 100644 index 0000000..ef3807f --- /dev/null +++ b/client-admin/src/stores/authStore.js @@ -0,0 +1,42 @@ +import { defineStore } from 'pinia' +import axiosInstance from '../api/axiosInstance' +import Swal from 'sweetalert2' + +export const useAuthStore = defineStore({ + id: 'authStore', + state: () => ({ + + }), + getters: { + + }, + actions: { + alertSuccess(data) { + Swal.fire({ + icon: 'success', + title: 'SUCCESS !!!', + text: data.message, + showConfirmButton: false, + timer: 1500 + }) + }, + async login(obj) { + try { + const { data } = await axiosInstance({ + method: "POST", + url: "/auth/login", + data: { + email: obj.email, + password: obj.password + } + }) + + localStorage.setItem("access_token", data.access_token) + + this.alertSuccess(data) + } catch (error) { + console.log(error); + } + } + } +}) diff --git a/client-admin/src/views/AboutView.vue b/client-admin/src/views/AboutView.vue deleted file mode 100644 index 756ad2a..0000000 --- a/client-admin/src/views/AboutView.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/client-admin/src/views/HomeView.vue b/client-admin/src/views/HomeView.vue deleted file mode 100644 index 225d93a..0000000 --- a/client-admin/src/views/HomeView.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/client-admin/src/views/LoginPage.vue b/client-admin/src/views/LoginPage.vue new file mode 100644 index 0000000..dfb91fd --- /dev/null +++ b/client-admin/src/views/LoginPage.vue @@ -0,0 +1,73 @@ + + \ No newline at end of file From d3f010018270d0106128317ebee633eb90a0a16e Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Wed, 17 Aug 2022 18:15:29 +0700 Subject: [PATCH 03/27] read all brand done --- client-admin/src/App.vue | 10 +++ client-admin/src/assets/main.css | 28 ++++++--- client-admin/src/components/NavBar.vue | 72 ++++++++++++++++++++++ client-admin/src/components/SideBar.vue | 38 ++++++++++++ client-admin/src/components/Table.vue | 39 ++++++++++++ client-admin/src/components/Thead.vue | 8 +++ client-admin/src/components/Trow.vue | 26 ++++++++ client-admin/src/main.js | 8 ++- client-admin/src/router/index.js | 20 ++++++ client-admin/src/stores/authStore.js | 1 + client-admin/src/stores/brandStore.js | 49 +++++++++++++++ client-admin/src/stores/counter.js | 6 +- client-admin/src/views/HomePage.vue | 25 ++++++++ client-admin/src/views/brand/BrandForm.vue | 48 +++++++++++++++ client-admin/src/views/brand/BrandList.vue | 21 +++++++ 15 files changed, 387 insertions(+), 12 deletions(-) create mode 100644 client-admin/src/components/NavBar.vue create mode 100644 client-admin/src/components/SideBar.vue create mode 100644 client-admin/src/components/Table.vue create mode 100644 client-admin/src/components/Thead.vue create mode 100644 client-admin/src/components/Trow.vue create mode 100644 client-admin/src/stores/brandStore.js create mode 100644 client-admin/src/views/HomePage.vue create mode 100644 client-admin/src/views/brand/BrandForm.vue create mode 100644 client-admin/src/views/brand/BrandList.vue diff --git a/client-admin/src/App.vue b/client-admin/src/App.vue index d35e270..0afb920 100644 --- a/client-admin/src/App.vue +++ b/client-admin/src/App.vue @@ -1,5 +1,15 @@ \ No newline at end of file diff --git a/client-admin/src/components/Table.vue b/client-admin/src/components/Table.vue index 3a04c47..239a823 100644 --- a/client-admin/src/components/Table.vue +++ b/client-admin/src/components/Table.vue @@ -2,7 +2,8 @@ import Thead from '@/components/Thead.vue' import Trow from '@/components/Trow.vue' import { useBrandStore } from '@/stores/brandStore' -import { useProductStore } from '../stores/productStore' +import { useProductStore } from '@/stores/productStore' +import { useUserStore } from '@/stores/userStore' import { mapActions, mapState } from 'pinia' export default { @@ -13,12 +14,15 @@ export default { computed: { ...mapState(useBrandStore, ["brands", "theadBrand", "actionBrand"]), ...mapState(useProductStore, ["products", "theadProduct", "actionProduct"]), + ...mapState(useUserStore, ["users", "theadUser", "actionUser"]), throwData() { const { fullPath } = this.$route if (fullPath === "/brands") { return this.brands } else if (fullPath === "/products") { return this.products + } else if (fullPath === "/users") { + return this.users } }, theadData() { @@ -27,6 +31,8 @@ export default { return this.theadBrand } else if (fullPath === "/products") { return this.theadProduct + } else if (fullPath === "/users") { + return this.theadUser } }, actionData() { @@ -34,13 +40,16 @@ export default { if (fullPath === "/brands") { return this.actionBrand.length } else if (fullPath === "/products") { - return this.actionProduct + return this.actionProduct.length + } else if (fullPath === "/users") { + return this.actionUser.length } } }, methods: { ...mapActions(useBrandStore, ["readAllBrand"]), - ...mapActions(useProductStore, ["readAllProduct"]) + ...mapActions(useProductStore, ["readAllProduct"]), + ...mapActions(useUserStore, ["readAllUser"]) }, created() { const { fullPath } = this.$route @@ -49,6 +58,8 @@ export default { this.readAllBrand() } else if (fullPath === "/products") { this.readAllProduct() + } else if (fullPath === "/users") { + this.readAllUser() } } } diff --git a/client-admin/src/components/Trow.vue b/client-admin/src/components/Trow.vue index a699ab4..aeed0f6 100644 --- a/client-admin/src/components/Trow.vue +++ b/client-admin/src/components/Trow.vue @@ -1,7 +1,8 @@ + \ No newline at end of file From 4960aef49754f9d7504d4c81b7235896134a5a3d Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Thu, 18 Aug 2022 08:38:07 +0700 Subject: [PATCH 14/27] add user done --- client-admin/src/components/SideBar.vue | 3 + client-admin/src/router/index.js | 6 ++ client-admin/src/stores/userStore.js | 24 +++++++- client-admin/src/views/user/UserForm.vue | 72 ++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 client-admin/src/views/user/UserForm.vue diff --git a/client-admin/src/components/SideBar.vue b/client-admin/src/components/SideBar.vue index 086b9df..8237649 100644 --- a/client-admin/src/components/SideBar.vue +++ b/client-admin/src/components/SideBar.vue @@ -59,6 +59,9 @@ export default {
  • User List
  • +
  • + Add User +
  • diff --git a/client-admin/src/router/index.js b/client-admin/src/router/index.js index 825e879..b463cc9 100644 --- a/client-admin/src/router/index.js +++ b/client-admin/src/router/index.js @@ -8,6 +8,7 @@ import ProductList from '@/views/product/ProductList.vue' import ProductForm from '@/views/product/ProductForm.vue' import ProductDetail from '@/views/product/ProductDetail.vue' import ListUser from '@/views/user/ListUser.vue' +import UserForm from '@/views/user/UserForm.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -66,6 +67,11 @@ const router = createRouter({ name: "users", component: ListUser }, + { + path: 'users/create', + name: "createUser", + component: UserForm + }, ] } ] diff --git a/client-admin/src/stores/userStore.js b/client-admin/src/stores/userStore.js index 4f32ad0..0d3cf61 100644 --- a/client-admin/src/stores/userStore.js +++ b/client-admin/src/stores/userStore.js @@ -46,6 +46,28 @@ export const useUserStore = defineStore({ } catch (error) { this.alertError(error) } - } + }, + async addUser(obj) { + try { + const { data } = await axiosInstance({ + method: "POST", + url: "/users", + headers: { + access_token: localStorage.access_token, + }, + data: { + username: obj.username, + email: obj.email, + password: obj.password, + role: obj.role + } + }) + + this.router.push({ name: "users" }) + this.alertSuccess(data) + } catch (error) { + this.alertError(error) + } + }, } }) diff --git a/client-admin/src/views/user/UserForm.vue b/client-admin/src/views/user/UserForm.vue new file mode 100644 index 0000000..8daba6c --- /dev/null +++ b/client-admin/src/views/user/UserForm.vue @@ -0,0 +1,72 @@ + + \ No newline at end of file From 179b34fb7b14c75bf19a9b7c8226e29ac1d439f4 Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Thu, 18 Aug 2022 08:50:02 +0700 Subject: [PATCH 15/27] update user done --- client-admin/src/components/Trow.vue | 4 +++ client-admin/src/router/index.js | 5 +++ client-admin/src/stores/userStore.js | 39 ++++++++++++++++++++++++ client-admin/src/views/user/UserForm.vue | 10 ++++-- 4 files changed, 56 insertions(+), 2 deletions(-) diff --git a/client-admin/src/components/Trow.vue b/client-admin/src/components/Trow.vue index aeed0f6..86f6b75 100644 --- a/client-admin/src/components/Trow.vue +++ b/client-admin/src/components/Trow.vue @@ -36,6 +36,8 @@ export default { methods: { ...mapActions(useBrandStore, ["editBrand", "deleteBrand", "showBrand"]), ...mapActions(useProductStore, ["editProduct", "deleteProduct", "showProduct"]), + ...mapActions(useUserStore, ["editUser"]), + handleEdit() { const { fullPath } = this.$route @@ -43,6 +45,8 @@ export default { this.editBrand(this.trow.id) } else if (fullPath === "/products") { this.editProduct(this.trow.id) + } else if (fullPath === "/users") { + this.editUser(this.trow.id) } }, handleDelete() { diff --git a/client-admin/src/router/index.js b/client-admin/src/router/index.js index b463cc9..cb1d3c3 100644 --- a/client-admin/src/router/index.js +++ b/client-admin/src/router/index.js @@ -72,6 +72,11 @@ const router = createRouter({ name: "createUser", component: UserForm }, + { + path: 'users/:userId', + name: "editUser", + component: UserForm + } ] } ] diff --git a/client-admin/src/stores/userStore.js b/client-admin/src/stores/userStore.js index 0d3cf61..f480dcb 100644 --- a/client-admin/src/stores/userStore.js +++ b/client-admin/src/stores/userStore.js @@ -69,5 +69,44 @@ export const useUserStore = defineStore({ this.alertError(error) } }, + async editUser(id) { + try { + const { data } = await axiosInstance({ + method: "GET", + url: "/users/" + id, + headers: { + access_token: localStorage.access_token + } + }) + + this.userById = data.data + + this.router.push({ name: "editUser", params: { userId: id}}) + } catch (error) { + this.alertError(error) + } + }, + async updateUser(id, obj) { + try { + const { data } = await axiosInstance({ + method: "PUT", + url: "/users/" + id, + headers: { + access_token: localStorage.access_token + }, + data: { + username: obj.username, + email: obj.email, + password: obj.password, + role: obj.role + } + }) + + this.router.push({ name: "users" }) + this.alertSuccess(data) + } catch (error) { + this.alertError(error) + } + }, } }) diff --git a/client-admin/src/views/user/UserForm.vue b/client-admin/src/views/user/UserForm.vue index 8daba6c..abf0703 100644 --- a/client-admin/src/views/user/UserForm.vue +++ b/client-admin/src/views/user/UserForm.vue @@ -18,9 +18,13 @@ export default { ...mapState(useUserStore, ["userById"]) }, methods: { - ...mapActions(useUserStore, ["addUser"]), + ...mapActions(useUserStore, ["addUser", "updateUser"]), postUser() { - this.addUser(this.dataUser) + if (this.userById.username) { + this.updateUser(this.userById.id, this.dataUser) + } else { + this.addUser(this.dataUser) + } } }, created() { @@ -51,6 +55,8 @@ export default {
    + leave it blank if you don't want to change the + password
    From 006e3a94db6d9befb957897cece2a2ccca13397d Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Thu, 18 Aug 2022 08:55:10 +0700 Subject: [PATCH 16/27] delete user done --- client-admin/src/components/Trow.vue | 4 +++- client-admin/src/stores/userStore.js | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/client-admin/src/components/Trow.vue b/client-admin/src/components/Trow.vue index 86f6b75..9fb928e 100644 --- a/client-admin/src/components/Trow.vue +++ b/client-admin/src/components/Trow.vue @@ -36,7 +36,7 @@ export default { methods: { ...mapActions(useBrandStore, ["editBrand", "deleteBrand", "showBrand"]), ...mapActions(useProductStore, ["editProduct", "deleteProduct", "showProduct"]), - ...mapActions(useUserStore, ["editUser"]), + ...mapActions(useUserStore, ["editUser", "deleteUser"]), handleEdit() { const { fullPath } = this.$route @@ -56,6 +56,8 @@ export default { this.deleteBrand(this.trow.id) } else if (fullPath === "/products") { this.deleteProduct(this.trow.id) + } else if (fullPath === "/users") { + this.deleteUser(this.trow.id) } }, handleShow() { diff --git a/client-admin/src/stores/userStore.js b/client-admin/src/stores/userStore.js index f480dcb..19975fa 100644 --- a/client-admin/src/stores/userStore.js +++ b/client-admin/src/stores/userStore.js @@ -108,5 +108,22 @@ export const useUserStore = defineStore({ this.alertError(error) } }, + async deleteUser(id) { + try { + const { data } = await axiosInstance({ + method: "DELETE", + url: "/users/" + id, + headers: { + access_token: localStorage.access_token + } + }) + + this.router.push({ name: "users" }) + this.readAllUser() + this.alertSuccess(data) + } catch (error) { + this.alertError(error) + } + } } }) From 14e8241c00ea625d76ca25f89d386ed7c13ef658 Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Thu, 18 Aug 2022 09:16:56 +0700 Subject: [PATCH 17/27] show user done --- client-admin/src/assets/noImage.png | Bin 0 -> 1687 bytes client-admin/src/components/Trow.vue | 4 +- client-admin/src/router/index.js | 8 +- client-admin/src/stores/userStore.js | 22 +++++- client-admin/src/views/user/UserDetail.vue | 81 +++++++++++++++++++++ 5 files changed, 111 insertions(+), 4 deletions(-) create mode 100644 client-admin/src/assets/noImage.png create mode 100644 client-admin/src/views/user/UserDetail.vue diff --git a/client-admin/src/assets/noImage.png b/client-admin/src/assets/noImage.png new file mode 100644 index 0000000000000000000000000000000000000000..a198f90c2b10750da66451c11da8c1d8af825766 GIT binary patch literal 1687 zcmV;I259+-P)OD)PwRwyXSPs_|nKTwmDQN(EtUQn46^mp}ASInJI|R1prUF6=)kR*o*)G1;9x}K~#90 z?VanQ;vfu!Te-de8*d>b1WL7PJuW!kk6n+JmQ06)7B9;J00000000000000000000 z000000002|CBYbLt@(C0zK;vW`ZeRjx4ZK_q7X%i%ugDmCq(v#`*z>{6lctV5I<&* zlq3$7*z%}JFWPVS^Ya{!jW|3uAt-}}^yioR`ccBYvEesM1eGgXdUnp_Q5DdhCBi=L zwEb+g_I{EmV`Gn5gILC|4VBM?}tMBZrI0@%P*zR~yw}ak=c8Uvr14WC_DMC>Uw)XkEyN zcPu?Qo_|}=Ebb_!W$Ah2DLH0vhs6GdHzsn2sUmvK8xy%hEAks^9^ zAG6#ITcoty-ewMWgsbG3!yQfy7Px~;%PVin@5nLi$9sgFJnns1_6(%z_@Bl$gf1>T(vM~El3QLc^UcQbizR)0O0B){>WQO=p1+3E($5K0yKvQFi&K3` z#NVe-o5*^`b!yyLj{H*xo{whbut7<%lY>^yvK+a8+paot7;44J<*))r(~-mQapb+; zUdwU&fE?luI*2@QD}S46NGCjyJicB>^;t%WF?Qb-Y3taMlCC_f6fA$&O>zspt*PB{ z`S-nwJ5mg3{W)!X!U4#K8}+W`&jaxaIpU^!eZ z$L#}hh&$34HY*R7O$(DAwI^&R2en(HE%JcN-K<+~k(u;-NCPatxM|@i*1a6kg5^jD z_#=13W2JMIyXoWEp{}UKQ(uqPO`W7)>aR$pPbL$CcH}n}o)f9fM{ML!EhKk@Ztl2p zahK(YQp7&4+0jP&U9x0Pj;)<{wH$Q*YdO++ws~a9!;oFolcQ=;(sHM=TquXQ!{q_P z#|+8I;tr9c87!7k?L&7cOT?Yi0q6*PutpBmLI%s<S${Or@1Wx9H39 zVRtN+zJAn5K +import { mapState } from 'pinia' +import { useUserStore } from '@/stores/userStore' +import { RouterLink } from 'vue-router' + +export default { + computed: { + ...mapState(useUserStore, ["userById"]) + } +} + + \ No newline at end of file From a2a8be4751746428f02214302d431aed83b97f43 Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Thu, 18 Aug 2022 09:25:06 +0700 Subject: [PATCH 18/27] change detail product --- .../src/views/product/ProductDetail.vue | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/client-admin/src/views/product/ProductDetail.vue b/client-admin/src/views/product/ProductDetail.vue index 71d1dbb..b10a787 100644 --- a/client-admin/src/views/product/ProductDetail.vue +++ b/client-admin/src/views/product/ProductDetail.vue @@ -30,6 +30,10 @@ export default {
    Product Name

    {{ productById.nameProduct }}

    +
    +
    Brand Product
    +

    {{ productById.Brand.nameBrand }}

    +
    Public ID Image Product

    {{ productById.publicIdImage }}

    @@ -39,6 +43,26 @@ export default {
    URL Image Product
    {{ productById.imageProduct }}
    +
    +
    Price
    +

    {{ productById.price }}

    +
    +
    +
    Weight
    +

    {{ productById.weight }} gr

    +
    +
    +
    Skin Category
    +

    {{ productById.skinCategory }}

    +
    +
    +
    Product Category
    +

    {{ productById.productCategory }}

    +
    +
    +
    Description
    +

    {{ productById.description }}

    +
    From 5713b3a8d84763b470def480d4b1430f705b230d Mon Sep 17 00:00:00 2001 From: salwazahramunir Date: Thu, 18 Aug 2022 09:41:09 +0700 Subject: [PATCH 19/27] create dashboard page --- client-admin/src/App.vue | 2 +- client-admin/src/components/SideBar.vue | 2 +- client-admin/src/router/index.js | 10 ++++-- client-admin/src/views/DashboardPage.vue | 39 ++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 client-admin/src/views/DashboardPage.vue diff --git a/client-admin/src/App.vue b/client-admin/src/App.vue index 0afb920..6adad6f 100644 --- a/client-admin/src/App.vue +++ b/client-admin/src/App.vue @@ -4,7 +4,7 @@ import { RouterView } from 'vue-router' export default { created() { if (localStorage.access_token) { - this.$router.push({ name: "brands" }) + this.$router.push({ name: "dashboard" }) } else { this.$router.push({ name: "login" }) } diff --git a/client-admin/src/components/SideBar.vue b/client-admin/src/components/SideBar.vue index 8237649..7eab56c 100644 --- a/client-admin/src/components/SideBar.vue +++ b/client-admin/src/components/SideBar.vue @@ -17,7 +17,7 @@ export default {