├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── public └── favicon.ico ├── src ├── App.vue ├── components │ ├── ArticleCard.vue │ ├── ArticleDetail.vue │ ├── ArticleForm.vue │ ├── Login.vue │ ├── Navbar.vue │ ├── Register.vue │ ├── ValidationError.vue │ └── index.js ├── contstants │ └── index.js ├── helpers │ └── persistaneStorage.js ├── main.js ├── modules │ ├── articles.js │ ├── auth.js │ ├── control.js │ └── types.js ├── router │ └── index.js ├── service │ ├── articles.js │ ├── auth.js │ └── axios.js ├── store │ └── index.js ├── ui-components │ ├── Button.vue │ ├── Input.vue │ ├── Loader.vue │ ├── TextArea.vue │ └── index.js └── views │ ├── ArticleDetailView.vue │ ├── CreateArticleView.vue │ ├── EditArticleView.vue │ ├── HomeView.vue │ ├── LoginView.vue │ ├── RegisterView.vue │ └── index.js └── vite.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sammi-vue 2 | 3 | This template should help get you started developing with Vue 3 in Vite. 4 | 5 | ## Recommended IDE Setup 6 | 7 | [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). 8 | 9 | ## Customize configuration 10 | 11 | See [Vite Configuration Reference](https://vitejs.dev/config/). 12 | 13 | ## Project Setup 14 | 15 | ```sh 16 | npm install 17 | ``` 18 | 19 | ### Compile and Hot-Reload for Development 20 | 21 | ```sh 22 | npm run dev 23 | ``` 24 | 25 | ### Compile and Minify for Production 26 | 27 | ```sh 28 | npm run build 29 | ``` 30 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 15 | Sammi | Application 16 | 17 | 18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sammi-vue", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "sammi-vue", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "axios": "^1.1.3", 12 | "vue": "^3.2.41", 13 | "vue-router": "^4.1.5", 14 | "vuex": "^4.0.2" 15 | }, 16 | "devDependencies": { 17 | "@vitejs/plugin-vue": "^3.1.2", 18 | "vite": "^3.1.8" 19 | } 20 | }, 21 | "node_modules/@babel/parser": { 22 | "version": "7.20.0", 23 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", 24 | "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==", 25 | "bin": { 26 | "parser": "bin/babel-parser.js" 27 | }, 28 | "engines": { 29 | "node": ">=6.0.0" 30 | } 31 | }, 32 | "node_modules/@esbuild/android-arm": { 33 | "version": "0.15.12", 34 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz", 35 | "integrity": "sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==", 36 | "cpu": [ 37 | "arm" 38 | ], 39 | "dev": true, 40 | "optional": true, 41 | "os": [ 42 | "android" 43 | ], 44 | "engines": { 45 | "node": ">=12" 46 | } 47 | }, 48 | "node_modules/@esbuild/linux-loong64": { 49 | "version": "0.15.12", 50 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz", 51 | "integrity": "sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==", 52 | "cpu": [ 53 | "loong64" 54 | ], 55 | "dev": true, 56 | "optional": true, 57 | "os": [ 58 | "linux" 59 | ], 60 | "engines": { 61 | "node": ">=12" 62 | } 63 | }, 64 | "node_modules/@vitejs/plugin-vue": { 65 | "version": "3.2.0", 66 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", 67 | "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", 68 | "dev": true, 69 | "engines": { 70 | "node": "^14.18.0 || >=16.0.0" 71 | }, 72 | "peerDependencies": { 73 | "vite": "^3.0.0", 74 | "vue": "^3.2.25" 75 | } 76 | }, 77 | "node_modules/@vue/compiler-core": { 78 | "version": "3.2.41", 79 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", 80 | "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", 81 | "dependencies": { 82 | "@babel/parser": "^7.16.4", 83 | "@vue/shared": "3.2.41", 84 | "estree-walker": "^2.0.2", 85 | "source-map": "^0.6.1" 86 | } 87 | }, 88 | "node_modules/@vue/compiler-dom": { 89 | "version": "3.2.41", 90 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", 91 | "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", 92 | "dependencies": { 93 | "@vue/compiler-core": "3.2.41", 94 | "@vue/shared": "3.2.41" 95 | } 96 | }, 97 | "node_modules/@vue/compiler-sfc": { 98 | "version": "3.2.41", 99 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", 100 | "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", 101 | "dependencies": { 102 | "@babel/parser": "^7.16.4", 103 | "@vue/compiler-core": "3.2.41", 104 | "@vue/compiler-dom": "3.2.41", 105 | "@vue/compiler-ssr": "3.2.41", 106 | "@vue/reactivity-transform": "3.2.41", 107 | "@vue/shared": "3.2.41", 108 | "estree-walker": "^2.0.2", 109 | "magic-string": "^0.25.7", 110 | "postcss": "^8.1.10", 111 | "source-map": "^0.6.1" 112 | } 113 | }, 114 | "node_modules/@vue/compiler-ssr": { 115 | "version": "3.2.41", 116 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", 117 | "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", 118 | "dependencies": { 119 | "@vue/compiler-dom": "3.2.41", 120 | "@vue/shared": "3.2.41" 121 | } 122 | }, 123 | "node_modules/@vue/devtools-api": { 124 | "version": "6.4.5", 125 | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", 126 | "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" 127 | }, 128 | "node_modules/@vue/reactivity": { 129 | "version": "3.2.41", 130 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", 131 | "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", 132 | "dependencies": { 133 | "@vue/shared": "3.2.41" 134 | } 135 | }, 136 | "node_modules/@vue/reactivity-transform": { 137 | "version": "3.2.41", 138 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", 139 | "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", 140 | "dependencies": { 141 | "@babel/parser": "^7.16.4", 142 | "@vue/compiler-core": "3.2.41", 143 | "@vue/shared": "3.2.41", 144 | "estree-walker": "^2.0.2", 145 | "magic-string": "^0.25.7" 146 | } 147 | }, 148 | "node_modules/@vue/runtime-core": { 149 | "version": "3.2.41", 150 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", 151 | "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", 152 | "dependencies": { 153 | "@vue/reactivity": "3.2.41", 154 | "@vue/shared": "3.2.41" 155 | } 156 | }, 157 | "node_modules/@vue/runtime-dom": { 158 | "version": "3.2.41", 159 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", 160 | "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", 161 | "dependencies": { 162 | "@vue/runtime-core": "3.2.41", 163 | "@vue/shared": "3.2.41", 164 | "csstype": "^2.6.8" 165 | } 166 | }, 167 | "node_modules/@vue/server-renderer": { 168 | "version": "3.2.41", 169 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", 170 | "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", 171 | "dependencies": { 172 | "@vue/compiler-ssr": "3.2.41", 173 | "@vue/shared": "3.2.41" 174 | }, 175 | "peerDependencies": { 176 | "vue": "3.2.41" 177 | } 178 | }, 179 | "node_modules/@vue/shared": { 180 | "version": "3.2.41", 181 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", 182 | "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" 183 | }, 184 | "node_modules/asynckit": { 185 | "version": "0.4.0", 186 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 187 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 188 | }, 189 | "node_modules/axios": { 190 | "version": "1.1.3", 191 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", 192 | "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", 193 | "dependencies": { 194 | "follow-redirects": "^1.15.0", 195 | "form-data": "^4.0.0", 196 | "proxy-from-env": "^1.1.0" 197 | } 198 | }, 199 | "node_modules/combined-stream": { 200 | "version": "1.0.8", 201 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 202 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 203 | "dependencies": { 204 | "delayed-stream": "~1.0.0" 205 | }, 206 | "engines": { 207 | "node": ">= 0.8" 208 | } 209 | }, 210 | "node_modules/csstype": { 211 | "version": "2.6.21", 212 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", 213 | "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" 214 | }, 215 | "node_modules/delayed-stream": { 216 | "version": "1.0.0", 217 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 218 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 219 | "engines": { 220 | "node": ">=0.4.0" 221 | } 222 | }, 223 | "node_modules/esbuild": { 224 | "version": "0.15.12", 225 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz", 226 | "integrity": "sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==", 227 | "dev": true, 228 | "hasInstallScript": true, 229 | "bin": { 230 | "esbuild": "bin/esbuild" 231 | }, 232 | "engines": { 233 | "node": ">=12" 234 | }, 235 | "optionalDependencies": { 236 | "@esbuild/android-arm": "0.15.12", 237 | "@esbuild/linux-loong64": "0.15.12", 238 | "esbuild-android-64": "0.15.12", 239 | "esbuild-android-arm64": "0.15.12", 240 | "esbuild-darwin-64": "0.15.12", 241 | "esbuild-darwin-arm64": "0.15.12", 242 | "esbuild-freebsd-64": "0.15.12", 243 | "esbuild-freebsd-arm64": "0.15.12", 244 | "esbuild-linux-32": "0.15.12", 245 | "esbuild-linux-64": "0.15.12", 246 | "esbuild-linux-arm": "0.15.12", 247 | "esbuild-linux-arm64": "0.15.12", 248 | "esbuild-linux-mips64le": "0.15.12", 249 | "esbuild-linux-ppc64le": "0.15.12", 250 | "esbuild-linux-riscv64": "0.15.12", 251 | "esbuild-linux-s390x": "0.15.12", 252 | "esbuild-netbsd-64": "0.15.12", 253 | "esbuild-openbsd-64": "0.15.12", 254 | "esbuild-sunos-64": "0.15.12", 255 | "esbuild-windows-32": "0.15.12", 256 | "esbuild-windows-64": "0.15.12", 257 | "esbuild-windows-arm64": "0.15.12" 258 | } 259 | }, 260 | "node_modules/esbuild-android-64": { 261 | "version": "0.15.12", 262 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz", 263 | "integrity": "sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==", 264 | "cpu": [ 265 | "x64" 266 | ], 267 | "dev": true, 268 | "optional": true, 269 | "os": [ 270 | "android" 271 | ], 272 | "engines": { 273 | "node": ">=12" 274 | } 275 | }, 276 | "node_modules/esbuild-android-arm64": { 277 | "version": "0.15.12", 278 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz", 279 | "integrity": "sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==", 280 | "cpu": [ 281 | "arm64" 282 | ], 283 | "dev": true, 284 | "optional": true, 285 | "os": [ 286 | "android" 287 | ], 288 | "engines": { 289 | "node": ">=12" 290 | } 291 | }, 292 | "node_modules/esbuild-darwin-64": { 293 | "version": "0.15.12", 294 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz", 295 | "integrity": "sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==", 296 | "cpu": [ 297 | "x64" 298 | ], 299 | "dev": true, 300 | "optional": true, 301 | "os": [ 302 | "darwin" 303 | ], 304 | "engines": { 305 | "node": ">=12" 306 | } 307 | }, 308 | "node_modules/esbuild-darwin-arm64": { 309 | "version": "0.15.12", 310 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz", 311 | "integrity": "sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==", 312 | "cpu": [ 313 | "arm64" 314 | ], 315 | "dev": true, 316 | "optional": true, 317 | "os": [ 318 | "darwin" 319 | ], 320 | "engines": { 321 | "node": ">=12" 322 | } 323 | }, 324 | "node_modules/esbuild-freebsd-64": { 325 | "version": "0.15.12", 326 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz", 327 | "integrity": "sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==", 328 | "cpu": [ 329 | "x64" 330 | ], 331 | "dev": true, 332 | "optional": true, 333 | "os": [ 334 | "freebsd" 335 | ], 336 | "engines": { 337 | "node": ">=12" 338 | } 339 | }, 340 | "node_modules/esbuild-freebsd-arm64": { 341 | "version": "0.15.12", 342 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz", 343 | "integrity": "sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==", 344 | "cpu": [ 345 | "arm64" 346 | ], 347 | "dev": true, 348 | "optional": true, 349 | "os": [ 350 | "freebsd" 351 | ], 352 | "engines": { 353 | "node": ">=12" 354 | } 355 | }, 356 | "node_modules/esbuild-linux-32": { 357 | "version": "0.15.12", 358 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz", 359 | "integrity": "sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==", 360 | "cpu": [ 361 | "ia32" 362 | ], 363 | "dev": true, 364 | "optional": true, 365 | "os": [ 366 | "linux" 367 | ], 368 | "engines": { 369 | "node": ">=12" 370 | } 371 | }, 372 | "node_modules/esbuild-linux-64": { 373 | "version": "0.15.12", 374 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz", 375 | "integrity": "sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==", 376 | "cpu": [ 377 | "x64" 378 | ], 379 | "dev": true, 380 | "optional": true, 381 | "os": [ 382 | "linux" 383 | ], 384 | "engines": { 385 | "node": ">=12" 386 | } 387 | }, 388 | "node_modules/esbuild-linux-arm": { 389 | "version": "0.15.12", 390 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz", 391 | "integrity": "sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==", 392 | "cpu": [ 393 | "arm" 394 | ], 395 | "dev": true, 396 | "optional": true, 397 | "os": [ 398 | "linux" 399 | ], 400 | "engines": { 401 | "node": ">=12" 402 | } 403 | }, 404 | "node_modules/esbuild-linux-arm64": { 405 | "version": "0.15.12", 406 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz", 407 | "integrity": "sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==", 408 | "cpu": [ 409 | "arm64" 410 | ], 411 | "dev": true, 412 | "optional": true, 413 | "os": [ 414 | "linux" 415 | ], 416 | "engines": { 417 | "node": ">=12" 418 | } 419 | }, 420 | "node_modules/esbuild-linux-mips64le": { 421 | "version": "0.15.12", 422 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz", 423 | "integrity": "sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==", 424 | "cpu": [ 425 | "mips64el" 426 | ], 427 | "dev": true, 428 | "optional": true, 429 | "os": [ 430 | "linux" 431 | ], 432 | "engines": { 433 | "node": ">=12" 434 | } 435 | }, 436 | "node_modules/esbuild-linux-ppc64le": { 437 | "version": "0.15.12", 438 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz", 439 | "integrity": "sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==", 440 | "cpu": [ 441 | "ppc64" 442 | ], 443 | "dev": true, 444 | "optional": true, 445 | "os": [ 446 | "linux" 447 | ], 448 | "engines": { 449 | "node": ">=12" 450 | } 451 | }, 452 | "node_modules/esbuild-linux-riscv64": { 453 | "version": "0.15.12", 454 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz", 455 | "integrity": "sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==", 456 | "cpu": [ 457 | "riscv64" 458 | ], 459 | "dev": true, 460 | "optional": true, 461 | "os": [ 462 | "linux" 463 | ], 464 | "engines": { 465 | "node": ">=12" 466 | } 467 | }, 468 | "node_modules/esbuild-linux-s390x": { 469 | "version": "0.15.12", 470 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz", 471 | "integrity": "sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==", 472 | "cpu": [ 473 | "s390x" 474 | ], 475 | "dev": true, 476 | "optional": true, 477 | "os": [ 478 | "linux" 479 | ], 480 | "engines": { 481 | "node": ">=12" 482 | } 483 | }, 484 | "node_modules/esbuild-netbsd-64": { 485 | "version": "0.15.12", 486 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz", 487 | "integrity": "sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==", 488 | "cpu": [ 489 | "x64" 490 | ], 491 | "dev": true, 492 | "optional": true, 493 | "os": [ 494 | "netbsd" 495 | ], 496 | "engines": { 497 | "node": ">=12" 498 | } 499 | }, 500 | "node_modules/esbuild-openbsd-64": { 501 | "version": "0.15.12", 502 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz", 503 | "integrity": "sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==", 504 | "cpu": [ 505 | "x64" 506 | ], 507 | "dev": true, 508 | "optional": true, 509 | "os": [ 510 | "openbsd" 511 | ], 512 | "engines": { 513 | "node": ">=12" 514 | } 515 | }, 516 | "node_modules/esbuild-sunos-64": { 517 | "version": "0.15.12", 518 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz", 519 | "integrity": "sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==", 520 | "cpu": [ 521 | "x64" 522 | ], 523 | "dev": true, 524 | "optional": true, 525 | "os": [ 526 | "sunos" 527 | ], 528 | "engines": { 529 | "node": ">=12" 530 | } 531 | }, 532 | "node_modules/esbuild-windows-32": { 533 | "version": "0.15.12", 534 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz", 535 | "integrity": "sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==", 536 | "cpu": [ 537 | "ia32" 538 | ], 539 | "dev": true, 540 | "optional": true, 541 | "os": [ 542 | "win32" 543 | ], 544 | "engines": { 545 | "node": ">=12" 546 | } 547 | }, 548 | "node_modules/esbuild-windows-64": { 549 | "version": "0.15.12", 550 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz", 551 | "integrity": "sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==", 552 | "cpu": [ 553 | "x64" 554 | ], 555 | "dev": true, 556 | "optional": true, 557 | "os": [ 558 | "win32" 559 | ], 560 | "engines": { 561 | "node": ">=12" 562 | } 563 | }, 564 | "node_modules/esbuild-windows-arm64": { 565 | "version": "0.15.12", 566 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz", 567 | "integrity": "sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==", 568 | "cpu": [ 569 | "arm64" 570 | ], 571 | "dev": true, 572 | "optional": true, 573 | "os": [ 574 | "win32" 575 | ], 576 | "engines": { 577 | "node": ">=12" 578 | } 579 | }, 580 | "node_modules/estree-walker": { 581 | "version": "2.0.2", 582 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 583 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 584 | }, 585 | "node_modules/follow-redirects": { 586 | "version": "1.15.2", 587 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 588 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", 589 | "funding": [ 590 | { 591 | "type": "individual", 592 | "url": "https://github.com/sponsors/RubenVerborgh" 593 | } 594 | ], 595 | "engines": { 596 | "node": ">=4.0" 597 | }, 598 | "peerDependenciesMeta": { 599 | "debug": { 600 | "optional": true 601 | } 602 | } 603 | }, 604 | "node_modules/form-data": { 605 | "version": "4.0.0", 606 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 607 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 608 | "dependencies": { 609 | "asynckit": "^0.4.0", 610 | "combined-stream": "^1.0.8", 611 | "mime-types": "^2.1.12" 612 | }, 613 | "engines": { 614 | "node": ">= 6" 615 | } 616 | }, 617 | "node_modules/fsevents": { 618 | "version": "2.3.2", 619 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 620 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 621 | "dev": true, 622 | "hasInstallScript": true, 623 | "optional": true, 624 | "os": [ 625 | "darwin" 626 | ], 627 | "engines": { 628 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 629 | } 630 | }, 631 | "node_modules/function-bind": { 632 | "version": "1.1.1", 633 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 634 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 635 | "dev": true 636 | }, 637 | "node_modules/has": { 638 | "version": "1.0.3", 639 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 640 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 641 | "dev": true, 642 | "dependencies": { 643 | "function-bind": "^1.1.1" 644 | }, 645 | "engines": { 646 | "node": ">= 0.4.0" 647 | } 648 | }, 649 | "node_modules/is-core-module": { 650 | "version": "2.11.0", 651 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 652 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 653 | "dev": true, 654 | "dependencies": { 655 | "has": "^1.0.3" 656 | }, 657 | "funding": { 658 | "url": "https://github.com/sponsors/ljharb" 659 | } 660 | }, 661 | "node_modules/magic-string": { 662 | "version": "0.25.9", 663 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 664 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 665 | "dependencies": { 666 | "sourcemap-codec": "^1.4.8" 667 | } 668 | }, 669 | "node_modules/mime-db": { 670 | "version": "1.52.0", 671 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 672 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 673 | "engines": { 674 | "node": ">= 0.6" 675 | } 676 | }, 677 | "node_modules/mime-types": { 678 | "version": "2.1.35", 679 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 680 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 681 | "dependencies": { 682 | "mime-db": "1.52.0" 683 | }, 684 | "engines": { 685 | "node": ">= 0.6" 686 | } 687 | }, 688 | "node_modules/nanoid": { 689 | "version": "3.3.4", 690 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 691 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 692 | "bin": { 693 | "nanoid": "bin/nanoid.cjs" 694 | }, 695 | "engines": { 696 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 697 | } 698 | }, 699 | "node_modules/path-parse": { 700 | "version": "1.0.7", 701 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 702 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 703 | "dev": true 704 | }, 705 | "node_modules/picocolors": { 706 | "version": "1.0.0", 707 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 708 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 709 | }, 710 | "node_modules/postcss": { 711 | "version": "8.4.18", 712 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", 713 | "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", 714 | "funding": [ 715 | { 716 | "type": "opencollective", 717 | "url": "https://opencollective.com/postcss/" 718 | }, 719 | { 720 | "type": "tidelift", 721 | "url": "https://tidelift.com/funding/github/npm/postcss" 722 | } 723 | ], 724 | "dependencies": { 725 | "nanoid": "^3.3.4", 726 | "picocolors": "^1.0.0", 727 | "source-map-js": "^1.0.2" 728 | }, 729 | "engines": { 730 | "node": "^10 || ^12 || >=14" 731 | } 732 | }, 733 | "node_modules/proxy-from-env": { 734 | "version": "1.1.0", 735 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 736 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 737 | }, 738 | "node_modules/resolve": { 739 | "version": "1.22.1", 740 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 741 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 742 | "dev": true, 743 | "dependencies": { 744 | "is-core-module": "^2.9.0", 745 | "path-parse": "^1.0.7", 746 | "supports-preserve-symlinks-flag": "^1.0.0" 747 | }, 748 | "bin": { 749 | "resolve": "bin/resolve" 750 | }, 751 | "funding": { 752 | "url": "https://github.com/sponsors/ljharb" 753 | } 754 | }, 755 | "node_modules/rollup": { 756 | "version": "2.79.1", 757 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", 758 | "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", 759 | "dev": true, 760 | "bin": { 761 | "rollup": "dist/bin/rollup" 762 | }, 763 | "engines": { 764 | "node": ">=10.0.0" 765 | }, 766 | "optionalDependencies": { 767 | "fsevents": "~2.3.2" 768 | } 769 | }, 770 | "node_modules/source-map": { 771 | "version": "0.6.1", 772 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 773 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 774 | "engines": { 775 | "node": ">=0.10.0" 776 | } 777 | }, 778 | "node_modules/source-map-js": { 779 | "version": "1.0.2", 780 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 781 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 782 | "engines": { 783 | "node": ">=0.10.0" 784 | } 785 | }, 786 | "node_modules/sourcemap-codec": { 787 | "version": "1.4.8", 788 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 789 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 790 | }, 791 | "node_modules/supports-preserve-symlinks-flag": { 792 | "version": "1.0.0", 793 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 794 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 795 | "dev": true, 796 | "engines": { 797 | "node": ">= 0.4" 798 | }, 799 | "funding": { 800 | "url": "https://github.com/sponsors/ljharb" 801 | } 802 | }, 803 | "node_modules/vite": { 804 | "version": "3.2.1", 805 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.1.tgz", 806 | "integrity": "sha512-ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ==", 807 | "dev": true, 808 | "dependencies": { 809 | "esbuild": "^0.15.9", 810 | "postcss": "^8.4.18", 811 | "resolve": "^1.22.1", 812 | "rollup": "^2.79.1" 813 | }, 814 | "bin": { 815 | "vite": "bin/vite.js" 816 | }, 817 | "engines": { 818 | "node": "^14.18.0 || >=16.0.0" 819 | }, 820 | "optionalDependencies": { 821 | "fsevents": "~2.3.2" 822 | }, 823 | "peerDependencies": { 824 | "less": "*", 825 | "sass": "*", 826 | "stylus": "*", 827 | "sugarss": "*", 828 | "terser": "^5.4.0" 829 | }, 830 | "peerDependenciesMeta": { 831 | "less": { 832 | "optional": true 833 | }, 834 | "sass": { 835 | "optional": true 836 | }, 837 | "stylus": { 838 | "optional": true 839 | }, 840 | "sugarss": { 841 | "optional": true 842 | }, 843 | "terser": { 844 | "optional": true 845 | } 846 | } 847 | }, 848 | "node_modules/vue": { 849 | "version": "3.2.41", 850 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", 851 | "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", 852 | "dependencies": { 853 | "@vue/compiler-dom": "3.2.41", 854 | "@vue/compiler-sfc": "3.2.41", 855 | "@vue/runtime-dom": "3.2.41", 856 | "@vue/server-renderer": "3.2.41", 857 | "@vue/shared": "3.2.41" 858 | } 859 | }, 860 | "node_modules/vue-router": { 861 | "version": "4.1.6", 862 | "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", 863 | "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", 864 | "dependencies": { 865 | "@vue/devtools-api": "^6.4.5" 866 | }, 867 | "funding": { 868 | "url": "https://github.com/sponsors/posva" 869 | }, 870 | "peerDependencies": { 871 | "vue": "^3.2.0" 872 | } 873 | }, 874 | "node_modules/vuex": { 875 | "version": "4.0.2", 876 | "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", 877 | "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", 878 | "dependencies": { 879 | "@vue/devtools-api": "^6.0.0-beta.11" 880 | }, 881 | "peerDependencies": { 882 | "vue": "^3.0.2" 883 | } 884 | } 885 | }, 886 | "dependencies": { 887 | "@babel/parser": { 888 | "version": "7.20.0", 889 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.0.tgz", 890 | "integrity": "sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==" 891 | }, 892 | "@esbuild/android-arm": { 893 | "version": "0.15.12", 894 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.12.tgz", 895 | "integrity": "sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==", 896 | "dev": true, 897 | "optional": true 898 | }, 899 | "@esbuild/linux-loong64": { 900 | "version": "0.15.12", 901 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz", 902 | "integrity": "sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==", 903 | "dev": true, 904 | "optional": true 905 | }, 906 | "@vitejs/plugin-vue": { 907 | "version": "3.2.0", 908 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz", 909 | "integrity": "sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==", 910 | "dev": true, 911 | "requires": {} 912 | }, 913 | "@vue/compiler-core": { 914 | "version": "3.2.41", 915 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", 916 | "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", 917 | "requires": { 918 | "@babel/parser": "^7.16.4", 919 | "@vue/shared": "3.2.41", 920 | "estree-walker": "^2.0.2", 921 | "source-map": "^0.6.1" 922 | } 923 | }, 924 | "@vue/compiler-dom": { 925 | "version": "3.2.41", 926 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", 927 | "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", 928 | "requires": { 929 | "@vue/compiler-core": "3.2.41", 930 | "@vue/shared": "3.2.41" 931 | } 932 | }, 933 | "@vue/compiler-sfc": { 934 | "version": "3.2.41", 935 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", 936 | "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", 937 | "requires": { 938 | "@babel/parser": "^7.16.4", 939 | "@vue/compiler-core": "3.2.41", 940 | "@vue/compiler-dom": "3.2.41", 941 | "@vue/compiler-ssr": "3.2.41", 942 | "@vue/reactivity-transform": "3.2.41", 943 | "@vue/shared": "3.2.41", 944 | "estree-walker": "^2.0.2", 945 | "magic-string": "^0.25.7", 946 | "postcss": "^8.1.10", 947 | "source-map": "^0.6.1" 948 | } 949 | }, 950 | "@vue/compiler-ssr": { 951 | "version": "3.2.41", 952 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", 953 | "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", 954 | "requires": { 955 | "@vue/compiler-dom": "3.2.41", 956 | "@vue/shared": "3.2.41" 957 | } 958 | }, 959 | "@vue/devtools-api": { 960 | "version": "6.4.5", 961 | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", 962 | "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" 963 | }, 964 | "@vue/reactivity": { 965 | "version": "3.2.41", 966 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", 967 | "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", 968 | "requires": { 969 | "@vue/shared": "3.2.41" 970 | } 971 | }, 972 | "@vue/reactivity-transform": { 973 | "version": "3.2.41", 974 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", 975 | "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", 976 | "requires": { 977 | "@babel/parser": "^7.16.4", 978 | "@vue/compiler-core": "3.2.41", 979 | "@vue/shared": "3.2.41", 980 | "estree-walker": "^2.0.2", 981 | "magic-string": "^0.25.7" 982 | } 983 | }, 984 | "@vue/runtime-core": { 985 | "version": "3.2.41", 986 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", 987 | "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", 988 | "requires": { 989 | "@vue/reactivity": "3.2.41", 990 | "@vue/shared": "3.2.41" 991 | } 992 | }, 993 | "@vue/runtime-dom": { 994 | "version": "3.2.41", 995 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", 996 | "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", 997 | "requires": { 998 | "@vue/runtime-core": "3.2.41", 999 | "@vue/shared": "3.2.41", 1000 | "csstype": "^2.6.8" 1001 | } 1002 | }, 1003 | "@vue/server-renderer": { 1004 | "version": "3.2.41", 1005 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", 1006 | "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", 1007 | "requires": { 1008 | "@vue/compiler-ssr": "3.2.41", 1009 | "@vue/shared": "3.2.41" 1010 | } 1011 | }, 1012 | "@vue/shared": { 1013 | "version": "3.2.41", 1014 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", 1015 | "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" 1016 | }, 1017 | "asynckit": { 1018 | "version": "0.4.0", 1019 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1020 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 1021 | }, 1022 | "axios": { 1023 | "version": "1.1.3", 1024 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", 1025 | "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", 1026 | "requires": { 1027 | "follow-redirects": "^1.15.0", 1028 | "form-data": "^4.0.0", 1029 | "proxy-from-env": "^1.1.0" 1030 | } 1031 | }, 1032 | "combined-stream": { 1033 | "version": "1.0.8", 1034 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1035 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1036 | "requires": { 1037 | "delayed-stream": "~1.0.0" 1038 | } 1039 | }, 1040 | "csstype": { 1041 | "version": "2.6.21", 1042 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", 1043 | "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" 1044 | }, 1045 | "delayed-stream": { 1046 | "version": "1.0.0", 1047 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1048 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 1049 | }, 1050 | "esbuild": { 1051 | "version": "0.15.12", 1052 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.12.tgz", 1053 | "integrity": "sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==", 1054 | "dev": true, 1055 | "requires": { 1056 | "@esbuild/android-arm": "0.15.12", 1057 | "@esbuild/linux-loong64": "0.15.12", 1058 | "esbuild-android-64": "0.15.12", 1059 | "esbuild-android-arm64": "0.15.12", 1060 | "esbuild-darwin-64": "0.15.12", 1061 | "esbuild-darwin-arm64": "0.15.12", 1062 | "esbuild-freebsd-64": "0.15.12", 1063 | "esbuild-freebsd-arm64": "0.15.12", 1064 | "esbuild-linux-32": "0.15.12", 1065 | "esbuild-linux-64": "0.15.12", 1066 | "esbuild-linux-arm": "0.15.12", 1067 | "esbuild-linux-arm64": "0.15.12", 1068 | "esbuild-linux-mips64le": "0.15.12", 1069 | "esbuild-linux-ppc64le": "0.15.12", 1070 | "esbuild-linux-riscv64": "0.15.12", 1071 | "esbuild-linux-s390x": "0.15.12", 1072 | "esbuild-netbsd-64": "0.15.12", 1073 | "esbuild-openbsd-64": "0.15.12", 1074 | "esbuild-sunos-64": "0.15.12", 1075 | "esbuild-windows-32": "0.15.12", 1076 | "esbuild-windows-64": "0.15.12", 1077 | "esbuild-windows-arm64": "0.15.12" 1078 | } 1079 | }, 1080 | "esbuild-android-64": { 1081 | "version": "0.15.12", 1082 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz", 1083 | "integrity": "sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==", 1084 | "dev": true, 1085 | "optional": true 1086 | }, 1087 | "esbuild-android-arm64": { 1088 | "version": "0.15.12", 1089 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz", 1090 | "integrity": "sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==", 1091 | "dev": true, 1092 | "optional": true 1093 | }, 1094 | "esbuild-darwin-64": { 1095 | "version": "0.15.12", 1096 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz", 1097 | "integrity": "sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==", 1098 | "dev": true, 1099 | "optional": true 1100 | }, 1101 | "esbuild-darwin-arm64": { 1102 | "version": "0.15.12", 1103 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz", 1104 | "integrity": "sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==", 1105 | "dev": true, 1106 | "optional": true 1107 | }, 1108 | "esbuild-freebsd-64": { 1109 | "version": "0.15.12", 1110 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz", 1111 | "integrity": "sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==", 1112 | "dev": true, 1113 | "optional": true 1114 | }, 1115 | "esbuild-freebsd-arm64": { 1116 | "version": "0.15.12", 1117 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz", 1118 | "integrity": "sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==", 1119 | "dev": true, 1120 | "optional": true 1121 | }, 1122 | "esbuild-linux-32": { 1123 | "version": "0.15.12", 1124 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz", 1125 | "integrity": "sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==", 1126 | "dev": true, 1127 | "optional": true 1128 | }, 1129 | "esbuild-linux-64": { 1130 | "version": "0.15.12", 1131 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz", 1132 | "integrity": "sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==", 1133 | "dev": true, 1134 | "optional": true 1135 | }, 1136 | "esbuild-linux-arm": { 1137 | "version": "0.15.12", 1138 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz", 1139 | "integrity": "sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==", 1140 | "dev": true, 1141 | "optional": true 1142 | }, 1143 | "esbuild-linux-arm64": { 1144 | "version": "0.15.12", 1145 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz", 1146 | "integrity": "sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==", 1147 | "dev": true, 1148 | "optional": true 1149 | }, 1150 | "esbuild-linux-mips64le": { 1151 | "version": "0.15.12", 1152 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz", 1153 | "integrity": "sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==", 1154 | "dev": true, 1155 | "optional": true 1156 | }, 1157 | "esbuild-linux-ppc64le": { 1158 | "version": "0.15.12", 1159 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz", 1160 | "integrity": "sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==", 1161 | "dev": true, 1162 | "optional": true 1163 | }, 1164 | "esbuild-linux-riscv64": { 1165 | "version": "0.15.12", 1166 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz", 1167 | "integrity": "sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==", 1168 | "dev": true, 1169 | "optional": true 1170 | }, 1171 | "esbuild-linux-s390x": { 1172 | "version": "0.15.12", 1173 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz", 1174 | "integrity": "sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==", 1175 | "dev": true, 1176 | "optional": true 1177 | }, 1178 | "esbuild-netbsd-64": { 1179 | "version": "0.15.12", 1180 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz", 1181 | "integrity": "sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==", 1182 | "dev": true, 1183 | "optional": true 1184 | }, 1185 | "esbuild-openbsd-64": { 1186 | "version": "0.15.12", 1187 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz", 1188 | "integrity": "sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==", 1189 | "dev": true, 1190 | "optional": true 1191 | }, 1192 | "esbuild-sunos-64": { 1193 | "version": "0.15.12", 1194 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz", 1195 | "integrity": "sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==", 1196 | "dev": true, 1197 | "optional": true 1198 | }, 1199 | "esbuild-windows-32": { 1200 | "version": "0.15.12", 1201 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz", 1202 | "integrity": "sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==", 1203 | "dev": true, 1204 | "optional": true 1205 | }, 1206 | "esbuild-windows-64": { 1207 | "version": "0.15.12", 1208 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz", 1209 | "integrity": "sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==", 1210 | "dev": true, 1211 | "optional": true 1212 | }, 1213 | "esbuild-windows-arm64": { 1214 | "version": "0.15.12", 1215 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz", 1216 | "integrity": "sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==", 1217 | "dev": true, 1218 | "optional": true 1219 | }, 1220 | "estree-walker": { 1221 | "version": "2.0.2", 1222 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1223 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 1224 | }, 1225 | "follow-redirects": { 1226 | "version": "1.15.2", 1227 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 1228 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" 1229 | }, 1230 | "form-data": { 1231 | "version": "4.0.0", 1232 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 1233 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 1234 | "requires": { 1235 | "asynckit": "^0.4.0", 1236 | "combined-stream": "^1.0.8", 1237 | "mime-types": "^2.1.12" 1238 | } 1239 | }, 1240 | "fsevents": { 1241 | "version": "2.3.2", 1242 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1243 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1244 | "dev": true, 1245 | "optional": true 1246 | }, 1247 | "function-bind": { 1248 | "version": "1.1.1", 1249 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1250 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1251 | "dev": true 1252 | }, 1253 | "has": { 1254 | "version": "1.0.3", 1255 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1256 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1257 | "dev": true, 1258 | "requires": { 1259 | "function-bind": "^1.1.1" 1260 | } 1261 | }, 1262 | "is-core-module": { 1263 | "version": "2.11.0", 1264 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 1265 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 1266 | "dev": true, 1267 | "requires": { 1268 | "has": "^1.0.3" 1269 | } 1270 | }, 1271 | "magic-string": { 1272 | "version": "0.25.9", 1273 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", 1274 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", 1275 | "requires": { 1276 | "sourcemap-codec": "^1.4.8" 1277 | } 1278 | }, 1279 | "mime-db": { 1280 | "version": "1.52.0", 1281 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1282 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 1283 | }, 1284 | "mime-types": { 1285 | "version": "2.1.35", 1286 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1287 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1288 | "requires": { 1289 | "mime-db": "1.52.0" 1290 | } 1291 | }, 1292 | "nanoid": { 1293 | "version": "3.3.4", 1294 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1295 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" 1296 | }, 1297 | "path-parse": { 1298 | "version": "1.0.7", 1299 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1300 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1301 | "dev": true 1302 | }, 1303 | "picocolors": { 1304 | "version": "1.0.0", 1305 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1306 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1307 | }, 1308 | "postcss": { 1309 | "version": "8.4.18", 1310 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", 1311 | "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", 1312 | "requires": { 1313 | "nanoid": "^3.3.4", 1314 | "picocolors": "^1.0.0", 1315 | "source-map-js": "^1.0.2" 1316 | } 1317 | }, 1318 | "proxy-from-env": { 1319 | "version": "1.1.0", 1320 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 1321 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 1322 | }, 1323 | "resolve": { 1324 | "version": "1.22.1", 1325 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1326 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1327 | "dev": true, 1328 | "requires": { 1329 | "is-core-module": "^2.9.0", 1330 | "path-parse": "^1.0.7", 1331 | "supports-preserve-symlinks-flag": "^1.0.0" 1332 | } 1333 | }, 1334 | "rollup": { 1335 | "version": "2.79.1", 1336 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", 1337 | "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", 1338 | "dev": true, 1339 | "requires": { 1340 | "fsevents": "~2.3.2" 1341 | } 1342 | }, 1343 | "source-map": { 1344 | "version": "0.6.1", 1345 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 1346 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 1347 | }, 1348 | "source-map-js": { 1349 | "version": "1.0.2", 1350 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1351 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 1352 | }, 1353 | "sourcemap-codec": { 1354 | "version": "1.4.8", 1355 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 1356 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" 1357 | }, 1358 | "supports-preserve-symlinks-flag": { 1359 | "version": "1.0.0", 1360 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1361 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1362 | "dev": true 1363 | }, 1364 | "vite": { 1365 | "version": "3.2.1", 1366 | "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.1.tgz", 1367 | "integrity": "sha512-ADtMkfHuWq4tskJsri2n2FZkORO8ZyhI+zIz7zTrDAgDEtct1jdxOg3YsZBfHhKjmMoWLOSCr+64qrEDGo/DbQ==", 1368 | "dev": true, 1369 | "requires": { 1370 | "esbuild": "^0.15.9", 1371 | "fsevents": "~2.3.2", 1372 | "postcss": "^8.4.18", 1373 | "resolve": "^1.22.1", 1374 | "rollup": "^2.79.1" 1375 | } 1376 | }, 1377 | "vue": { 1378 | "version": "3.2.41", 1379 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", 1380 | "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", 1381 | "requires": { 1382 | "@vue/compiler-dom": "3.2.41", 1383 | "@vue/compiler-sfc": "3.2.41", 1384 | "@vue/runtime-dom": "3.2.41", 1385 | "@vue/server-renderer": "3.2.41", 1386 | "@vue/shared": "3.2.41" 1387 | } 1388 | }, 1389 | "vue-router": { 1390 | "version": "4.1.6", 1391 | "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz", 1392 | "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==", 1393 | "requires": { 1394 | "@vue/devtools-api": "^6.4.5" 1395 | } 1396 | }, 1397 | "vuex": { 1398 | "version": "4.0.2", 1399 | "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.0.2.tgz", 1400 | "integrity": "sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==", 1401 | "requires": { 1402 | "@vue/devtools-api": "^6.0.0-beta.11" 1403 | } 1404 | } 1405 | } 1406 | } 1407 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sammi-vue", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "vite build", 7 | "preview": "vite preview" 8 | }, 9 | "dependencies": { 10 | "axios": "^1.1.3", 11 | "vue": "^3.2.41", 12 | "vue-router": "^4.1.5", 13 | "vuex": "^4.0.2" 14 | }, 15 | "devDependencies": { 16 | "@vitejs/plugin-vue": "^3.1.2", 17 | "vite": "^3.1.8" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SameerBadriddinov/vuejs-vuex-application/193b326353df272b1a3a54a553784d561b856040/public/favicon.ico -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/components/ArticleCard.vue: -------------------------------------------------------------------------------- 1 | 54 | 55 | 85 | -------------------------------------------------------------------------------- /src/components/ArticleDetail.vue: -------------------------------------------------------------------------------- 1 | 40 | 41 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/components/ArticleForm.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/ui-components/index.js: -------------------------------------------------------------------------------- 1 | import Button from './Button.vue' 2 | import Input from './Input.vue' 3 | import Loader from './Loader.vue' 4 | import TextArea from './TextArea.vue' 5 | 6 | export default [Button, Input, Loader, TextArea] 7 | -------------------------------------------------------------------------------- /src/views/ArticleDetailView.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 25 | -------------------------------------------------------------------------------- /src/views/CreateArticleView.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/views/EditArticleView.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 42 | -------------------------------------------------------------------------------- /src/views/HomeView.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/views/LoginView.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/views/RegisterView.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/views/index.js: -------------------------------------------------------------------------------- 1 | export {default as HomeView} from './HomeView.vue' 2 | export {default as RegisterView} from './RegisterView.vue' 3 | export {default as LoginView} from './LoginView.vue' 4 | export {default as ArticleDetailView} from './ArticleDetailView.vue' 5 | export {default as CreateArticleView} from './CreateArticleView.vue' 6 | export {default as EditArticleView} from './EditArticleView.vue' 7 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | plugins: [vue()], 9 | resolve: { 10 | alias: { 11 | '@': fileURLToPath(new URL('./src', import.meta.url)) 12 | } 13 | } 14 | }) 15 | --------------------------------------------------------------------------------