├── .eslintrc.cjs
├── .gitignore
├── .prettierrc.json
├── .vscode
└── extensions.json
├── LICENSE
├── README.md
├── demo.gif
├── index.html
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
└── favicon.ico
├── src
├── App.vue
├── assets
│ ├── coat_600.png
│ ├── heels_600.png
│ ├── hoodie_600.png
│ ├── jacket_600.png
│ ├── main.css
│ ├── shirt_600.png
│ └── sneakers_600.png
├── components
│ └── SiteHeader.vue
├── main.js
├── router
│ └── index.js
├── stores
│ └── shop.js
└── views
│ ├── CartView.vue
│ ├── ItemView.vue
│ └── ShopView.vue
├── tailwind.config.js
└── vite.config.js
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /* eslint-env node */
2 | require("@rushstack/eslint-patch/modern-module-resolution");
3 |
4 | module.exports = {
5 | root: true,
6 | "extends": [
7 | "plugin:vue/vue3-essential",
8 | "eslint:recommended",
9 | "@vue/eslint-config-prettier",
10 | ],
11 | parserOptions: {
12 | ecmaVersion: "latest",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
3 | }
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright © 2023 Travis Horn
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the “Software”), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue Online Store Demo
2 |
3 | Demo of an online store and shopping cart built with Vue 3.
4 |
5 | 
6 |
7 | ## Install
8 |
9 | Clone the repo
10 |
11 | ```sh
12 | git clone https://github.com/travishorn/vue-online-store-demo
13 | ```
14 |
15 | Change into the directory
16 |
17 | ```sh
18 | cd vue-online-store-demo
19 | ```
20 |
21 | Install dependencies
22 |
23 | ```sh
24 | npm install
25 | ```
26 |
27 | ## Development
28 |
29 | Run the development server
30 |
31 | ```sh
32 | npm run dev
33 | ```
34 |
35 | The store will be available at http://localhost:5173
36 |
37 | ## License
38 |
39 | The MIT License (MIT)
40 |
41 | Copyright © 2023 Travis Horn
42 |
43 | Permission is hereby granted, free of charge, to any person obtaining a copy of
44 | this software and associated documentation files (the “Software”), to deal in
45 | the Software without restriction, including without limitation the rights to
46 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
47 | the Software, and to permit persons to whom the Software is furnished to do so,
48 | subject to the following conditions:
49 |
50 | The above copyright notice and this permission notice shall be included in all
51 | copies or substantial portions of the Software.
52 |
53 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
54 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
55 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
56 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
57 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
58 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
59 |
--------------------------------------------------------------------------------
/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/demo.gif
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vue Online Store
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-online-store-demo",
3 | "version": "2.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "vue-online-store-demo",
9 | "version": "2.0.0",
10 | "dependencies": {
11 | "@heroicons/vue": "^2.0.13",
12 | "pinia": "^2.0.28",
13 | "vue": "^3.2.45",
14 | "vue-router": "^4.1.6"
15 | },
16 | "devDependencies": {
17 | "@rushstack/eslint-patch": "^1.1.4",
18 | "@vitejs/plugin-vue": "^4.0.0",
19 | "@vue/eslint-config-prettier": "^7.0.0",
20 | "autoprefixer": "^10.4.13",
21 | "eslint": "^8.22.0",
22 | "eslint-plugin-vue": "^9.3.0",
23 | "postcss": "^8.4.21",
24 | "prettier": "^2.7.1",
25 | "tailwindcss": "^3.2.4",
26 | "vite": "^4.0.0"
27 | }
28 | },
29 | "node_modules/@babel/parser": {
30 | "version": "7.20.7",
31 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
32 | "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
33 | "bin": {
34 | "parser": "bin/babel-parser.js"
35 | },
36 | "engines": {
37 | "node": ">=6.0.0"
38 | }
39 | },
40 | "node_modules/@esbuild/android-arm": {
41 | "version": "0.16.16",
42 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.16.tgz",
43 | "integrity": "sha512-BUuWMlt4WSXod1HSl7aGK8fJOsi+Tab/M0IDK1V1/GstzoOpqc/v3DqmN8MkuapPKQ9Br1WtLAN4uEgWR8x64A==",
44 | "cpu": [
45 | "arm"
46 | ],
47 | "dev": true,
48 | "optional": true,
49 | "os": [
50 | "android"
51 | ],
52 | "engines": {
53 | "node": ">=12"
54 | }
55 | },
56 | "node_modules/@esbuild/android-arm64": {
57 | "version": "0.16.16",
58 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.16.tgz",
59 | "integrity": "sha512-hFHVAzUKp9Tf8psGq+bDVv+6hTy1bAOoV/jJMUWwhUnIHsh6WbFMhw0ZTkqDuh7TdpffFoHOiIOIxmHc7oYRBQ==",
60 | "cpu": [
61 | "arm64"
62 | ],
63 | "dev": true,
64 | "optional": true,
65 | "os": [
66 | "android"
67 | ],
68 | "engines": {
69 | "node": ">=12"
70 | }
71 | },
72 | "node_modules/@esbuild/android-x64": {
73 | "version": "0.16.16",
74 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.16.tgz",
75 | "integrity": "sha512-9WhxJpeb6XumlfivldxqmkJepEcELekmSw3NkGrs+Edq6sS5KRxtUBQuKYDD7KqP59dDkxVbaoPIQFKWQG0KLg==",
76 | "cpu": [
77 | "x64"
78 | ],
79 | "dev": true,
80 | "optional": true,
81 | "os": [
82 | "android"
83 | ],
84 | "engines": {
85 | "node": ">=12"
86 | }
87 | },
88 | "node_modules/@esbuild/darwin-arm64": {
89 | "version": "0.16.16",
90 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.16.tgz",
91 | "integrity": "sha512-8Z+wld+vr/prHPi2O0X7o1zQOfMbXWGAw9hT0jEyU/l/Yrg+0Z3FO9pjPho72dVkZs4ewZk0bDOFLdZHm8jEfw==",
92 | "cpu": [
93 | "arm64"
94 | ],
95 | "dev": true,
96 | "optional": true,
97 | "os": [
98 | "darwin"
99 | ],
100 | "engines": {
101 | "node": ">=12"
102 | }
103 | },
104 | "node_modules/@esbuild/darwin-x64": {
105 | "version": "0.16.16",
106 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.16.tgz",
107 | "integrity": "sha512-CYkxVvkZzGCqFrt7EgjFxQKhlUPyDkuR9P0Y5wEcmJqVI8ncerOIY5Kej52MhZyzOBXkYrJgZeVZC9xXXoEg9A==",
108 | "cpu": [
109 | "x64"
110 | ],
111 | "dev": true,
112 | "optional": true,
113 | "os": [
114 | "darwin"
115 | ],
116 | "engines": {
117 | "node": ">=12"
118 | }
119 | },
120 | "node_modules/@esbuild/freebsd-arm64": {
121 | "version": "0.16.16",
122 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.16.tgz",
123 | "integrity": "sha512-fxrw4BYqQ39z/3Ja9xj/a1gMsVq0xEjhSyI4a9MjfvDDD8fUV8IYliac96i7tzZc3+VytyXX+XNsnpEk5sw5Wg==",
124 | "cpu": [
125 | "arm64"
126 | ],
127 | "dev": true,
128 | "optional": true,
129 | "os": [
130 | "freebsd"
131 | ],
132 | "engines": {
133 | "node": ">=12"
134 | }
135 | },
136 | "node_modules/@esbuild/freebsd-x64": {
137 | "version": "0.16.16",
138 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.16.tgz",
139 | "integrity": "sha512-8p3v1D+du2jiDvSoNVimHhj7leSfST9YlKsAEO7etBfuqjaBMndo0fmjNLp0JCMld+XIx9L80tooOkyUv1a1PQ==",
140 | "cpu": [
141 | "x64"
142 | ],
143 | "dev": true,
144 | "optional": true,
145 | "os": [
146 | "freebsd"
147 | ],
148 | "engines": {
149 | "node": ">=12"
150 | }
151 | },
152 | "node_modules/@esbuild/linux-arm": {
153 | "version": "0.16.16",
154 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.16.tgz",
155 | "integrity": "sha512-bYaocE1/PTMRmkgSckZ0D0Xn2nox8v2qlk+MVVqm+VECNKDdZvghVZtH41dNtBbwADSvA6qkCHGYeWm9LrNCBw==",
156 | "cpu": [
157 | "arm"
158 | ],
159 | "dev": true,
160 | "optional": true,
161 | "os": [
162 | "linux"
163 | ],
164 | "engines": {
165 | "node": ">=12"
166 | }
167 | },
168 | "node_modules/@esbuild/linux-arm64": {
169 | "version": "0.16.16",
170 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.16.tgz",
171 | "integrity": "sha512-N3u6BBbCVY3xeP2D8Db7QY8I+nZ+2AgOopUIqk+5yCoLnsWkcVxD2ay5E9iIdvApFi1Vg1lZiiwaVp8bOpAc4A==",
172 | "cpu": [
173 | "arm64"
174 | ],
175 | "dev": true,
176 | "optional": true,
177 | "os": [
178 | "linux"
179 | ],
180 | "engines": {
181 | "node": ">=12"
182 | }
183 | },
184 | "node_modules/@esbuild/linux-ia32": {
185 | "version": "0.16.16",
186 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.16.tgz",
187 | "integrity": "sha512-dxjqLKUW8GqGemoRT9v8IgHk+T4tRm1rn1gUcArsp26W9EkK/27VSjBVUXhEG5NInHZ92JaQ3SSMdTwv/r9a2A==",
188 | "cpu": [
189 | "ia32"
190 | ],
191 | "dev": true,
192 | "optional": true,
193 | "os": [
194 | "linux"
195 | ],
196 | "engines": {
197 | "node": ">=12"
198 | }
199 | },
200 | "node_modules/@esbuild/linux-loong64": {
201 | "version": "0.16.16",
202 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.16.tgz",
203 | "integrity": "sha512-MdUFggHjRiCCwNE9+1AibewoNq6wf94GLB9Q9aXwl+a75UlRmbRK3h6WJyrSGA6ZstDJgaD2wiTSP7tQNUYxwA==",
204 | "cpu": [
205 | "loong64"
206 | ],
207 | "dev": true,
208 | "optional": true,
209 | "os": [
210 | "linux"
211 | ],
212 | "engines": {
213 | "node": ">=12"
214 | }
215 | },
216 | "node_modules/@esbuild/linux-mips64el": {
217 | "version": "0.16.16",
218 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.16.tgz",
219 | "integrity": "sha512-CO3YmO7jYMlGqGoeFeKzdwx/bx8Vtq/SZaMAi+ZLDUnDUdfC7GmGwXzIwDJ70Sg+P9pAemjJyJ1icKJ9R3q/Fg==",
220 | "cpu": [
221 | "mips64el"
222 | ],
223 | "dev": true,
224 | "optional": true,
225 | "os": [
226 | "linux"
227 | ],
228 | "engines": {
229 | "node": ">=12"
230 | }
231 | },
232 | "node_modules/@esbuild/linux-ppc64": {
233 | "version": "0.16.16",
234 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.16.tgz",
235 | "integrity": "sha512-DSl5Czh5hCy/7azX0Wl9IdzPHX2H8clC6G87tBnZnzUpNgRxPFhfmArbaHoAysu4JfqCqbB/33u/GL9dUgCBAw==",
236 | "cpu": [
237 | "ppc64"
238 | ],
239 | "dev": true,
240 | "optional": true,
241 | "os": [
242 | "linux"
243 | ],
244 | "engines": {
245 | "node": ">=12"
246 | }
247 | },
248 | "node_modules/@esbuild/linux-riscv64": {
249 | "version": "0.16.16",
250 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.16.tgz",
251 | "integrity": "sha512-sSVVMEXsqf1fQu0j7kkhXMViroixU5XoaJXl1u/u+jbXvvhhCt9YvA/B6VM3aM/77HuRQ94neS5bcisijGnKFQ==",
252 | "cpu": [
253 | "riscv64"
254 | ],
255 | "dev": true,
256 | "optional": true,
257 | "os": [
258 | "linux"
259 | ],
260 | "engines": {
261 | "node": ">=12"
262 | }
263 | },
264 | "node_modules/@esbuild/linux-s390x": {
265 | "version": "0.16.16",
266 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.16.tgz",
267 | "integrity": "sha512-jRqBCre9gZGoCdCN/UWCCMwCMsOg65IpY9Pyj56mKCF5zXy9d60kkNRdDN6YXGjr3rzcC4DXnS/kQVCGcC4yPQ==",
268 | "cpu": [
269 | "s390x"
270 | ],
271 | "dev": true,
272 | "optional": true,
273 | "os": [
274 | "linux"
275 | ],
276 | "engines": {
277 | "node": ">=12"
278 | }
279 | },
280 | "node_modules/@esbuild/linux-x64": {
281 | "version": "0.16.16",
282 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.16.tgz",
283 | "integrity": "sha512-G1+09TopOzo59/55lk5Q0UokghYLyHTKKzD5lXsAOOlGDbieGEFJpJBr3BLDbf7cz89KX04sBeExAR/pL/26sA==",
284 | "cpu": [
285 | "x64"
286 | ],
287 | "dev": true,
288 | "optional": true,
289 | "os": [
290 | "linux"
291 | ],
292 | "engines": {
293 | "node": ">=12"
294 | }
295 | },
296 | "node_modules/@esbuild/netbsd-x64": {
297 | "version": "0.16.16",
298 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.16.tgz",
299 | "integrity": "sha512-xwjGJB5wwDEujLaJIrSMRqWkbigALpBNcsF9SqszoNKc+wY4kPTdKrSxiY5ik3IatojePP+WV108MvF6q6np4w==",
300 | "cpu": [
301 | "x64"
302 | ],
303 | "dev": true,
304 | "optional": true,
305 | "os": [
306 | "netbsd"
307 | ],
308 | "engines": {
309 | "node": ">=12"
310 | }
311 | },
312 | "node_modules/@esbuild/openbsd-x64": {
313 | "version": "0.16.16",
314 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.16.tgz",
315 | "integrity": "sha512-yeERkoxG2nR2oxO5n+Ms7MsCeNk23zrby2GXCqnfCpPp7KNc0vxaaacIxb21wPMfXXRhGBrNP4YLIupUBrWdlg==",
316 | "cpu": [
317 | "x64"
318 | ],
319 | "dev": true,
320 | "optional": true,
321 | "os": [
322 | "openbsd"
323 | ],
324 | "engines": {
325 | "node": ">=12"
326 | }
327 | },
328 | "node_modules/@esbuild/sunos-x64": {
329 | "version": "0.16.16",
330 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.16.tgz",
331 | "integrity": "sha512-nHfbEym0IObXPhtX6Va3H5GaKBty2kdhlAhKmyCj9u255ktAj0b1YACUs9j5H88NRn9cJCthD1Ik/k9wn8YKVg==",
332 | "cpu": [
333 | "x64"
334 | ],
335 | "dev": true,
336 | "optional": true,
337 | "os": [
338 | "sunos"
339 | ],
340 | "engines": {
341 | "node": ">=12"
342 | }
343 | },
344 | "node_modules/@esbuild/win32-arm64": {
345 | "version": "0.16.16",
346 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.16.tgz",
347 | "integrity": "sha512-pdD+M1ZOFy4hE15ZyPX09fd5g4DqbbL1wXGY90YmleVS6Y5YlraW4BvHjim/X/4yuCpTsAFvsT4Nca2lbyDH/A==",
348 | "cpu": [
349 | "arm64"
350 | ],
351 | "dev": true,
352 | "optional": true,
353 | "os": [
354 | "win32"
355 | ],
356 | "engines": {
357 | "node": ">=12"
358 | }
359 | },
360 | "node_modules/@esbuild/win32-ia32": {
361 | "version": "0.16.16",
362 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.16.tgz",
363 | "integrity": "sha512-IPEMfU9p0c3Vb8PqxaPX6BM9rYwlTZGYOf9u+kMdhoILZkVKEjq6PKZO0lB+isojWwAnAqh4ZxshD96njTXajg==",
364 | "cpu": [
365 | "ia32"
366 | ],
367 | "dev": true,
368 | "optional": true,
369 | "os": [
370 | "win32"
371 | ],
372 | "engines": {
373 | "node": ">=12"
374 | }
375 | },
376 | "node_modules/@esbuild/win32-x64": {
377 | "version": "0.16.16",
378 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.16.tgz",
379 | "integrity": "sha512-1YYpoJ39WV/2bnShPwgdzJklc+XS0bysN6Tpnt1cWPdeoKOG4RMEY1g7i534QxXX/rPvNx/NLJQTTCeORYzipg==",
380 | "cpu": [
381 | "x64"
382 | ],
383 | "dev": true,
384 | "optional": true,
385 | "os": [
386 | "win32"
387 | ],
388 | "engines": {
389 | "node": ">=12"
390 | }
391 | },
392 | "node_modules/@eslint/eslintrc": {
393 | "version": "1.4.1",
394 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
395 | "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
396 | "dev": true,
397 | "dependencies": {
398 | "ajv": "^6.12.4",
399 | "debug": "^4.3.2",
400 | "espree": "^9.4.0",
401 | "globals": "^13.19.0",
402 | "ignore": "^5.2.0",
403 | "import-fresh": "^3.2.1",
404 | "js-yaml": "^4.1.0",
405 | "minimatch": "^3.1.2",
406 | "strip-json-comments": "^3.1.1"
407 | },
408 | "engines": {
409 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
410 | },
411 | "funding": {
412 | "url": "https://opencollective.com/eslint"
413 | }
414 | },
415 | "node_modules/@heroicons/vue": {
416 | "version": "2.0.13",
417 | "resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-2.0.13.tgz",
418 | "integrity": "sha512-vVCVF02+rNKXEmanVNnmktJlxCbOn0qVFP1gfZPn4bcBIwPX3h9AVHGCkwly+IWDEME8w5oooG0KRd2hhSe/HQ==",
419 | "peerDependencies": {
420 | "vue": ">= 3"
421 | }
422 | },
423 | "node_modules/@humanwhocodes/config-array": {
424 | "version": "0.11.8",
425 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
426 | "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
427 | "dev": true,
428 | "dependencies": {
429 | "@humanwhocodes/object-schema": "^1.2.1",
430 | "debug": "^4.1.1",
431 | "minimatch": "^3.0.5"
432 | },
433 | "engines": {
434 | "node": ">=10.10.0"
435 | }
436 | },
437 | "node_modules/@humanwhocodes/module-importer": {
438 | "version": "1.0.1",
439 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
440 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
441 | "dev": true,
442 | "engines": {
443 | "node": ">=12.22"
444 | },
445 | "funding": {
446 | "type": "github",
447 | "url": "https://github.com/sponsors/nzakas"
448 | }
449 | },
450 | "node_modules/@humanwhocodes/object-schema": {
451 | "version": "1.2.1",
452 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
453 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
454 | "dev": true
455 | },
456 | "node_modules/@nodelib/fs.scandir": {
457 | "version": "2.1.5",
458 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
459 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
460 | "dev": true,
461 | "dependencies": {
462 | "@nodelib/fs.stat": "2.0.5",
463 | "run-parallel": "^1.1.9"
464 | },
465 | "engines": {
466 | "node": ">= 8"
467 | }
468 | },
469 | "node_modules/@nodelib/fs.stat": {
470 | "version": "2.0.5",
471 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
472 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
473 | "dev": true,
474 | "engines": {
475 | "node": ">= 8"
476 | }
477 | },
478 | "node_modules/@nodelib/fs.walk": {
479 | "version": "1.2.8",
480 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
481 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
482 | "dev": true,
483 | "dependencies": {
484 | "@nodelib/fs.scandir": "2.1.5",
485 | "fastq": "^1.6.0"
486 | },
487 | "engines": {
488 | "node": ">= 8"
489 | }
490 | },
491 | "node_modules/@rushstack/eslint-patch": {
492 | "version": "1.2.0",
493 | "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
494 | "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==",
495 | "dev": true
496 | },
497 | "node_modules/@vitejs/plugin-vue": {
498 | "version": "4.0.0",
499 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz",
500 | "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==",
501 | "dev": true,
502 | "engines": {
503 | "node": "^14.18.0 || >=16.0.0"
504 | },
505 | "peerDependencies": {
506 | "vite": "^4.0.0",
507 | "vue": "^3.2.25"
508 | }
509 | },
510 | "node_modules/@vue/compiler-core": {
511 | "version": "3.2.45",
512 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
513 | "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
514 | "dependencies": {
515 | "@babel/parser": "^7.16.4",
516 | "@vue/shared": "3.2.45",
517 | "estree-walker": "^2.0.2",
518 | "source-map": "^0.6.1"
519 | }
520 | },
521 | "node_modules/@vue/compiler-dom": {
522 | "version": "3.2.45",
523 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
524 | "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
525 | "dependencies": {
526 | "@vue/compiler-core": "3.2.45",
527 | "@vue/shared": "3.2.45"
528 | }
529 | },
530 | "node_modules/@vue/compiler-sfc": {
531 | "version": "3.2.45",
532 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
533 | "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
534 | "dependencies": {
535 | "@babel/parser": "^7.16.4",
536 | "@vue/compiler-core": "3.2.45",
537 | "@vue/compiler-dom": "3.2.45",
538 | "@vue/compiler-ssr": "3.2.45",
539 | "@vue/reactivity-transform": "3.2.45",
540 | "@vue/shared": "3.2.45",
541 | "estree-walker": "^2.0.2",
542 | "magic-string": "^0.25.7",
543 | "postcss": "^8.1.10",
544 | "source-map": "^0.6.1"
545 | }
546 | },
547 | "node_modules/@vue/compiler-ssr": {
548 | "version": "3.2.45",
549 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
550 | "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
551 | "dependencies": {
552 | "@vue/compiler-dom": "3.2.45",
553 | "@vue/shared": "3.2.45"
554 | }
555 | },
556 | "node_modules/@vue/devtools-api": {
557 | "version": "6.4.5",
558 | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz",
559 | "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ=="
560 | },
561 | "node_modules/@vue/eslint-config-prettier": {
562 | "version": "7.0.0",
563 | "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz",
564 | "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==",
565 | "dev": true,
566 | "dependencies": {
567 | "eslint-config-prettier": "^8.3.0",
568 | "eslint-plugin-prettier": "^4.0.0"
569 | },
570 | "peerDependencies": {
571 | "eslint": ">= 7.28.0",
572 | "prettier": ">= 2.0.0"
573 | }
574 | },
575 | "node_modules/@vue/reactivity": {
576 | "version": "3.2.45",
577 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz",
578 | "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==",
579 | "dependencies": {
580 | "@vue/shared": "3.2.45"
581 | }
582 | },
583 | "node_modules/@vue/reactivity-transform": {
584 | "version": "3.2.45",
585 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
586 | "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
587 | "dependencies": {
588 | "@babel/parser": "^7.16.4",
589 | "@vue/compiler-core": "3.2.45",
590 | "@vue/shared": "3.2.45",
591 | "estree-walker": "^2.0.2",
592 | "magic-string": "^0.25.7"
593 | }
594 | },
595 | "node_modules/@vue/runtime-core": {
596 | "version": "3.2.45",
597 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz",
598 | "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==",
599 | "dependencies": {
600 | "@vue/reactivity": "3.2.45",
601 | "@vue/shared": "3.2.45"
602 | }
603 | },
604 | "node_modules/@vue/runtime-dom": {
605 | "version": "3.2.45",
606 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz",
607 | "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==",
608 | "dependencies": {
609 | "@vue/runtime-core": "3.2.45",
610 | "@vue/shared": "3.2.45",
611 | "csstype": "^2.6.8"
612 | }
613 | },
614 | "node_modules/@vue/server-renderer": {
615 | "version": "3.2.45",
616 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz",
617 | "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==",
618 | "dependencies": {
619 | "@vue/compiler-ssr": "3.2.45",
620 | "@vue/shared": "3.2.45"
621 | },
622 | "peerDependencies": {
623 | "vue": "3.2.45"
624 | }
625 | },
626 | "node_modules/@vue/shared": {
627 | "version": "3.2.45",
628 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz",
629 | "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg=="
630 | },
631 | "node_modules/acorn": {
632 | "version": "8.8.1",
633 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
634 | "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
635 | "dev": true,
636 | "bin": {
637 | "acorn": "bin/acorn"
638 | },
639 | "engines": {
640 | "node": ">=0.4.0"
641 | }
642 | },
643 | "node_modules/acorn-jsx": {
644 | "version": "5.3.2",
645 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
646 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
647 | "dev": true,
648 | "peerDependencies": {
649 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
650 | }
651 | },
652 | "node_modules/acorn-node": {
653 | "version": "1.8.2",
654 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
655 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
656 | "dev": true,
657 | "dependencies": {
658 | "acorn": "^7.0.0",
659 | "acorn-walk": "^7.0.0",
660 | "xtend": "^4.0.2"
661 | }
662 | },
663 | "node_modules/acorn-node/node_modules/acorn": {
664 | "version": "7.4.1",
665 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
666 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
667 | "dev": true,
668 | "bin": {
669 | "acorn": "bin/acorn"
670 | },
671 | "engines": {
672 | "node": ">=0.4.0"
673 | }
674 | },
675 | "node_modules/acorn-walk": {
676 | "version": "7.2.0",
677 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
678 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
679 | "dev": true,
680 | "engines": {
681 | "node": ">=0.4.0"
682 | }
683 | },
684 | "node_modules/ajv": {
685 | "version": "6.12.6",
686 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
687 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
688 | "dev": true,
689 | "dependencies": {
690 | "fast-deep-equal": "^3.1.1",
691 | "fast-json-stable-stringify": "^2.0.0",
692 | "json-schema-traverse": "^0.4.1",
693 | "uri-js": "^4.2.2"
694 | },
695 | "funding": {
696 | "type": "github",
697 | "url": "https://github.com/sponsors/epoberezkin"
698 | }
699 | },
700 | "node_modules/ansi-regex": {
701 | "version": "5.0.1",
702 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
703 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
704 | "dev": true,
705 | "engines": {
706 | "node": ">=8"
707 | }
708 | },
709 | "node_modules/ansi-styles": {
710 | "version": "4.3.0",
711 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
712 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
713 | "dev": true,
714 | "dependencies": {
715 | "color-convert": "^2.0.1"
716 | },
717 | "engines": {
718 | "node": ">=8"
719 | },
720 | "funding": {
721 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
722 | }
723 | },
724 | "node_modules/anymatch": {
725 | "version": "3.1.3",
726 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
727 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
728 | "dev": true,
729 | "dependencies": {
730 | "normalize-path": "^3.0.0",
731 | "picomatch": "^2.0.4"
732 | },
733 | "engines": {
734 | "node": ">= 8"
735 | }
736 | },
737 | "node_modules/arg": {
738 | "version": "5.0.2",
739 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
740 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
741 | "dev": true
742 | },
743 | "node_modules/argparse": {
744 | "version": "2.0.1",
745 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
746 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
747 | "dev": true
748 | },
749 | "node_modules/autoprefixer": {
750 | "version": "10.4.13",
751 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
752 | "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
753 | "dev": true,
754 | "funding": [
755 | {
756 | "type": "opencollective",
757 | "url": "https://opencollective.com/postcss/"
758 | },
759 | {
760 | "type": "tidelift",
761 | "url": "https://tidelift.com/funding/github/npm/autoprefixer"
762 | }
763 | ],
764 | "dependencies": {
765 | "browserslist": "^4.21.4",
766 | "caniuse-lite": "^1.0.30001426",
767 | "fraction.js": "^4.2.0",
768 | "normalize-range": "^0.1.2",
769 | "picocolors": "^1.0.0",
770 | "postcss-value-parser": "^4.2.0"
771 | },
772 | "bin": {
773 | "autoprefixer": "bin/autoprefixer"
774 | },
775 | "engines": {
776 | "node": "^10 || ^12 || >=14"
777 | },
778 | "peerDependencies": {
779 | "postcss": "^8.1.0"
780 | }
781 | },
782 | "node_modules/balanced-match": {
783 | "version": "1.0.2",
784 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
785 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
786 | "dev": true
787 | },
788 | "node_modules/binary-extensions": {
789 | "version": "2.2.0",
790 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
791 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
792 | "dev": true,
793 | "engines": {
794 | "node": ">=8"
795 | }
796 | },
797 | "node_modules/boolbase": {
798 | "version": "1.0.0",
799 | "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
800 | "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
801 | "dev": true
802 | },
803 | "node_modules/brace-expansion": {
804 | "version": "1.1.11",
805 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
806 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
807 | "dev": true,
808 | "dependencies": {
809 | "balanced-match": "^1.0.0",
810 | "concat-map": "0.0.1"
811 | }
812 | },
813 | "node_modules/braces": {
814 | "version": "3.0.2",
815 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
816 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
817 | "dev": true,
818 | "dependencies": {
819 | "fill-range": "^7.0.1"
820 | },
821 | "engines": {
822 | "node": ">=8"
823 | }
824 | },
825 | "node_modules/browserslist": {
826 | "version": "4.21.4",
827 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
828 | "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
829 | "dev": true,
830 | "funding": [
831 | {
832 | "type": "opencollective",
833 | "url": "https://opencollective.com/browserslist"
834 | },
835 | {
836 | "type": "tidelift",
837 | "url": "https://tidelift.com/funding/github/npm/browserslist"
838 | }
839 | ],
840 | "dependencies": {
841 | "caniuse-lite": "^1.0.30001400",
842 | "electron-to-chromium": "^1.4.251",
843 | "node-releases": "^2.0.6",
844 | "update-browserslist-db": "^1.0.9"
845 | },
846 | "bin": {
847 | "browserslist": "cli.js"
848 | },
849 | "engines": {
850 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
851 | }
852 | },
853 | "node_modules/callsites": {
854 | "version": "3.1.0",
855 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
856 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
857 | "dev": true,
858 | "engines": {
859 | "node": ">=6"
860 | }
861 | },
862 | "node_modules/camelcase-css": {
863 | "version": "2.0.1",
864 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
865 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
866 | "dev": true,
867 | "engines": {
868 | "node": ">= 6"
869 | }
870 | },
871 | "node_modules/caniuse-lite": {
872 | "version": "1.0.30001442",
873 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz",
874 | "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==",
875 | "dev": true,
876 | "funding": [
877 | {
878 | "type": "opencollective",
879 | "url": "https://opencollective.com/browserslist"
880 | },
881 | {
882 | "type": "tidelift",
883 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
884 | }
885 | ]
886 | },
887 | "node_modules/chalk": {
888 | "version": "4.1.2",
889 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
890 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
891 | "dev": true,
892 | "dependencies": {
893 | "ansi-styles": "^4.1.0",
894 | "supports-color": "^7.1.0"
895 | },
896 | "engines": {
897 | "node": ">=10"
898 | },
899 | "funding": {
900 | "url": "https://github.com/chalk/chalk?sponsor=1"
901 | }
902 | },
903 | "node_modules/chokidar": {
904 | "version": "3.5.3",
905 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
906 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
907 | "dev": true,
908 | "funding": [
909 | {
910 | "type": "individual",
911 | "url": "https://paulmillr.com/funding/"
912 | }
913 | ],
914 | "dependencies": {
915 | "anymatch": "~3.1.2",
916 | "braces": "~3.0.2",
917 | "glob-parent": "~5.1.2",
918 | "is-binary-path": "~2.1.0",
919 | "is-glob": "~4.0.1",
920 | "normalize-path": "~3.0.0",
921 | "readdirp": "~3.6.0"
922 | },
923 | "engines": {
924 | "node": ">= 8.10.0"
925 | },
926 | "optionalDependencies": {
927 | "fsevents": "~2.3.2"
928 | }
929 | },
930 | "node_modules/chokidar/node_modules/glob-parent": {
931 | "version": "5.1.2",
932 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
933 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
934 | "dev": true,
935 | "dependencies": {
936 | "is-glob": "^4.0.1"
937 | },
938 | "engines": {
939 | "node": ">= 6"
940 | }
941 | },
942 | "node_modules/color-convert": {
943 | "version": "2.0.1",
944 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
945 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
946 | "dev": true,
947 | "dependencies": {
948 | "color-name": "~1.1.4"
949 | },
950 | "engines": {
951 | "node": ">=7.0.0"
952 | }
953 | },
954 | "node_modules/color-name": {
955 | "version": "1.1.4",
956 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
957 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
958 | "dev": true
959 | },
960 | "node_modules/concat-map": {
961 | "version": "0.0.1",
962 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
963 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
964 | "dev": true
965 | },
966 | "node_modules/cross-spawn": {
967 | "version": "7.0.3",
968 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
969 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
970 | "dev": true,
971 | "dependencies": {
972 | "path-key": "^3.1.0",
973 | "shebang-command": "^2.0.0",
974 | "which": "^2.0.1"
975 | },
976 | "engines": {
977 | "node": ">= 8"
978 | }
979 | },
980 | "node_modules/cssesc": {
981 | "version": "3.0.0",
982 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
983 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
984 | "dev": true,
985 | "bin": {
986 | "cssesc": "bin/cssesc"
987 | },
988 | "engines": {
989 | "node": ">=4"
990 | }
991 | },
992 | "node_modules/csstype": {
993 | "version": "2.6.21",
994 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
995 | "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
996 | },
997 | "node_modules/debug": {
998 | "version": "4.3.4",
999 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1000 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1001 | "dev": true,
1002 | "dependencies": {
1003 | "ms": "2.1.2"
1004 | },
1005 | "engines": {
1006 | "node": ">=6.0"
1007 | },
1008 | "peerDependenciesMeta": {
1009 | "supports-color": {
1010 | "optional": true
1011 | }
1012 | }
1013 | },
1014 | "node_modules/deep-is": {
1015 | "version": "0.1.4",
1016 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1017 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
1018 | "dev": true
1019 | },
1020 | "node_modules/defined": {
1021 | "version": "1.0.1",
1022 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
1023 | "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
1024 | "dev": true,
1025 | "funding": {
1026 | "url": "https://github.com/sponsors/ljharb"
1027 | }
1028 | },
1029 | "node_modules/detective": {
1030 | "version": "5.2.1",
1031 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
1032 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
1033 | "dev": true,
1034 | "dependencies": {
1035 | "acorn-node": "^1.8.2",
1036 | "defined": "^1.0.0",
1037 | "minimist": "^1.2.6"
1038 | },
1039 | "bin": {
1040 | "detective": "bin/detective.js"
1041 | },
1042 | "engines": {
1043 | "node": ">=0.8.0"
1044 | }
1045 | },
1046 | "node_modules/didyoumean": {
1047 | "version": "1.2.2",
1048 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
1049 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
1050 | "dev": true
1051 | },
1052 | "node_modules/dlv": {
1053 | "version": "1.1.3",
1054 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
1055 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
1056 | "dev": true
1057 | },
1058 | "node_modules/doctrine": {
1059 | "version": "3.0.0",
1060 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1061 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1062 | "dev": true,
1063 | "dependencies": {
1064 | "esutils": "^2.0.2"
1065 | },
1066 | "engines": {
1067 | "node": ">=6.0.0"
1068 | }
1069 | },
1070 | "node_modules/electron-to-chromium": {
1071 | "version": "1.4.284",
1072 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
1073 | "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
1074 | "dev": true
1075 | },
1076 | "node_modules/esbuild": {
1077 | "version": "0.16.16",
1078 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.16.tgz",
1079 | "integrity": "sha512-24JyKq10KXM5EBIgPotYIJ2fInNWVVqflv3gicIyQqfmUqi4HvDW1VR790cBgLJHCl96Syy7lhoz7tLFcmuRmg==",
1080 | "dev": true,
1081 | "hasInstallScript": true,
1082 | "bin": {
1083 | "esbuild": "bin/esbuild"
1084 | },
1085 | "engines": {
1086 | "node": ">=12"
1087 | },
1088 | "optionalDependencies": {
1089 | "@esbuild/android-arm": "0.16.16",
1090 | "@esbuild/android-arm64": "0.16.16",
1091 | "@esbuild/android-x64": "0.16.16",
1092 | "@esbuild/darwin-arm64": "0.16.16",
1093 | "@esbuild/darwin-x64": "0.16.16",
1094 | "@esbuild/freebsd-arm64": "0.16.16",
1095 | "@esbuild/freebsd-x64": "0.16.16",
1096 | "@esbuild/linux-arm": "0.16.16",
1097 | "@esbuild/linux-arm64": "0.16.16",
1098 | "@esbuild/linux-ia32": "0.16.16",
1099 | "@esbuild/linux-loong64": "0.16.16",
1100 | "@esbuild/linux-mips64el": "0.16.16",
1101 | "@esbuild/linux-ppc64": "0.16.16",
1102 | "@esbuild/linux-riscv64": "0.16.16",
1103 | "@esbuild/linux-s390x": "0.16.16",
1104 | "@esbuild/linux-x64": "0.16.16",
1105 | "@esbuild/netbsd-x64": "0.16.16",
1106 | "@esbuild/openbsd-x64": "0.16.16",
1107 | "@esbuild/sunos-x64": "0.16.16",
1108 | "@esbuild/win32-arm64": "0.16.16",
1109 | "@esbuild/win32-ia32": "0.16.16",
1110 | "@esbuild/win32-x64": "0.16.16"
1111 | }
1112 | },
1113 | "node_modules/escalade": {
1114 | "version": "3.1.1",
1115 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1116 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1117 | "dev": true,
1118 | "engines": {
1119 | "node": ">=6"
1120 | }
1121 | },
1122 | "node_modules/escape-string-regexp": {
1123 | "version": "4.0.0",
1124 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1125 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1126 | "dev": true,
1127 | "engines": {
1128 | "node": ">=10"
1129 | },
1130 | "funding": {
1131 | "url": "https://github.com/sponsors/sindresorhus"
1132 | }
1133 | },
1134 | "node_modules/eslint": {
1135 | "version": "8.31.0",
1136 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
1137 | "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
1138 | "dev": true,
1139 | "dependencies": {
1140 | "@eslint/eslintrc": "^1.4.1",
1141 | "@humanwhocodes/config-array": "^0.11.8",
1142 | "@humanwhocodes/module-importer": "^1.0.1",
1143 | "@nodelib/fs.walk": "^1.2.8",
1144 | "ajv": "^6.10.0",
1145 | "chalk": "^4.0.0",
1146 | "cross-spawn": "^7.0.2",
1147 | "debug": "^4.3.2",
1148 | "doctrine": "^3.0.0",
1149 | "escape-string-regexp": "^4.0.0",
1150 | "eslint-scope": "^7.1.1",
1151 | "eslint-utils": "^3.0.0",
1152 | "eslint-visitor-keys": "^3.3.0",
1153 | "espree": "^9.4.0",
1154 | "esquery": "^1.4.0",
1155 | "esutils": "^2.0.2",
1156 | "fast-deep-equal": "^3.1.3",
1157 | "file-entry-cache": "^6.0.1",
1158 | "find-up": "^5.0.0",
1159 | "glob-parent": "^6.0.2",
1160 | "globals": "^13.19.0",
1161 | "grapheme-splitter": "^1.0.4",
1162 | "ignore": "^5.2.0",
1163 | "import-fresh": "^3.0.0",
1164 | "imurmurhash": "^0.1.4",
1165 | "is-glob": "^4.0.0",
1166 | "is-path-inside": "^3.0.3",
1167 | "js-sdsl": "^4.1.4",
1168 | "js-yaml": "^4.1.0",
1169 | "json-stable-stringify-without-jsonify": "^1.0.1",
1170 | "levn": "^0.4.1",
1171 | "lodash.merge": "^4.6.2",
1172 | "minimatch": "^3.1.2",
1173 | "natural-compare": "^1.4.0",
1174 | "optionator": "^0.9.1",
1175 | "regexpp": "^3.2.0",
1176 | "strip-ansi": "^6.0.1",
1177 | "strip-json-comments": "^3.1.0",
1178 | "text-table": "^0.2.0"
1179 | },
1180 | "bin": {
1181 | "eslint": "bin/eslint.js"
1182 | },
1183 | "engines": {
1184 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1185 | },
1186 | "funding": {
1187 | "url": "https://opencollective.com/eslint"
1188 | }
1189 | },
1190 | "node_modules/eslint-config-prettier": {
1191 | "version": "8.6.0",
1192 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
1193 | "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
1194 | "dev": true,
1195 | "bin": {
1196 | "eslint-config-prettier": "bin/cli.js"
1197 | },
1198 | "peerDependencies": {
1199 | "eslint": ">=7.0.0"
1200 | }
1201 | },
1202 | "node_modules/eslint-plugin-prettier": {
1203 | "version": "4.2.1",
1204 | "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
1205 | "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
1206 | "dev": true,
1207 | "dependencies": {
1208 | "prettier-linter-helpers": "^1.0.0"
1209 | },
1210 | "engines": {
1211 | "node": ">=12.0.0"
1212 | },
1213 | "peerDependencies": {
1214 | "eslint": ">=7.28.0",
1215 | "prettier": ">=2.0.0"
1216 | },
1217 | "peerDependenciesMeta": {
1218 | "eslint-config-prettier": {
1219 | "optional": true
1220 | }
1221 | }
1222 | },
1223 | "node_modules/eslint-plugin-vue": {
1224 | "version": "9.8.0",
1225 | "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.8.0.tgz",
1226 | "integrity": "sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==",
1227 | "dev": true,
1228 | "dependencies": {
1229 | "eslint-utils": "^3.0.0",
1230 | "natural-compare": "^1.4.0",
1231 | "nth-check": "^2.0.1",
1232 | "postcss-selector-parser": "^6.0.9",
1233 | "semver": "^7.3.5",
1234 | "vue-eslint-parser": "^9.0.1",
1235 | "xml-name-validator": "^4.0.0"
1236 | },
1237 | "engines": {
1238 | "node": "^14.17.0 || >=16.0.0"
1239 | },
1240 | "peerDependencies": {
1241 | "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
1242 | }
1243 | },
1244 | "node_modules/eslint-scope": {
1245 | "version": "7.1.1",
1246 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
1247 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
1248 | "dev": true,
1249 | "dependencies": {
1250 | "esrecurse": "^4.3.0",
1251 | "estraverse": "^5.2.0"
1252 | },
1253 | "engines": {
1254 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1255 | }
1256 | },
1257 | "node_modules/eslint-utils": {
1258 | "version": "3.0.0",
1259 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
1260 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
1261 | "dev": true,
1262 | "dependencies": {
1263 | "eslint-visitor-keys": "^2.0.0"
1264 | },
1265 | "engines": {
1266 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
1267 | },
1268 | "funding": {
1269 | "url": "https://github.com/sponsors/mysticatea"
1270 | },
1271 | "peerDependencies": {
1272 | "eslint": ">=5"
1273 | }
1274 | },
1275 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
1276 | "version": "2.1.0",
1277 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
1278 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
1279 | "dev": true,
1280 | "engines": {
1281 | "node": ">=10"
1282 | }
1283 | },
1284 | "node_modules/eslint-visitor-keys": {
1285 | "version": "3.3.0",
1286 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
1287 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
1288 | "dev": true,
1289 | "engines": {
1290 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1291 | }
1292 | },
1293 | "node_modules/espree": {
1294 | "version": "9.4.1",
1295 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
1296 | "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
1297 | "dev": true,
1298 | "dependencies": {
1299 | "acorn": "^8.8.0",
1300 | "acorn-jsx": "^5.3.2",
1301 | "eslint-visitor-keys": "^3.3.0"
1302 | },
1303 | "engines": {
1304 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1305 | },
1306 | "funding": {
1307 | "url": "https://opencollective.com/eslint"
1308 | }
1309 | },
1310 | "node_modules/esquery": {
1311 | "version": "1.4.0",
1312 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
1313 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
1314 | "dev": true,
1315 | "dependencies": {
1316 | "estraverse": "^5.1.0"
1317 | },
1318 | "engines": {
1319 | "node": ">=0.10"
1320 | }
1321 | },
1322 | "node_modules/esrecurse": {
1323 | "version": "4.3.0",
1324 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1325 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1326 | "dev": true,
1327 | "dependencies": {
1328 | "estraverse": "^5.2.0"
1329 | },
1330 | "engines": {
1331 | "node": ">=4.0"
1332 | }
1333 | },
1334 | "node_modules/estraverse": {
1335 | "version": "5.3.0",
1336 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1337 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1338 | "dev": true,
1339 | "engines": {
1340 | "node": ">=4.0"
1341 | }
1342 | },
1343 | "node_modules/estree-walker": {
1344 | "version": "2.0.2",
1345 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1346 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1347 | },
1348 | "node_modules/esutils": {
1349 | "version": "2.0.3",
1350 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1351 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1352 | "dev": true,
1353 | "engines": {
1354 | "node": ">=0.10.0"
1355 | }
1356 | },
1357 | "node_modules/fast-deep-equal": {
1358 | "version": "3.1.3",
1359 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1360 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1361 | "dev": true
1362 | },
1363 | "node_modules/fast-diff": {
1364 | "version": "1.2.0",
1365 | "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
1366 | "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
1367 | "dev": true
1368 | },
1369 | "node_modules/fast-glob": {
1370 | "version": "3.2.12",
1371 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
1372 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
1373 | "dev": true,
1374 | "dependencies": {
1375 | "@nodelib/fs.stat": "^2.0.2",
1376 | "@nodelib/fs.walk": "^1.2.3",
1377 | "glob-parent": "^5.1.2",
1378 | "merge2": "^1.3.0",
1379 | "micromatch": "^4.0.4"
1380 | },
1381 | "engines": {
1382 | "node": ">=8.6.0"
1383 | }
1384 | },
1385 | "node_modules/fast-glob/node_modules/glob-parent": {
1386 | "version": "5.1.2",
1387 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1388 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1389 | "dev": true,
1390 | "dependencies": {
1391 | "is-glob": "^4.0.1"
1392 | },
1393 | "engines": {
1394 | "node": ">= 6"
1395 | }
1396 | },
1397 | "node_modules/fast-json-stable-stringify": {
1398 | "version": "2.1.0",
1399 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1400 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1401 | "dev": true
1402 | },
1403 | "node_modules/fast-levenshtein": {
1404 | "version": "2.0.6",
1405 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1406 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
1407 | "dev": true
1408 | },
1409 | "node_modules/fastq": {
1410 | "version": "1.15.0",
1411 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
1412 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
1413 | "dev": true,
1414 | "dependencies": {
1415 | "reusify": "^1.0.4"
1416 | }
1417 | },
1418 | "node_modules/file-entry-cache": {
1419 | "version": "6.0.1",
1420 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1421 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1422 | "dev": true,
1423 | "dependencies": {
1424 | "flat-cache": "^3.0.4"
1425 | },
1426 | "engines": {
1427 | "node": "^10.12.0 || >=12.0.0"
1428 | }
1429 | },
1430 | "node_modules/fill-range": {
1431 | "version": "7.0.1",
1432 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1433 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1434 | "dev": true,
1435 | "dependencies": {
1436 | "to-regex-range": "^5.0.1"
1437 | },
1438 | "engines": {
1439 | "node": ">=8"
1440 | }
1441 | },
1442 | "node_modules/find-up": {
1443 | "version": "5.0.0",
1444 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
1445 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
1446 | "dev": true,
1447 | "dependencies": {
1448 | "locate-path": "^6.0.0",
1449 | "path-exists": "^4.0.0"
1450 | },
1451 | "engines": {
1452 | "node": ">=10"
1453 | },
1454 | "funding": {
1455 | "url": "https://github.com/sponsors/sindresorhus"
1456 | }
1457 | },
1458 | "node_modules/flat-cache": {
1459 | "version": "3.0.4",
1460 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
1461 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
1462 | "dev": true,
1463 | "dependencies": {
1464 | "flatted": "^3.1.0",
1465 | "rimraf": "^3.0.2"
1466 | },
1467 | "engines": {
1468 | "node": "^10.12.0 || >=12.0.0"
1469 | }
1470 | },
1471 | "node_modules/flatted": {
1472 | "version": "3.2.7",
1473 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
1474 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
1475 | "dev": true
1476 | },
1477 | "node_modules/fraction.js": {
1478 | "version": "4.2.0",
1479 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
1480 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
1481 | "dev": true,
1482 | "engines": {
1483 | "node": "*"
1484 | },
1485 | "funding": {
1486 | "type": "patreon",
1487 | "url": "https://www.patreon.com/infusion"
1488 | }
1489 | },
1490 | "node_modules/fs.realpath": {
1491 | "version": "1.0.0",
1492 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1493 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1494 | "dev": true
1495 | },
1496 | "node_modules/fsevents": {
1497 | "version": "2.3.2",
1498 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1499 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1500 | "dev": true,
1501 | "hasInstallScript": true,
1502 | "optional": true,
1503 | "os": [
1504 | "darwin"
1505 | ],
1506 | "engines": {
1507 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1508 | }
1509 | },
1510 | "node_modules/function-bind": {
1511 | "version": "1.1.1",
1512 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1513 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1514 | "dev": true
1515 | },
1516 | "node_modules/glob": {
1517 | "version": "7.2.3",
1518 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
1519 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
1520 | "dev": true,
1521 | "dependencies": {
1522 | "fs.realpath": "^1.0.0",
1523 | "inflight": "^1.0.4",
1524 | "inherits": "2",
1525 | "minimatch": "^3.1.1",
1526 | "once": "^1.3.0",
1527 | "path-is-absolute": "^1.0.0"
1528 | },
1529 | "engines": {
1530 | "node": "*"
1531 | },
1532 | "funding": {
1533 | "url": "https://github.com/sponsors/isaacs"
1534 | }
1535 | },
1536 | "node_modules/glob-parent": {
1537 | "version": "6.0.2",
1538 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1539 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1540 | "dev": true,
1541 | "dependencies": {
1542 | "is-glob": "^4.0.3"
1543 | },
1544 | "engines": {
1545 | "node": ">=10.13.0"
1546 | }
1547 | },
1548 | "node_modules/globals": {
1549 | "version": "13.19.0",
1550 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
1551 | "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
1552 | "dev": true,
1553 | "dependencies": {
1554 | "type-fest": "^0.20.2"
1555 | },
1556 | "engines": {
1557 | "node": ">=8"
1558 | },
1559 | "funding": {
1560 | "url": "https://github.com/sponsors/sindresorhus"
1561 | }
1562 | },
1563 | "node_modules/grapheme-splitter": {
1564 | "version": "1.0.4",
1565 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
1566 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
1567 | "dev": true
1568 | },
1569 | "node_modules/has": {
1570 | "version": "1.0.3",
1571 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1572 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1573 | "dev": true,
1574 | "dependencies": {
1575 | "function-bind": "^1.1.1"
1576 | },
1577 | "engines": {
1578 | "node": ">= 0.4.0"
1579 | }
1580 | },
1581 | "node_modules/has-flag": {
1582 | "version": "4.0.0",
1583 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1584 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1585 | "dev": true,
1586 | "engines": {
1587 | "node": ">=8"
1588 | }
1589 | },
1590 | "node_modules/ignore": {
1591 | "version": "5.2.4",
1592 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
1593 | "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
1594 | "dev": true,
1595 | "engines": {
1596 | "node": ">= 4"
1597 | }
1598 | },
1599 | "node_modules/import-fresh": {
1600 | "version": "3.3.0",
1601 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1602 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1603 | "dev": true,
1604 | "dependencies": {
1605 | "parent-module": "^1.0.0",
1606 | "resolve-from": "^4.0.0"
1607 | },
1608 | "engines": {
1609 | "node": ">=6"
1610 | },
1611 | "funding": {
1612 | "url": "https://github.com/sponsors/sindresorhus"
1613 | }
1614 | },
1615 | "node_modules/imurmurhash": {
1616 | "version": "0.1.4",
1617 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1618 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
1619 | "dev": true,
1620 | "engines": {
1621 | "node": ">=0.8.19"
1622 | }
1623 | },
1624 | "node_modules/inflight": {
1625 | "version": "1.0.6",
1626 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1627 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1628 | "dev": true,
1629 | "dependencies": {
1630 | "once": "^1.3.0",
1631 | "wrappy": "1"
1632 | }
1633 | },
1634 | "node_modules/inherits": {
1635 | "version": "2.0.4",
1636 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1637 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1638 | "dev": true
1639 | },
1640 | "node_modules/is-binary-path": {
1641 | "version": "2.1.0",
1642 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1643 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1644 | "dev": true,
1645 | "dependencies": {
1646 | "binary-extensions": "^2.0.0"
1647 | },
1648 | "engines": {
1649 | "node": ">=8"
1650 | }
1651 | },
1652 | "node_modules/is-core-module": {
1653 | "version": "2.11.0",
1654 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
1655 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
1656 | "dev": true,
1657 | "dependencies": {
1658 | "has": "^1.0.3"
1659 | },
1660 | "funding": {
1661 | "url": "https://github.com/sponsors/ljharb"
1662 | }
1663 | },
1664 | "node_modules/is-extglob": {
1665 | "version": "2.1.1",
1666 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1667 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1668 | "dev": true,
1669 | "engines": {
1670 | "node": ">=0.10.0"
1671 | }
1672 | },
1673 | "node_modules/is-glob": {
1674 | "version": "4.0.3",
1675 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1676 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1677 | "dev": true,
1678 | "dependencies": {
1679 | "is-extglob": "^2.1.1"
1680 | },
1681 | "engines": {
1682 | "node": ">=0.10.0"
1683 | }
1684 | },
1685 | "node_modules/is-number": {
1686 | "version": "7.0.0",
1687 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1688 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1689 | "dev": true,
1690 | "engines": {
1691 | "node": ">=0.12.0"
1692 | }
1693 | },
1694 | "node_modules/is-path-inside": {
1695 | "version": "3.0.3",
1696 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
1697 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
1698 | "dev": true,
1699 | "engines": {
1700 | "node": ">=8"
1701 | }
1702 | },
1703 | "node_modules/isexe": {
1704 | "version": "2.0.0",
1705 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1706 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1707 | "dev": true
1708 | },
1709 | "node_modules/js-sdsl": {
1710 | "version": "4.2.0",
1711 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
1712 | "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
1713 | "dev": true,
1714 | "funding": {
1715 | "type": "opencollective",
1716 | "url": "https://opencollective.com/js-sdsl"
1717 | }
1718 | },
1719 | "node_modules/js-yaml": {
1720 | "version": "4.1.0",
1721 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1722 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1723 | "dev": true,
1724 | "dependencies": {
1725 | "argparse": "^2.0.1"
1726 | },
1727 | "bin": {
1728 | "js-yaml": "bin/js-yaml.js"
1729 | }
1730 | },
1731 | "node_modules/json-schema-traverse": {
1732 | "version": "0.4.1",
1733 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1734 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1735 | "dev": true
1736 | },
1737 | "node_modules/json-stable-stringify-without-jsonify": {
1738 | "version": "1.0.1",
1739 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1740 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
1741 | "dev": true
1742 | },
1743 | "node_modules/levn": {
1744 | "version": "0.4.1",
1745 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
1746 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
1747 | "dev": true,
1748 | "dependencies": {
1749 | "prelude-ls": "^1.2.1",
1750 | "type-check": "~0.4.0"
1751 | },
1752 | "engines": {
1753 | "node": ">= 0.8.0"
1754 | }
1755 | },
1756 | "node_modules/lilconfig": {
1757 | "version": "2.0.6",
1758 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
1759 | "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
1760 | "dev": true,
1761 | "engines": {
1762 | "node": ">=10"
1763 | }
1764 | },
1765 | "node_modules/locate-path": {
1766 | "version": "6.0.0",
1767 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
1768 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
1769 | "dev": true,
1770 | "dependencies": {
1771 | "p-locate": "^5.0.0"
1772 | },
1773 | "engines": {
1774 | "node": ">=10"
1775 | },
1776 | "funding": {
1777 | "url": "https://github.com/sponsors/sindresorhus"
1778 | }
1779 | },
1780 | "node_modules/lodash": {
1781 | "version": "4.17.21",
1782 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1783 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1784 | "dev": true
1785 | },
1786 | "node_modules/lodash.merge": {
1787 | "version": "4.6.2",
1788 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
1789 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
1790 | "dev": true
1791 | },
1792 | "node_modules/lru-cache": {
1793 | "version": "6.0.0",
1794 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1795 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1796 | "dev": true,
1797 | "dependencies": {
1798 | "yallist": "^4.0.0"
1799 | },
1800 | "engines": {
1801 | "node": ">=10"
1802 | }
1803 | },
1804 | "node_modules/magic-string": {
1805 | "version": "0.25.9",
1806 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
1807 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
1808 | "dependencies": {
1809 | "sourcemap-codec": "^1.4.8"
1810 | }
1811 | },
1812 | "node_modules/merge2": {
1813 | "version": "1.4.1",
1814 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1815 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1816 | "dev": true,
1817 | "engines": {
1818 | "node": ">= 8"
1819 | }
1820 | },
1821 | "node_modules/micromatch": {
1822 | "version": "4.0.5",
1823 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1824 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1825 | "dev": true,
1826 | "dependencies": {
1827 | "braces": "^3.0.2",
1828 | "picomatch": "^2.3.1"
1829 | },
1830 | "engines": {
1831 | "node": ">=8.6"
1832 | }
1833 | },
1834 | "node_modules/minimatch": {
1835 | "version": "3.1.2",
1836 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1837 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1838 | "dev": true,
1839 | "dependencies": {
1840 | "brace-expansion": "^1.1.7"
1841 | },
1842 | "engines": {
1843 | "node": "*"
1844 | }
1845 | },
1846 | "node_modules/minimist": {
1847 | "version": "1.2.7",
1848 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
1849 | "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
1850 | "dev": true,
1851 | "funding": {
1852 | "url": "https://github.com/sponsors/ljharb"
1853 | }
1854 | },
1855 | "node_modules/ms": {
1856 | "version": "2.1.2",
1857 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1858 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1859 | "dev": true
1860 | },
1861 | "node_modules/nanoid": {
1862 | "version": "3.3.4",
1863 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
1864 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
1865 | "bin": {
1866 | "nanoid": "bin/nanoid.cjs"
1867 | },
1868 | "engines": {
1869 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1870 | }
1871 | },
1872 | "node_modules/natural-compare": {
1873 | "version": "1.4.0",
1874 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1875 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
1876 | "dev": true
1877 | },
1878 | "node_modules/node-releases": {
1879 | "version": "2.0.8",
1880 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
1881 | "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
1882 | "dev": true
1883 | },
1884 | "node_modules/normalize-path": {
1885 | "version": "3.0.0",
1886 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1887 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1888 | "dev": true,
1889 | "engines": {
1890 | "node": ">=0.10.0"
1891 | }
1892 | },
1893 | "node_modules/normalize-range": {
1894 | "version": "0.1.2",
1895 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1896 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
1897 | "dev": true,
1898 | "engines": {
1899 | "node": ">=0.10.0"
1900 | }
1901 | },
1902 | "node_modules/nth-check": {
1903 | "version": "2.1.1",
1904 | "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
1905 | "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
1906 | "dev": true,
1907 | "dependencies": {
1908 | "boolbase": "^1.0.0"
1909 | },
1910 | "funding": {
1911 | "url": "https://github.com/fb55/nth-check?sponsor=1"
1912 | }
1913 | },
1914 | "node_modules/object-hash": {
1915 | "version": "3.0.0",
1916 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1917 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1918 | "dev": true,
1919 | "engines": {
1920 | "node": ">= 6"
1921 | }
1922 | },
1923 | "node_modules/once": {
1924 | "version": "1.4.0",
1925 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1926 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1927 | "dev": true,
1928 | "dependencies": {
1929 | "wrappy": "1"
1930 | }
1931 | },
1932 | "node_modules/optionator": {
1933 | "version": "0.9.1",
1934 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
1935 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
1936 | "dev": true,
1937 | "dependencies": {
1938 | "deep-is": "^0.1.3",
1939 | "fast-levenshtein": "^2.0.6",
1940 | "levn": "^0.4.1",
1941 | "prelude-ls": "^1.2.1",
1942 | "type-check": "^0.4.0",
1943 | "word-wrap": "^1.2.3"
1944 | },
1945 | "engines": {
1946 | "node": ">= 0.8.0"
1947 | }
1948 | },
1949 | "node_modules/p-limit": {
1950 | "version": "3.1.0",
1951 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
1952 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
1953 | "dev": true,
1954 | "dependencies": {
1955 | "yocto-queue": "^0.1.0"
1956 | },
1957 | "engines": {
1958 | "node": ">=10"
1959 | },
1960 | "funding": {
1961 | "url": "https://github.com/sponsors/sindresorhus"
1962 | }
1963 | },
1964 | "node_modules/p-locate": {
1965 | "version": "5.0.0",
1966 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
1967 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
1968 | "dev": true,
1969 | "dependencies": {
1970 | "p-limit": "^3.0.2"
1971 | },
1972 | "engines": {
1973 | "node": ">=10"
1974 | },
1975 | "funding": {
1976 | "url": "https://github.com/sponsors/sindresorhus"
1977 | }
1978 | },
1979 | "node_modules/parent-module": {
1980 | "version": "1.0.1",
1981 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1982 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1983 | "dev": true,
1984 | "dependencies": {
1985 | "callsites": "^3.0.0"
1986 | },
1987 | "engines": {
1988 | "node": ">=6"
1989 | }
1990 | },
1991 | "node_modules/path-exists": {
1992 | "version": "4.0.0",
1993 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1994 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1995 | "dev": true,
1996 | "engines": {
1997 | "node": ">=8"
1998 | }
1999 | },
2000 | "node_modules/path-is-absolute": {
2001 | "version": "1.0.1",
2002 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2003 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2004 | "dev": true,
2005 | "engines": {
2006 | "node": ">=0.10.0"
2007 | }
2008 | },
2009 | "node_modules/path-key": {
2010 | "version": "3.1.1",
2011 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2012 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2013 | "dev": true,
2014 | "engines": {
2015 | "node": ">=8"
2016 | }
2017 | },
2018 | "node_modules/path-parse": {
2019 | "version": "1.0.7",
2020 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2021 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2022 | "dev": true
2023 | },
2024 | "node_modules/picocolors": {
2025 | "version": "1.0.0",
2026 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
2027 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
2028 | },
2029 | "node_modules/picomatch": {
2030 | "version": "2.3.1",
2031 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2032 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2033 | "dev": true,
2034 | "engines": {
2035 | "node": ">=8.6"
2036 | },
2037 | "funding": {
2038 | "url": "https://github.com/sponsors/jonschlinkert"
2039 | }
2040 | },
2041 | "node_modules/pify": {
2042 | "version": "2.3.0",
2043 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2044 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
2045 | "dev": true,
2046 | "engines": {
2047 | "node": ">=0.10.0"
2048 | }
2049 | },
2050 | "node_modules/pinia": {
2051 | "version": "2.0.28",
2052 | "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.28.tgz",
2053 | "integrity": "sha512-YClq9DkqCblq9rlyUual7ezMu/iICWdBtfJrDt4oWU9Zxpijyz7xB2xTwx57DaBQ96UGvvTMORzALr+iO5PVMw==",
2054 | "dependencies": {
2055 | "@vue/devtools-api": "^6.4.5",
2056 | "vue-demi": "*"
2057 | },
2058 | "funding": {
2059 | "url": "https://github.com/sponsors/posva"
2060 | },
2061 | "peerDependencies": {
2062 | "@vue/composition-api": "^1.4.0",
2063 | "typescript": ">=4.4.4",
2064 | "vue": "^2.6.14 || ^3.2.0"
2065 | },
2066 | "peerDependenciesMeta": {
2067 | "@vue/composition-api": {
2068 | "optional": true
2069 | },
2070 | "typescript": {
2071 | "optional": true
2072 | }
2073 | }
2074 | },
2075 | "node_modules/pinia/node_modules/vue-demi": {
2076 | "version": "0.13.11",
2077 | "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz",
2078 | "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
2079 | "hasInstallScript": true,
2080 | "bin": {
2081 | "vue-demi-fix": "bin/vue-demi-fix.js",
2082 | "vue-demi-switch": "bin/vue-demi-switch.js"
2083 | },
2084 | "engines": {
2085 | "node": ">=12"
2086 | },
2087 | "funding": {
2088 | "url": "https://github.com/sponsors/antfu"
2089 | },
2090 | "peerDependencies": {
2091 | "@vue/composition-api": "^1.0.0-rc.1",
2092 | "vue": "^3.0.0-0 || ^2.6.0"
2093 | },
2094 | "peerDependenciesMeta": {
2095 | "@vue/composition-api": {
2096 | "optional": true
2097 | }
2098 | }
2099 | },
2100 | "node_modules/postcss": {
2101 | "version": "8.4.21",
2102 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
2103 | "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
2104 | "funding": [
2105 | {
2106 | "type": "opencollective",
2107 | "url": "https://opencollective.com/postcss/"
2108 | },
2109 | {
2110 | "type": "tidelift",
2111 | "url": "https://tidelift.com/funding/github/npm/postcss"
2112 | }
2113 | ],
2114 | "dependencies": {
2115 | "nanoid": "^3.3.4",
2116 | "picocolors": "^1.0.0",
2117 | "source-map-js": "^1.0.2"
2118 | },
2119 | "engines": {
2120 | "node": "^10 || ^12 || >=14"
2121 | }
2122 | },
2123 | "node_modules/postcss-import": {
2124 | "version": "14.1.0",
2125 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
2126 | "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
2127 | "dev": true,
2128 | "dependencies": {
2129 | "postcss-value-parser": "^4.0.0",
2130 | "read-cache": "^1.0.0",
2131 | "resolve": "^1.1.7"
2132 | },
2133 | "engines": {
2134 | "node": ">=10.0.0"
2135 | },
2136 | "peerDependencies": {
2137 | "postcss": "^8.0.0"
2138 | }
2139 | },
2140 | "node_modules/postcss-js": {
2141 | "version": "4.0.0",
2142 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
2143 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
2144 | "dev": true,
2145 | "dependencies": {
2146 | "camelcase-css": "^2.0.1"
2147 | },
2148 | "engines": {
2149 | "node": "^12 || ^14 || >= 16"
2150 | },
2151 | "funding": {
2152 | "type": "opencollective",
2153 | "url": "https://opencollective.com/postcss/"
2154 | },
2155 | "peerDependencies": {
2156 | "postcss": "^8.3.3"
2157 | }
2158 | },
2159 | "node_modules/postcss-load-config": {
2160 | "version": "3.1.4",
2161 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
2162 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
2163 | "dev": true,
2164 | "dependencies": {
2165 | "lilconfig": "^2.0.5",
2166 | "yaml": "^1.10.2"
2167 | },
2168 | "engines": {
2169 | "node": ">= 10"
2170 | },
2171 | "funding": {
2172 | "type": "opencollective",
2173 | "url": "https://opencollective.com/postcss/"
2174 | },
2175 | "peerDependencies": {
2176 | "postcss": ">=8.0.9",
2177 | "ts-node": ">=9.0.0"
2178 | },
2179 | "peerDependenciesMeta": {
2180 | "postcss": {
2181 | "optional": true
2182 | },
2183 | "ts-node": {
2184 | "optional": true
2185 | }
2186 | }
2187 | },
2188 | "node_modules/postcss-nested": {
2189 | "version": "6.0.0",
2190 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
2191 | "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
2192 | "dev": true,
2193 | "dependencies": {
2194 | "postcss-selector-parser": "^6.0.10"
2195 | },
2196 | "engines": {
2197 | "node": ">=12.0"
2198 | },
2199 | "funding": {
2200 | "type": "opencollective",
2201 | "url": "https://opencollective.com/postcss/"
2202 | },
2203 | "peerDependencies": {
2204 | "postcss": "^8.2.14"
2205 | }
2206 | },
2207 | "node_modules/postcss-selector-parser": {
2208 | "version": "6.0.11",
2209 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
2210 | "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
2211 | "dev": true,
2212 | "dependencies": {
2213 | "cssesc": "^3.0.0",
2214 | "util-deprecate": "^1.0.2"
2215 | },
2216 | "engines": {
2217 | "node": ">=4"
2218 | }
2219 | },
2220 | "node_modules/postcss-value-parser": {
2221 | "version": "4.2.0",
2222 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
2223 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
2224 | "dev": true
2225 | },
2226 | "node_modules/prelude-ls": {
2227 | "version": "1.2.1",
2228 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2229 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2230 | "dev": true,
2231 | "engines": {
2232 | "node": ">= 0.8.0"
2233 | }
2234 | },
2235 | "node_modules/prettier": {
2236 | "version": "2.8.2",
2237 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
2238 | "integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
2239 | "dev": true,
2240 | "bin": {
2241 | "prettier": "bin-prettier.js"
2242 | },
2243 | "engines": {
2244 | "node": ">=10.13.0"
2245 | },
2246 | "funding": {
2247 | "url": "https://github.com/prettier/prettier?sponsor=1"
2248 | }
2249 | },
2250 | "node_modules/prettier-linter-helpers": {
2251 | "version": "1.0.0",
2252 | "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
2253 | "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
2254 | "dev": true,
2255 | "dependencies": {
2256 | "fast-diff": "^1.1.2"
2257 | },
2258 | "engines": {
2259 | "node": ">=6.0.0"
2260 | }
2261 | },
2262 | "node_modules/punycode": {
2263 | "version": "2.2.0",
2264 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz",
2265 | "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==",
2266 | "dev": true,
2267 | "engines": {
2268 | "node": ">=6"
2269 | }
2270 | },
2271 | "node_modules/queue-microtask": {
2272 | "version": "1.2.3",
2273 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2274 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2275 | "dev": true,
2276 | "funding": [
2277 | {
2278 | "type": "github",
2279 | "url": "https://github.com/sponsors/feross"
2280 | },
2281 | {
2282 | "type": "patreon",
2283 | "url": "https://www.patreon.com/feross"
2284 | },
2285 | {
2286 | "type": "consulting",
2287 | "url": "https://feross.org/support"
2288 | }
2289 | ]
2290 | },
2291 | "node_modules/quick-lru": {
2292 | "version": "5.1.1",
2293 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
2294 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
2295 | "dev": true,
2296 | "engines": {
2297 | "node": ">=10"
2298 | },
2299 | "funding": {
2300 | "url": "https://github.com/sponsors/sindresorhus"
2301 | }
2302 | },
2303 | "node_modules/read-cache": {
2304 | "version": "1.0.0",
2305 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
2306 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
2307 | "dev": true,
2308 | "dependencies": {
2309 | "pify": "^2.3.0"
2310 | }
2311 | },
2312 | "node_modules/readdirp": {
2313 | "version": "3.6.0",
2314 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
2315 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
2316 | "dev": true,
2317 | "dependencies": {
2318 | "picomatch": "^2.2.1"
2319 | },
2320 | "engines": {
2321 | "node": ">=8.10.0"
2322 | }
2323 | },
2324 | "node_modules/regexpp": {
2325 | "version": "3.2.0",
2326 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
2327 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
2328 | "dev": true,
2329 | "engines": {
2330 | "node": ">=8"
2331 | },
2332 | "funding": {
2333 | "url": "https://github.com/sponsors/mysticatea"
2334 | }
2335 | },
2336 | "node_modules/resolve": {
2337 | "version": "1.22.1",
2338 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
2339 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
2340 | "dev": true,
2341 | "dependencies": {
2342 | "is-core-module": "^2.9.0",
2343 | "path-parse": "^1.0.7",
2344 | "supports-preserve-symlinks-flag": "^1.0.0"
2345 | },
2346 | "bin": {
2347 | "resolve": "bin/resolve"
2348 | },
2349 | "funding": {
2350 | "url": "https://github.com/sponsors/ljharb"
2351 | }
2352 | },
2353 | "node_modules/resolve-from": {
2354 | "version": "4.0.0",
2355 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2356 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2357 | "dev": true,
2358 | "engines": {
2359 | "node": ">=4"
2360 | }
2361 | },
2362 | "node_modules/reusify": {
2363 | "version": "1.0.4",
2364 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2365 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2366 | "dev": true,
2367 | "engines": {
2368 | "iojs": ">=1.0.0",
2369 | "node": ">=0.10.0"
2370 | }
2371 | },
2372 | "node_modules/rimraf": {
2373 | "version": "3.0.2",
2374 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2375 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2376 | "dev": true,
2377 | "dependencies": {
2378 | "glob": "^7.1.3"
2379 | },
2380 | "bin": {
2381 | "rimraf": "bin.js"
2382 | },
2383 | "funding": {
2384 | "url": "https://github.com/sponsors/isaacs"
2385 | }
2386 | },
2387 | "node_modules/rollup": {
2388 | "version": "3.9.1",
2389 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.9.1.tgz",
2390 | "integrity": "sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==",
2391 | "dev": true,
2392 | "bin": {
2393 | "rollup": "dist/bin/rollup"
2394 | },
2395 | "engines": {
2396 | "node": ">=14.18.0",
2397 | "npm": ">=8.0.0"
2398 | },
2399 | "optionalDependencies": {
2400 | "fsevents": "~2.3.2"
2401 | }
2402 | },
2403 | "node_modules/run-parallel": {
2404 | "version": "1.2.0",
2405 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2406 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2407 | "dev": true,
2408 | "funding": [
2409 | {
2410 | "type": "github",
2411 | "url": "https://github.com/sponsors/feross"
2412 | },
2413 | {
2414 | "type": "patreon",
2415 | "url": "https://www.patreon.com/feross"
2416 | },
2417 | {
2418 | "type": "consulting",
2419 | "url": "https://feross.org/support"
2420 | }
2421 | ],
2422 | "dependencies": {
2423 | "queue-microtask": "^1.2.2"
2424 | }
2425 | },
2426 | "node_modules/semver": {
2427 | "version": "7.3.8",
2428 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
2429 | "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
2430 | "dev": true,
2431 | "dependencies": {
2432 | "lru-cache": "^6.0.0"
2433 | },
2434 | "bin": {
2435 | "semver": "bin/semver.js"
2436 | },
2437 | "engines": {
2438 | "node": ">=10"
2439 | }
2440 | },
2441 | "node_modules/shebang-command": {
2442 | "version": "2.0.0",
2443 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2444 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2445 | "dev": true,
2446 | "dependencies": {
2447 | "shebang-regex": "^3.0.0"
2448 | },
2449 | "engines": {
2450 | "node": ">=8"
2451 | }
2452 | },
2453 | "node_modules/shebang-regex": {
2454 | "version": "3.0.0",
2455 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2456 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2457 | "dev": true,
2458 | "engines": {
2459 | "node": ">=8"
2460 | }
2461 | },
2462 | "node_modules/source-map": {
2463 | "version": "0.6.1",
2464 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2465 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2466 | "engines": {
2467 | "node": ">=0.10.0"
2468 | }
2469 | },
2470 | "node_modules/source-map-js": {
2471 | "version": "1.0.2",
2472 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
2473 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
2474 | "engines": {
2475 | "node": ">=0.10.0"
2476 | }
2477 | },
2478 | "node_modules/sourcemap-codec": {
2479 | "version": "1.4.8",
2480 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
2481 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
2482 | "deprecated": "Please use @jridgewell/sourcemap-codec instead"
2483 | },
2484 | "node_modules/strip-ansi": {
2485 | "version": "6.0.1",
2486 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2487 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2488 | "dev": true,
2489 | "dependencies": {
2490 | "ansi-regex": "^5.0.1"
2491 | },
2492 | "engines": {
2493 | "node": ">=8"
2494 | }
2495 | },
2496 | "node_modules/strip-json-comments": {
2497 | "version": "3.1.1",
2498 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2499 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2500 | "dev": true,
2501 | "engines": {
2502 | "node": ">=8"
2503 | },
2504 | "funding": {
2505 | "url": "https://github.com/sponsors/sindresorhus"
2506 | }
2507 | },
2508 | "node_modules/supports-color": {
2509 | "version": "7.2.0",
2510 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2511 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2512 | "dev": true,
2513 | "dependencies": {
2514 | "has-flag": "^4.0.0"
2515 | },
2516 | "engines": {
2517 | "node": ">=8"
2518 | }
2519 | },
2520 | "node_modules/supports-preserve-symlinks-flag": {
2521 | "version": "1.0.0",
2522 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2523 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2524 | "dev": true,
2525 | "engines": {
2526 | "node": ">= 0.4"
2527 | },
2528 | "funding": {
2529 | "url": "https://github.com/sponsors/ljharb"
2530 | }
2531 | },
2532 | "node_modules/tailwindcss": {
2533 | "version": "3.2.4",
2534 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz",
2535 | "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==",
2536 | "dev": true,
2537 | "dependencies": {
2538 | "arg": "^5.0.2",
2539 | "chokidar": "^3.5.3",
2540 | "color-name": "^1.1.4",
2541 | "detective": "^5.2.1",
2542 | "didyoumean": "^1.2.2",
2543 | "dlv": "^1.1.3",
2544 | "fast-glob": "^3.2.12",
2545 | "glob-parent": "^6.0.2",
2546 | "is-glob": "^4.0.3",
2547 | "lilconfig": "^2.0.6",
2548 | "micromatch": "^4.0.5",
2549 | "normalize-path": "^3.0.0",
2550 | "object-hash": "^3.0.0",
2551 | "picocolors": "^1.0.0",
2552 | "postcss": "^8.4.18",
2553 | "postcss-import": "^14.1.0",
2554 | "postcss-js": "^4.0.0",
2555 | "postcss-load-config": "^3.1.4",
2556 | "postcss-nested": "6.0.0",
2557 | "postcss-selector-parser": "^6.0.10",
2558 | "postcss-value-parser": "^4.2.0",
2559 | "quick-lru": "^5.1.1",
2560 | "resolve": "^1.22.1"
2561 | },
2562 | "bin": {
2563 | "tailwind": "lib/cli.js",
2564 | "tailwindcss": "lib/cli.js"
2565 | },
2566 | "engines": {
2567 | "node": ">=12.13.0"
2568 | },
2569 | "peerDependencies": {
2570 | "postcss": "^8.0.9"
2571 | }
2572 | },
2573 | "node_modules/text-table": {
2574 | "version": "0.2.0",
2575 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2576 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
2577 | "dev": true
2578 | },
2579 | "node_modules/to-regex-range": {
2580 | "version": "5.0.1",
2581 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2582 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2583 | "dev": true,
2584 | "dependencies": {
2585 | "is-number": "^7.0.0"
2586 | },
2587 | "engines": {
2588 | "node": ">=8.0"
2589 | }
2590 | },
2591 | "node_modules/type-check": {
2592 | "version": "0.4.0",
2593 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
2594 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
2595 | "dev": true,
2596 | "dependencies": {
2597 | "prelude-ls": "^1.2.1"
2598 | },
2599 | "engines": {
2600 | "node": ">= 0.8.0"
2601 | }
2602 | },
2603 | "node_modules/type-fest": {
2604 | "version": "0.20.2",
2605 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
2606 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
2607 | "dev": true,
2608 | "engines": {
2609 | "node": ">=10"
2610 | },
2611 | "funding": {
2612 | "url": "https://github.com/sponsors/sindresorhus"
2613 | }
2614 | },
2615 | "node_modules/update-browserslist-db": {
2616 | "version": "1.0.10",
2617 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
2618 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
2619 | "dev": true,
2620 | "funding": [
2621 | {
2622 | "type": "opencollective",
2623 | "url": "https://opencollective.com/browserslist"
2624 | },
2625 | {
2626 | "type": "tidelift",
2627 | "url": "https://tidelift.com/funding/github/npm/browserslist"
2628 | }
2629 | ],
2630 | "dependencies": {
2631 | "escalade": "^3.1.1",
2632 | "picocolors": "^1.0.0"
2633 | },
2634 | "bin": {
2635 | "browserslist-lint": "cli.js"
2636 | },
2637 | "peerDependencies": {
2638 | "browserslist": ">= 4.21.0"
2639 | }
2640 | },
2641 | "node_modules/uri-js": {
2642 | "version": "4.4.1",
2643 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2644 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2645 | "dev": true,
2646 | "dependencies": {
2647 | "punycode": "^2.1.0"
2648 | }
2649 | },
2650 | "node_modules/util-deprecate": {
2651 | "version": "1.0.2",
2652 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2653 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2654 | "dev": true
2655 | },
2656 | "node_modules/vite": {
2657 | "version": "4.0.4",
2658 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz",
2659 | "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==",
2660 | "dev": true,
2661 | "dependencies": {
2662 | "esbuild": "^0.16.3",
2663 | "postcss": "^8.4.20",
2664 | "resolve": "^1.22.1",
2665 | "rollup": "^3.7.0"
2666 | },
2667 | "bin": {
2668 | "vite": "bin/vite.js"
2669 | },
2670 | "engines": {
2671 | "node": "^14.18.0 || >=16.0.0"
2672 | },
2673 | "optionalDependencies": {
2674 | "fsevents": "~2.3.2"
2675 | },
2676 | "peerDependencies": {
2677 | "@types/node": ">= 14",
2678 | "less": "*",
2679 | "sass": "*",
2680 | "stylus": "*",
2681 | "sugarss": "*",
2682 | "terser": "^5.4.0"
2683 | },
2684 | "peerDependenciesMeta": {
2685 | "@types/node": {
2686 | "optional": true
2687 | },
2688 | "less": {
2689 | "optional": true
2690 | },
2691 | "sass": {
2692 | "optional": true
2693 | },
2694 | "stylus": {
2695 | "optional": true
2696 | },
2697 | "sugarss": {
2698 | "optional": true
2699 | },
2700 | "terser": {
2701 | "optional": true
2702 | }
2703 | }
2704 | },
2705 | "node_modules/vue": {
2706 | "version": "3.2.45",
2707 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz",
2708 | "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==",
2709 | "dependencies": {
2710 | "@vue/compiler-dom": "3.2.45",
2711 | "@vue/compiler-sfc": "3.2.45",
2712 | "@vue/runtime-dom": "3.2.45",
2713 | "@vue/server-renderer": "3.2.45",
2714 | "@vue/shared": "3.2.45"
2715 | }
2716 | },
2717 | "node_modules/vue-eslint-parser": {
2718 | "version": "9.1.0",
2719 | "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz",
2720 | "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==",
2721 | "dev": true,
2722 | "dependencies": {
2723 | "debug": "^4.3.4",
2724 | "eslint-scope": "^7.1.1",
2725 | "eslint-visitor-keys": "^3.3.0",
2726 | "espree": "^9.3.1",
2727 | "esquery": "^1.4.0",
2728 | "lodash": "^4.17.21",
2729 | "semver": "^7.3.6"
2730 | },
2731 | "engines": {
2732 | "node": "^14.17.0 || >=16.0.0"
2733 | },
2734 | "funding": {
2735 | "url": "https://github.com/sponsors/mysticatea"
2736 | },
2737 | "peerDependencies": {
2738 | "eslint": ">=6.0.0"
2739 | }
2740 | },
2741 | "node_modules/vue-router": {
2742 | "version": "4.1.6",
2743 | "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz",
2744 | "integrity": "sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==",
2745 | "dependencies": {
2746 | "@vue/devtools-api": "^6.4.5"
2747 | },
2748 | "funding": {
2749 | "url": "https://github.com/sponsors/posva"
2750 | },
2751 | "peerDependencies": {
2752 | "vue": "^3.2.0"
2753 | }
2754 | },
2755 | "node_modules/which": {
2756 | "version": "2.0.2",
2757 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2758 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2759 | "dev": true,
2760 | "dependencies": {
2761 | "isexe": "^2.0.0"
2762 | },
2763 | "bin": {
2764 | "node-which": "bin/node-which"
2765 | },
2766 | "engines": {
2767 | "node": ">= 8"
2768 | }
2769 | },
2770 | "node_modules/word-wrap": {
2771 | "version": "1.2.3",
2772 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
2773 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
2774 | "dev": true,
2775 | "engines": {
2776 | "node": ">=0.10.0"
2777 | }
2778 | },
2779 | "node_modules/wrappy": {
2780 | "version": "1.0.2",
2781 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2782 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
2783 | "dev": true
2784 | },
2785 | "node_modules/xml-name-validator": {
2786 | "version": "4.0.0",
2787 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
2788 | "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
2789 | "dev": true,
2790 | "engines": {
2791 | "node": ">=12"
2792 | }
2793 | },
2794 | "node_modules/xtend": {
2795 | "version": "4.0.2",
2796 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
2797 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
2798 | "dev": true,
2799 | "engines": {
2800 | "node": ">=0.4"
2801 | }
2802 | },
2803 | "node_modules/yallist": {
2804 | "version": "4.0.0",
2805 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2806 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2807 | "dev": true
2808 | },
2809 | "node_modules/yaml": {
2810 | "version": "1.10.2",
2811 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
2812 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
2813 | "dev": true,
2814 | "engines": {
2815 | "node": ">= 6"
2816 | }
2817 | },
2818 | "node_modules/yocto-queue": {
2819 | "version": "0.1.0",
2820 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
2821 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
2822 | "dev": true,
2823 | "engines": {
2824 | "node": ">=10"
2825 | },
2826 | "funding": {
2827 | "url": "https://github.com/sponsors/sindresorhus"
2828 | }
2829 | }
2830 | }
2831 | }
2832 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-online-store-demo",
3 | "version": "2.0.0",
4 | "description": "Demo of an online store and shopping cart built with Vue 3.",
5 | "private": true,
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview",
10 | "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "git+https://github.com/travishorn/vue-online-store-demo.git"
15 | },
16 | "author": "Travis Horn (https://travishorn.com/)",
17 | "license": "MIT",
18 | "bugs": {
19 | "url": "https://github.com/travishorn/vue-online-store-demo/issues"
20 | },
21 | "homepage": "https://github.com/travishorn/vue-online-store-demo#readme",
22 | "dependencies": {
23 | "@heroicons/vue": "^2.0.13",
24 | "pinia": "^2.0.28",
25 | "vue": "^3.2.45",
26 | "vue-router": "^4.1.6"
27 | },
28 | "devDependencies": {
29 | "@rushstack/eslint-patch": "^1.1.4",
30 | "@vitejs/plugin-vue": "^4.0.0",
31 | "@vue/eslint-config-prettier": "^7.0.0",
32 | "autoprefixer": "^10.4.13",
33 | "eslint": "^8.22.0",
34 | "eslint-plugin-vue": "^9.3.0",
35 | "postcss": "^8.4.21",
36 | "prettier": "^2.7.1",
37 | "tailwindcss": "^3.2.4",
38 | "vite": "^4.0.0"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/public/favicon.ico
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/assets/coat_600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/src/assets/coat_600.png
--------------------------------------------------------------------------------
/src/assets/heels_600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/src/assets/heels_600.png
--------------------------------------------------------------------------------
/src/assets/hoodie_600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/src/assets/hoodie_600.png
--------------------------------------------------------------------------------
/src/assets/jacket_600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/src/assets/jacket_600.png
--------------------------------------------------------------------------------
/src/assets/main.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/src/assets/shirt_600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/src/assets/shirt_600.png
--------------------------------------------------------------------------------
/src/assets/sneakers_600.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/travishorn/vue-online-store-demo/039c330236e67c44c42be9636dcede177041aeca/src/assets/sneakers_600.png
--------------------------------------------------------------------------------
/src/components/SiteHeader.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | Vue Online Store
11 |
12 |
13 |
14 | {{ shop.cartQuantity }}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue";
2 | import { createPinia } from "pinia";
3 |
4 | import App from "./App.vue";
5 | import router from "./router";
6 |
7 | import "./assets/main.css";
8 |
9 | const app = createApp(App);
10 |
11 | app.use(createPinia());
12 | app.use(router);
13 |
14 | app.mount("#app");
15 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import { createRouter, createWebHistory } from "vue-router";
2 | import ShopView from "../views/ShopView.vue";
3 | import ItemView from "../views/ItemView.vue";
4 | import CartView from "../views/CartView.vue";
5 |
6 | const router = createRouter({
7 | history: createWebHistory(import.meta.env.BASE_URL),
8 | routes: [
9 | {
10 | path: "/",
11 | name: "shop",
12 | component: ShopView,
13 | },
14 | {
15 | path: "/item/:id",
16 | name: "item",
17 | component: ItemView,
18 | },
19 | {
20 | path: "/cart",
21 | name: "cart",
22 | component: CartView,
23 | }
24 | ]
25 | })
26 |
27 | export default router;
28 |
--------------------------------------------------------------------------------
/src/stores/shop.js:
--------------------------------------------------------------------------------
1 | import { defineStore } from "pinia";
2 | import coatImage from "../assets/coat_600.png";
3 | import heelsImage from "../assets/heels_600.png";
4 | import hoodieImage from "../assets/hoodie_600.png";
5 | import jacketImage from "../assets/jacket_600.png";
6 | import shirtImage from "../assets/shirt_600.png";
7 | import sneakersImage from "../assets/sneakers_600.png";
8 |
9 | export const useShopStore = defineStore("shop", {
10 | state: () => {
11 | return {
12 | forSale: [
13 | {
14 | id: "coat",
15 | title: "Coat",
16 | price: 2999,
17 | photo: coatImage,
18 | description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Condimentum mattis pellentesque id nibh. Varius duis at consectetur lorem donec massa sapien faucibus.",
19 | },
20 | {
21 | id: "heels",
22 | title: "Heels",
23 | price: 2124,
24 | photo: heelsImage,
25 | description: "Pellentesque sit amet porttitor eget dolor morbi. Cras pulvinar mattis nunc sed blandit. Sem fringilla ut morbi tincidunt.",
26 | },
27 | {
28 | id: "hoodie",
29 | title: "Hoodie",
30 | price: 2499,
31 | photo: hoodieImage,
32 | description: "Urna porttitor rhoncus dolor purus non enim praesent elementum. Morbi non arcu risus quis varius quam quisque id diam. Volutpat commodo sed egestas egestas fringilla phasellus faucibus.",
33 | },
34 | {
35 | id: "jacket",
36 | title: "Jacket",
37 | price: 2800,
38 | photo: jacketImage,
39 | description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Condimentum mattis pellentesque id nibh. Varius duis at consectetur lorem donec massa sapien faucibus.",
40 | },
41 | {
42 | id: "shirt",
43 | title: "Shirt",
44 | price: 1190,
45 | photo: shirtImage,
46 | description: "Pellentesque sit amet porttitor eget dolor morbi. Cras pulvinar mattis nunc sed blandit. Sem fringilla ut morbi tincidunt.",
47 | },
48 | {
49 | id: "sneakers",
50 | title: "Sneakers",
51 | price: 2699,
52 | photo: sneakersImage,
53 | description: "Urna porttitor rhoncus dolor purus non enim praesent elementum. Morbi non arcu risus quis varius quam quisque id diam. Volutpat commodo sed egestas egestas fringilla phasellus faucibus.",
54 | },
55 | ],
56 | cart: [],
57 | addedMessageShown: false,
58 | };
59 | },
60 | getters: {
61 | cartQuantity() {
62 | return this.cart.reduce((prev, curr) => {
63 | return prev + curr.quantity;
64 | }, 0);
65 | },
66 | cartSubtotal() {
67 | return this.cart.reduce((prev, curr) => {
68 | return prev + curr.price * curr.quantity;
69 | }, 0);
70 | },
71 | cartShipping() {
72 | return (Math.ceil(this.cartQuantity / 10)) * 500;
73 | },
74 | cartTax() {
75 | return (this.cartSubtotal * 0.08);
76 | },
77 | cartTotal() {
78 | return this.cartSubtotal + this.cartShipping + this.cartTax;
79 | },
80 | },
81 | actions: {
82 | addToCart(item) {
83 | const existingId = this.cart
84 | .findIndex((cartItem) => cartItem.id === item.id);
85 |
86 | if (existingId !== -1) {
87 | this.cart[existingId].quantity += 1;
88 | } else {
89 | this.cart.push({
90 | ...item,
91 | quantity: 1,
92 | });
93 | }
94 |
95 | this.addedMessageShown = true;
96 |
97 | setTimeout(() => {
98 | this.addedMessageShown = false;
99 | }, 2000);
100 | },
101 | removeItem(removedItem) {
102 | this.cart = this.cart.filter((item) => item.id !== removedItem.id);
103 | },
104 | },
105 | });
106 |
--------------------------------------------------------------------------------
/src/views/CartView.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
Shopping Cart
11 |
12 |
13 |
14 |
15 |
![]()
16 |
17 |
18 |
{{ item.title }}
19 |
${{ item.price / 100 }}
20 |
21 |
22 |
23 |
31 |
32 |
33 |
34 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
Order summary
45 |
46 |
47 |
48 |
Subtotal
49 |
${{ shop.cartSubtotal / 100 }}
50 |
51 |
52 |
53 |
Shipping
54 |
${{ shop.cartShipping / 100 }}
55 |
56 |
57 |
58 |
Tax
59 |
${{ (shop.cartTax / 100).toFixed(2) }}
60 |
61 |
62 |
63 |
Order total
64 |
${{ (shop.cartTotal / 100).toFixed(2) }}
65 |
66 |
67 |
68 |
71 |
72 |
73 |
74 |
75 | Nothing here, yet!
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/src/views/ItemView.vue:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
17 |
![]()
18 |
19 |
20 |
21 |
{{ item.title }}
22 |
23 |
${{ item.price / 100 }}
24 |
25 |
{{ item.description }}
26 |
27 |
28 |
40 |
41 |
42 |
43 |
44 |
60 |
--------------------------------------------------------------------------------
/src/views/ShopView.vue:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
16 |
21 |
22 |
{{ item.title }}
23 |
${{ item.price / 100 }}
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | "./index.html",
5 | "./src/**/*.{js,vue}",
6 | ],
7 | theme: {
8 | extend: {
9 | colors: {
10 | beige: "#f7f7f7",
11 | },
12 | },
13 | },
14 | plugins: [],
15 | };
16 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from "node:url";
2 | import { defineConfig } from "vite";
3 | import vue from "@vitejs/plugin-vue";
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | plugins: [vue()],
8 | resolve: {
9 | alias: {
10 | "@": fileURLToPath(new URL("./src", import.meta.url))
11 | },
12 | },
13 | });
14 |
--------------------------------------------------------------------------------