From f766609d5dc5638ab7f2319d431e2abed98067fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Garc=C3=ADa?= Date: Wed, 7 Dec 2022 17:21:20 -0300 Subject: [PATCH 1/5] Install and configure playwright --- .eslintrc | 6 + .gitignore | 3 + package-lock.json | 2187 +++++++++++++++------ package.json | 9 +- playwright-ct.config.ts | 56 + playwright/index.html | 12 + playwright/index.ts | 2 + src/new-components/button/button.spec.tsx | 10 + 8 files changed, 1672 insertions(+), 613 deletions(-) create mode 100644 playwright-ct.config.ts create mode 100644 playwright/index.html create mode 100644 playwright/index.ts create mode 100644 src/new-components/button/button.spec.tsx diff --git a/.eslintrc b/.eslintrc index 56ceff4cf..e74adb6ae 100644 --- a/.eslintrc +++ b/.eslintrc @@ -42,6 +42,12 @@ "@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-return": "off" } + }, + { + "files": ["*.spec.*"], + "rules": { + "jest/no-standalone-expect": "off" + } } ], "settings": { diff --git a/.gitignore b/.gitignore index ddb2ee241..31c092622 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ lib/ /styles/ coverage/ .vscode/ +/test-results/ +/playwright-report/ +/playwright/.cache/ diff --git a/package-lock.json b/package-lock.json index 14b03b794..69c6af55b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,8 @@ "patch-package": "^6.4.6", "react-focus-lock": "^2.9.1", "react-keyed-flatten-children": "^1.3.0", - "react-markdown": "^5.0.3" + "react-markdown": "^5.0.3", + "vite": "^3.2.5" }, "devDependencies": { "@babel/core": "^7.9.6", @@ -36,6 +37,7 @@ "@doist/prettier-config": "^3.0.5", "@doist/tsconfig": "^1.0.0", "@geometricpanda/storybook-addon-badges": "^0.2.2", + "@playwright/experimental-ct-react": "^1.28.1", "@storybook/addon-actions": "^6.5.3", "@storybook/addon-controls": "^6.5.3", "@storybook/addon-docs": "^6.5.3", @@ -96,7 +98,6 @@ "svg-url-loader": "^6.0.0", "ts-loader": "^8.0.2", "tsdx": "^0.14.1", - "tslib": "^2.0.0", "typescript": "^4.6.4", "webpack": "^4.43.0" }, @@ -111,48 +112,61 @@ "react-dom": "^17.0.0 || ^18.0.0" } }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", - "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.15.8", - "@babel/generator": "^7.15.8", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.8", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.8", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -172,26 +186,40 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.12.tgz", - "integrity": "sha512-V49KtZiiiLjH/CnIW6OjJdrenrGoyh6AmKQ3k2AZFKozC1h846Q4NYlZ5nqAigPDUXfGzC88+LOUuG8yKd2kCw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dev": true, "dependencies": { - "@babel/types": "^7.17.12", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -211,14 +239,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "engines": { @@ -228,29 +256,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", - "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -326,13 +331,10 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { "node": ">=6.9.0" } @@ -350,25 +352,25 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -387,31 +389,31 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -430,9 +432,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -469,12 +471,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -493,30 +495,39 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -538,26 +549,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dev": true, "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -566,9 +577,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.12.tgz", - "integrity": "sha512-FLzHmN9V3AJIrWfOpvRlZCeVg/WLdicSnTMsLur6uDj9TT8ymUlG9XxURdW/XvuygK+2CW0poOJABdA4m/YKxA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1015,12 +1026,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1535,16 +1546,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", - "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1554,12 +1565,42 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz", - "integrity": "sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.14.5" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1989,33 +2030,33 @@ } }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.12.tgz", - "integrity": "sha512-zULPs+TbCvOkIFd4FrG53xrpxvCBwLIgo6tO0tJorY7YV2IWFxUfS/lXDJbGgfyYt9ery/Gxj2niwttNnB0gIw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.12", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.12", - "@babel/types": "^7.17.12", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2024,12 +2065,13 @@ } }, "node_modules/@babel/types": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.12.tgz", - "integrity": "sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2208,6 +2250,36 @@ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", "dev": true }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -3691,14 +3763,13 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" @@ -3708,16 +3779,40 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true, + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "devOptional": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "devOptional": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "devOptional": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, "engines": { "node": ">=6.0.0" } @@ -3726,13 +3821,13 @@ "version": "1.4.13", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true + "devOptional": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3939,6 +4034,78 @@ "node": ">=10" } }, + "node_modules/@playwright/experimental-ct-react": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-react/-/experimental-ct-react-1.28.1.tgz", + "integrity": "sha512-YArwIFmRT7Z/VQGOocaUofTQAExd2XNkQdOslVaRwupFKhq6h9qTiWDgR7TQFY7cADtazb3ABRB5itdaRFGydA==", + "dev": true, + "dependencies": { + "@playwright/test": "1.28.1", + "@vitejs/plugin-react": "^2.2.0", + "vite": "^3.2.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/experimental-ct-react/node_modules/@vitejs/plugin-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz", + "integrity": "sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-jsx": "^7.19.0", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.26.7", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0" + } + }, + "node_modules/@playwright/experimental-ct-react/node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@playwright/experimental-ct-react/node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@playwright/test": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.28.1.tgz", + "integrity": "sha512-xN6spdqrNlwSn9KabIhqfZR7IWjPpFK1835tFNgjrlysaSezuX8PYUwaz38V/yI8TJLG9PkAMEXoHRXYXlpTPQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "playwright-core": "1.28.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@reach/dialog": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/@reach/dialog/-/dialog-0.16.0.tgz", @@ -8341,7 +8508,7 @@ "version": "14.17.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.21.tgz", "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==", - "dev": true + "devOptional": true }, "node_modules/@types/node-fetch": { "version": "2.6.1", @@ -11133,25 +11300,31 @@ } }, "node_modules/browserslist": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", - "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" } }, "node_modules/bs-logger": { @@ -11187,7 +11360,7 @@ "node_modules/buffer-from": { "version": "1.1.1", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "devOptional": true }, "node_modules/buffer-xor": { "version": "1.0.3", @@ -11418,14 +11591,20 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==", + "version": "1.0.30001436", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", + "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/capture-exit": { "version": "2.0.0", @@ -12396,29 +12575,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", - "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, "node_modules/core-js-compat/node_modules/semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", @@ -13958,9 +14114,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.3.864", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.864.tgz", - "integrity": "sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "node_modules/elliptic": { @@ -14288,6 +14444,342 @@ "ext": "^1.1.2" } }, + "node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.1.1", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", @@ -16422,7 +16914,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -16434,8 +16925,7 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -16845,7 +17335,6 @@ "node_modules/has": { "version": "1.0.3", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -17282,6 +17771,38 @@ "node": ">= 6" } }, + "node_modules/html-minifier-terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/html-tags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", @@ -18188,7 +18709,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, "dependencies": { "has": "^1.0.3" }, @@ -23353,12 +23873,10 @@ "dev": true }, "node_modules/json5": { - "version": "2.1.3", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, "bin": { "json5": "lib/cli.js" }, @@ -23499,7 +24017,7 @@ "node_modules/less": { "version": "3.12.2", "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", - "dev": true, + "devOptional": true, "dependencies": { "tslib": "^1.10.0" }, @@ -23569,7 +24087,7 @@ "node_modules/less/node_modules/tslib": { "version": "1.13.0", "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true + "devOptional": true }, "node_modules/leven": { "version": "3.1.0", @@ -25230,7 +25748,6 @@ "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -25428,9 +25945,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "node_modules/normalize-package-data": { @@ -26396,8 +26913,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -26506,6 +27022,18 @@ "node": ">=6" } }, + "node_modules/playwright-core": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.28.1.tgz", + "integrity": "sha512-3PixLnGPno0E8rSBJjtwqTwJe3Yw72QwBBBxNoukIj3lEeBNXwbNiKrNuB1oyQgTBw5QHUhNO3SteEtHaMK6ag==", + "dev": true, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/please-upgrade-node": { "version": "3.2.0", "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", @@ -28893,12 +29421,11 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -29008,11 +29535,9 @@ } }, "node_modules/rollup": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.74.1.tgz", - "integrity": "sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==", - "dev": true, - "peer": true, + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "bin": { "rollup": "dist/bin/rollup" }, @@ -29372,6 +29897,38 @@ "rollup": ">=0.66.0 <3" } }, + "node_modules/rollup-plugin-terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/rollup-plugin-terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/rollup-plugin-typescript2": { "version": "0.27.3", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz", @@ -30224,7 +30781,7 @@ "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, + "devOptional": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -30233,7 +30790,7 @@ "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -30841,7 +31398,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -31103,19 +31659,21 @@ } }, "node_modules/terser": { - "version": "4.7.0", - "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", - "dev": true, + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "devOptional": true, "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { - "node": ">=6.0.0" + "node": ">=10" } }, "node_modules/terser-webpack-plugin": { @@ -31145,18 +31703,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/terser-webpack-plugin/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/terser-webpack-plugin/node_modules/cacache": { "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", @@ -31195,12 +31741,6 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -31425,59 +31965,22 @@ "node": ">=8" } }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz", - "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==", - "dev": true, - "dependencies": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.8.0-beta.0", - "source-map-support": "~0.5.20" - }, + "node_modules/terser/node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "devOptional": true, "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "dependencies": { - "whatwg-url": "^7.0.0" + "acorn": "bin/acorn" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" + "node": ">=0.4.0" } }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "devOptional": true }, "node_modules/test-exclude": { "version": "6.0.0", @@ -34345,9 +34848,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -34812,6 +35315,38 @@ "node": ">=0.10.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-browserslist-db/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/uri-js": { "version": "4.2.2", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", @@ -35120,6 +35655,90 @@ "node": ">=4" } }, + "node_modules/vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/vite/node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/vm-browserify": { "version": "1.1.2", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", @@ -35353,6 +35972,12 @@ "node": ">=0.4.0" } }, + "node_modules/webpack/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/webpack/node_modules/json5": { "version": "1.0.1", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", @@ -35385,6 +36010,23 @@ "node": ">=0.10.0" } }, + "node_modules/webpack/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/webpack/node_modules/terser-webpack-plugin": { "version": "1.4.3", "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", @@ -35823,42 +36465,52 @@ } }, "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", "dev": true }, "@babel/core": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.8.tgz", - "integrity": "sha512-3UG9dsxvYBMYwRv+gS41WKHno4K60/9GPy1CJaH6xy3Elq8CTtvtjT5R5jmNhXfCYLX2mTw+7/aq5ak/gOE0og==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.15.8", - "@babel/generator": "^7.15.8", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.8", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.8", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "dependencies": { "semver": { @@ -35870,23 +36522,36 @@ } }, "@babel/generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.12.tgz", - "integrity": "sha512-V49KtZiiiLjH/CnIW6OjJdrenrGoyh6AmKQ3k2AZFKozC1h846Q4NYlZ5nqAigPDUXfGzC88+LOUuG8yKd2kCw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dev": true, "requires": { - "@babel/types": "^7.17.12", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.20.5", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -35900,30 +36565,17 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "dependencies": { - "browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", - "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" - } - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -35982,13 +36634,10 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true }, "@babel/helper-explode-assignable-expression": { "version": "7.15.4", @@ -36000,22 +36649,22 @@ } }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { @@ -36028,28 +36677,28 @@ } }, "@babel/helper-module-imports": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.15.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz", - "integrity": "sha512-DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" } }, "@babel/helper-optimise-call-expression": { @@ -36062,9 +36711,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -36092,12 +36741,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "requires": { - "@babel/types": "^7.15.4" + "@babel/types": "^7.20.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -36110,24 +36759,30 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true }, "@babel/helper-wrap-function": { @@ -36143,31 +36798,31 @@ } }, "@babel/helpers": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dev": true, "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" } }, "@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.12.tgz", - "integrity": "sha512-FLzHmN9V3AJIrWfOpvRlZCeVg/WLdicSnTMsLur6uDj9TT8ymUlG9XxURdW/XvuygK+2CW0poOJABdA4m/YKxA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "dev": true }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { @@ -36458,12 +37113,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz", - "integrity": "sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -36789,25 +37444,43 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz", - "integrity": "sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.14.5", - "@babel/types": "^7.14.9" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz", - "integrity": "sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.14.5" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-react-pure-annotations": { @@ -37124,41 +37797,42 @@ } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.12.tgz", - "integrity": "sha512-zULPs+TbCvOkIFd4FrG53xrpxvCBwLIgo6tO0tJorY7YV2IWFxUfS/lXDJbGgfyYt9ery/Gxj2niwttNnB0gIw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.12", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.12", - "@babel/types": "^7.17.12", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.12.tgz", - "integrity": "sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, @@ -37307,6 +37981,18 @@ "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", "dev": true }, + "@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "optional": true + }, "@eslint/eslintrc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", @@ -38441,39 +39127,61 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true + "devOptional": true }, "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "devOptional": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "devOptional": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "devOptional": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } }, "@jridgewell/sourcemap-codec": { "version": "1.4.13", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true + "devOptional": true }, "@jridgewell/trace-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dev": true, + "devOptional": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -38637,6 +39345,59 @@ } } }, + "@playwright/experimental-ct-react": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-react/-/experimental-ct-react-1.28.1.tgz", + "integrity": "sha512-YArwIFmRT7Z/VQGOocaUofTQAExd2XNkQdOslVaRwupFKhq6h9qTiWDgR7TQFY7cADtazb3ABRB5itdaRFGydA==", + "dev": true, + "requires": { + "@playwright/test": "1.28.1", + "@vitejs/plugin-react": "^2.2.0", + "vite": "^3.2.1" + }, + "dependencies": { + "@vitejs/plugin-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz", + "integrity": "sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==", + "dev": true, + "requires": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-jsx": "^7.19.0", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.26.7", + "react-refresh": "^0.14.0" + } + }, + "magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + } + } + }, + "@playwright/test": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.28.1.tgz", + "integrity": "sha512-xN6spdqrNlwSn9KabIhqfZR7IWjPpFK1835tFNgjrlysaSezuX8PYUwaz38V/yI8TJLG9PkAMEXoHRXYXlpTPQ==", + "dev": true, + "requires": { + "@types/node": "*", + "playwright-core": "1.28.1" + } + }, "@reach/dialog": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/@reach/dialog/-/dialog-0.16.0.tgz", @@ -41909,7 +42670,7 @@ "version": "14.17.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.21.tgz", "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==", - "dev": true + "devOptional": true }, "@types/node-fetch": { "version": "2.6.1", @@ -44072,15 +44833,15 @@ } }, "browserslist": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", - "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" } }, "bs-logger": { @@ -44113,7 +44874,7 @@ "buffer-from": { "version": "1.1.1", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "devOptional": true }, "buffer-xor": { "version": "1.0.3", @@ -44307,9 +45068,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001265", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001265.tgz", - "integrity": "sha512-YzBnspggWV5hep1m9Z6sZVLOt7vrju8xWooFAgN6BA5qvy98qPAPb7vNUzypFaoh2pb3vlfzbDO8tB57UPGbtw==", + "version": "1.0.30001436", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz", + "integrity": "sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg==", "dev": true }, "capture-exit": { @@ -45070,19 +45831,6 @@ "semver": "7.0.0" }, "dependencies": { - "browserslist": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.3.tgz", - "integrity": "sha512-59IqHJV5VGdcJZ+GZ2hU5n4Kv3YiASzW6Xk5g9tf5a/MAzGeFwgGWU39fVzNIOVcgB3+Gp+kiQu0HEfTVU/3VQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001264", - "electron-to-chromium": "^1.3.857", - "escalade": "^3.1.1", - "node-releases": "^1.1.77", - "picocolors": "^0.2.1" - } - }, "semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", @@ -46335,9 +47083,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.864", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.864.tgz", - "integrity": "sha512-v4rbad8GO6/yVI92WOeU9Wgxc4NA0n4f6P1FvZTY+jyY7JHEhw3bduYu60v3Q1h81Cg6eo4ApZrFPuycwd5hGw==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "elliptic": { @@ -46623,6 +47371,155 @@ "ext": "^1.1.2" } }, + "esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "requires": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "optional": true + }, "escalade": { "version": "3.1.1", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", @@ -48246,13 +49143,11 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { "version": "1.1.5", @@ -48567,7 +49462,6 @@ "has": { "version": "1.0.3", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -48908,6 +49802,31 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } } } }, @@ -49592,7 +50511,6 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, "requires": { "has": "^1.0.3" } @@ -53471,12 +54389,10 @@ "dev": true }, "json5": { - "version": "2.1.3", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true }, "jsonfile": { "version": "6.1.0", @@ -53585,7 +54501,7 @@ "less": { "version": "3.12.2", "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", - "dev": true, + "devOptional": true, "requires": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", @@ -53606,7 +54522,7 @@ "tslib": { "version": "1.13.0", "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true + "devOptional": true } } }, @@ -54903,8 +55819,7 @@ "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "dev": true + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "nanomatch": { "version": "1.2.13", @@ -55076,9 +55991,9 @@ } }, "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "normalize-package-data": { @@ -55827,8 +56742,7 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { "version": "0.1.7", @@ -55900,6 +56814,12 @@ "find-up": "^3.0.0" } }, + "playwright-core": { + "version": "1.28.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.28.1.tgz", + "integrity": "sha512-3PixLnGPno0E8rSBJjtwqTwJe3Yw72QwBBBxNoukIj3lEeBNXwbNiKrNuB1oyQgTBw5QHUhNO3SteEtHaMK6ag==", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", @@ -57775,12 +58695,11 @@ "dev": true }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -57858,11 +58777,9 @@ } }, "rollup": { - "version": "2.74.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.74.1.tgz", - "integrity": "sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==", - "dev": true, - "peer": true, + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "requires": { "fsevents": "~2.3.2" } @@ -58109,6 +59026,31 @@ "rollup-pluginutils": "^2.8.2", "serialize-javascript": "^2.1.2", "terser": "^4.6.2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + } } }, "rollup-plugin-typescript2": { @@ -58807,7 +59749,7 @@ "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, + "devOptional": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -58816,7 +59758,7 @@ "source-map": { "version": "0.6.1", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "devOptional": true } } }, @@ -59295,8 +60237,7 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "svg-url-loader": { "version": "6.0.0", @@ -59488,24 +60429,27 @@ } }, "terser": { - "version": "4.7.0", - "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", - "dev": true, + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "devOptional": true, "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, "dependencies": { + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "devOptional": true + }, "commander": { "version": "2.20.3", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "devOptional": true } } }, @@ -59526,12 +60470,6 @@ "webpack-sources": "^1.4.3" }, "dependencies": { - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, "cacache": { "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", @@ -59564,12 +60502,6 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", @@ -59725,40 +60657,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "terser": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz", - "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==", - "dev": true, - "requires": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.8.0-beta.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "requires": { - "whatwg-url": "^7.0.0" - } - } - } - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } } } }, @@ -61989,9 +62887,9 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "tsutils": { "version": "3.21.0", @@ -62327,6 +63225,24 @@ "os-homedir": "^1.0.0" } }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + } + } + }, "uri-js": { "version": "4.2.2", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", @@ -62539,6 +63455,40 @@ "unist-util-stringify-position": "^2.0.0" } }, + "vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "dependencies": { + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + } + } + }, "vm-browserify": { "version": "1.1.2", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", @@ -62626,6 +63576,12 @@ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "json5": { "version": "1.0.1", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", @@ -62649,6 +63605,17 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, "terser-webpack-plugin": { "version": "1.4.3", "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", diff --git a/package.json b/package.json index 2369d032c..09d894be1 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,9 @@ "type-check": "tsc --noEmit -p ./tsconfig.json", "lint": "eslint --format codeframe --cache --ext js,jsx,ts,tsx ./", "storybook": "start-storybook -p 6006", - "prettify": "prettier --write \"./**/*.{js,jsx,ts,tsx,json,css,scss,less,md,mdx}\"" + "prettify": "prettier --write \"./**/*.{js,jsx,ts,tsx,json,css,scss,less,md,mdx}\"", + "test-ct": "playwright test -c playwright-ct.config.ts", + "test-report": "playwright show-report" }, "peerDependencies": { "classnames": "^2.2.5", @@ -63,6 +65,7 @@ "@doist/prettier-config": "^3.0.5", "@doist/tsconfig": "^1.0.0", "@geometricpanda/storybook-addon-badges": "^0.2.2", + "@playwright/experimental-ct-react": "^1.28.1", "@storybook/addon-actions": "^6.5.3", "@storybook/addon-controls": "^6.5.3", "@storybook/addon-docs": "^6.5.3", @@ -123,7 +126,6 @@ "svg-url-loader": "^6.0.0", "ts-loader": "^8.0.2", "tsdx": "^0.14.1", - "tslib": "^2.0.0", "typescript": "^4.6.4", "webpack": "^4.43.0" }, @@ -136,7 +138,8 @@ "patch-package": "^6.4.6", "react-focus-lock": "^2.9.1", "react-keyed-flatten-children": "^1.3.0", - "react-markdown": "^5.0.3" + "react-markdown": "^5.0.3", + "vite": "^3.2.5" }, "overrides": { "tsdx": { diff --git a/playwright-ct.config.ts b/playwright-ct.config.ts new file mode 100644 index 000000000..337cd192a --- /dev/null +++ b/playwright-ct.config.ts @@ -0,0 +1,56 @@ +import type { PlaywrightTestConfig } from '@playwright/experimental-ct-react' +import { devices } from '@playwright/experimental-ct-react' + +/** + * See https://playwright.dev/docs/test-configuration. + */ +const config: PlaywrightTestConfig = { + testMatch: /.*\.spec\.tsx/, + testDir: './', + /* The base directory, relative to the config file, for snapshot files created with toMatchSnapshot and toHaveScreenshot. */ + snapshotDir: './__snapshots__', + /* Maximum time one test can run for. */ + timeout: 10 * 1000, + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: Boolean(process.env.CI), + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + + /* Port to use for Playwright component endpoint. */ + ctPort: 3100, + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { + ...devices['Desktop Chrome'], + }, + }, + { + name: 'firefox', + use: { + ...devices['Desktop Firefox'], + }, + }, + { + name: 'webkit', + use: { + ...devices['Desktop Safari'], + }, + }, + ], +} + +export default config diff --git a/playwright/index.html b/playwright/index.html new file mode 100644 index 000000000..0ec6e6616 --- /dev/null +++ b/playwright/index.html @@ -0,0 +1,12 @@ + + + + + + Testing Page + + +
+ + + diff --git a/playwright/index.ts b/playwright/index.ts new file mode 100644 index 000000000..ac6de14bf --- /dev/null +++ b/playwright/index.ts @@ -0,0 +1,2 @@ +// Import styles, initialize component theme here. +// import '../src/common.css'; diff --git a/src/new-components/button/button.spec.tsx b/src/new-components/button/button.spec.tsx new file mode 100644 index 000000000..998668000 --- /dev/null +++ b/src/new-components/button/button.spec.tsx @@ -0,0 +1,10 @@ +import * as React from 'react' +import { test, expect } from '@playwright/experimental-ct-react' +import { Button } from './button' + +test.use({ viewport: { width: 500, height: 500 } }) + +test('renders a button with the given label', async ({ mount }) => { + const component = await mount() + expect(component.getByRole('button', { name: 'Click me' })).toBeDefined() +}) From 9351446af5ae20e45427d9bbdac635f07c1434c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Garc=C3=ADa?= Date: Wed, 7 Dec 2022 18:19:01 -0300 Subject: [PATCH 2/5] Introduce Visual Regression Testing with Playwright --- playwright-ct.config.ts | 2 +- ...n-with-the-given-label-1-chromium-darwin.png | Bin 0 -> 3765 bytes ...on-with-the-given-label-1-firefox-darwin.png | Bin 0 -> 7859 bytes ...ton-with-the-given-label-1-webkit-darwin.png | Bin 0 -> 24753 bytes playwright/index.html | 1 + src/index.ts | 2 +- src/new-components/button/button.spec.tsx | 6 +++--- .../{default-styles.less => default-styles.css} | 0 src/new-components/storybook-helper.tsx | 2 +- 9 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-chromium-darwin.png create mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-firefox-darwin.png create mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-webkit-darwin.png rename src/new-components/{default-styles.less => default-styles.css} (100%) diff --git a/playwright-ct.config.ts b/playwright-ct.config.ts index 337cd192a..02ddf43b2 100644 --- a/playwright-ct.config.ts +++ b/playwright-ct.config.ts @@ -8,7 +8,7 @@ const config: PlaywrightTestConfig = { testMatch: /.*\.spec\.tsx/, testDir: './', /* The base directory, relative to the config file, for snapshot files created with toMatchSnapshot and toHaveScreenshot. */ - snapshotDir: './__snapshots__', + snapshotDir: './playwright/__snapshots__', /* Maximum time one test can run for. */ timeout: 10 * 1000, /* Run tests in files in parallel */ diff --git a/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-chromium-darwin.png b/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-chromium-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..7187d61fcc5a7edd6c596a05476a288a2da07b88 GIT binary patch literal 3765 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 literal 0 HcmV?d00001 diff --git a/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-webkit-darwin.png b/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-webkit-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..22da9f37b200737f956fae3b65aef2b233378f14 GIT binary patch literal 24753 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 + Testing Page diff --git a/src/index.ts b/src/index.ts index c956d4972..5ff9d6631 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import './new-components/default-styles.less' +import './new-components/default-styles.css' // layout components export * from './new-components/box' diff --git a/src/new-components/button/button.spec.tsx b/src/new-components/button/button.spec.tsx index 998668000..483e04212 100644 --- a/src/new-components/button/button.spec.tsx +++ b/src/new-components/button/button.spec.tsx @@ -4,7 +4,7 @@ import { Button } from './button' test.use({ viewport: { width: 500, height: 500 } }) -test('renders a button with the given label', async ({ mount }) => { - const component = await mount() - expect(component.getByRole('button', { name: 'Click me' })).toBeDefined() +test('renders a button with the given label', async ({ mount, page }) => { + await mount() + expect(await page.screenshot()).toMatchSnapshot() }) diff --git a/src/new-components/default-styles.less b/src/new-components/default-styles.css similarity index 100% rename from src/new-components/default-styles.less rename to src/new-components/default-styles.css diff --git a/src/new-components/storybook-helper.tsx b/src/new-components/storybook-helper.tsx index 96c8818cf..ef09e477c 100644 --- a/src/new-components/storybook-helper.tsx +++ b/src/new-components/storybook-helper.tsx @@ -3,7 +3,7 @@ import { Box } from './box' import { Heading } from './heading' import { Stack } from './stack' -import './default-styles.less' +import './default-styles.css' import type { BoxProps } from './box' import type { Space } from './common-types' From 3d02f60241004d9d725d9bdc087be4318a64deb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Garc=C3=ADa?= Date: Thu, 15 Dec 2022 16:29:21 -0300 Subject: [PATCH 3/5] Last minute improvements and fixes --- .eslintrc | 4 +++- .gitignore | 1 + jest.config.js | 8 +++++++ playwright-ct.config.ts | 20 ++---------------- ...n-with-the-given-label-1-webkit-darwin.png | Bin 24753 -> 0 bytes playwright/index.html | 1 - playwright/index.ts | 1 + tsconfig.json | 4 ++-- 8 files changed, 17 insertions(+), 22 deletions(-) delete mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-webkit-darwin.png diff --git a/.eslintrc b/.eslintrc index e74adb6ae..00670c398 100644 --- a/.eslintrc +++ b/.eslintrc @@ -46,7 +46,9 @@ { "files": ["*.spec.*"], "rules": { - "jest/no-standalone-expect": "off" + "jest/no-standalone-expect": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/no-unsafe-call": "off" } } ], diff --git a/.gitignore b/.gitignore index 31c092622..5f68f711d 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ coverage/ /test-results/ /playwright-report/ /playwright/.cache/ +*.tsbuildinfo diff --git a/jest.config.js b/jest.config.js index 7f488c9e7..49f924531 100644 --- a/jest.config.js +++ b/jest.config.js @@ -8,6 +8,14 @@ module.exports = { moduleNameMapper: { '\\.(css|less)$': '/src/__mocks__/styleMock.ts', }, + /** + * Taken from the default documented value, and removed the part that matches files with + * ".spec.*", leaving just ".test.*". This is to preserve the ".spec.*" files for Playwright + * tests. + * @see https://jestjs.io/docs/configuration#testregex-string--arraystring + * @default "(/__tests__/.*|(\\.|/)(test|spec))\\.[jt]sx?$" + */ + testRegex: '(/__tests__/.*|(\\.|/)test)\\.[jt]sx?$', testEnvironment: 'jsdom', watchPlugins: [ require.resolve('jest-watch-typeahead/filename'), diff --git a/playwright-ct.config.ts b/playwright-ct.config.ts index 02ddf43b2..586349a95 100644 --- a/playwright-ct.config.ts +++ b/playwright-ct.config.ts @@ -32,24 +32,8 @@ const config: PlaywrightTestConfig = { /* Configure projects for major browsers */ projects: [ - { - name: 'chromium', - use: { - ...devices['Desktop Chrome'], - }, - }, - { - name: 'firefox', - use: { - ...devices['Desktop Firefox'], - }, - }, - { - name: 'webkit', - use: { - ...devices['Desktop Safari'], - }, - }, + { name: 'chromium', use: { ...devices['Desktop Chrome'] } }, + { name: 'firefox', use: { ...devices['Desktop Firefox'] } }, ], } diff --git a/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-webkit-darwin.png b/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-webkit-darwin.png deleted file mode 100644 index 22da9f37b200737f956fae3b65aef2b233378f14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24753 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 - Testing Page diff --git a/playwright/index.ts b/playwright/index.ts index ac6de14bf..09336bd85 100644 --- a/playwright/index.ts +++ b/playwright/index.ts @@ -1,2 +1,3 @@ // Import styles, initialize component theme here. // import '../src/common.css'; +import '../src/new-components/default-styles.css' diff --git a/tsconfig.json b/tsconfig.json index 7239613bb..a1bd79f61 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "@doist/tsconfig", - "include": ["src", "types"], + "include": ["src", "types", "*.config.ts", "playwright"], "compilerOptions": { "allowJs": true, "module": "esnext", @@ -8,7 +8,7 @@ "importHelpers": true, "declaration": true, "sourceMap": true, - "rootDir": "src", + "rootDir": "./", "noUnusedLocals": true, "noUnusedParameters": true, "moduleResolution": "node", From c7ef7dc8201b08bae46af7b600ef60f6ac7fdb2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Garc=C3=ADa?= Date: Fri, 16 Dec 2022 09:18:26 -0300 Subject: [PATCH 4/5] Prepare playwright to run in docker container --- .gitignore | 2 ++ Dockerfile | 7 +++++++ docker-compose.yml | 8 ++++++++ package.json | 2 +- playwright-ct.config.ts | 3 ++- ...on-with-the-given-label-1-chromium-darwin.png | Bin 3765 -> 0 bytes ...ton-with-the-given-label-1-chromium-linux.png | Bin 0 -> 3510 bytes ...ton-with-the-given-label-1-firefox-darwin.png | Bin 7859 -> 0 bytes ...tton-with-the-given-label-1-firefox-linux.png | Bin 0 -> 7536 bytes ...utton-with-the-given-label-1-webkit-linux.png | Bin 0 -> 8031 bytes 10 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml delete mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-chromium-darwin.png create mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-chromium-linux.png delete mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-firefox-darwin.png create mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-firefox-linux.png create mode 100644 playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-webkit-linux.png diff --git a/.gitignore b/.gitignore index 5f68f711d..9676a4788 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,6 @@ coverage/ /test-results/ /playwright-report/ /playwright/.cache/ +!/playwright/__snapshots__/ +!/playwright/__snapshots__/**/*-linux.png *.tsbuildinfo diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..fdc98011b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM node:16 +FROM mcr.microsoft.com/playwright:focal +RUN apt-get update && apt-get -y install libnss3 libatk-bridge2.0-0 libdrm-dev libxkbcommon-dev libgbm-dev libasound-dev libatspi2.0-0 libxshmfence-dev + +WORKDIR /app +COPY package.json . +RUN npm install diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..85812dff0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: "3.9" +services: + playwright: + build: . + volumes: + - ./:/app:cached + - /app/node_modules + command: npx playwright test -c playwright-ct.config.ts diff --git a/package.json b/package.json index 09d894be1..e440fb3c4 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "storybook": "start-storybook -p 6006", "prettify": "prettier --write \"./**/*.{js,jsx,ts,tsx,json,css,scss,less,md,mdx}\"", "test-ct": "playwright test -c playwright-ct.config.ts", - "test-report": "playwright show-report" + "visual-tests": "docker compose up" }, "peerDependencies": { "classnames": "^2.2.5", diff --git a/playwright-ct.config.ts b/playwright-ct.config.ts index 586349a95..e46c909ce 100644 --- a/playwright-ct.config.ts +++ b/playwright-ct.config.ts @@ -20,7 +20,7 @@ const config: PlaywrightTestConfig = { /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', + reporter: 'list', /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ @@ -34,6 +34,7 @@ const config: PlaywrightTestConfig = { projects: [ { name: 'chromium', use: { ...devices['Desktop Chrome'] } }, { name: 'firefox', use: { ...devices['Desktop Firefox'] } }, + { name: 'webkit', use: { ...devices['Desktop Safari'] } }, ], } diff --git a/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-chromium-darwin.png b/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-chromium-darwin.png deleted file mode 100644 index 7187d61fcc5a7edd6c596a05476a288a2da07b88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3765 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 diff --git a/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-firefox-linux.png b/playwright/__snapshots__/src/new-components/button/button.spec.tsx-snapshots/renders-a-button-with-the-given-label-1-firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..580dce7179cb11a2081913c72ec706ac995a67df GIT binary patch literal 7536 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 E0D$2tdjJ3c literal 0 HcmV?d00001 From e4ac4e369ede1f05f26b0557abcfbb7516604a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Garc=C3=ADa?= Date: Thu, 29 Dec 2022 11:54:27 -0300 Subject: [PATCH 5/5] Prepare workflow to run on CI --- .eslintignore | 4 + .eslintrc | 4 +- .github/workflows/visual-regression-tests.yml | 18 ++ Dockerfile | 2 +- jest.config.js | 1 + package-lock.json | 154 +++++++++++++----- package.json | 8 +- playwright-ct.config.ts | 22 ++- tsconfig.json | 4 +- 9 files changed, 162 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/visual-regression-tests.yml diff --git a/.eslintignore b/.eslintignore index 3ed6b5966..10a85d528 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,6 +1,10 @@ +playwright-ct.config.ts +playwright/ + lint-staged.config.js jest.config.js babel.config.js + coverage/ dist/ docs/ diff --git a/.eslintrc b/.eslintrc index 00670c398..e74adb6ae 100644 --- a/.eslintrc +++ b/.eslintrc @@ -46,9 +46,7 @@ { "files": ["*.spec.*"], "rules": { - "jest/no-standalone-expect": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unsafe-call": "off" + "jest/no-standalone-expect": "off" } } ], diff --git a/.github/workflows/visual-regression-tests.yml b/.github/workflows/visual-regression-tests.yml new file mode 100644 index 000000000..76123799d --- /dev/null +++ b/.github/workflows/visual-regression-tests.yml @@ -0,0 +1,18 @@ +name: Visual Regression Tests + +on: pull_request + +jobs: + visual-regression-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '16' + cache: 'npm' + - name: Run Playwright inside Docker + uses: isbang/compose-action@v1.4.1 + with: + up-flags: '--exit-code-from playwright --abort-on-container-exit' diff --git a/Dockerfile b/Dockerfile index fdc98011b..caf5fcbe8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,4 +4,4 @@ RUN apt-get update && apt-get -y install libnss3 libatk-bridge2.0-0 libdrm-dev l WORKDIR /app COPY package.json . -RUN npm install +RUN npm install --quiet diff --git a/jest.config.js b/jest.config.js index 49f924531..c72d2bc43 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,7 @@ module.exports = { collectCoverageFrom: [ 'src/**/*.{ts,tsx,js,jsx}', + '!**/*.spec.{js,jsx,ts,tsx}', '!**/*.stories.{js,jsx,ts,tsx}', '!**/*storybook*.{js,jsx,ts,tsx}', ], diff --git a/package-lock.json b/package-lock.json index 69c6af55b..d456e5e49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,8 +18,7 @@ "patch-package": "^6.4.6", "react-focus-lock": "^2.9.1", "react-keyed-flatten-children": "^1.3.0", - "react-markdown": "^5.0.3", - "vite": "^3.2.5" + "react-markdown": "^5.0.3" }, "devDependencies": { "@babel/core": "^7.9.6", @@ -98,6 +97,7 @@ "svg-url-loader": "^6.0.0", "ts-loader": "^8.0.2", "tsdx": "^0.14.1", + "tslib": "^2.0.0", "typescript": "^4.6.4", "webpack": "^4.43.0" }, @@ -2257,6 +2257,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "android" @@ -2272,6 +2273,7 @@ "cpu": [ "loong64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -3779,7 +3781,7 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6.0.0" } @@ -3788,7 +3790,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6.0.0" } @@ -3797,7 +3799,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -3807,7 +3809,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3821,13 +3823,13 @@ "version": "1.4.13", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "devOptional": true + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -8508,7 +8510,7 @@ "version": "14.17.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.21.tgz", "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==", - "devOptional": true + "dev": true }, "node_modules/@types/node-fetch": { "version": "2.6.1", @@ -11360,7 +11362,7 @@ "node_modules/buffer-from": { "version": "1.1.1", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "devOptional": true + "dev": true }, "node_modules/buffer-xor": { "version": "1.0.3", @@ -14448,6 +14450,7 @@ "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -14487,6 +14490,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "android" @@ -14502,6 +14506,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "android" @@ -14517,6 +14522,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -14532,6 +14538,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -14547,6 +14554,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "freebsd" @@ -14562,6 +14570,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "freebsd" @@ -14577,6 +14586,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14592,6 +14602,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14607,6 +14618,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14622,6 +14634,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14637,6 +14650,7 @@ "cpu": [ "mips64el" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14652,6 +14666,7 @@ "cpu": [ "ppc64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14667,6 +14682,7 @@ "cpu": [ "riscv64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14682,6 +14698,7 @@ "cpu": [ "s390x" ], + "dev": true, "optional": true, "os": [ "linux" @@ -14697,6 +14714,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "netbsd" @@ -14712,6 +14730,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "openbsd" @@ -14727,6 +14746,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "sunos" @@ -14742,6 +14762,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "win32" @@ -14757,6 +14778,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -14772,6 +14794,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -16914,6 +16937,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -16925,7 +16949,8 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -17335,6 +17360,7 @@ "node_modules/has": { "version": "1.0.3", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -18709,6 +18735,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, "dependencies": { "has": "^1.0.3" }, @@ -24017,7 +24044,7 @@ "node_modules/less": { "version": "3.12.2", "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", - "devOptional": true, + "dev": true, "dependencies": { "tslib": "^1.10.0" }, @@ -24087,7 +24114,7 @@ "node_modules/less/node_modules/tslib": { "version": "1.13.0", "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "devOptional": true + "dev": true }, "node_modules/leven": { "version": "3.1.0", @@ -25748,6 +25775,7 @@ "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -26913,7 +26941,8 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -29424,6 +29453,7 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -29538,6 +29568,7 @@ "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -30781,7 +30812,7 @@ "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "devOptional": true, + "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -30790,7 +30821,7 @@ "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.10.0" } @@ -31398,6 +31429,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -31662,7 +31694,7 @@ "version": "5.16.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", - "devOptional": true, + "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -31969,7 +32001,7 @@ "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "devOptional": true, + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -31980,7 +32012,7 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true + "dev": true }, "node_modules/test-exclude": { "version": "6.0.0", @@ -35659,6 +35691,7 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, "dependencies": { "esbuild": "^0.15.9", "postcss": "^8.4.18", @@ -35706,12 +35739,14 @@ "node_modules/vite/node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "node_modules/vite/node_modules/postcss": { "version": "8.4.19", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -35735,6 +35770,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -37985,12 +38021,14 @@ "version": "0.15.18", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "dev": true, "optional": true }, "@esbuild/linux-loong64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "dev": true, "optional": true }, "@eslint/eslintrc": { @@ -39140,19 +39178,19 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "devOptional": true + "dev": true }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "devOptional": true + "dev": true }, "@jridgewell/source-map": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "devOptional": true, + "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -39162,7 +39200,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "devOptional": true, + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -39175,13 +39213,13 @@ "version": "1.4.13", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "devOptional": true + "dev": true }, "@jridgewell/trace-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "devOptional": true, + "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -42670,7 +42708,7 @@ "version": "14.17.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.21.tgz", "integrity": "sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==", - "devOptional": true + "dev": true }, "@types/node-fetch": { "version": "2.6.1", @@ -44874,7 +44912,7 @@ "buffer-from": { "version": "1.1.1", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "devOptional": true + "dev": true }, "buffer-xor": { "version": "1.0.3", @@ -47375,6 +47413,7 @@ "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, "requires": { "@esbuild/android-arm": "0.15.18", "@esbuild/linux-loong64": "0.15.18", @@ -47404,120 +47443,140 @@ "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "dev": true, "optional": true }, "esbuild-android-arm64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "dev": true, "optional": true }, "esbuild-darwin-64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "dev": true, "optional": true }, "esbuild-darwin-arm64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "dev": true, "optional": true }, "esbuild-freebsd-64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "dev": true, "optional": true }, "esbuild-freebsd-arm64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "dev": true, "optional": true }, "esbuild-linux-32": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "dev": true, "optional": true }, "esbuild-linux-64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "dev": true, "optional": true }, "esbuild-linux-arm": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "dev": true, "optional": true }, "esbuild-linux-arm64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "dev": true, "optional": true }, "esbuild-linux-mips64le": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "dev": true, "optional": true }, "esbuild-linux-ppc64le": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "dev": true, "optional": true }, "esbuild-linux-riscv64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "dev": true, "optional": true }, "esbuild-linux-s390x": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "dev": true, "optional": true }, "esbuild-netbsd-64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "dev": true, "optional": true }, "esbuild-openbsd-64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "dev": true, "optional": true }, "esbuild-sunos-64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "dev": true, "optional": true }, "esbuild-windows-32": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "dev": true, "optional": true }, "esbuild-windows-64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "dev": true, "optional": true }, "esbuild-windows-arm64": { "version": "0.15.18", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "dev": true, "optional": true }, "escalade": { @@ -49143,11 +49202,13 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "function.prototype.name": { "version": "1.1.5", @@ -49462,6 +49523,7 @@ "has": { "version": "1.0.3", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -50511,6 +50573,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, "requires": { "has": "^1.0.3" } @@ -54501,7 +54564,7 @@ "less": { "version": "3.12.2", "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", - "devOptional": true, + "dev": true, "requires": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", @@ -54522,7 +54585,7 @@ "tslib": { "version": "1.13.0", "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "devOptional": true + "dev": true } } }, @@ -55819,7 +55882,8 @@ "nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true }, "nanomatch": { "version": "1.2.13", @@ -56742,7 +56806,8 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "path-to-regexp": { "version": "0.1.7", @@ -58698,6 +58763,7 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "requires": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -58780,6 +58846,7 @@ "version": "2.79.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, "requires": { "fsevents": "~2.3.2" } @@ -59749,7 +59816,7 @@ "version": "0.5.20", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "devOptional": true, + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -59758,7 +59825,7 @@ "source-map": { "version": "0.6.1", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true + "dev": true } } }, @@ -60237,7 +60304,8 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, "svg-url-loader": { "version": "6.0.0", @@ -60432,7 +60500,7 @@ "version": "5.16.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", - "devOptional": true, + "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -60444,12 +60512,12 @@ "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "devOptional": true + "dev": true }, "commander": { "version": "2.20.3", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true + "dev": true } } }, @@ -63459,6 +63527,7 @@ "version": "3.2.5", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, "requires": { "esbuild": "^0.15.9", "fsevents": "~2.3.2", @@ -63470,12 +63539,14 @@ "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "postcss": { "version": "8.4.19", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "dev": true, "requires": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -63485,7 +63556,8 @@ "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true } } }, diff --git a/package.json b/package.json index e440fb3c4..1facf5b69 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "scripts": { "postinstall": "patch-package", "setup": "npm install && npm run validate", - "validate": "npm run lint && npm run type-check && npm run test", + "validate": "npm run lint && npm run type-check && npm run test && npm run visual-tests", "start": "tsdx watch --onSuccess \"./scripts/organize-styles.sh\"", "build-all": "npm run build && npm run build:storybook", "build": "scripts/build.sh", @@ -41,7 +41,7 @@ "storybook": "start-storybook -p 6006", "prettify": "prettier --write \"./**/*.{js,jsx,ts,tsx,json,css,scss,less,md,mdx}\"", "test-ct": "playwright test -c playwright-ct.config.ts", - "visual-tests": "docker compose up" + "visual-tests": "docker compose up --exit-code-from playwright" }, "peerDependencies": { "classnames": "^2.2.5", @@ -126,6 +126,7 @@ "svg-url-loader": "^6.0.0", "ts-loader": "^8.0.2", "tsdx": "^0.14.1", + "tslib": "^2.0.0", "typescript": "^4.6.4", "webpack": "^4.43.0" }, @@ -138,8 +139,7 @@ "patch-package": "^6.4.6", "react-focus-lock": "^2.9.1", "react-keyed-flatten-children": "^1.3.0", - "react-markdown": "^5.0.3", - "vite": "^3.2.5" + "react-markdown": "^5.0.3" }, "overrides": { "tsdx": { diff --git a/playwright-ct.config.ts b/playwright-ct.config.ts index e46c909ce..c51b8cd6b 100644 --- a/playwright-ct.config.ts +++ b/playwright-ct.config.ts @@ -1,6 +1,7 @@ -import type { PlaywrightTestConfig } from '@playwright/experimental-ct-react' import { devices } from '@playwright/experimental-ct-react' +import type { PlaywrightTestConfig } from '@playwright/experimental-ct-react' + /** * See https://playwright.dev/docs/test-configuration. */ @@ -32,9 +33,22 @@ const config: PlaywrightTestConfig = { /* Configure projects for major browsers */ projects: [ - { name: 'chromium', use: { ...devices['Desktop Chrome'] } }, - { name: 'firefox', use: { ...devices['Desktop Firefox'] } }, - { name: 'webkit', use: { ...devices['Desktop Safari'] } }, + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + { + name: 'webkit', + use: { ...devices['Desktop Safari'] }, + }, + + // + // Firefox tests are disabled, hopefully temporarily. For some reason they only work when + // running tests locally on macOS, but they get stuck without failing or passing when + // running locally on Windows, or when tests are run on CI. + // + // { name: 'firefox', use: { ...devices['Desktop Firefox'] } }, ], } diff --git a/tsconfig.json b/tsconfig.json index a1bd79f61..7239613bb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "@doist/tsconfig", - "include": ["src", "types", "*.config.ts", "playwright"], + "include": ["src", "types"], "compilerOptions": { "allowJs": true, "module": "esnext", @@ -8,7 +8,7 @@ "importHelpers": true, "declaration": true, "sourceMap": true, - "rootDir": "./", + "rootDir": "src", "noUnusedLocals": true, "noUnusedParameters": true, "moduleResolution": "node",