diff --git a/package.json b/package.json index a8227b435..292d8a349 100644 --- a/package.json +++ b/package.json @@ -7,20 +7,22 @@ "build": "vue-tsc --noEmit && vite build", "preview": "vite preview --port 5050", "test:unit": "vitest --environment jsdom --run", + "test:unit:watch": "vitest --environment jsdom --watch", + "test:unit:coverage": "vitest run --environment jsdom --coverage", "test:e2e": "start-server-and-test preview http://127.0.0.1:5050/ 'cypress open'", "test:e2e:ci": "start-server-and-test preview http://127.0.0.1:5050/ 'cypress run'", - "typecheck": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false", + "typecheck": "vue-tsc --noEmit -p tsconfig.app.json --composite false", "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", "story:dev": "histoire dev", "story:build": "histoire build" }, "dependencies": { - "pinia": "^2.0.11", + "pinia": "^2.0.12", "vue": "^3.2.31", - "vue-router": "^4.0.13" + "vue-router": "^4.0.14" }, "devDependencies": { - "@rushstack/eslint-patch": "^1.1.0", + "@rushstack/eslint-patch": "^1.1.1", "@types/jsdom": "^16.2.14", "@types/node": "^16.11.26", "@vitejs/plugin-vue": "^2.2.4", @@ -29,16 +31,17 @@ "@vue/eslint-config-typescript": "^10.0.0", "@vue/test-utils": "^2.0.0-rc.18", "@vue/tsconfig": "^0.1.3", - "autoprefixer": "^10.4.2", - "cypress": "^9.5.1", - "eslint": "^8.10.0", + "autoprefixer": "^10.4.4", + "c8": "^7.11.0", + "cypress": "^9.5.2", + "eslint": "^8.11.0", "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-vue": "^8.5.0", - "histoire": "^0.1.3", + "histoire": "^0.2.0", "husky": "^7.0.4", "jsdom": "^19.0.0", - "postcss": "^8.4.8", - "prettier": "^2.5.1", + "postcss": "^8.4.12", + "prettier": "^2.6.0", "sass": "^1.49.9", "start-server-and-test": "^1.14.0", "tailwindcss": "^3.0.23", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 61cebd09d..239056ba1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,7 @@ lockfileVersion: 5.3 specifiers: - '@rushstack/eslint-patch': ^1.1.0 + '@rushstack/eslint-patch': ^1.1.1 '@types/jsdom': ^16.2.14 '@types/node': ^16.11.26 '@vitejs/plugin-vue': ^2.2.4 @@ -10,17 +10,18 @@ specifiers: '@vue/eslint-config-typescript': ^10.0.0 '@vue/test-utils': ^2.0.0-rc.18 '@vue/tsconfig': ^0.1.3 - autoprefixer: ^10.4.2 - cypress: ^9.5.1 - eslint: ^8.10.0 + autoprefixer: ^10.4.4 + c8: ^7.11.0 + cypress: ^9.5.2 + eslint: ^8.11.0 eslint-plugin-cypress: ^2.12.1 eslint-plugin-vue: ^8.5.0 - histoire: ^0.1.3 + histoire: ^0.2.0 husky: ^7.0.4 jsdom: ^19.0.0 - pinia: ^2.0.11 - postcss: ^8.4.8 - prettier: ^2.5.1 + pinia: ^2.0.12 + postcss: ^8.4.12 + prettier: ^2.6.0 sass: ^1.49.9 start-server-and-test: ^1.14.0 tailwindcss: ^3.0.23 @@ -29,41 +30,42 @@ specifiers: vite: ^2.8.6 vitest: ^0.5.9 vue: ^3.2.31 - vue-router: ^4.0.13 + vue-router: ^4.0.14 vue-tsc: ^0.31.4 dependencies: - pinia: 2.0.11_typescript@4.5.5+vue@3.2.31 + pinia: 2.0.12_typescript@4.5.5+vue@3.2.31 vue: 3.2.31 - vue-router: 4.0.13_vue@3.2.31 + vue-router: 4.0.14_vue@3.2.31 devDependencies: - '@rushstack/eslint-patch': 1.1.0 + '@rushstack/eslint-patch': 1.1.1 '@types/jsdom': 16.2.14 '@types/node': 16.11.26 '@vitejs/plugin-vue': 2.2.4_vite@2.8.6+vue@3.2.31 '@vitejs/plugin-vue-jsx': 1.3.8 - '@vue/eslint-config-prettier': 7.0.0_eslint@8.10.0+prettier@2.5.1 - '@vue/eslint-config-typescript': 10.0.0_6bae48b99b40de9ce3e67c9c629a2961 + '@vue/eslint-config-prettier': 7.0.0_eslint@8.11.0+prettier@2.6.0 + '@vue/eslint-config-typescript': 10.0.0_63e6d4a814f7d8ae31e8c8538e82e3a4 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.31 '@vue/tsconfig': 0.1.3_@types+node@16.11.26 - autoprefixer: 10.4.2_postcss@8.4.8 - cypress: 9.5.1 - eslint: 8.10.0 - eslint-plugin-cypress: 2.12.1_eslint@8.10.0 - eslint-plugin-vue: 8.5.0_eslint@8.10.0 - histoire: 0.1.3_cd0dd645aa5dde4c3c337175f134c2cd + autoprefixer: 10.4.4_postcss@8.4.12 + c8: 7.11.0 + cypress: 9.5.2 + eslint: 8.11.0 + eslint-plugin-cypress: 2.12.1_eslint@8.11.0 + eslint-plugin-vue: 8.5.0_eslint@8.11.0 + histoire: 0.2.0_cd0dd645aa5dde4c3c337175f134c2cd husky: 7.0.4 jsdom: 19.0.0 - postcss: 8.4.8 - prettier: 2.5.1 + postcss: 8.4.12 + prettier: 2.6.0 sass: 1.49.9 start-server-and-test: 1.14.0 - tailwindcss: 3.0.23_autoprefixer@10.4.2 + tailwindcss: 3.0.23_autoprefixer@10.4.4 tailwindcss-themeable: 1.3.0 typescript: 4.5.5 vite: 2.8.6_sass@1.49.9 - vitest: 0.5.9_jsdom@19.0.0+sass@1.49.9 + vitest: 0.5.9_d9d2d37e110baf3b78cf157ce5497ceb vue-tsc: 0.31.4_typescript@4.5.5 packages: @@ -384,6 +386,10 @@ packages: to-fast-properties: 2.0.0 dev: true + /@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + /@cypress/request/2.88.10: resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==} engines: {node: '>= 6'} @@ -431,15 +437,15 @@ packages: resolution: {integrity: sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==} dev: true - /@eslint/eslintrc/1.2.0: - resolution: {integrity: sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==} + /@eslint/eslintrc/1.2.1: + resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.3 espree: 9.3.1 globals: 13.12.1 - ignore: 4.0.6 + ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -468,8 +474,8 @@ packages: '@hapi/hoek': 9.2.1 dev: true - /@histoire/controls/0.1.3: - resolution: {integrity: sha512-yCoNHfVInr9KzdSCkgfQR0CNuuAznr3pY9kWsAsDqUYN90AU0g4URKyPkxN/F3kykqZiS1oSq49LC+ekDjS+jw==} + /@histoire/controls/0.2.0: + resolution: {integrity: sha512-konKWawyyBJ7PUtygu8KmO4kQUp8KL7vwiMQZLNGRaO7hNNmfK9oOxmRJOHBx1XJV1YEzNjZyy6oqxJh4rn+lQ==} dev: true /@humanwhocodes/config-array/0.9.5: @@ -495,6 +501,11 @@ packages: vue: 3.2.31 dev: true + /@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + /@jridgewell/resolve-uri/3.0.5: resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} engines: {node: '>=6.0.0'} @@ -532,6 +543,10 @@ packages: fastq: 1.13.0 dev: true + /@polka/url/1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + dev: true + /@rollup/pluginutils/4.1.2: resolution: {integrity: sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==} engines: {node: '>= 8.0.0'} @@ -540,8 +555,8 @@ packages: picomatch: 2.3.1 dev: true - /@rushstack/eslint-patch/1.1.0: - resolution: {integrity: sha512-JLo+Y592QzIE+q7Dl2pMUtt4q8SKYI5jDrZxrozEQxnGVOyYE+GWK9eLkwTaeN9DDctlaRAQ3TBmzZ1qdLE30A==} + /@rushstack/eslint-patch/1.1.1: + resolution: {integrity: sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==} dev: true /@sideway/address/4.1.3: @@ -585,6 +600,10 @@ packages: '@types/node': 16.11.26 dev: true + /@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + /@types/jsdom/16.2.14: resolution: {integrity: sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w==} dependencies: @@ -645,7 +664,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin/5.13.0_1e08a597a4fb107867dcbe827a94038a: + /@typescript-eslint/eslint-plugin/5.13.0_0b4c3c3c657ed902ebed4a02b41c358c: resolution: {integrity: sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -656,12 +675,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.13.0_eslint@8.10.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.13.0_eslint@8.11.0+typescript@4.5.5 '@typescript-eslint/scope-manager': 5.13.0 - '@typescript-eslint/type-utils': 5.13.0_eslint@8.10.0+typescript@4.5.5 - '@typescript-eslint/utils': 5.13.0_eslint@8.10.0+typescript@4.5.5 + '@typescript-eslint/type-utils': 5.13.0_eslint@8.11.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.13.0_eslint@8.11.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.10.0 + eslint: 8.11.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -672,7 +691,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.13.0_eslint@8.10.0+typescript@4.5.5: + /@typescript-eslint/parser/5.13.0_eslint@8.11.0+typescript@4.5.5: resolution: {integrity: sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -686,7 +705,7 @@ packages: '@typescript-eslint/types': 5.13.0 '@typescript-eslint/typescript-estree': 5.13.0_typescript@4.5.5 debug: 4.3.3 - eslint: 8.10.0 + eslint: 8.11.0 typescript: 4.5.5 transitivePeerDependencies: - supports-color @@ -700,7 +719,7 @@ packages: '@typescript-eslint/visitor-keys': 5.13.0 dev: true - /@typescript-eslint/type-utils/5.13.0_eslint@8.10.0+typescript@4.5.5: + /@typescript-eslint/type-utils/5.13.0_eslint@8.11.0+typescript@4.5.5: resolution: {integrity: sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -710,9 +729,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.13.0_eslint@8.10.0+typescript@4.5.5 + '@typescript-eslint/utils': 5.13.0_eslint@8.11.0+typescript@4.5.5 debug: 4.3.3 - eslint: 8.10.0 + eslint: 8.11.0 tsutils: 3.21.0_typescript@4.5.5 typescript: 4.5.5 transitivePeerDependencies: @@ -745,7 +764,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.13.0_eslint@8.10.0+typescript@4.5.5: + /@typescript-eslint/utils/5.13.0_eslint@8.11.0+typescript@4.5.5: resolution: {integrity: sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -755,9 +774,9 @@ packages: '@typescript-eslint/scope-manager': 5.13.0 '@typescript-eslint/types': 5.13.0 '@typescript-eslint/typescript-estree': 5.13.0_typescript@4.5.5 - eslint: 8.10.0 + eslint: 8.11.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.10.0 + eslint-utils: 3.0.0_eslint@8.11.0 transitivePeerDependencies: - supports-color - typescript @@ -904,7 +923,7 @@ packages: '@vue/shared': 3.2.31 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.8 + postcss: 8.4.12 source-map: 0.6.1 dev: false @@ -918,30 +937,33 @@ packages: /@vue/devtools-api/6.0.12: resolution: {integrity: sha512-iO/4FIezHKXhiDBdKySCvJVh8/mZPxHpiQrTy+PXVqJZgpTPTdHy4q8GXulaY+UKEagdkBb0onxNQZ0LNiqVhw==} - /@vue/eslint-config-prettier/7.0.0_eslint@8.10.0+prettier@2.5.1: + /@vue/devtools-api/6.1.3: + resolution: {integrity: sha512-79InfO2xHv+WHIrH1bHXQUiQD/wMls9qBk6WVwGCbdwP7/3zINtvqPNMtmSHXsIKjvUAHc8L0ouOj6ZQQRmcXg==} + + /@vue/eslint-config-prettier/7.0.0_eslint@8.11.0+prettier@2.6.0: resolution: {integrity: sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==} peerDependencies: eslint: '>= 7.28.0' prettier: '>= 2.0.0' dependencies: - eslint: 8.10.0 - eslint-config-prettier: 8.5.0_eslint@8.10.0 - eslint-plugin-prettier: 4.0.0_f3d13a703a9c1079e3d1af6044603beb - prettier: 2.5.1 + eslint: 8.11.0 + eslint-config-prettier: 8.5.0_eslint@8.11.0 + eslint-plugin-prettier: 4.0.0_68edcf5670f37721baf5d2cac6124e4d + prettier: 2.6.0 dev: true - /@vue/eslint-config-typescript/10.0.0_6bae48b99b40de9ce3e67c9c629a2961: + /@vue/eslint-config-typescript/10.0.0_63e6d4a814f7d8ae31e8c8538e82e3a4: resolution: {integrity: sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 eslint-plugin-vue: ^8.0.1 dependencies: - '@typescript-eslint/eslint-plugin': 5.13.0_1e08a597a4fb107867dcbe827a94038a - '@typescript-eslint/parser': 5.13.0_eslint@8.10.0+typescript@4.5.5 - eslint: 8.10.0 - eslint-plugin-vue: 8.5.0_eslint@8.10.0 - vue-eslint-parser: 8.3.0_eslint@8.10.0 + '@typescript-eslint/eslint-plugin': 5.13.0_0b4c3c3c657ed902ebed4a02b41c358c + '@typescript-eslint/parser': 5.13.0_eslint@8.11.0+typescript@4.5.5 + eslint: 8.11.0 + eslint-plugin-vue: 8.5.0_eslint@8.11.0 + vue-eslint-parser: 8.3.0_eslint@8.11.0 transitivePeerDependencies: - supports-color - typescript @@ -1212,19 +1234,19 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /autoprefixer/10.4.2_postcss@8.4.8: - resolution: {integrity: sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==} + /autoprefixer/10.4.4_postcss@8.4.12: + resolution: {integrity: sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.19.3 - caniuse-lite: 1.0.30001312 + browserslist: 4.20.2 + caniuse-lite: 1.0.30001319 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.8 + postcss: 8.4.12 postcss-value-parser: 4.2.0 dev: true @@ -1270,6 +1292,10 @@ packages: engines: {node: '>=8'} dev: true + /birpc/0.1.0: + resolution: {integrity: sha512-nQ5QDTH0JITjPxAdL1PRLp3f//1FOu5nHwYQYxxabE78Jp+V/mrskcWmHBhHCrKN+eErj3lVLKrv66tMGf5MSg==} + dev: true + /blob-util/2.0.2: resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} dev: true @@ -1308,6 +1334,18 @@ packages: picocolors: 1.0.0 dev: true + /browserslist/4.20.2: + resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001319 + electron-to-chromium: 1.4.88 + escalade: 3.1.1 + node-releases: 2.0.2 + picocolors: 1.0.0 + dev: true + /buffer-crc32/0.2.13: resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} dev: true @@ -1323,6 +1361,25 @@ packages: ieee754: 1.2.1 dev: true + /c8/7.11.0: + resolution: {integrity: sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.4 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 8.1.1 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + /cachedir/2.3.0: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} engines: {node: '>=6'} @@ -1354,6 +1411,10 @@ packages: resolution: {integrity: sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==} dev: true + /caniuse-lite/1.0.30001319: + resolution: {integrity: sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==} + dev: true + /case/1.6.3: resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} engines: {node: '>= 0.8.0'} @@ -1456,6 +1517,14 @@ packages: string-width: 4.2.3 dev: true + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -1523,6 +1592,16 @@ packages: typedarray: 0.0.6 dev: true + /connect/3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + dev: true + /constantinople/4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: @@ -1589,8 +1668,8 @@ packages: resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==} dev: false - /cypress/9.5.1: - resolution: {integrity: sha512-H7lUWB3Svr44gz1rNnj941xmdsCljXoJa2cDneAltjI9leKLMQLm30x6jLlpQ730tiVtIbW5HdUmBzPzwzfUQg==} + /cypress/9.5.2: + resolution: {integrity: sha512-gYiQYvJozMzDOriUV1rCt6CeRM/pRK4nhwGJj3nJQyX2BoUdTCVwp30xDMKc771HiNVhBtgj5o5/iBdVDVXQUg==} engines: {node: '>=12.0.0'} hasBin: true requiresBuild: true @@ -1659,6 +1738,12 @@ packages: resolution: {integrity: sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow==} dev: true + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + dependencies: + ms: 2.0.0 + dev: true + /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} dependencies: @@ -1815,10 +1900,18 @@ packages: safer-buffer: 2.1.2 dev: true + /ee-first/1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} + dev: true + /electron-to-chromium/1.4.75: resolution: {integrity: sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q==} dev: true + /electron-to-chromium/1.4.88: + resolution: {integrity: sha512-oA7mzccefkvTNi9u7DXmT0LqvhnOiN2BhSrKerta7HeUC1cLoIwtbf2wL+Ah2ozh5KQd3/1njrGrwDBXx6d14Q==} + dev: true + /emmet/2.3.6: resolution: {integrity: sha512-pLS4PBPDdxuUAmw7Me7+TcHbykTsBKN/S9XJbUOMFQrNv9MoshzyMFK/R57JBm94/6HSL4vHnDeEmxlC82NQ4A==} dependencies: @@ -1830,6 +1923,11 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true + /encodeurl/1.0.2: + resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} + engines: {node: '>= 0.8'} + dev: true + /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -2075,6 +2173,10 @@ packages: engines: {node: '>=6'} dev: true + /escape-html/1.0.3: + resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} + dev: true + /escape-string-regexp/1.0.5: resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} engines: {node: '>=0.8.0'} @@ -2098,25 +2200,25 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier/8.5.0_eslint@8.10.0: + /eslint-config-prettier/8.5.0_eslint@8.11.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.10.0 + eslint: 8.11.0 dev: true - /eslint-plugin-cypress/2.12.1_eslint@8.10.0: + /eslint-plugin-cypress/2.12.1_eslint@8.11.0: resolution: {integrity: sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==} peerDependencies: eslint: '>= 3.2.1' dependencies: - eslint: 8.10.0 + eslint: 8.11.0 globals: 11.12.0 dev: true - /eslint-plugin-prettier/4.0.0_f3d13a703a9c1079e3d1af6044603beb: + /eslint-plugin-prettier/4.0.0_68edcf5670f37721baf5d2cac6124e4d: resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} engines: {node: '>=6.0.0'} peerDependencies: @@ -2127,23 +2229,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.10.0 - eslint-config-prettier: 8.5.0_eslint@8.10.0 - prettier: 2.5.1 + eslint: 8.11.0 + eslint-config-prettier: 8.5.0_eslint@8.11.0 + prettier: 2.6.0 prettier-linter-helpers: 1.0.0 dev: true - /eslint-plugin-vue/8.5.0_eslint@8.10.0: + /eslint-plugin-vue/8.5.0_eslint@8.11.0: resolution: {integrity: sha512-i1uHCTAKOoEj12RDvdtONWrGzjFm/djkzqfhmQ0d6M/W8KM81mhswd/z+iTZ0jCpdUedW3YRgcVfQ37/J4zoYQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.10.0 - eslint-utils: 3.0.0_eslint@8.10.0 + eslint: 8.11.0 + eslint-utils: 3.0.0_eslint@8.11.0 natural-compare: 1.4.0 semver: 7.3.5 - vue-eslint-parser: 8.3.0_eslint@8.10.0 + vue-eslint-parser: 8.3.0_eslint@8.11.0 transitivePeerDependencies: - supports-color dev: true @@ -2164,13 +2266,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.10.0: + /eslint-utils/3.0.0_eslint@8.11.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.10.0 + eslint: 8.11.0 eslint-visitor-keys: 2.1.0 dev: true @@ -2184,12 +2286,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.10.0: - resolution: {integrity: sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==} + /eslint/8.11.0: + resolution: {integrity: sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.0 + '@eslint/eslintrc': 1.2.1 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -2198,7 +2300,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.10.0 + eslint-utils: 3.0.0_eslint@8.11.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 @@ -2411,6 +2513,27 @@ packages: to-regex-range: 5.0.1 dev: true + /finalhandler/1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + dev: true + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2445,6 +2568,14 @@ packages: debug: 4.3.2 dev: true + /foreground-child/2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + /forever-agent/0.6.1: resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=} dev: true @@ -2519,6 +2650,11 @@ packages: engines: {node: '>=6.9.0'} dev: true + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + /get-func-name/2.0.0: resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} dev: true @@ -2683,19 +2819,21 @@ packages: hasBin: true dev: true - /histoire/0.1.3_cd0dd645aa5dde4c3c337175f134c2cd: - resolution: {integrity: sha512-5/92wzzpUpXIiobiMJ0vUpCeMpgHo3YfzObkz7l28HNmHZYQ6cNMnmoX4KG9GIPmYEs25jygKN0N4NYHYZwVyw==} + /histoire/0.2.0_cd0dd645aa5dde4c3c337175f134c2cd: + resolution: {integrity: sha512-gZjzqf2ioADS7gOcToFVjL5YRKtx/I4IXtzi+lCbmIsXzXmDWdaipobVFU+WZPsQVNpGlzNa9LaKLS5wrwVmaQ==} hasBin: true peerDependencies: vite: ^2.8.3 vue: ^3.2.31 dependencies: - '@histoire/controls': 0.1.3 + '@histoire/controls': 0.2.0 '@iconify/vue': 3.1.4_vue@3.2.31 '@vitejs/plugin-vue': 2.2.4_vite@2.8.6+vue@3.2.31 '@vueuse/core': 8.1.1_vue@3.2.31 + birpc: 0.1.0 case: 1.6.3 chokidar: 3.5.3 + connect: 3.7.0 defu: 5.0.1 diacritics: 1.3.0 floating-vue: 2.0.0-beta.8_vue@3.2.31 @@ -2709,14 +2847,16 @@ packages: mrmime: 1.0.0 pathe: 0.2.0 picocolors: 1.0.0 - pinia: 2.0.11_typescript@4.5.5+vue@3.2.31 + pinia: 2.0.12_typescript@4.5.5+vue@3.2.31 sade: 1.8.1 scroll-into-view-if-needed: 2.2.29 shiki: 0.10.1 + sirv: 2.0.2 + tinypool: 0.1.2 vite: 2.8.6_sass@1.49.9 - vite-node: 0.6.1_sass@1.49.9 + vite-node: 0.7.6_sass@1.49.9 vue: 3.2.31 - vue-router: 4.0.13_vue@3.2.31 + vue-router: 4.0.14_vue@3.2.31 transitivePeerDependencies: - '@types/markdown-it' - '@vue/composition-api' @@ -2734,6 +2874,10 @@ packages: whatwg-encoding: 2.0.0 dev: true + /html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + /html-tags/3.1.0: resolution: {integrity: sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==} engines: {node: '>=8'} @@ -2828,11 +2972,6 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true - /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} @@ -2984,6 +3123,28 @@ packages: resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=} dev: true + /istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports/3.1.4: + resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + /joi/17.6.0: resolution: {integrity: sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==} dependencies: @@ -3187,6 +3348,13 @@ packages: engines: {node: '>=14'} dev: true + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -3236,6 +3404,13 @@ packages: sourcemap-codec: 1.4.8 dev: false + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + /map-stream/0.1.0: resolution: {integrity: sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=} dev: true @@ -3335,6 +3510,10 @@ packages: engines: {node: '>=10'} dev: true + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + dev: true + /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true @@ -3399,6 +3578,13 @@ packages: engines: {node: '>= 6'} dev: true + /on-finished/2.3.0: + resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + /once/1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} dependencies: @@ -3440,6 +3626,20 @@ packages: resolution: {integrity: sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=} dev: true + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + /p-map/4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} @@ -3472,6 +3672,16 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true + /parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + /path-is-absolute/1.0.1: resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} engines: {node: '>=0.10.0'} @@ -3526,8 +3736,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /pinia/2.0.11_typescript@4.5.5+vue@3.2.31: - resolution: {integrity: sha512-JzcmnMqu28PNWOjDgEDK6fTrIzX8eQZKPPKvu/fpHdpXARUj1xeVdFi3YFIMOWswqaBd589cpmAMdSSTryI9iw==} + /pinia/2.0.12_typescript@4.5.5+vue@3.2.31: + resolution: {integrity: sha512-tUeuYGFrLU5irmGyRAIxp35q1OTcZ8sKpGT4XkPeVcG35W4R6cfXDbCGexzmVqH5lTQJJTXXbNGutIu9yS5yew==} peerDependencies: '@vue/composition-api': ^1.4.0 typescript: '>=4.4.4' @@ -3538,19 +3748,19 @@ packages: typescript: optional: true dependencies: - '@vue/devtools-api': 6.0.12 + '@vue/devtools-api': 6.1.3 typescript: 4.5.5 vue: 3.2.31 vue-demi: 0.12.1_vue@3.2.31 - /postcss-js/4.0.0_postcss@8.4.8: + /postcss-js/4.0.0_postcss@8.4.12: resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.3.3 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.8 + postcss: 8.4.12 dev: true /postcss-load-config/3.1.3: @@ -3566,13 +3776,13 @@ packages: yaml: 1.10.2 dev: true - /postcss-nested/5.0.6_postcss@8.4.8: + /postcss-nested/5.0.6_postcss@8.4.12: resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.8 + postcss: 8.4.12 postcss-selector-parser: 6.0.9 dev: true @@ -3588,8 +3798,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss/8.4.8: - resolution: {integrity: sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==} + /postcss/8.4.12: + resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.1 @@ -3613,8 +3823,8 @@ packages: fast-diff: 1.2.0 dev: true - /prettier/2.5.1: - resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} + /prettier/2.6.0: + resolution: {integrity: sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==} engines: {node: '>=10.13.0'} hasBin: true dev: true @@ -3803,6 +4013,11 @@ packages: throttleit: 1.0.0 dev: true + /require-directory/2.1.1: + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + engines: {node: '>=0.10.0'} + dev: true + /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3940,6 +4155,15 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /sirv/2.0.2: + resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.21 + mrmime: 1.0.0 + totalist: 3.0.0 + dev: true + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3981,6 +4205,11 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + /source-map/0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + dev: true + /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: false @@ -4023,6 +4252,11 @@ packages: - supports-color dev: true + /statuses/1.5.0: + resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} + engines: {node: '>= 0.6'} + dev: true + /stream-combiner/0.0.4: resolution: {integrity: sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=} dependencies: @@ -4114,7 +4348,7 @@ packages: resolution: {integrity: sha512-AmZrk3yAZaJqfrbGast24KrFDtD21rwil05xuqNMFPWTswCHyFugetPk9vy1X+KD4ZTAFWZwW2ULov6VUeK/1A==} dev: true - /tailwindcss/3.0.23_autoprefixer@10.4.2: + /tailwindcss/3.0.23_autoprefixer@10.4.4: resolution: {integrity: sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==} engines: {node: '>=12.13.0'} hasBin: true @@ -4122,7 +4356,7 @@ packages: autoprefixer: ^10.0.2 dependencies: arg: 5.0.1 - autoprefixer: 10.4.2_postcss@8.4.8 + autoprefixer: 10.4.4_postcss@8.4.12 chalk: 4.1.2 chokidar: 3.5.3 color-name: 1.1.4 @@ -4135,10 +4369,10 @@ packages: is-glob: 4.0.3 normalize-path: 3.0.0 object-hash: 2.2.0 - postcss: 8.4.8 - postcss-js: 4.0.0_postcss@8.4.8 + postcss: 8.4.12 + postcss-js: 4.0.0_postcss@8.4.12 postcss-load-config: 3.1.3 - postcss-nested: 5.0.6_postcss@8.4.8 + postcss-nested: 5.0.6_postcss@8.4.12 postcss-selector-parser: 6.0.9 postcss-value-parser: 4.2.0 quick-lru: 5.1.1 @@ -4147,6 +4381,15 @@ packages: - ts-node dev: true + /test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.0 + minimatch: 3.1.2 + dev: true + /text-table/0.2.0: resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} dev: true @@ -4209,6 +4452,11 @@ packages: resolution: {integrity: sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=} dev: true + /totalist/3.0.0: + resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} + engines: {node: '>=6'} + dev: true + /tough-cookie/2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} @@ -4318,6 +4566,11 @@ packages: engines: {node: '>= 10.0.0'} dev: true + /unpipe/1.0.0: + resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} + engines: {node: '>= 0.8'} + dev: true + /untildify/4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -4338,6 +4591,11 @@ packages: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} dev: true + /utils-merge/1.0.1: + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} + engines: {node: '>= 0.4.0'} + dev: true + /uuid/8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -4347,6 +4605,15 @@ packages: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true + /v8-to-istanbul/8.1.1: + resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} + engines: {node: '>=10.12.0'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 + source-map: 0.7.3 + dev: true + /verror/1.10.0: resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} engines: {'0': node >=0.6.0} @@ -4356,8 +4623,8 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node/0.6.1_sass@1.49.9: - resolution: {integrity: sha512-d5WJU2OaxpC/0op2SeDmjNDElLwVmCOQvitl4uZKjsIw+Qsc6w4CkA6pGvp7SIsxclIg1g7UMX0ka7Tuqy3Udg==} + /vite-node/0.7.6_sass@1.49.9: + resolution: {integrity: sha512-WeBR3JOHX3MD4SzJDwIjrJHd+lpaPHpcQf1sbDDgm7k98JqdTGiz9X+C/17EwHUwCd1lgPf5Nu4L3asIGPuXYw==} engines: {node: '>=14.14.0'} hasBin: true dependencies: @@ -4389,7 +4656,7 @@ packages: optional: true dependencies: esbuild: 0.14.24 - postcss: 8.4.8 + postcss: 8.4.12 resolve: 1.22.0 rollup: 2.69.0 sass: 1.49.9 @@ -4397,7 +4664,7 @@ packages: fsevents: 2.3.2 dev: true - /vitest/0.5.9_jsdom@19.0.0+sass@1.49.9: + /vitest/0.5.9_d9d2d37e110baf3b78cf157ce5497ceb: resolution: {integrity: sha512-R8lRP9Q1yIbwr8pDf2gvw4PFe8H5YMyHhBcdyfnUh6toLfCR10jrdI/WkNxdo5I4H/9XrMX9t+SAavdJExNdKg==} engines: {node: '>=14.14.0'} hasBin: true @@ -4418,6 +4685,7 @@ packages: dependencies: '@types/chai': 4.3.0 '@types/chai-subset': 1.3.3 + c8: 7.11.0 chai: 4.3.6 jsdom: 19.0.0 local-pkg: 0.4.1 @@ -4567,14 +4835,14 @@ packages: dependencies: vue: 3.2.31 - /vue-eslint-parser/8.3.0_eslint@8.10.0: + /vue-eslint-parser/8.3.0_eslint@8.11.0: resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.3 - eslint: 8.10.0 + eslint: 8.11.0 eslint-scope: 7.1.1 eslint-visitor-keys: 3.3.0 espree: 9.3.1 @@ -4593,8 +4861,8 @@ packages: vue: 3.2.31 dev: true - /vue-router/4.0.13_vue@3.2.31: - resolution: {integrity: sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==} + /vue-router/4.0.14_vue@3.2.31: + resolution: {integrity: sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==} peerDependencies: vue: ^3.2.0 dependencies: @@ -4767,6 +5035,11 @@ packages: engines: {node: '>=0.4'} dev: true + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true @@ -4776,9 +5049,32 @@ packages: engines: {node: '>= 6'} dev: true + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true + /yauzl/2.10.0: resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 dev: true + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true diff --git a/src/components/base/button/Button.story.vue b/src/components/base/button/Button.story.vue index 56e3dee65..ea0742da9 100644 --- a/src/components/base/button/Button.story.vue +++ b/src/components/base/button/Button.story.vue @@ -2,10 +2,39 @@ + + + + + + + + + + + + diff --git a/src/components/base/button/Button.vue b/src/components/base/button/Button.vue index 6f50049ba..a248568d7 100644 --- a/src/components/base/button/Button.vue +++ b/src/components/base/button/Button.vue @@ -1,13 +1,19 @@ - diff --git a/src/components/base/button/__tests__/Button.spec.ts b/src/components/base/button/__tests__/Button.spec.ts new file mode 100644 index 000000000..3ebaf69d7 --- /dev/null +++ b/src/components/base/button/__tests__/Button.spec.ts @@ -0,0 +1,74 @@ +import { describe, expect, it, vi } from "vitest"; +import { VButton } from "../index"; +import { mount } from "@vue/test-utils"; + +describe("Button", () => { + it("should render", () => { + expect(mount(VButton).html()).contains("button"); + }); + + it("should render with text", () => { + expect(mount(VButton, { slots: { default: "Hello Halo" } }).text()).toBe( + "Hello Halo" + ); + }); + + it("should work with type prop", () => { + // default button type is default + expect(mount(VButton).find(".btn").classes()).toContain("btn-default"); + + ["primary", "secondary", "danger"].forEach((type) => { + const button = mount(VButton, { props: { type } }); + expect(button.find(".btn").classes()).toContain(`btn-${type}`); + button.unmount(); + }); + }); + + it("should work with size prop", async () => { + // default button size is md + expect(mount(VButton).find(".btn").classes()).toContain("btn-md"); + + ["lg", "sm", "xs"].forEach((size) => { + const button = mount(VButton, { props: { size } }); + expect(button.find(".btn").classes()).toContain(`btn-${size}`); + button.unmount(); + }); + }); + + it("should work with circle prop", async () => { + const button = mount(VButton); + + // default: false + expect(button.find(".btn").classes()).not.toContain("btn-circle"); + + await button.setProps({ circle: true }); + expect(button.find(".btn").classes()).toContain("btn-circle"); + }); + + it("should work with block prop", async () => { + const button = mount(VButton); + + // default: false + expect(button.find(".btn").classes()).not.toContain("btn-block"); + + await button.setProps({ block: true }); + expect(button.find(".btn").classes()).toContain("btn-block"); + }); + + it("should work with disabled prop", async () => { + const onClick = vi.fn(() => 1); + + // default: false + const button = mount(VButton, { + emits: { click: onClick }, + }); + + await button.trigger("click"); + expect(onClick).toHaveBeenCalled(); + + onClick.mockReset(); + await button.setProps({ disabled: true }); + await button.trigger("click"); + expect(onClick).not.toHaveBeenCalled(); + }); +});