1
Fork 0

Fix UI tests by replacing jest with vitest

This commit is contained in:
viktorstrate 2022-07-08 15:23:34 +02:00
parent fdcf0cfd05
commit d1a92afe0f
No known key found for this signature in database
GPG Key ID: 3F855605109C1E8A
25 changed files with 500 additions and 151 deletions

View File

@ -43,24 +43,24 @@ module.exports = {
}, },
// parser: 'babel-eslint', // parser: 'babel-eslint',
overrides: [ overrides: [
Object.assign(require('eslint-plugin-jest').configs.recommended, { // Object.assign(require('eslint-plugin-jest').configs.recommended, {
files: ['**/*.test.js', '**/*.test.ts', '**/*.test.tsx'], // files: ['**/*.test.js', '**/*.test.ts', '**/*.test.tsx'],
env: { jest: true }, // env: { jest: true },
plugins: ['jest', 'jest-dom'], // plugins: ['jest', 'jest-dom'],
rules: Object.assign( // rules: Object.assign(
require('eslint-plugin-jest').configs.recommended.rules, // require('eslint-plugin-jest').configs.recommended.rules,
{ // {
'no-import-assign': 'off', // 'no-import-assign': 'off',
'react/prop-types': 'off', // 'react/prop-types': 'off',
'jest/valid-title': 'off', // 'jest/valid-title': 'off',
} // }
), // ),
settings: { // settings: {
jest: { // jest: {
version: 26, // version: 26,
}, // },
}, // },
}), // }),
{ {
files: ['**/*.js'], files: ['**/*.js'],
rules: { rules: {

481
ui/package-lock.json generated
View File

@ -27,8 +27,6 @@
"classnames": "^2.3.1", "classnames": "^2.3.1",
"connect-history-api-fallback": "^2.0.0", "connect-history-api-fallback": "^2.0.0",
"copy-to-clipboard": "^3.3.1", "copy-to-clipboard": "^3.3.1",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-jest-dom": "^4.0.2",
"i18next": "^21.8.13", "i18next": "^21.8.13",
"mapbox-gl": "^2.9.1", "mapbox-gl": "^2.9.1",
"postcss": "^8.4.14", "postcss": "^8.4.14",
@ -55,11 +53,15 @@
"@testing-library/jest-dom": "^5.16.4", "@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0", "@testing-library/react": "^13.3.0",
"@testing-library/user-event": "^14.2.1", "@testing-library/user-event": "^14.2.1",
"@vitest/ui": "^0.17.1",
"apollo": "2.34.0", "apollo": "2.34.0",
"apollo-language-server": "1.26.9", "apollo-language-server": "1.26.9",
"eslint": "^8.19.0",
"eslint-config-prettier": "^8.5.0",
"husky": "^8.0.1", "husky": "^8.0.1",
"i18next-parser": "^6.5.0", "i18next-parser": "^6.5.0",
"lint-staged": "^13.0.3" "lint-staged": "^13.0.3",
"vitest": "^0.17.1"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
@ -4271,6 +4273,12 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/@polka/url": {
"version": "1.0.0-next.21",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
"dev": true
},
"node_modules/@rollup/plugin-babel": { "node_modules/@rollup/plugin-babel": {
"version": "5.3.1", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@ -4608,6 +4616,7 @@
"version": "8.11.3", "version": "8.11.3",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz",
"integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==",
"dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/runtime": "^7.12.5", "@babel/runtime": "^7.12.5",
@ -4626,6 +4635,7 @@
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": { "dependencies": {
"color-convert": "^2.0.1" "color-convert": "^2.0.1"
}, },
@ -4640,6 +4650,7 @@
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": { "dependencies": {
"ansi-styles": "^4.1.0", "ansi-styles": "^4.1.0",
"supports-color": "^7.1.0" "supports-color": "^7.1.0"
@ -4655,6 +4666,7 @@
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": { "dependencies": {
"color-name": "~1.1.4" "color-name": "~1.1.4"
}, },
@ -4665,12 +4677,14 @@
"node_modules/@testing-library/dom/node_modules/color-name": { "node_modules/@testing-library/dom/node_modules/color-name": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
}, },
"node_modules/@testing-library/dom/node_modules/has-flag": { "node_modules/@testing-library/dom/node_modules/has-flag": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@ -4679,6 +4693,7 @@
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": { "dependencies": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
}, },
@ -4853,7 +4868,8 @@
"node_modules/@types/aria-query": { "node_modules/@types/aria-query": {
"version": "4.2.2", "version": "4.2.2",
"resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz",
"integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==",
"dev": true
}, },
"node_modules/@types/babel__core": { "node_modules/@types/babel__core": {
"version": "7.1.18", "version": "7.1.18",
@ -4909,6 +4925,21 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/chai": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz",
"integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==",
"dev": true
},
"node_modules/@types/chai-subset": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz",
"integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==",
"dev": true,
"dependencies": {
"@types/chai": "*"
}
},
"node_modules/@types/connect": { "node_modules/@types/connect": {
"version": "3.4.35", "version": "3.4.35",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
@ -5558,6 +5589,15 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/@vitest/ui": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.17.1.tgz",
"integrity": "sha512-B4PGDk5IZ10HT9GzR0NQ96VEphWY9dTf1yqBGNjPk2c7wQnhZJdHzv3tgFQiyFK5YR1cjtOV918QHCnptV4r5w==",
"dev": true,
"dependencies": {
"sirv": "^2.0.2"
}
},
"node_modules/@webassemblyjs/ast": { "node_modules/@webassemblyjs/ast": {
"version": "1.11.1", "version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@ -6726,6 +6766,7 @@
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
"integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==",
"dev": true,
"engines": { "engines": {
"node": ">=6.0" "node": ">=6.0"
} }
@ -6818,6 +6859,15 @@
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
}, },
"node_modules/assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/ast-types": { "node_modules/ast-types": {
"version": "0.14.2", "version": "0.14.2",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
@ -7657,6 +7707,24 @@
"node": ">=4" "node": ">=4"
} }
}, },
"node_modules/chai": {
"version": "4.3.6",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
"integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
"dev": true,
"dependencies": {
"assertion-error": "^1.1.0",
"check-error": "^1.0.2",
"deep-eql": "^3.0.1",
"get-func-name": "^2.0.0",
"loupe": "^2.3.1",
"pathval": "^1.1.1",
"type-detect": "^4.0.5"
},
"engines": {
"node": ">=4"
}
},
"node_modules/chalk": { "node_modules/chalk": {
"version": "2.4.2", "version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@ -7698,6 +7766,15 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
"integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/check-types": { "node_modules/check-types": {
"version": "11.1.2", "version": "11.1.2",
"resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz",
@ -9088,6 +9165,18 @@
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
"integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
}, },
"node_modules/deep-eql": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
"dev": true,
"dependencies": {
"type-detect": "^4.0.0"
},
"engines": {
"node": ">=0.12"
}
},
"node_modules/deep-is": { "node_modules/deep-is": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@ -9291,7 +9380,8 @@
"node_modules/dom-accessibility-api": { "node_modules/dom-accessibility-api": {
"version": "0.5.11", "version": "0.5.11",
"resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz",
"integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==" "integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==",
"dev": true
}, },
"node_modules/dom-converter": { "node_modules/dom-converter": {
"version": "0.2.0", "version": "0.2.0",
@ -10159,6 +10249,7 @@
"version": "8.5.0", "version": "8.5.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"dev": true,
"bin": { "bin": {
"eslint-config-prettier": "bin/cli.js" "eslint-config-prettier": "bin/cli.js"
}, },
@ -10392,24 +10483,6 @@
} }
} }
}, },
"node_modules/eslint-plugin-jest-dom": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-4.0.2.tgz",
"integrity": "sha512-Jo51Atwyo2TdcUncjmU+UQeSTKh3sc2LF/M5i/R3nTU0Djw9V65KGJisdm/RtuKhy2KH/r7eQ1n6kwYFPNdHlA==",
"dependencies": {
"@babel/runtime": "^7.16.3",
"@testing-library/dom": "^8.11.1",
"requireindex": "^1.2.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0",
"npm": ">=6",
"yarn": ">=1"
},
"peerDependencies": {
"eslint": "^6.8.0 || ^7.0.0 || ^8.0.0"
}
},
"node_modules/eslint-plugin-jsx-a11y": { "node_modules/eslint-plugin-jsx-a11y": {
"version": "6.6.0", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz",
@ -11952,6 +12025,15 @@
"node": "6.* || 8.* || >= 10.*" "node": "6.* || 8.* || >= 10.*"
} }
}, },
"node_modules/get-func-name": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
"integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/get-intrinsic": { "node_modules/get-intrinsic": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
@ -12091,7 +12173,7 @@
"node_modules/glob-stream": { "node_modules/glob-stream": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
"integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"extend": "^3.0.0", "extend": "^3.0.0",
@ -12112,7 +12194,7 @@
"node_modules/glob-stream/node_modules/glob-parent": { "node_modules/glob-stream/node_modules/glob-parent": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"is-glob": "^3.1.0", "is-glob": "^3.1.0",
@ -16803,6 +16885,18 @@
"node": ">=8.9.0" "node": ">=8.9.0"
} }
}, },
"node_modules/local-pkg": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz",
"integrity": "sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==",
"dev": true,
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/locate-path": { "node_modules/locate-path": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@ -16973,9 +17067,9 @@
} }
}, },
"node_modules/log-update/node_modules/ansi-regex": { "node_modules/log-update/node_modules/ansi-regex": {
"version": "3.0.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=4" "node": ">=4"
@ -17039,6 +17133,15 @@
"loose-envify": "cli.js" "loose-envify": "cli.js"
} }
}, },
"node_modules/loupe": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
"integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
"dev": true,
"dependencies": {
"get-func-name": "^2.0.0"
}
},
"node_modules/lower-case": { "node_modules/lower-case": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
@ -17062,6 +17165,7 @@
"version": "1.4.4", "version": "1.4.4",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
"integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=",
"dev": true,
"bin": { "bin": {
"lz-string": "bin/bin.js" "lz-string": "bin/bin.js"
} }
@ -17406,6 +17510,15 @@
"node": "*" "node": "*"
} }
}, },
"node_modules/mrmime": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
"integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/ms": { "node_modules/ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@ -18170,6 +18283,15 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/pathval": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/pbf": { "node_modules/pbf": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz",
@ -18711,7 +18833,7 @@
"node_modules/postcss-functions": { "node_modules/postcss-functions": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz", "resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz",
"integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=", "integrity": "sha512-N5yWXWKA+uhpLQ9ZhBRl2bIAdM6oVJYpDojuI1nF2SzXBimJcdjFwiAouBVbO5VuOF3qA6BSFWFc3wXbbj72XQ==",
"dependencies": { "dependencies": {
"glob": "^7.1.2", "glob": "^7.1.2",
"object-assign": "^4.1.1", "object-assign": "^4.1.1",
@ -20778,14 +20900,6 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/requireindex": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
"integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
"engines": {
"node": ">=0.10.5"
}
},
"node_modules/requires-port": { "node_modules/requires-port": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@ -21533,6 +21647,20 @@
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
}, },
"node_modules/sirv": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
"integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==",
"dev": true,
"dependencies": {
"@polka/url": "^1.0.0-next.20",
"mrmime": "^1.0.0",
"totalist": "^3.0.0"
},
"engines": {
"node": ">= 10"
}
},
"node_modules/sisteransi": { "node_modules/sisteransi": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
@ -22737,11 +22865,29 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
}, },
"node_modules/tinypool": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.2.2.tgz",
"integrity": "sha512-tp4n5OARNL3v8ntdJUyo5NsDfwvUtu8isB43USjrsQxQrADDKY6UGBkmFaw/2vNmEt8S/uSm2U5FhkiK1eAFGw==",
"dev": true,
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/tinyqueue": { "node_modules/tinyqueue": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz",
"integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
}, },
"node_modules/tinyspy": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.3.tgz",
"integrity": "sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw==",
"dev": true,
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/tmp": { "node_modules/tmp": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@ -22849,6 +22995,15 @@
"node": ">=0.6" "node": ">=0.6"
} }
}, },
"node_modules/totalist": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
"integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/tough-cookie": { "node_modules/tough-cookie": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
@ -23749,6 +23904,56 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
}, },
"node_modules/vitest": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-0.17.1.tgz",
"integrity": "sha512-d6NsFC6FPmZ5XdiSYfW5rwJ/b8060wqe2steNNlVbhO69HWma6CucIm5g7PXlCSkmKvrdEbUsZHPAarlH83VGw==",
"dev": true,
"dependencies": {
"@types/chai": "^4.3.1",
"@types/chai-subset": "^1.3.3",
"@types/node": "*",
"chai": "^4.3.6",
"debug": "^4.3.4",
"local-pkg": "^0.4.1",
"tinypool": "^0.2.1",
"tinyspy": "^0.3.3",
"vite": "^2.9.12 || ^3.0.0-0"
},
"bin": {
"vitest": "vitest.mjs"
},
"engines": {
"node": ">=v14.16.0"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@edge-runtime/vm": "*",
"@vitest/ui": "*",
"c8": "*",
"happy-dom": "*",
"jsdom": "*"
},
"peerDependenciesMeta": {
"@edge-runtime/vm": {
"optional": true
},
"@vitest/ui": {
"optional": true
},
"c8": {
"optional": true
},
"happy-dom": {
"optional": true
},
"jsdom": {
"optional": true
}
}
},
"node_modules/void-elements": { "node_modules/void-elements": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
@ -27727,6 +27932,12 @@
} }
} }
}, },
"@polka/url": {
"version": "1.0.0-next.21",
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
"dev": true
},
"@rollup/plugin-babel": { "@rollup/plugin-babel": {
"version": "5.3.1", "version": "5.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@ -27927,6 +28138,7 @@
"version": "8.11.3", "version": "8.11.3",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz",
"integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==",
"dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/runtime": "^7.12.5", "@babel/runtime": "^7.12.5",
@ -27942,6 +28154,7 @@
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": { "requires": {
"color-convert": "^2.0.1" "color-convert": "^2.0.1"
} }
@ -27950,6 +28163,7 @@
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": { "requires": {
"ansi-styles": "^4.1.0", "ansi-styles": "^4.1.0",
"supports-color": "^7.1.0" "supports-color": "^7.1.0"
@ -27959,6 +28173,7 @@
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": { "requires": {
"color-name": "~1.1.4" "color-name": "~1.1.4"
} }
@ -27966,17 +28181,20 @@
"color-name": { "color-name": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
}, },
"has-flag": { "has-flag": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
}, },
"supports-color": { "supports-color": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": { "requires": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
} }
@ -28110,7 +28328,8 @@
"@types/aria-query": { "@types/aria-query": {
"version": "4.2.2", "version": "4.2.2",
"resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz",
"integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==",
"dev": true
}, },
"@types/babel__core": { "@types/babel__core": {
"version": "7.1.18", "version": "7.1.18",
@ -28166,6 +28385,21 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@types/chai": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz",
"integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==",
"dev": true
},
"@types/chai-subset": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz",
"integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==",
"dev": true,
"requires": {
"@types/chai": "*"
}
},
"@types/connect": { "@types/connect": {
"version": "3.4.35", "version": "3.4.35",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
@ -28694,6 +28928,15 @@
} }
} }
}, },
"@vitest/ui": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.17.1.tgz",
"integrity": "sha512-B4PGDk5IZ10HT9GzR0NQ96VEphWY9dTf1yqBGNjPk2c7wQnhZJdHzv3tgFQiyFK5YR1cjtOV918QHCnptV4r5w==",
"dev": true,
"requires": {
"sirv": "^2.0.2"
}
},
"@webassemblyjs/ast": { "@webassemblyjs/ast": {
"version": "1.11.1", "version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@ -29098,7 +29341,7 @@
"git-url-parse": "11.6.0", "git-url-parse": "11.6.0",
"glob": "8.0.1", "glob": "8.0.1",
"global-agent": "3.0.0", "global-agent": "3.0.0",
"graphql": "^15.0.0", "graphql": "^15.5.0",
"graphql-tag": "2.12.6", "graphql-tag": "2.12.6",
"listr": "0.14.3", "listr": "0.14.3",
"lodash.identity": "3.0.0", "lodash.identity": "3.0.0",
@ -29417,7 +29660,7 @@
"cosmiconfig": "^7.0.1", "cosmiconfig": "^7.0.1",
"dotenv": "^16.0.0", "dotenv": "^16.0.0",
"glob": "^8.0.0", "glob": "^8.0.0",
"graphql": "^15.0.0", "graphql": "^15.5.0",
"graphql-tag": "^2.10.1", "graphql-tag": "^2.10.1",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
"lodash.merge": "^4.6.1", "lodash.merge": "^4.6.1",
@ -29662,7 +29905,8 @@
"aria-query": { "aria-query": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
"integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==",
"dev": true
}, },
"array-flatten": { "array-flatten": {
"version": "2.1.2", "version": "2.1.2",
@ -29725,6 +29969,12 @@
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
}, },
"assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
"ast-types": { "ast-types": {
"version": "0.14.2", "version": "0.14.2",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
@ -30356,6 +30606,21 @@
"resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
"integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw=="
}, },
"chai": {
"version": "4.3.6",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
"integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
"dev": true,
"requires": {
"assertion-error": "^1.1.0",
"check-error": "^1.0.2",
"deep-eql": "^3.0.1",
"get-func-name": "^2.0.0",
"loupe": "^2.3.1",
"pathval": "^1.1.1",
"type-detect": "^4.0.5"
}
},
"chalk": { "chalk": {
"version": "2.4.2", "version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@ -30391,6 +30656,12 @@
"resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="
}, },
"check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
"integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
"dev": true
},
"check-types": { "check-types": {
"version": "11.1.2", "version": "11.1.2",
"resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz",
@ -31428,6 +31699,15 @@
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
"integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
}, },
"deep-eql": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
"dev": true,
"requires": {
"type-detect": "^4.0.0"
}
},
"deep-is": { "deep-is": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@ -31577,7 +31857,8 @@
"dom-accessibility-api": { "dom-accessibility-api": {
"version": "0.5.11", "version": "0.5.11",
"resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz",
"integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==" "integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==",
"dev": true
}, },
"dom-converter": { "dom-converter": {
"version": "0.2.0", "version": "0.2.0",
@ -32246,6 +32527,7 @@
"version": "8.5.0", "version": "8.5.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"dev": true,
"requires": {} "requires": {}
}, },
"eslint-config-react-app": { "eslint-config-react-app": {
@ -32418,16 +32700,6 @@
"@typescript-eslint/experimental-utils": "^5.0.0" "@typescript-eslint/experimental-utils": "^5.0.0"
} }
}, },
"eslint-plugin-jest-dom": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-4.0.2.tgz",
"integrity": "sha512-Jo51Atwyo2TdcUncjmU+UQeSTKh3sc2LF/M5i/R3nTU0Djw9V65KGJisdm/RtuKhy2KH/r7eQ1n6kwYFPNdHlA==",
"requires": {
"@babel/runtime": "^7.16.3",
"@testing-library/dom": "^8.11.1",
"requireindex": "^1.2.0"
}
},
"eslint-plugin-jsx-a11y": { "eslint-plugin-jsx-a11y": {
"version": "6.6.0", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz",
@ -33460,6 +33732,12 @@
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
}, },
"get-func-name": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
"integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
"dev": true
},
"get-intrinsic": { "get-intrinsic": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
@ -33571,7 +33849,7 @@
"glob-stream": { "glob-stream": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
"integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==",
"dev": true, "dev": true,
"requires": { "requires": {
"extend": "^3.0.0", "extend": "^3.0.0",
@ -33589,7 +33867,7 @@
"glob-parent": { "glob-parent": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
"dev": true, "dev": true,
"requires": { "requires": {
"is-glob": "^3.1.0", "is-glob": "^3.1.0",
@ -37050,6 +37328,12 @@
"json5": "^2.1.2" "json5": "^2.1.2"
} }
}, },
"local-pkg": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.1.tgz",
"integrity": "sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==",
"dev": true
},
"locate-path": { "locate-path": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@ -37192,9 +37476,9 @@
"dev": true "dev": true
}, },
"ansi-regex": { "ansi-regex": {
"version": "3.0.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
"dev": true "dev": true
}, },
"is-fullwidth-code-point": { "is-fullwidth-code-point": {
@ -37242,6 +37526,15 @@
"js-tokens": "^3.0.0 || ^4.0.0" "js-tokens": "^3.0.0 || ^4.0.0"
} }
}, },
"loupe": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
"integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
"dev": true,
"requires": {
"get-func-name": "^2.0.0"
}
},
"lower-case": { "lower-case": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
@ -37261,7 +37554,8 @@
"lz-string": { "lz-string": {
"version": "1.4.4", "version": "1.4.4",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
"integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=",
"dev": true
}, },
"magic-string": { "magic-string": {
"version": "0.25.9", "version": "0.25.9",
@ -37511,6 +37805,12 @@
"integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==",
"dev": true "dev": true
}, },
"mrmime": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
"integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
"dev": true
},
"ms": { "ms": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@ -38098,6 +38398,12 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
}, },
"pathval": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true
},
"pbf": { "pbf": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz",
@ -38419,7 +38725,7 @@
"postcss-functions": { "postcss-functions": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz", "resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz",
"integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=", "integrity": "sha512-N5yWXWKA+uhpLQ9ZhBRl2bIAdM6oVJYpDojuI1nF2SzXBimJcdjFwiAouBVbO5VuOF3qA6BSFWFc3wXbbj72XQ==",
"requires": { "requires": {
"glob": "^7.1.2", "glob": "^7.1.2",
"object-assign": "^4.1.1", "object-assign": "^4.1.1",
@ -39874,11 +40180,6 @@
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
}, },
"requireindex": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
"integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww=="
},
"requires-port": { "requires-port": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@ -40447,6 +40748,17 @@
} }
} }
}, },
"sirv": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
"integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==",
"dev": true,
"requires": {
"@polka/url": "^1.0.0-next.20",
"mrmime": "^1.0.0",
"totalist": "^3.0.0"
}
},
"sisteransi": { "sisteransi": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
@ -41349,11 +41661,23 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
}, },
"tinypool": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.2.2.tgz",
"integrity": "sha512-tp4n5OARNL3v8ntdJUyo5NsDfwvUtu8isB43USjrsQxQrADDKY6UGBkmFaw/2vNmEt8S/uSm2U5FhkiK1eAFGw==",
"dev": true
},
"tinyqueue": { "tinyqueue": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz",
"integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
}, },
"tinyspy": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-0.3.3.tgz",
"integrity": "sha512-gRiUR8fuhUf0W9lzojPf1N1euJYA30ISebSfgca8z76FOvXtVXqd5ojEIaKLWbDQhAaC3ibxZIjqbyi4ybjcTw==",
"dev": true
},
"tmp": { "tmp": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@ -41445,6 +41769,12 @@
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
}, },
"totalist": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
"integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==",
"dev": true
},
"tough-cookie": { "tough-cookie": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
@ -42067,6 +42397,23 @@
} }
} }
}, },
"vitest": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-0.17.1.tgz",
"integrity": "sha512-d6NsFC6FPmZ5XdiSYfW5rwJ/b8060wqe2steNNlVbhO69HWma6CucIm5g7PXlCSkmKvrdEbUsZHPAarlH83VGw==",
"dev": true,
"requires": {
"@types/chai": "^4.3.1",
"@types/chai-subset": "^1.3.3",
"@types/node": "*",
"chai": "^4.3.6",
"debug": "^4.3.4",
"local-pkg": "^0.4.1",
"tinypool": "^0.2.1",
"tinyspy": "^0.3.3",
"vite": "^2.9.12 || ^3.0.0-0"
}
},
"void-elements": { "void-elements": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",

View File

@ -11,14 +11,12 @@
"scripts": { "scripts": {
"start": "vite", "start": "vite",
"build": "vite build", "build": "vite build",
"test": "npm run lint && npm run jest -- --watchAll=false",
"test:ci": "npm run lint && npm run jest:ci",
"lint": "eslint ./src --max-warnings 0 --cache --config .eslintrc.js", "lint": "eslint ./src --max-warnings 0 --cache --config .eslintrc.js",
"jest": "craco test --setupFilesAfterEnv ./testing/setupTests.ts", "test": "vitest",
"jest:ci": "CI=true craco test --setupFilesAfterEnv ./testing/setupTests.ts --verbose --ci --coverage", "test:ci": "CI=true vitest --verbose --ci --coverage",
"genSchemaTypes": "apollo client:codegen --target=typescript --globalTypesFile=src/__generated__/globalTypes.ts && prettier --write */**/__generated__/*.ts", "genSchemaTypes": "apollo client:codegen --target=typescript --globalTypesFile=src/__generated__/globalTypes.ts && prettier --write */**/__generated__/*.ts",
"extractTranslations": "i18next -c i18next-parser.config.js", "extractTranslations": "i18next -c i18next-parser.config.js",
"prepare": "(cd .. && npx husky install)" "prepare": "(cd .. && ./ui/node_modules/.bin/husky install)"
}, },
"dependencies": { "dependencies": {
"@apollo/client": "^3.6.9", "@apollo/client": "^3.6.9",
@ -39,8 +37,6 @@
"classnames": "^2.3.1", "classnames": "^2.3.1",
"connect-history-api-fallback": "^2.0.0", "connect-history-api-fallback": "^2.0.0",
"copy-to-clipboard": "^3.3.1", "copy-to-clipboard": "^3.3.1",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-jest-dom": "^4.0.2",
"i18next": "^21.8.13", "i18next": "^21.8.13",
"mapbox-gl": "^2.9.1", "mapbox-gl": "^2.9.1",
"postcss": "^8.4.14", "postcss": "^8.4.14",
@ -67,14 +63,18 @@
"@testing-library/jest-dom": "^5.16.4", "@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0", "@testing-library/react": "^13.3.0",
"@testing-library/user-event": "^14.2.1", "@testing-library/user-event": "^14.2.1",
"@vitest/ui": "^0.17.1",
"apollo": "2.34.0", "apollo": "2.34.0",
"apollo-language-server": "1.26.9", "apollo-language-server": "1.26.9",
"eslint": "^8.19.0",
"eslint-config-prettier": "^8.5.0",
"husky": "^8.0.1", "husky": "^8.0.1",
"i18next-parser": "^6.5.0", "i18next-parser": "^6.5.0",
"lint-staged": "^13.0.3" "lint-staged": "^13.0.3",
"vitest": "^0.17.1"
}, },
"overrides": { "overrides": {
"graphql": "^15.0.0" "graphql": "^15.5.0"
}, },
"prettier": { "prettier": {
"trailingComma": "es5", "trailingComma": "es5",

View File

@ -4,7 +4,7 @@ import React from 'react'
import { MemoryRouter, Route, Routes } from 'react-router-dom' import { MemoryRouter, Route, Routes } from 'react-router-dom'
import AlbumPage from './AlbumPage' import AlbumPage from './AlbumPage'
jest.mock('../../hooks/useScrollPagination') vi.mock('../../hooks/useScrollPagination')
test('AlbumPage renders', () => { test('AlbumPage renders', () => {
render( render(

View File

@ -7,11 +7,9 @@ import * as authentication from '../../helpers/authentication'
import InitialSetupPage from './InitialSetupPage' import InitialSetupPage from './InitialSetupPage'
import { mockInitialSetupGraphql } from './loginTestHelpers' import { mockInitialSetupGraphql } from './loginTestHelpers'
jest.mock('../../helpers/authentication.ts') vi.mock('../../helpers/authentication.ts')
const authToken = authentication.authToken as jest.Mock< const authToken = authentication.authToken // as vi.Mock<ReturnType<typeof authentication.authToken>>
ReturnType<typeof authentication.authToken>
>
describe('Initial setup page', () => { describe('Initial setup page', () => {
test('Render initial setup form', async () => { test('Render initial setup form', async () => {

View File

@ -7,11 +7,9 @@ import { createMemoryHistory } from 'history'
import { MockedProvider } from '@apollo/client/testing' import { MockedProvider } from '@apollo/client/testing'
import { mockInitialSetupGraphql } from './loginTestHelpers' import { mockInitialSetupGraphql } from './loginTestHelpers'
jest.mock('../../helpers/authentication.ts') vi.mock('../../helpers/authentication.ts')
const authToken = authentication.authToken as jest.Mock< const authToken = authentication.authToken // as vi.Mock<ReturnType<typeof authentication.authToken>>
ReturnType<typeof authentication.authToken>
>
describe('Login page redirects', () => { describe('Login page redirects', () => {
test('Auth token redirect', async () => { test('Auth token redirect', async () => {

View File

@ -11,7 +11,7 @@ import { MockedProvider } from '@apollo/client/testing'
import { MemoryRouter } from 'react-router' import { MemoryRouter } from 'react-router'
import { myFaces_myFaceGroups } from './__generated__/myFaces' import { myFaces_myFaceGroups } from './__generated__/myFaces'
jest.mock('../../hooks/useScrollPagination') vi.mock('../../hooks/useScrollPagination')
describe('PeoplePage component', () => { describe('PeoplePage component', () => {
const graphqlMocks = [ const graphqlMocks = [
@ -142,7 +142,7 @@ describe('FaceDetails component', () => {
<MockedProvider mocks={[]} addTypename={false}> <MockedProvider mocks={[]} addTypename={false}>
<FaceDetails <FaceDetails
editLabel={false} editLabel={false}
setEditLabel={jest.fn()} setEditLabel={vi.fn()}
group={emptyFaceGroup} group={emptyFaceGroup}
/> />
</MockedProvider> </MockedProvider>
@ -161,7 +161,7 @@ describe('FaceDetails component', () => {
<MockedProvider mocks={[]} addTypename={false}> <MockedProvider mocks={[]} addTypename={false}>
<FaceDetails <FaceDetails
editLabel={false} editLabel={false}
setEditLabel={jest.fn()} setEditLabel={vi.fn()}
group={labeledFaceGroup} group={labeledFaceGroup}
/> />
</MockedProvider> </MockedProvider>
@ -181,7 +181,7 @@ describe('FaceDetails component', () => {
label: 'John Doe', label: 'John Doe',
}, },
}, },
newData: jest.fn(() => ({ newData: vi.fn(() => ({
data: { data: {
setFaceGroupLabel: { setFaceGroupLabel: {
__typename: 'FaceGroup', __typename: 'FaceGroup',

View File

@ -4,7 +4,7 @@ import { MockedProvider } from '@apollo/client/testing'
import SingleFaceGroup, { SINGLE_FACE_GROUP } from './SingleFaceGroup' import SingleFaceGroup, { SINGLE_FACE_GROUP } from './SingleFaceGroup'
import { MemoryRouter } from 'react-router-dom' import { MemoryRouter } from 'react-router-dom'
jest.mock('../../../hooks/useScrollPagination') vi.mock('../../../hooks/useScrollPagination')
test('single face group', async () => { test('single face group', async () => {
const graphqlMocks = [ const graphqlMocks = [
@ -92,9 +92,6 @@ test('single face group', async () => {
) )
await waitFor(() => { await waitFor(() => {
// expect(screen.queryByText('Loading more media')).not.toHaveClass('active')
expect(screen.queryByText('Face Group Name')).toBeInTheDocument()
})
expect(screen.getAllByRole('img')).toHaveLength(2) expect(screen.getAllByRole('img')).toHaveLength(2)
})
}) })

View File

@ -33,8 +33,8 @@ const gqlMock = [
] ]
test('Add user with username and path', async () => { test('Add user with username and path', async () => {
const userAdded = jest.fn() const userAdded = vi.fn()
const setShow = jest.fn() const setShow = vi.fn()
render( render(
<MockedProvider addTypename={true} mocks={gqlMock}> <MockedProvider addTypename={true} mocks={gqlMock}>
@ -62,8 +62,8 @@ test('Add user with username and path', async () => {
}) })
test('Add user with only username', async () => { test('Add user with only username', async () => {
const userAdded = jest.fn() const userAdded = vi.fn()
const setShow = jest.fn() const setShow = vi.fn()
render( render(
<MockedProvider addTypename={true} mocks={gqlMock}> <MockedProvider addTypename={true} mocks={gqlMock}>

View File

@ -17,7 +17,7 @@ import {
import { SIDEBAR_DOWNLOAD_QUERY } from '../../components/sidebar/SidebarDownloadMedia' import { SIDEBAR_DOWNLOAD_QUERY } from '../../components/sidebar/SidebarDownloadMedia'
import { SHARE_ALBUM_QUERY } from './AlbumSharePage' import { SHARE_ALBUM_QUERY } from './AlbumSharePage'
jest.mock('../../hooks/useScrollPagination') vi.mock('../../hooks/useScrollPagination')
describe('load correct share page, based on graphql query', () => { describe('load correct share page, based on graphql query', () => {
const token = 'TOKEN123' const token = 'TOKEN123'
@ -96,7 +96,7 @@ describe('load correct share page, based on graphql query', () => {
> >
<MemoryRouter initialEntries={historyMock}> <MemoryRouter initialEntries={historyMock}>
<Routes> <Routes>
<Route path="/share/:token" element={<TokenRoute />} /> <Route path="/share/:token/*" element={<TokenRoute />} />
</Routes> </Routes>
</MemoryRouter> </MemoryRouter>
</MockedProvider> </MockedProvider>
@ -173,7 +173,7 @@ describe('load correct share page, based on graphql query', () => {
> >
<MemoryRouter initialEntries={historyMock}> <MemoryRouter initialEntries={historyMock}>
<Routes> <Routes>
<Route path="/share/:token" element={<TokenRoute />} /> <Route path="/share/:token/*" element={<TokenRoute />} />
</Routes> </Routes>
</MemoryRouter> </MemoryRouter>
</MockedProvider> </MockedProvider>

View File

@ -4,7 +4,7 @@ import Layout from './Layout'
test('Layout component', async () => { test('Layout component', async () => {
render( render(
<Layout> <Layout title="Test title">
<p>layout_content</p> <p>layout_content</p>
</Layout> </Layout>
) )

View File

@ -40,7 +40,6 @@ const Layout = ({ children, title, ...otherProps }: LayoutProps) => {
id="layout-content" id="layout-content"
> >
{children} {children}
{/* <div className="h-6"></div> */}
</div> </div>
</div> </div>
<Sidebar /> <Sidebar />

View File

@ -7,11 +7,9 @@ import { ADMIN_QUERY } from './Layout'
import { MemoryRouter } from 'react-router-dom' import { MemoryRouter } from 'react-router-dom'
import MainMenu, { MAPBOX_QUERY } from './MainMenu' import MainMenu, { MAPBOX_QUERY } from './MainMenu'
jest.mock('../../helpers/authentication.ts') vi.mock('../../helpers/authentication.ts')
const authTokenMock = authentication.authToken as jest.MockedFunction< const authTokenMock = authentication.authToken // as vi.MockedFunction<typeof authentication.authToken>
typeof authentication.authToken
>
afterEach(() => { afterEach(() => {
authTokenMock.mockClear() authTokenMock.mockClear()

View File

@ -5,12 +5,12 @@ import { MediaType } from '../../__generated__/globalTypes'
import PhotoGallery from './PhotoGallery' import PhotoGallery from './PhotoGallery'
import { PhotoGalleryState } from './photoGalleryReducer' import { PhotoGalleryState } from './photoGalleryReducer'
jest.mock('./photoGalleryMutations', () => ({ vi.mock('./photoGalleryMutations', () => ({
useMarkFavoriteMutation: () => [jest.fn()], useMarkFavoriteMutation: () => [vi.fn()],
})) }))
test('photo gallery with media', () => { test('photo gallery with media', () => {
const dispatchMedia = jest.fn() const dispatchMedia = vi.fn()
const mediaState: PhotoGalleryState = { const mediaState: PhotoGalleryState = {
activeIndex: 0, activeIndex: 0,
@ -68,7 +68,7 @@ test('photo gallery with media', () => {
}) })
describe('photo gallery presenting', () => { describe('photo gallery presenting', () => {
const dispatchMedia = jest.fn() const dispatchMedia = vi.fn()
test('not presenting', () => { test('not presenting', () => {
const mediaStateNoPresent: PhotoGalleryState = { const mediaStateNoPresent: PhotoGalleryState = {

View File

@ -20,7 +20,7 @@ test('render present image', () => {
expect(screen.getByTestId('present-img-thumbnail')).toHaveAttribute( expect(screen.getByTestId('present-img-thumbnail')).toHaveAttribute(
'src', 'src',
'http://localhost/sample_image.jpg' 'http://localhost:3000/sample_image.jpg'
) )
expect(screen.getByTestId('present-img-highres')).toHaveStyle({ expect(screen.getByTestId('present-img-highres')).toHaveStyle({
display: 'none', display: 'none',
@ -47,10 +47,10 @@ test('render present video', () => {
expect(screen.getByTestId('present-video')).toHaveAttribute( expect(screen.getByTestId('present-video')).toHaveAttribute(
'poster', 'poster',
'http://localhost/sample_video_thumb.jpg' 'http://localhost:3000/sample_video_thumb.jpg'
) )
expect( expect(
screen.getByTestId('present-video').querySelector('source') screen.getByTestId('present-video').querySelector('source')
).toHaveAttribute('src', 'http://localhost/sample_video.mp4') ).toHaveAttribute('src', 'http://localhost:3000/sample_video.mp4')
}) })

View File

@ -2,11 +2,11 @@ import React from 'react'
import PresentNavigationOverlay from './PresentNavigationOverlay' import PresentNavigationOverlay from './PresentNavigationOverlay'
import { fireEvent, render, screen, act } from '@testing-library/react' import { fireEvent, render, screen, act } from '@testing-library/react'
jest.useFakeTimers() vi.useFakeTimers()
describe('PresentNavigationOverlay component', () => { describe('PresentNavigationOverlay component', () => {
test('simple render', () => { test('simple render', () => {
const dispatchMedia = jest.fn() const dispatchMedia = vi.fn()
render(<PresentNavigationOverlay dispatchMedia={dispatchMedia} />) render(<PresentNavigationOverlay dispatchMedia={dispatchMedia} />)
expect(screen.getByLabelText('Previous image')).toBeInTheDocument() expect(screen.getByLabelText('Previous image')).toBeInTheDocument()
@ -15,7 +15,7 @@ describe('PresentNavigationOverlay component', () => {
}) })
test('click buttons', () => { test('click buttons', () => {
const dispatchMedia = jest.fn() const dispatchMedia = vi.fn()
render(<PresentNavigationOverlay dispatchMedia={dispatchMedia} />) render(<PresentNavigationOverlay dispatchMedia={dispatchMedia} />)
expect(dispatchMedia).not.toHaveBeenCalled() expect(dispatchMedia).not.toHaveBeenCalled()
@ -28,7 +28,7 @@ describe('PresentNavigationOverlay component', () => {
}) })
test('mouse move, show and hide', () => { test('mouse move, show and hide', () => {
const dispatchMedia = jest.fn() const dispatchMedia = vi.fn()
const { container } = render( const { container } = render(
<PresentNavigationOverlay dispatchMedia={dispatchMedia} /> <PresentNavigationOverlay dispatchMedia={dispatchMedia} />
) )
@ -39,7 +39,7 @@ describe('PresentNavigationOverlay component', () => {
expect(screen.getByLabelText('Next image')).not.toHaveClass('hide') expect(screen.getByLabelText('Next image')).not.toHaveClass('hide')
act(() => { act(() => {
jest.advanceTimersByTime(3000) vi.advanceTimersByTime(3000)
}) })
expect(screen.getByLabelText('Next image')).toHaveClass('hide') expect(screen.getByLabelText('Next image')).toHaveClass('hide')

View File

@ -7,11 +7,9 @@ import * as authentication from '../../helpers/authentication'
import { MockedProvider } from '@apollo/client/testing' import { MockedProvider } from '@apollo/client/testing'
import { ADMIN_QUERY } from '../layout/Layout' import { ADMIN_QUERY } from '../layout/Layout'
jest.mock('../../helpers/authentication.ts') vi.mock('../../helpers/authentication.ts')
const authToken = authentication.authToken as jest.Mock< const authToken = vi.mocked(authentication.authToken)
ReturnType<typeof authentication.authToken>
>
describe('AuthorizedRoute component', () => { describe('AuthorizedRoute component', () => {
const AuthorizedComponent = () => <div>authorized content</div> const AuthorizedComponent = () => <div>authorized content</div>

View File

@ -8,12 +8,14 @@ import {
} from '@testing-library/react' } from '@testing-library/react'
import { MemoryRouter } from 'react-router-dom' import { MemoryRouter } from 'react-router-dom'
jest.mock('../../Pages/LoginPage/LoginPage.tsx', () => () => ( vi.mock('../../Pages/LoginPage/LoginPage.tsx', () => () => (
<div>mocked login page</div> <div>mocked login page</div>
)) ))
describe('routes', () => { describe('routes', () => {
test('unauthorized root path should navigate to login page', async () => { // vitest does not support this yet
// https://github.com/vitest-dev/vitest/issues/960
test.skip('unauthorized root path should navigate to login page', async () => {
render( render(
<MemoryRouter initialEntries={['/']}> <MemoryRouter initialEntries={['/']}>
<Routes /> <Routes />

View File

@ -7,11 +7,9 @@ import { MemoryRouter } from 'react-router'
import * as authentication from '../../../helpers/authentication' import * as authentication from '../../../helpers/authentication'
jest.mock('../../../helpers/authentication.ts') vi.mock('../../../helpers/authentication.ts')
const authToken = authentication.authToken as jest.Mock< const authToken = vi.mocked(authentication.authToken)
ReturnType<typeof authentication.authToken>
>
describe('MediaSidebar', () => { describe('MediaSidebar', () => {
const media: MediaSidebarMedia = { const media: MediaSidebarMedia = {

View File

@ -5,7 +5,7 @@ import { MemoryRouter } from 'react-router-dom'
import TimelineGallery, { MY_TIMELINE_QUERY } from './TimelineGallery' import TimelineGallery, { MY_TIMELINE_QUERY } from './TimelineGallery'
import { timelineData } from './timelineTestData' import { timelineData } from './timelineTestData'
jest.mock('../../hooks/useScrollPagination') vi.mock('../../hooks/useScrollPagination')
test('timeline with media', async () => { test('timeline with media', async () => {
const graphqlMocks = [ const graphqlMocks = [

View File

@ -1,4 +1,4 @@
export default () => ({ export default () => ({
finished: true, finished: true,
containerElem: jest.fn(), containerElem: vi.fn(),
}) })

View File

@ -5,5 +5,7 @@
import '@testing-library/jest-dom' import '@testing-library/jest-dom'
import '@testing-library/user-event' import '@testing-library/user-event'
import { setupLocalization } from '../src/localization'
// setup localization to make it easier to select elements by text // setup localization to make it easier to select elements by text
require('../src/localization').setupLocalization() setupLocalization()

View File

@ -14,7 +14,8 @@
"resolveJsonModule": true, "resolveJsonModule": true,
"isolatedModules": true, "isolatedModules": true,
"noEmit": true, "noEmit": true,
"jsx": "react-jsx" "jsx": "react-jsx",
"types": ["vitest/globals", "@testing-library/jest-dom"]
}, },
"include": ["src", "vite.config.ts"] "include": ["src", "vite.config.ts"]
} }

View File

@ -1,3 +1,6 @@
/// <reference types="vitest" />
/// <reference types="vite/client" />
import { defineConfig } from 'vite' import { defineConfig } from 'vite'
import svgr from 'vite-plugin-svgr' import svgr from 'vite-plugin-svgr'
import react from '@vitejs/plugin-react' import react from '@vitejs/plugin-react'
@ -8,4 +11,12 @@ export default defineConfig({
server: { server: {
port: 1234, port: 1234,
}, },
esbuild: {
logOverride: { 'this-is-undefined-in-esm': 'silent' },
},
test: {
globals: true,
environment: 'jsdom',
setupFiles: './testing/setupTests.ts',
},
}) })