From eff3bcad2c1624748f55b476336de62b4f1201f2 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 5 Sep 2024 20:17:59 +0200 Subject: [PATCH 001/253] vitest browser mode working charts --- package.json | 10 +- packages/x-charts/package.json | 2 +- .../src/BarChart/checkClickEvent.test.tsx | 2 - .../ChartsTooltip/contentDisplayed.test.tsx | 4 - .../src/LineChart/checkClickEvent.test.tsx | 4 - .../src/ScatterChart/checkClickEvent.test.tsx | 4 - .../useHighlighted.test.tsx | 4 +- .../x-charts/src/hooks/useSeries.test.tsx | 4 +- .../x-charts/src/hooks/useSvgRef.test.tsx | 4 +- pnpm-lock.yaml | 326 +++++++++++++++++- test/setup.ts | 4 + test/utils/checkMaterialVersion.ts | 37 +- vitest.config.ts | 30 ++ 13 files changed, 385 insertions(+), 50 deletions(-) create mode 100644 test/setup.ts create mode 100644 vitest.config.ts diff --git a/package.json b/package.json index 785d9395916ae..a0edcd4946a1e 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,8 @@ "release:publish:dry-run": "pnpm publish --recursive --tag latest --registry=\"http://localhost:4873/\"", "release:tag": "node scripts/releaseTag.mjs", "validate": "concurrently \"pnpm prettier && pnpm eslint\" \"pnpm proptypes\" \"pnpm docs:typescript:formatted\" \"pnpm docs:api\"", - "clean:node_modules": "rimraf --glob \"**/node_modules\"" + "clean:node_modules": "rimraf --glob \"**/node_modules\"", + "test:browser": "vitest" }, "devDependencies": { "@actions/core": "^1.10.1", @@ -92,7 +93,7 @@ "@mui/icons-material": "^5.16.7", "@mui/internal-babel-plugin-resolve-imports": "1.0.17", "@mui/internal-markdown": "^1.0.11", - "@mui/internal-test-utils": "^1.0.11", + "@mui/internal-test-utils": "file:../material-ui/packages-internal/test-utils", "@mui/material": "^5.16.7", "@mui/monorepo": "github:mui/material-ui#f8b2251c5bdfe4d81f56017e0423d265b242617d", "@mui/utils": "^5.16.6", @@ -100,6 +101,7 @@ "@octokit/plugin-retry": "^7.1.1", "@octokit/rest": "^21.0.2", "@playwright/test": "^1.44.1", + "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", "@types/babel__traverse": "^7.20.6", "@types/chai": "^4.3.19", @@ -117,6 +119,8 @@ "@types/yargs": "^17.0.33", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", + "@vitejs/plugin-react": "^4.3.1", + "@vitest/browser": "^2.0.5", "autoprefixer": "^10.4.20", "axe-core": "4.10.0", "babel-loader": "^9.1.3", @@ -175,6 +179,7 @@ "moment": "^2.30.1", "moment-timezone": "^0.5.45", "nyc": "^17.0.0", + "playwright": "^1.46.1", "prettier": "^3.3.3", "pretty-quick": "^4.0.0", "process": "^0.11.10", @@ -191,6 +196,7 @@ "typescript": "^5.5.4", "unist-util-visit": "^5.0.0", "util": "^0.12.5", + "vitest": "2.0.5", "webpack": "^5.94.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", diff --git a/packages/x-charts/package.json b/packages/x-charts/package.json index bf10d935f48c2..4820fece785d1 100644 --- a/packages/x-charts/package.json +++ b/packages/x-charts/package.json @@ -65,7 +65,7 @@ } }, "devDependencies": { - "@mui/internal-test-utils": "^1.0.11", + "@mui/internal-test-utils": "file:../../../material-ui/packages-internal/test-utils", "@mui/material": "^5.16.7", "@mui/system": "^5.16.7", "@react-spring/core": "^9.7.4", diff --git a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx index 7804217e7402a..37105390e8c8a 100644 --- a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx @@ -38,7 +38,6 @@ describe('BarChart - click event', () => { render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ render(
{ const { render } = createRenderer(); - it('should throw an error when parent context not present', function test() { + it('should throw an error when parent context not present', function test(t) { if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault - this.skip(); + t.skip(); } const errorRef = React.createRef(); diff --git a/packages/x-charts/src/hooks/useSeries.test.tsx b/packages/x-charts/src/hooks/useSeries.test.tsx index 4bbe16ff5cb63..470593407dd3a 100644 --- a/packages/x-charts/src/hooks/useSeries.test.tsx +++ b/packages/x-charts/src/hooks/useSeries.test.tsx @@ -13,11 +13,11 @@ function UseSeries() { describe('useSeries', () => { const { render } = createRenderer(); - it('should throw an error when parent context not present', function test() { + it('should throw an error when parent context not present', function test(t) { if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault - this.skip(); + t.skip(); } const errorRef = React.createRef(); diff --git a/packages/x-charts/src/hooks/useSvgRef.test.tsx b/packages/x-charts/src/hooks/useSvgRef.test.tsx index ed345538cc148..bb8f02a416387 100644 --- a/packages/x-charts/src/hooks/useSvgRef.test.tsx +++ b/packages/x-charts/src/hooks/useSvgRef.test.tsx @@ -12,11 +12,11 @@ function UseSvgRef() { describe('useSvgRef', () => { const { render } = createRenderer(); - it('should throw an error when parent context not present', function test() { + it('should throw an error when parent context not present', function test(t) { if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault - this.skip(); + t.skip(); } const errorRef = React.createRef(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 63472d3a81be2..51e3d3640501f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,8 +93,8 @@ importers: specifier: ^1.0.11 version: 1.0.11 '@mui/internal-test-utils': - specifier: ^1.0.11 - version: 1.0.11(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: file:../material-ui/packages-internal/test-utils + version: file:../material-ui/packages-internal/test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -116,6 +116,9 @@ importers: '@playwright/test': specifier: ^1.44.1 version: 1.44.1 + '@testing-library/react': + specifier: ^16.0.1 + version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -167,6 +170,12 @@ importers: '@typescript-eslint/parser': specifier: ^7.18.0 version: 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0)) + '@vitest/browser': + specifier: ^2.0.5 + version: 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.44) @@ -341,6 +350,9 @@ importers: nyc: specifier: ^17.0.0 version: 17.0.0 + playwright: + specifier: ^1.46.1 + version: 1.46.1 prettier: specifier: ^3.3.3 version: 3.3.3 @@ -389,6 +401,9 @@ importers: util: specifier: ^0.12.5 version: 0.12.5 + vitest: + specifier: 2.0.5 + version: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) webpack: specifier: ^5.94.0 version: 5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) @@ -749,8 +764,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.11 - version: 1.0.11(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: file:../../../material-ui/packages-internal/test-utils + version: file:../material-ui/packages-internal/test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1601,7 +1616,7 @@ importers: devDependencies: '@codspeed/vitest-plugin': specifier: ^3.1.1 - version: 3.1.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0))(vitest@2.0.5(@types/node@20.16.3)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0)) + version: 3.1.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0))(vitest@2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0)) '@emotion/react': specifier: ^11.13.3 version: 11.13.3(@types/react@18.3.4)(react@18.3.1) @@ -1640,7 +1655,7 @@ importers: version: 18.3.1(react@18.3.1) vitest: specifier: 2.0.5 - version: 2.0.5(@types/node@20.16.3)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + version: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) packages: @@ -2440,6 +2455,15 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bundled-es-modules/cookie@2.0.0': + resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} + + '@bundled-es-modules/statuses@1.0.1': + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + + '@bundled-es-modules/tough-cookie@0.1.6': + resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@codspeed/core@3.1.1': resolution: {integrity: sha512-ONhERVDAtkm0nc+FYPivDozoMOlNUP2BWRBFDJYATGA18Iap5Kd2mZ1/Lwz54RB5+g+3YDOpsvotHa4hd3Q+7Q==} @@ -3018,6 +3042,22 @@ packages: cpu: [x64] os: [win32] + '@inquirer/confirm@3.2.0': + resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} + engines: {node: '>=18'} + + '@inquirer/core@9.1.0': + resolution: {integrity: sha512-RZVfH//2ytTjmaBIzeKT1zefcQZzuruwkpTwwbe/i2jTl4o9M+iML5ChULzz6iw1Ok8iUBBsRCjY2IEbD8Ft4w==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.5': + resolution: {integrity: sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==} + engines: {node: '>=18'} + + '@inquirer/type@1.5.3': + resolution: {integrity: sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==} + engines: {node: '>=18'} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -3062,6 +3102,10 @@ packages: resolution: {integrity: sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA==} engines: {node: '>=18.0.0'} + '@mswjs/interceptors@0.29.1': + resolution: {integrity: sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==} + engines: {node: '>=18'} + '@mui/base@5.0.0-beta.40': resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} @@ -3124,6 +3168,12 @@ packages: react: ^18.2.0 react-dom: ^18.2.0 + '@mui/internal-test-utils@file:../material-ui/packages-internal/test-utils': + resolution: {directory: ../material-ui/packages-internal/test-utils, type: directory} + peerDependencies: + react: ^18.2.0 + react-dom: ^18.2.0 + '@mui/joy@5.0.0-beta.48': resolution: {integrity: sha512-OhTvjuGl9I5IvpBr0BQyDehIW/xb2yteW6YglHJMdOb/279nItn76X1NBtPV9ImldNlBjReGwvpOXmBTTGER9w==} engines: {node: '>=12.0.0'} @@ -3680,6 +3730,15 @@ packages: '@octokit/types@9.3.2': resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} + '@open-draft/deferred-promise@2.2.0': + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + + '@open-draft/logger@0.3.0': + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + + '@open-draft/until@2.1.0': + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@opentelemetry/api@1.8.0': resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} engines: {node: '>=8.0.0'} @@ -4056,6 +4115,9 @@ packages: '@types/cookie@0.4.1': resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/cors@2.8.17': resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} @@ -4179,6 +4241,9 @@ packages: '@types/moment-jalaali@0.7.9': resolution: {integrity: sha512-gsDOoAzRnCfQTbfdlUrCvX6R0wIto6CvwfvV2C3j4qJLK+DEiTK8Rl/xlOCBO9C6qeUfX8oyZ2UfjnXJTOvHSA==} + '@types/mute-stream@0.0.4': + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + '@types/node@20.16.3': resolution: {integrity: sha512-/wdGiWRkMOm53gAsSyFMXFZHbVg7C6CbkrzHNpaHoYfsUWPg7m6ZRKtvQjgvQ9i8WT540a3ydRlRQbxjY30XxQ==} @@ -4239,12 +4304,18 @@ packages: '@types/sinonjs__fake-timers@8.1.5': resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} + '@types/statuses@2.0.5': + resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} + '@types/stylis@4.2.5': resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} '@types/stylis@4.2.6': resolution: {integrity: sha512-4nebF2ZJGzQk0ka0O6+FZUWceyFv4vWq/0dXBMmrSeAwzOuOd/GxE5Pa64d/ndeNLG73dXoBsRzvtsVsYUv6Uw==} + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/tsscmp@1.0.2': resolution: {integrity: sha512-cy7BRSU8GYYgxjcx0Py+8lo5MthuDhlyu076KUcYzVNXL23luYgRHkMG2fIFEc6neckeh/ntP82mw+U4QjZq+g==} @@ -4257,6 +4328,9 @@ packages: '@types/webpack-bundle-analyzer@4.7.0': resolution: {integrity: sha512-c5i2ThslSNSG8W891BRvOd/RoCjI2zwph8maD22b1adtSns20j+0azDDMCK06DiVrzTgnwiDl5Ntmu1YRJw8Sg==} + '@types/wrap-ansi@3.0.0': + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + '@types/ws@7.4.7': resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} @@ -4365,6 +4439,21 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 + '@vitest/browser@2.0.5': + resolution: {integrity: sha512-VbOYtu/6R3d7ASZREcrJmRY/sQuRFO9wMVsEDqfYbWiJRh2fDNi8CL1Csn7Ux31pOcPmmM5QvzFCMpiojvVh8g==} + peerDependencies: + playwright: '*' + safaridriver: '*' + vitest: 2.0.5 + webdriverio: '*' + peerDependenciesMeta: + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} @@ -5119,6 +5208,10 @@ packages: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -6624,6 +6717,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + headers-polyfill@4.0.3: + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + hermes-estree@0.20.1: resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} @@ -6921,6 +7017,9 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} + is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -7849,6 +7948,19 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + msw@2.4.2: + resolution: {integrity: sha512-GImSQGhn19czhVpxPdiUDK8CMZ6jbBcvOhzfJd8KFErjEER2wDKWs1UYaetJs2GSNlAqt6heZYm7g3eLatTcog==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + graphql: '>= 16.8.x' + typescript: '>= 4.8.x' + peerDependenciesMeta: + graphql: + optional: true + typescript: + optional: true + multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} @@ -7905,6 +8017,9 @@ packages: nise@5.1.7: resolution: {integrity: sha512-wWtNUhkT7k58uvWTB/Gy26eA/EJKtPZFVAhEilN5UYVmmGRYOURbejRUyKm0Uu9XVEW7K5nBOZfR8VMB4QR2RQ==} + nise@6.0.0: + resolution: {integrity: sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg==} + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -8147,6 +8262,9 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + outvariant@1.4.3: + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + override-require@1.1.1: resolution: {integrity: sha512-eoJ9YWxFcXbrn2U8FKT6RV+/Kj7fiGAB1VvHzbYKt8xM5ZuKZgCGvnHzDxmreEjcBH28ejg5MiOH4iyY1mQnkg==} @@ -9114,6 +9232,9 @@ packages: sinon@16.1.3: resolution: {integrity: sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA==} + sinon@18.0.0: + resolution: {integrity: sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA==} + sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -9247,6 +9368,9 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + strict-event-emitter@0.5.1: + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + string-replace-loader@3.1.0: resolution: {integrity: sha512-5AOMUZeX5HE/ylKDnEa/KKBqvlnFmRZudSOjVJHxhoJg9QYTwl1rECx7SLR8BBH7tfxb4Rp7EM2XVfQFxIhsbQ==} peerDependencies: @@ -9640,6 +9764,10 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} + type-fest@4.26.0: + resolution: {integrity: sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==} + engines: {node: '>=16'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -10179,6 +10307,10 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + yoctocolors@2.0.2: resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==} engines: {node: '>=18'} @@ -11262,6 +11394,19 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@bundled-es-modules/cookie@2.0.0': + dependencies: + cookie: 0.5.0 + + '@bundled-es-modules/statuses@1.0.1': + dependencies: + statuses: 2.0.1 + + '@bundled-es-modules/tough-cookie@0.1.6': + dependencies: + '@types/tough-cookie': 4.0.5 + tough-cookie: 4.1.4 + '@codspeed/core@3.1.1': dependencies: axios: 1.7.5(debug@4.3.6) @@ -11271,11 +11416,11 @@ snapshots: transitivePeerDependencies: - debug - '@codspeed/vitest-plugin@3.1.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0))(vitest@2.0.5(@types/node@20.16.3)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0))': + '@codspeed/vitest-plugin@3.1.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0))(vitest@2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0))': dependencies: '@codspeed/core': 3.1.1 vite: 5.3.4(@types/node@20.16.3)(terser@5.27.0) - vitest: 2.0.5(@types/node@20.16.3)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + vitest: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) transitivePeerDependencies: - debug @@ -11722,6 +11867,33 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true + '@inquirer/confirm@3.2.0': + dependencies: + '@inquirer/core': 9.1.0 + '@inquirer/type': 1.5.3 + + '@inquirer/core@9.1.0': + dependencies: + '@inquirer/figures': 1.0.5 + '@inquirer/type': 1.5.3 + '@types/mute-stream': 0.0.4 + '@types/node': 20.16.3 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-spinners: 2.9.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + + '@inquirer/figures@1.0.5': {} + + '@inquirer/type@1.5.3': + dependencies: + mute-stream: 1.0.0 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -11852,6 +12024,15 @@ snapshots: - supports-color - typescript + '@mswjs/interceptors@0.29.1': + dependencies: + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/logger': 0.3.0 + '@open-draft/until': 2.1.0 + is-node-process: 1.2.0 + outvariant: 1.4.3 + strict-event-emitter: 0.5.1 + '@mui/base@5.0.0-beta.40(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.6 @@ -11960,6 +12141,39 @@ snapshots: - supports-color - utf-8-validate + '@mui/internal-test-utils@file:../material-ui/packages-internal/test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) + '@babel/register': 7.24.6(@babel/core@7.25.2) + '@babel/runtime': 7.25.6 + '@emotion/cache': 11.13.1 + '@emotion/react': 11.13.3(@types/react@18.3.4)(react@18.3.1) + '@testing-library/dom': 10.4.0 + '@testing-library/react': 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + chai: 4.5.0 + chai-dom: 1.12.0(chai@4.5.0) + dom-accessibility-api: 0.7.0 + format-util: 1.0.5 + fs-extra: 11.2.0 + jsdom: 24.1.3 + lodash: 4.17.21 + mocha: 10.7.3 + playwright: 1.46.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + sinon: 18.0.0 + transitivePeerDependencies: + - '@babel/core' + - '@types/react' + - '@types/react-dom' + - bufferutil + - canvas + - supports-color + - utf-8-validate + '@mui/joy@5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.6 @@ -12640,6 +12854,15 @@ snapshots: dependencies: '@octokit/openapi-types': 18.1.1 + '@open-draft/deferred-promise@2.2.0': {} + + '@open-draft/logger@0.3.0': + dependencies: + is-node-process: 1.2.0 + outvariant: 1.4.3 + + '@open-draft/until@2.1.0': {} + '@opentelemetry/api@1.8.0': optional: true @@ -13022,6 +13245,8 @@ snapshots: '@types/cookie@0.4.1': {} + '@types/cookie@0.6.0': {} + '@types/cors@2.8.17': dependencies: '@types/node': 20.16.3 @@ -13148,6 +13373,10 @@ snapshots: dependencies: moment: 2.30.1 + '@types/mute-stream@0.0.4': + dependencies: + '@types/node': 20.16.3 + '@types/node@20.16.3': dependencies: undici-types: 6.19.8 @@ -13215,10 +13444,14 @@ snapshots: '@types/sinonjs__fake-timers@8.1.5': {} + '@types/statuses@2.0.5': {} + '@types/stylis@4.2.5': {} '@types/stylis@4.2.6': {} + '@types/tough-cookie@4.0.5': {} + '@types/tsscmp@1.0.2': {} '@types/unist@2.0.10': {} @@ -13236,6 +13469,8 @@ snapshots: - uglify-js - webpack-cli + '@types/wrap-ansi@3.0.0': {} + '@types/ws@7.4.7': dependencies: '@types/node': 20.16.3 @@ -13388,6 +13623,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/browser@2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/utils': 2.0.5 + magic-string: 0.30.10 + msw: 2.4.2(typescript@5.5.4) + sirv: 2.0.4 + vitest: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + ws: 8.18.0 + optionalDependencies: + playwright: 1.46.1 + transitivePeerDependencies: + - bufferutil + - graphql + - typescript + - utf-8-validate + '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 @@ -13423,7 +13676,7 @@ snapshots: pathe: 1.1.2 sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.0.5(@types/node@20.16.3)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + vitest: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) '@vitest/utils@2.0.5': dependencies: @@ -14299,6 +14552,8 @@ snapshots: cli-width@3.0.0: {} + cli-width@4.1.0: {} + client-only@0.0.1: {} clipboard-copy@4.0.1: {} @@ -16203,6 +16458,8 @@ snapshots: he@1.2.0: {} + headers-polyfill@4.0.3: {} + hermes-estree@0.20.1: {} hermes-parser@0.20.1: @@ -16508,6 +16765,8 @@ snapshots: is-negative-zero@2.0.3: {} + is-node-process@1.2.0: {} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.2 @@ -17624,6 +17883,27 @@ snapshots: ms@2.1.3: {} + msw@2.4.2(typescript@5.5.4): + dependencies: + '@bundled-es-modules/cookie': 2.0.0 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 3.2.0 + '@mswjs/interceptors': 0.29.1 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + chalk: 4.1.2 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.2.1 + strict-event-emitter: 0.5.1 + type-fest: 4.26.0 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.5.4 + multimatch@5.0.0: dependencies: '@types/minimatch': 3.0.5 @@ -17692,6 +17972,14 @@ snapshots: just-extend: 6.2.0 path-to-regexp: 6.2.1 + nise@6.0.0: + dependencies: + '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers': 11.2.2 + '@sinonjs/text-encoding': 0.7.2 + just-extend: 6.2.0 + path-to-regexp: 6.2.1 + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -18052,6 +18340,8 @@ snapshots: os-tmpdir@1.0.2: {} + outvariant@1.4.3: {} + override-require@1.1.1: {} p-event@5.0.1: @@ -19108,6 +19398,15 @@ snapshots: nise: 5.1.7 supports-color: 7.2.0 + sinon@18.0.0: + dependencies: + '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers': 11.2.2 + '@sinonjs/samsam': 8.0.0 + diff: 5.2.0 + nise: 6.0.0 + supports-color: 7.2.0 + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.24 @@ -19258,6 +19557,8 @@ snapshots: streamsearch@1.1.0: {} + strict-event-emitter@0.5.1: {} + string-replace-loader@3.1.0(webpack@5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4)): dependencies: loader-utils: 2.0.4 @@ -19635,6 +19936,8 @@ snapshots: type-fest@2.19.0: {} + type-fest@4.26.0: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -19881,7 +20184,7 @@ snapshots: fsevents: 2.3.3 terser: 5.27.0 - vitest@2.0.5(@types/node@20.16.3)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0): + vitest@2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -19904,6 +20207,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.3 + '@vitest/browser': 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) '@vitest/ui': 2.0.5(vitest@2.0.5) jsdom: 24.1.3 transitivePeerDependencies: @@ -20243,6 +20547,8 @@ snapshots: yocto-queue@1.0.0: {} + yoctocolors-cjs@2.1.2: {} + yoctocolors@2.0.2: {} zip-stream@4.1.1: diff --git a/test/setup.ts b/test/setup.ts new file mode 100644 index 0000000000000..8a44b4080aa5e --- /dev/null +++ b/test/setup.ts @@ -0,0 +1,4 @@ +import { beforeAll, afterAll } from 'vitest'; + +globalThis.before = beforeAll; +globalThis.after = afterAll; diff --git a/test/utils/checkMaterialVersion.ts b/test/utils/checkMaterialVersion.ts index 9ebaa81b7d6c7..ab98432ffc6ea 100644 --- a/test/utils/checkMaterialVersion.ts +++ b/test/utils/checkMaterialVersion.ts @@ -7,8 +7,6 @@ type PackageJson = { version: string; }; -const isJSDOM = /jsdom/.test(window.navigator.userAgent); - export function checkMaterialVersion({ packageJson, materialPackageJson, @@ -16,25 +14,30 @@ export function checkMaterialVersion({ packageJson: PackageJson & { devDependencies: { '@mui/material': string } }; materialPackageJson: PackageJson; }) { - if (!isJSDOM) { - return undefined; - } + return it(`${packageJson.name} should resolve proper @mui/material version`, (t) => { + const isJSDOM = /jsdom/.test(window.navigator.userAgent); - const expectedVersion = packageJson.devDependencies['@mui/material']; + if (!isJSDOM) { + return t.skip(); + } - const versions = childProcess.execSync(`npm dist-tag ls ${'@mui/material'} ${expectedVersion}`, { - encoding: 'utf8', - }); - const tagMapping = versions - .split('\n') - .find((mapping) => { - return mapping.startsWith(`${expectedVersion}: `); - }) - ?.split(': ')[1]; + const expectedVersion = packageJson.devDependencies['@mui/material']; + + const versions = childProcess.execSync( + `npm dist-tag ls ${'@mui/material'} ${expectedVersion}`, + { + encoding: 'utf8', + }, + ); + const tagMapping = versions + .split('\n') + .find((mapping) => { + return mapping.startsWith(`${expectedVersion}: `); + }) + ?.split(': ')[1]; - const version = tagMapping ?? expectedVersion; + const version = tagMapping ?? expectedVersion; - return it(`${packageJson.name} should resolve proper @mui/material version`, () => { expect(semver.satisfies(materialPackageJson.version, version)).to.equal( true, `Expected @mui/material ${version}, but found ${materialPackageJson.version}`, diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000000000..74c986ca6bd8f --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,30 @@ +import { defineConfig } from 'vitest/config'; +import react from '@vitejs/plugin-react'; + +export default defineConfig({ + plugins: [react()], + test: { + include: ['packages/x-charts/**/*.test.tsx'], + alias: [ + { + find: '@mui/x-charts', + replacement: new URL('./packages/x-charts/src', import.meta.url).pathname, + }, + { + find: 'test/utils', + replacement: new URL('./test/utils', import.meta.url).pathname, + }, + ], + globals: true, + setupFiles: ['test/setup.ts'], + browser: { + enabled: true, + name: 'chromium', + provider: 'playwright', + headless: true, + // https://playwright.dev + providerOptions: {}, + screenshotFailures: false, + }, + }, +}); From 9a6cbf812c4a20a28084f02dc49d05eaa42e4efa Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 6 Sep 2024 01:34:07 +0200 Subject: [PATCH 002/253] Fix mocha + vitest --- .../src/context/HighlightedProvider/useHighlighted.test.tsx | 3 ++- packages/x-charts/src/hooks/useSeries.test.tsx | 3 ++- packages/x-charts/src/hooks/useSvgRef.test.tsx | 3 ++- test/utils/checkMaterialVersion.ts | 5 +++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx b/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx index 69884f062018f..a388a169c416f 100644 --- a/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx +++ b/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx @@ -14,10 +14,11 @@ function UseHighlighted() { describe('useHighlighted', () => { const { render } = createRenderer(); - it('should throw an error when parent context not present', function test(t) { + it('should throw an error when parent context not present', function test(t = {}) { if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault + // @ts-expect-error to support mocha and vitest t.skip(); } diff --git a/packages/x-charts/src/hooks/useSeries.test.tsx b/packages/x-charts/src/hooks/useSeries.test.tsx index 470593407dd3a..a7ad7656be5a2 100644 --- a/packages/x-charts/src/hooks/useSeries.test.tsx +++ b/packages/x-charts/src/hooks/useSeries.test.tsx @@ -13,10 +13,11 @@ function UseSeries() { describe('useSeries', () => { const { render } = createRenderer(); - it('should throw an error when parent context not present', function test(t) { + it('should throw an error when parent context not present', function test(t = {}) { if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault + // @ts-expect-error to support mocha and vitest t.skip(); } diff --git a/packages/x-charts/src/hooks/useSvgRef.test.tsx b/packages/x-charts/src/hooks/useSvgRef.test.tsx index bb8f02a416387..567e3f27ecfe8 100644 --- a/packages/x-charts/src/hooks/useSvgRef.test.tsx +++ b/packages/x-charts/src/hooks/useSvgRef.test.tsx @@ -12,10 +12,11 @@ function UseSvgRef() { describe('useSvgRef', () => { const { render } = createRenderer(); - it('should throw an error when parent context not present', function test(t) { + it('should throw an error when parent context not present', function test(t = {}) { if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault + // @ts-expect-error to support mocha and vitest t.skip(); } diff --git a/test/utils/checkMaterialVersion.ts b/test/utils/checkMaterialVersion.ts index ab98432ffc6ea..8a0464571b7fa 100644 --- a/test/utils/checkMaterialVersion.ts +++ b/test/utils/checkMaterialVersion.ts @@ -14,11 +14,12 @@ export function checkMaterialVersion({ packageJson: PackageJson & { devDependencies: { '@mui/material': string } }; materialPackageJson: PackageJson; }) { - return it(`${packageJson.name} should resolve proper @mui/material version`, (t) => { + return it(`${packageJson.name} should resolve proper @mui/material version`, (t = {}) => { const isJSDOM = /jsdom/.test(window.navigator.userAgent); if (!isJSDOM) { - return t.skip(); + // @ts-expect-error to support mocha and vitest + t.skip(); } const expectedVersion = packageJson.devDependencies['@mui/material']; From 4a27d05e52b9d7753696697f47c99f8b9cfba206 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 6 Sep 2024 01:45:47 +0200 Subject: [PATCH 003/253] push runnable change --- package.json | 2 +- packages/x-charts/package.json | 2 +- pnpm-lock.yaml | 15 ++++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index cc9b1a9671471..1dab20a7cd44d 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@mui/icons-material": "^5.16.7", "@mui/internal-babel-plugin-resolve-imports": "1.0.17", "@mui/internal-markdown": "^1.0.12", - "@mui/internal-test-utils": "file:../material-ui/packages-internal/test-utils", + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils", "@mui/material": "^5.16.7", "@mui/monorepo": "github:mui/material-ui#f8b2251c5bdfe4d81f56017e0423d265b242617d", "@mui/utils": "^5.16.6", diff --git a/packages/x-charts/package.json b/packages/x-charts/package.json index 9233d11d2abb3..c4b51656cf5a5 100644 --- a/packages/x-charts/package.json +++ b/packages/x-charts/package.json @@ -65,7 +65,7 @@ } }, "devDependencies": { - "@mui/internal-test-utils": "file:../../../material-ui/packages-internal/test-utils", + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils", "@mui/material": "^5.16.7", "@mui/system": "^5.16.7", "@react-spring/core": "^9.7.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be82201835367..3b3d982048800 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,8 +93,8 @@ importers: specifier: ^1.0.12 version: 1.0.12 '@mui/internal-test-utils': - specifier: file:../material-ui/packages-internal/test-utils - version: file:../material-ui/packages-internal/test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -764,8 +764,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: file:../../../material-ui/packages-internal/test-utils - version: file:../material-ui/packages-internal/test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3168,8 +3168,9 @@ packages: react: ^18.2.0 react-dom: ^18.2.0 - '@mui/internal-test-utils@file:../material-ui/packages-internal/test-utils': - resolution: {directory: ../material-ui/packages-internal/test-utils, type: directory} + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils} + version: 1.0.12 peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 @@ -12132,7 +12133,7 @@ snapshots: - supports-color - utf-8-validate - '@mui/internal-test-utils@file:../material-ui/packages-internal/test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) From fb7c2dee6abd92302369b4868006579b6f5a5acf Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 6 Sep 2024 10:41:12 +0200 Subject: [PATCH 004/253] mocha vs vitest --- .../src/context/HighlightedProvider/useHighlighted.test.tsx | 3 ++- packages/x-charts/src/hooks/useSeries.test.tsx | 3 ++- packages/x-charts/src/hooks/useSvgRef.test.tsx | 3 ++- test/utils/checkMaterialVersion.ts | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx b/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx index a388a169c416f..635a8978279f0 100644 --- a/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx +++ b/packages/x-charts/src/context/HighlightedProvider/useHighlighted.test.tsx @@ -19,7 +19,8 @@ describe('useHighlighted', () => { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault // @ts-expect-error to support mocha and vitest - t.skip(); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const errorRef = React.createRef(); diff --git a/packages/x-charts/src/hooks/useSeries.test.tsx b/packages/x-charts/src/hooks/useSeries.test.tsx index a7ad7656be5a2..31e183f166527 100644 --- a/packages/x-charts/src/hooks/useSeries.test.tsx +++ b/packages/x-charts/src/hooks/useSeries.test.tsx @@ -18,7 +18,8 @@ describe('useSeries', () => { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault // @ts-expect-error to support mocha and vitest - t.skip(); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const errorRef = React.createRef(); diff --git a/packages/x-charts/src/hooks/useSvgRef.test.tsx b/packages/x-charts/src/hooks/useSvgRef.test.tsx index 567e3f27ecfe8..57a78cba84855 100644 --- a/packages/x-charts/src/hooks/useSvgRef.test.tsx +++ b/packages/x-charts/src/hooks/useSvgRef.test.tsx @@ -17,7 +17,8 @@ describe('useSvgRef', () => { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault // @ts-expect-error to support mocha and vitest - t.skip(); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const errorRef = React.createRef(); diff --git a/test/utils/checkMaterialVersion.ts b/test/utils/checkMaterialVersion.ts index 8a0464571b7fa..48e7138577c29 100644 --- a/test/utils/checkMaterialVersion.ts +++ b/test/utils/checkMaterialVersion.ts @@ -19,7 +19,8 @@ export function checkMaterialVersion({ if (!isJSDOM) { // @ts-expect-error to support mocha and vitest - t.skip(); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const expectedVersion = packageJson.devDependencies['@mui/material']; From 118a5322c7de7ca15ae11060ccfa74c80c72bb32 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 6 Sep 2024 10:57:11 +0200 Subject: [PATCH 005/253] Remove playwright direct dep --- package.json | 1 - pnpm-lock.yaml | 3 --- 2 files changed, 4 deletions(-) diff --git a/package.json b/package.json index 1dab20a7cd44d..f3b3d3fb020ed 100644 --- a/package.json +++ b/package.json @@ -179,7 +179,6 @@ "moment": "^2.30.1", "moment-timezone": "^0.5.45", "nyc": "^17.0.0", - "playwright": "^1.46.1", "prettier": "^3.3.3", "pretty-quick": "^4.0.0", "process": "^0.11.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b3d982048800..3982ae4c2daa2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -350,9 +350,6 @@ importers: nyc: specifier: ^17.0.0 version: 17.0.0 - playwright: - specifier: ^1.46.1 - version: 1.46.1 prettier: specifier: ^3.3.3 version: 3.3.3 From 33293ca261aef69fc0f700f45f24a4d624554ed5 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 6 Sep 2024 11:17:09 +0200 Subject: [PATCH 006/253] try normalizing container --- packages/x-charts/src/BarChart/checkClickEvent.test.tsx | 6 ++++++ packages/x-charts/src/LineChart/checkClickEvent.test.tsx | 6 ++++++ packages/x-charts/src/PieChart/checkClickEvent.test.tsx | 6 ++++++ packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx | 6 ++++++ test/utils/checkMaterialVersion.ts | 2 +- 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx index 37105390e8c8a..d652c3fda3f7d 100644 --- a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx @@ -28,6 +28,12 @@ const isJSDOM = /jsdom/.test(window.navigator.userAgent); describe('BarChart - click event', () => { const { render } = createRenderer(); + beforeEach(() => { + if (window?.document?.body?.style?.margin) { + window.document.body.style.margin = '0'; + } + }); + describe('onAxisClick', () => { it('should provide the right context as second argument', function test() { if (isJSDOM) { diff --git a/packages/x-charts/src/LineChart/checkClickEvent.test.tsx b/packages/x-charts/src/LineChart/checkClickEvent.test.tsx index 9741c11a4b3e2..bf863fcce9d7e 100644 --- a/packages/x-charts/src/LineChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/LineChart/checkClickEvent.test.tsx @@ -22,6 +22,12 @@ const isJSDOM = /jsdom/.test(window.navigator.userAgent); describe('LineChart - click event', () => { const { render } = createRenderer(); + beforeEach(() => { + if (window?.document?.body?.style?.margin) { + window.document.body.style.margin = '0'; + } + }); + describe('onAxisClick', () => { it('should provide the right context as second argument', function test() { if (isJSDOM) { diff --git a/packages/x-charts/src/PieChart/checkClickEvent.test.tsx b/packages/x-charts/src/PieChart/checkClickEvent.test.tsx index bc5f72d36874b..da0c8fec56add 100644 --- a/packages/x-charts/src/PieChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/PieChart/checkClickEvent.test.tsx @@ -12,6 +12,12 @@ const config = { describe('PieChart - click event', () => { const { render } = createRenderer(); + beforeEach(() => { + if (window?.document?.body?.style?.margin) { + window.document.body.style.margin = '0'; + } + }); + describe('onItemClick', () => { it('should add cursor="pointer" to bar elements', function test() { render( diff --git a/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx b/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx index 39d0d4f29f8ed..6ab685e130e59 100644 --- a/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx @@ -30,6 +30,12 @@ const isJSDOM = /jsdom/.test(window.navigator.userAgent); describe('ScatterChart - click event', () => { const { render } = createRenderer(); + beforeEach(() => { + if (window?.document?.body?.style?.margin) { + window.document.body.style.margin = '0'; + } + }); + describe('onItemClick - using vornoid', () => { it('should provide the right context as second argument when clicking svg', function test() { if (isJSDOM) { diff --git a/test/utils/checkMaterialVersion.ts b/test/utils/checkMaterialVersion.ts index 48e7138577c29..24eff46507cc4 100644 --- a/test/utils/checkMaterialVersion.ts +++ b/test/utils/checkMaterialVersion.ts @@ -14,7 +14,7 @@ export function checkMaterialVersion({ packageJson: PackageJson & { devDependencies: { '@mui/material': string } }; materialPackageJson: PackageJson; }) { - return it(`${packageJson.name} should resolve proper @mui/material version`, (t = {}) => { + return it(`${packageJson.name} should resolve proper @mui/material version`, function test(t = {}) { const isJSDOM = /jsdom/.test(window.navigator.userAgent); if (!isJSDOM) { From d14ad465218a8462c6d2c3acf97f1af881b1f7dd Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 6 Sep 2024 12:02:44 +0200 Subject: [PATCH 007/253] try clearing the body margin --- .../x-charts/src/BarChart/checkClickEvent.test.tsx | 8 +++++++- .../src/ChartsTooltip/contentDisplayed.test.tsx | 12 ++++++++++++ .../x-charts/src/LineChart/checkClickEvent.test.tsx | 8 +++++++- .../x-charts/src/PieChart/checkClickEvent.test.tsx | 8 +++++++- .../src/ScatterChart/checkClickEvent.test.tsx | 8 +++++++- 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx index d652c3fda3f7d..53ee5512bdc90 100644 --- a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx @@ -29,11 +29,17 @@ describe('BarChart - click event', () => { const { render } = createRenderer(); beforeEach(() => { - if (window?.document?.body?.style?.margin) { + if (window?.document?.body?.style) { window.document.body.style.margin = '0'; } }); + afterEach(() => { + if (window?.document?.body?.style) { + window.document.body.style.margin = '8px'; + } + }); + describe('onAxisClick', () => { it('should provide the right context as second argument', function test() { if (isJSDOM) { diff --git a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx index 38a3b02a53ce2..eba159d66fe75 100644 --- a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx +++ b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx @@ -27,6 +27,18 @@ const isJSDOM = /jsdom/.test(window.navigator.userAgent); describe('ChartsTooltip', () => { const { render } = createRenderer(); + beforeEach(() => { + if (window?.document?.body?.style) { + window.document.body.style.margin = '0'; + } + }); + + afterEach(() => { + if (window?.document?.body?.style) { + window.document.body.style.margin = '8px'; + } + }); + describe('axis trigger', () => { it('should show right values with vertical layout', function test() { if (isJSDOM) { diff --git a/packages/x-charts/src/LineChart/checkClickEvent.test.tsx b/packages/x-charts/src/LineChart/checkClickEvent.test.tsx index bf863fcce9d7e..9386ec1553b5b 100644 --- a/packages/x-charts/src/LineChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/LineChart/checkClickEvent.test.tsx @@ -23,11 +23,17 @@ describe('LineChart - click event', () => { const { render } = createRenderer(); beforeEach(() => { - if (window?.document?.body?.style?.margin) { + if (window?.document?.body?.style) { window.document.body.style.margin = '0'; } }); + afterEach(() => { + if (window?.document?.body?.style) { + window.document.body.style.margin = '8px'; + } + }); + describe('onAxisClick', () => { it('should provide the right context as second argument', function test() { if (isJSDOM) { diff --git a/packages/x-charts/src/PieChart/checkClickEvent.test.tsx b/packages/x-charts/src/PieChart/checkClickEvent.test.tsx index da0c8fec56add..e44fe4aa27dca 100644 --- a/packages/x-charts/src/PieChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/PieChart/checkClickEvent.test.tsx @@ -13,11 +13,17 @@ describe('PieChart - click event', () => { const { render } = createRenderer(); beforeEach(() => { - if (window?.document?.body?.style?.margin) { + if (window?.document?.body?.style) { window.document.body.style.margin = '0'; } }); + afterEach(() => { + if (window?.document?.body?.style) { + window.document.body.style.margin = '8px'; + } + }); + describe('onItemClick', () => { it('should add cursor="pointer" to bar elements', function test() { render( diff --git a/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx b/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx index 6ab685e130e59..0aba715490d8d 100644 --- a/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx @@ -31,11 +31,17 @@ describe('ScatterChart - click event', () => { const { render } = createRenderer(); beforeEach(() => { - if (window?.document?.body?.style?.margin) { + if (window?.document?.body?.style) { window.document.body.style.margin = '0'; } }); + afterEach(() => { + if (window?.document?.body?.style) { + window.document.body.style.margin = '8px'; + } + }); + describe('onItemClick - using vornoid', () => { it('should provide the right context as second argument when clicking svg', function test() { if (isJSDOM) { From d39f9e4f2dc95de37fe84661b055e01274b27a1e Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 13:18:42 +0200 Subject: [PATCH 008/253] Fix new tests --- .../src/BarChart/checkClickEvent.test.tsx | 18 +++++++++----- .../ChartsTooltip/contentDisplayed.test.tsx | 24 ++++++++++++------- .../src/LineChart/checkClickEvent.test.tsx | 24 ++++++++++++------- .../src/ScatterChart/checkClickEvent.test.tsx | 24 ++++++++++++------- 4 files changed, 60 insertions(+), 30 deletions(-) diff --git a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx index 0a4c1fd3a7693..fb69c8da3ad52 100644 --- a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx @@ -41,10 +41,12 @@ describe('BarChart - click event', () => { }); describe('onAxisClick', () => { - it('should provide the right context as second argument', function test() { + it('should provide the right context as second argument', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onAxisClick = spy(); render( @@ -92,10 +94,12 @@ describe('BarChart - click event', () => { }); }); - it('should provide the right context as second argument with layout="horizontal"', function test() { + it('should provide the right context as second argument with layout="horizontal"', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onAxisClick = spy(); render( @@ -166,10 +170,12 @@ describe('BarChart - click event', () => { ).to.deep.equal(['pointer', 'pointer', 'pointer', 'pointer']); }); - it('should provide the right context as second argument', function test() { + it('should provide the right context as second argument', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onItemClick = spy(); render( diff --git a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx index eba159d66fe75..61d668a203660 100644 --- a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx +++ b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx @@ -40,10 +40,12 @@ describe('ChartsTooltip', () => { }); describe('axis trigger', () => { - it('should show right values with vertical layout', function test() { + it('should show right values with vertical layout', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -104,10 +106,12 @@ describe('ChartsTooltip', () => { ]); }); - it('should show right values with horizontal layout', function test() { + it('should show right values with horizontal layout', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -171,10 +175,12 @@ describe('ChartsTooltip', () => { }); describe('item trigger', () => { - it('should show right values with vertical layout', function test() { + it('should show right values with vertical layout', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -213,10 +219,12 @@ describe('ChartsTooltip', () => { expect([...cells].map((cell) => cell.textContent)).to.deep.equal(['', 'S2', '1']); }); - it('should show right values with horizontal layout', function test() { + it('should show right values with horizontal layout', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( diff --git a/packages/x-charts/src/LineChart/checkClickEvent.test.tsx b/packages/x-charts/src/LineChart/checkClickEvent.test.tsx index 9386ec1553b5b..1709e36470648 100644 --- a/packages/x-charts/src/LineChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/LineChart/checkClickEvent.test.tsx @@ -35,10 +35,12 @@ describe('LineChart - click event', () => { }); describe('onAxisClick', () => { - it('should provide the right context as second argument', function test() { + it('should provide the right context as second argument', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onAxisClick = spy(); render( @@ -114,10 +116,12 @@ describe('LineChart - click event', () => { ]); }); - it('should provide the right context as second argument', function test() { + it('should provide the right context as second argument', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onMarkClick = spy(); render( @@ -185,10 +189,12 @@ describe('LineChart - click event', () => { ]); }); - it('should provide the right context as second argument', function test() { + it('should provide the right context as second argument', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onAreaClick = spy(); render( @@ -247,10 +253,12 @@ describe('LineChart - click event', () => { ]); }); - it('should provide the right context as second argument', function test() { + it('should provide the right context as second argument', function test(t = {}) { if (isJSDOM) { // can't do Pointer event with JSDom https://github.com/jsdom/jsdom/issues/2527 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onLineClick = spy(); render( diff --git a/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx b/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx index 0aba715490d8d..91ab83bc281b4 100644 --- a/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/ScatterChart/checkClickEvent.test.tsx @@ -43,10 +43,12 @@ describe('ScatterChart - click event', () => { }); describe('onItemClick - using vornoid', () => { - it('should provide the right context as second argument when clicking svg', function test() { + it('should provide the right context as second argument when clicking svg', function test(t = {}) { if (isJSDOM) { // svg.createSVGPoint not supported by JSDom https://github.com/jsdom/jsdom/issues/300 - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onItemClick = spy(); render( @@ -88,9 +90,11 @@ describe('ScatterChart - click event', () => { expect(onItemClick.callCount).to.equal(2); }); - it('should provide the right context as second argument when clicking mark', function test() { + it('should provide the right context as second argument when clicking mark', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onItemClick = spy(); render( @@ -124,9 +128,11 @@ describe('ScatterChart - click event', () => { }); describe('onItemClick - disabling vornoid', () => { - it('should not call onItemClick when clicking the SVG', function test() { + it('should not call onItemClick when clicking the SVG', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onItemClick = spy(); render( @@ -153,9 +159,11 @@ describe('ScatterChart - click event', () => { expect(onItemClick.callCount).to.equal(0); }); - it('should provide the right context as second argument when clicking mark', function test() { + it('should provide the right context as second argument when clicking mark', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onItemClick = spy(); render( From aa6b60deba936ca37d1f812da8f12476a125254d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:06:48 +0200 Subject: [PATCH 009/253] fix jsdom --- packages/x-charts/src/BarChart/checkClickEvent.test.tsx | 1 - test/setup.ts | 8 ++++++++ vitest.config.ts => vitest.config.mts | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) rename vitest.config.ts => vitest.config.mts (96%) diff --git a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx index fb69c8da3ad52..4cc5cd0644c76 100644 --- a/packages/x-charts/src/BarChart/checkClickEvent.test.tsx +++ b/packages/x-charts/src/BarChart/checkClickEvent.test.tsx @@ -105,7 +105,6 @@ describe('BarChart - click event', () => { render(
Date: Tue, 10 Sep 2024 15:18:01 +0200 Subject: [PATCH 010/253] browser and dom together --- vitest.config.mts | 17 +++-------------- vitest.workspace.ts | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 vitest.workspace.ts diff --git a/vitest.config.mts b/vitest.config.mts index 040b237e42233..863a4c2460482 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,10 +1,7 @@ import { defineConfig } from 'vitest/config'; -import react from '@vitejs/plugin-react'; export default defineConfig({ - plugins: [react()], - test: { - include: ['packages/x-charts/**/*.test.tsx'], + resolve: { alias: [ { find: '@mui/x-charts', @@ -15,17 +12,9 @@ export default defineConfig({ replacement: new URL('./test/utils', import.meta.url).pathname, }, ], + }, + test: { globals: true, setupFiles: ['test/setup.ts'], - // environment: 'jsdom', - browser: { - enabled: true, - name: 'chromium', - provider: 'playwright', - headless: true, - // https://playwright.dev - providerOptions: {}, - screenshotFailures: false, - }, }, }); diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 0000000000000..0ab9f52689f3a --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,31 @@ +import { defineWorkspace } from 'vitest/config'; +import react from '@vitejs/plugin-react'; + +export default defineWorkspace([ + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: ['packages/x-charts/**/*.test.tsx'], + name: 'charts/browser', + browser: { + enabled: true, + name: 'chromium', + provider: 'playwright', + headless: true, + // https://playwright.dev + providerOptions: {}, + screenshotFailures: false, + }, + }, + }, + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: ['packages/x-charts/**/*.test.tsx'], + name: 'charts/jsdom', + environment: 'jsdom', + }, + }, +]); From 3e5caf5efb041a9e4032092f2d7e65079a790f78 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:19:01 +0200 Subject: [PATCH 011/253] packages --- package.json | 2 +- packages/x-charts/package.json | 2 +- pnpm-lock.yaml | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 136df3b6ecbd2..8e501615c0858 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@mui/icons-material": "^5.16.7", "@mui/internal-babel-plugin-resolve-imports": "1.0.17", "@mui/internal-markdown": "^1.0.12", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils", + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils", "@mui/material": "^5.16.7", "@mui/monorepo": "github:mui/material-ui#64aaf564c82cd8bd709116ad38123dbcab8d3bfb", "@mui/utils": "^5.16.6", diff --git a/packages/x-charts/package.json b/packages/x-charts/package.json index c4b51656cf5a5..7966165f2806b 100644 --- a/packages/x-charts/package.json +++ b/packages/x-charts/package.json @@ -65,7 +65,7 @@ } }, "devDependencies": { - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils", + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils", "@mui/material": "^5.16.7", "@mui/system": "^5.16.7", "@react-spring/core": "^9.7.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54ffc05cfe836..e01c565764163 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,8 +93,8 @@ importers: specifier: ^1.0.12 version: 1.0.12 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -761,8 +761,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3165,8 +3165,8 @@ packages: react: ^18.2.0 react-dom: ^18.2.0 - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils} + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils} version: 1.0.12 peerDependencies: react: ^18.2.0 @@ -12167,7 +12167,7 @@ snapshots: - supports-color - utf-8-validate - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/e7e755b2/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) From a1234b67d2c321f6b50095657ed5c0ad54ff8d92 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:23:05 +0200 Subject: [PATCH 012/253] add workflow --- .github/workflows/vitest.yml | 33 +++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/vitest.yml diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml new file mode 100644 index 0000000000000..8703a458f5ced --- /dev/null +++ b/.github/workflows/vitest.yml @@ -0,0 +1,33 @@ +name: Vitest + +on: + push: + branches: + - 'master' + - 'next' + pull_request: + branches: + - 'master' + - 'next' + +permissions: {} + +jobs: + benchmarks: + name: Vitest Tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + with: + run_install: false + - name: Use Node.js 20.x + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + with: + node-version: 20 + cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies + - run: pnpm install --frozen-lockfile + - name: Install Playwright Browsers + run: npx playwright install --with-deps + - name: Run Tests + run: pnpm vitest diff --git a/package.json b/package.json index 8e501615c0858..5f951ff637840 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "release:tag": "node scripts/releaseTag.mjs", "validate": "concurrently \"pnpm prettier && pnpm eslint\" \"pnpm proptypes\" \"pnpm docs:typescript:formatted\" \"pnpm docs:api\"", "clean:node_modules": "rimraf --glob \"**/node_modules\"", - "test:browser": "vitest" + "vitest": "vitest" }, "devDependencies": { "@actions/core": "^1.10.1", From 9a6eb21c3c4dd5d4a860b47af0d59623037015fa Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:26:53 +0200 Subject: [PATCH 013/253] fix playwright install --- .github/workflows/vitest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml index 8703a458f5ced..705163e3dfa4e 100644 --- a/.github/workflows/vitest.yml +++ b/.github/workflows/vitest.yml @@ -28,6 +28,6 @@ jobs: cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies - run: pnpm install --frozen-lockfile - name: Install Playwright Browsers - run: npx playwright install --with-deps + run: pnpm exec playwright install --with-deps - name: Run Tests run: pnpm vitest From 09de9d7fa78f92ad0e347c6dc1174b77cf583dec Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:43:15 +0200 Subject: [PATCH 014/253] check permission --- .github/workflows/vitest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml index 705163e3dfa4e..2aef79ea80143 100644 --- a/.github/workflows/vitest.yml +++ b/.github/workflows/vitest.yml @@ -10,7 +10,7 @@ on: - 'master' - 'next' -permissions: {} +# permissions: {} jobs: benchmarks: From 91c67c05f93d0f9bc5d2143ca300988726899d62 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:48:45 +0200 Subject: [PATCH 015/253] try removing duplicate dep --- .github/workflows/vitest.yml | 2 +- pnpm-lock.yaml | 3 --- test/package.json | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml index 2aef79ea80143..705163e3dfa4e 100644 --- a/.github/workflows/vitest.yml +++ b/.github/workflows/vitest.yml @@ -10,7 +10,7 @@ on: - 'master' - 'next' -# permissions: {} +permissions: {} jobs: benchmarks: diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e01c565764163..f188d632099bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1551,9 +1551,6 @@ importers: '@mui/x-license': specifier: workspace:* version: link:../packages/x-license/build - '@playwright/test': - specifier: ^1.44.1 - version: 1.44.1 '@react-spring/web': specifier: ^9.7.4 version: 9.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) diff --git a/test/package.json b/test/package.json index b46acbb59d2d6..1544d72be6797 100644 --- a/test/package.json +++ b/test/package.json @@ -18,7 +18,6 @@ "@mui/x-date-pickers": "workspace:*", "@mui/x-date-pickers-pro": "workspace:*", "@mui/x-license": "workspace:*", - "@playwright/test": "^1.44.1", "@react-spring/web": "^9.7.4", "@types/chai": "^4.3.19", "@types/karma": "^6.3.8", From 94bbb95d9066a6e460b064d96559df5aa1f71454 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:54:18 +0200 Subject: [PATCH 016/253] upgrade playwright --- .github/workflows/vitest.yml | 2 +- package.json | 2 +- pnpm-lock.yaml | 68 ++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml index 705163e3dfa4e..8343e89d261a0 100644 --- a/.github/workflows/vitest.yml +++ b/.github/workflows/vitest.yml @@ -28,6 +28,6 @@ jobs: cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies - run: pnpm install --frozen-lockfile - name: Install Playwright Browsers - run: pnpm exec playwright install --with-deps + run: pnpm playwright install --with-deps - name: Run Tests run: pnpm vitest diff --git a/package.json b/package.json index 5f951ff637840..277f96d10f563 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "@next/eslint-plugin-next": "14.2.7", "@octokit/plugin-retry": "^7.1.1", "@octokit/rest": "^21.0.2", - "@playwright/test": "^1.44.1", + "@playwright/test": "^1.47.0", "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", "@types/babel__traverse": "^7.20.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f188d632099bb..6cf3a5faf9d22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -114,8 +114,8 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.44.1 - version: 1.44.1 + specifier: ^1.47.0 + version: 1.47.0 '@testing-library/react': specifier: ^16.0.1 version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -175,7 +175,7 @@ importers: version: 4.3.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0)) '@vitest/browser': specifier: ^2.0.5 - version: 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) + version: 2.0.5(playwright@1.47.0)(typescript@5.5.4)(vitest@2.0.5) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.44) @@ -442,7 +442,7 @@ importers: version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1) '@mui/docs': specifier: 6.0.2 - version: 6.0.2(bm6kywyrtzseqscuvn3yfzmlbi) + version: 6.0.2(rwfzlnjuk4hzzgjkzvpdfrnhqi) '@mui/icons-material': specifier: ^5.16.7 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(react@18.3.1) @@ -457,7 +457,7 @@ importers: version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: ^5.16.6 - version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@mui/styles': specifier: ^5.16.7 version: 5.16.7(@types/react@18.3.4)(react@18.3.1) @@ -589,7 +589,7 @@ importers: version: 0.5.45 next: specifier: ^14.2.7 - version: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -3746,9 +3746,9 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.44.1': - resolution: {integrity: sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==} - engines: {node: '>=16'} + '@playwright/test@1.47.0': + resolution: {integrity: sha512-SgAdlSwYVpToI4e/IH19IHHWvoijAYH5hu2MWSXptRypLSnzj51PcGD+rsOXFayde4P9ZLi+loXVwArg6IUkCA==} + engines: {node: '>=18'} hasBin: true '@polka/url@1.0.0-next.24': @@ -8600,19 +8600,14 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.44.1: - resolution: {integrity: sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==} - engines: {node: '>=16'} - hasBin: true - playwright-core@1.46.1: resolution: {integrity: sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==} engines: {node: '>=18'} hasBin: true - playwright@1.44.1: - resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} - engines: {node: '>=16'} + playwright-core@1.47.0: + resolution: {integrity: sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==} + engines: {node: '>=18'} hasBin: true playwright@1.46.1: @@ -8620,6 +8615,11 @@ packages: engines: {node: '>=18'} hasBin: true + playwright@1.47.0: + resolution: {integrity: sha512-jOWiRq2pdNAX/mwLiwFYnPHpEZ4rM+fRSQpRHwEwZlP2PUANvL3+aJOF/bvISMhFD30rqMxUB4RJx9aQbfh4Ww==} + engines: {node: '>=18'} + hasBin: true + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -12072,7 +12072,7 @@ snapshots: '@mui/core-downloads-tracker@5.16.7': {} - '@mui/docs@6.0.2(bm6kywyrtzseqscuvn3yfzmlbi)': + '@mui/docs@6.0.2(rwfzlnjuk4hzzgjkzvpdfrnhqi)': dependencies: '@babel/runtime': 7.25.6 '@mui/base': 5.0.0-beta.40(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12084,7 +12084,7 @@ snapshots: clipboard-copy: 4.0.1 clsx: 2.1.1 csstype: 3.1.3 - next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -12231,11 +12231,11 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1) '@types/react': 18.3.4 - '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.6 '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@emotion/cache': 11.13.1 @@ -12894,9 +12894,9 @@ snapshots: '@pkgr/core@0.1.1': {} - '@playwright/test@1.44.1': + '@playwright/test@1.47.0': dependencies: - playwright: 1.44.1 + playwright: 1.47.0 '@polka/url@1.0.0-next.24': {} @@ -13645,7 +13645,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5)': + '@vitest/browser@2.0.5(playwright@1.47.0)(typescript@5.5.4)(vitest@2.0.5)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) @@ -13656,7 +13656,7 @@ snapshots: vitest: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) ws: 8.18.0 optionalDependencies: - playwright: 1.46.1 + playwright: 1.47.0 transitivePeerDependencies: - bufferutil - graphql @@ -18092,7 +18092,7 @@ snapshots: nested-error-stacks@2.1.1: {} - next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.7 '@swc/helpers': 0.5.5 @@ -18114,7 +18114,7 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.7 '@next/swc-win32-x64-msvc': 14.2.7 '@opentelemetry/api': 1.8.0 - '@playwright/test': 1.44.1 + '@playwright/test': 1.47.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -18757,19 +18757,19 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.44.1: {} - playwright-core@1.46.1: {} - playwright@1.44.1: + playwright-core@1.47.0: {} + + playwright@1.46.1: dependencies: - playwright-core: 1.44.1 + playwright-core: 1.46.1 optionalDependencies: fsevents: 2.3.2 - playwright@1.46.1: + playwright@1.47.0: dependencies: - playwright-core: 1.46.1 + playwright-core: 1.47.0 optionalDependencies: fsevents: 2.3.2 @@ -20332,7 +20332,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.3 - '@vitest/browser': 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) + '@vitest/browser': 2.0.5(playwright@1.47.0)(typescript@5.5.4)(vitest@2.0.5) '@vitest/ui': 2.0.5(vitest@2.0.5) jsdom: 24.1.3 transitivePeerDependencies: From 8d37f265e3b4c8df5db645568c5c546ba46e140d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 15:58:10 +0200 Subject: [PATCH 017/253] dedupe --- pnpm-lock.yaml | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6cf3a5faf9d22..e61f799f6a923 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3104,7 +3104,7 @@ packages: resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 + '@types/react': ^18.3.4 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -8600,21 +8600,11 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.46.1: - resolution: {integrity: sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==} - engines: {node: '>=18'} - hasBin: true - playwright-core@1.47.0: resolution: {integrity: sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==} engines: {node: '>=18'} hasBin: true - playwright@1.46.1: - resolution: {integrity: sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==} - engines: {node: '>=18'} - hasBin: true - playwright@1.47.0: resolution: {integrity: sha512-jOWiRq2pdNAX/mwLiwFYnPHpEZ4rM+fRSQpRHwEwZlP2PUANvL3+aJOF/bvISMhFD30rqMxUB4RJx9aQbfh4Ww==} engines: {node: '>=18'} @@ -12150,7 +12140,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.7.3 - playwright: 1.46.1 + playwright: 1.47.0 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12183,7 +12173,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.7.3 - playwright: 1.46.1 + playwright: 1.47.0 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -18757,16 +18747,8 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.46.1: {} - playwright-core@1.47.0: {} - playwright@1.46.1: - dependencies: - playwright-core: 1.46.1 - optionalDependencies: - fsevents: 2.3.2 - playwright@1.47.0: dependencies: playwright-core: 1.47.0 From e47aa213e9fb8fd9cc7d12adb1d18a17de783371 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 16:33:00 +0200 Subject: [PATCH 018/253] Fix chai assertions --- test/utils/addChaiAssertions.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/utils/addChaiAssertions.ts b/test/utils/addChaiAssertions.ts index 2392de41f5a33..9ec27b2d71328 100644 --- a/test/utils/addChaiAssertions.ts +++ b/test/utils/addChaiAssertions.ts @@ -1,5 +1,11 @@ import chai from 'chai'; +import chaiDom from 'chai-dom'; +import chaiPlugin from '@mui/internal-test-utils/chaiPlugin'; + +chai.use(chaiDom); +chai.use(chaiPlugin); + // https://stackoverflow.com/a/46755166/3406963 declare global { namespace Chai { @@ -13,7 +19,7 @@ declare global { } chai.use((chaiAPI, utils) => { - chai.Assertion.addMethod('toEqualDateTime', function toEqualDateTime(expectedDate, message) { + chaiAPI.Assertion.addMethod('toEqualDateTime', function toEqualDateTime(expectedDate, message) { // eslint-disable-next-line no-underscore-dangle const actualDate = this._obj; @@ -30,7 +36,7 @@ chai.use((chaiAPI, utils) => { cleanExpectedDate = expectedDate; } - const assertion = new chai.Assertion(cleanActualDate.toISOString(), message); + const assertion = new chaiAPI.Assertion(cleanActualDate.toISOString(), message); // TODO: Investigate if `as any` can be removed after https://github.com/DefinitelyTyped/DefinitelyTyped/issues/48634 is resolved. utils.transferFlags(this as any, assertion, false); assertion.to.equal(cleanExpectedDate.toISOString()); From 7f19f37c6318d61313d673219bcdba69d428d83d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 17:04:25 +0200 Subject: [PATCH 019/253] revert playwright --- package.json | 2 +- pnpm-lock.yaml | 113 +++++++++++++++++++++++++++++-------------------- 2 files changed, 68 insertions(+), 47 deletions(-) diff --git a/package.json b/package.json index 277f96d10f563..5f951ff637840 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "@next/eslint-plugin-next": "14.2.7", "@octokit/plugin-retry": "^7.1.1", "@octokit/rest": "^21.0.2", - "@playwright/test": "^1.47.0", + "@playwright/test": "^1.44.1", "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", "@types/babel__traverse": "^7.20.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e61f799f6a923..ebb349680c910 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -114,8 +114,8 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.47.0 - version: 1.47.0 + specifier: ^1.44.1 + version: 1.44.1 '@testing-library/react': specifier: ^16.0.1 version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -175,7 +175,7 @@ importers: version: 4.3.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0)) '@vitest/browser': specifier: ^2.0.5 - version: 2.0.5(playwright@1.47.0)(typescript@5.5.4)(vitest@2.0.5) + version: 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.44) @@ -442,7 +442,7 @@ importers: version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1) '@mui/docs': specifier: 6.0.2 - version: 6.0.2(rwfzlnjuk4hzzgjkzvpdfrnhqi) + version: 6.0.2(bm6kywyrtzseqscuvn3yfzmlbi) '@mui/icons-material': specifier: ^5.16.7 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(react@18.3.1) @@ -457,7 +457,7 @@ importers: version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: ^5.16.6 - version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@mui/styles': specifier: ^5.16.7 version: 5.16.7(@types/react@18.3.4)(react@18.3.1) @@ -589,7 +589,7 @@ importers: version: 0.5.45 next: specifier: ^14.2.7 - version: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -3096,15 +3096,15 @@ packages: resolution: {integrity: sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA==} engines: {node: '>=18.0.0'} - '@mswjs/interceptors@0.29.1': - resolution: {integrity: sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==} + '@mswjs/interceptors@0.35.0': + resolution: {integrity: sha512-f5cHyIvm4m4g1I5x9EH1etGx0puaU0OaX2szqGRVBVgUC6aMASlOI5hbpe7tJ9l4/VWjCUu5OMraCazLZGI24A==} engines: {node: '>=18'} '@mui/base@5.0.0-beta.40': resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} peerDependencies: - '@types/react': ^18.3.4 + '@types/react': ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -3746,9 +3746,9 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.47.0': - resolution: {integrity: sha512-SgAdlSwYVpToI4e/IH19IHHWvoijAYH5hu2MWSXptRypLSnzj51PcGD+rsOXFayde4P9ZLi+loXVwArg6IUkCA==} - engines: {node: '>=18'} + '@playwright/test@1.44.1': + resolution: {integrity: sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==} + engines: {node: '>=16'} hasBin: true '@polka/url@1.0.0-next.24': @@ -6646,6 +6646,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + gtoken@7.0.1: resolution: {integrity: sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==} engines: {node: '>=14.0.0'} @@ -7990,16 +7994,13 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.4.2: - resolution: {integrity: sha512-GImSQGhn19czhVpxPdiUDK8CMZ6jbBcvOhzfJd8KFErjEER2wDKWs1UYaetJs2GSNlAqt6heZYm7g3eLatTcog==} + msw@2.4.4: + resolution: {integrity: sha512-iuM0qGs4YmgYCLH+xqb07w2e/e4fYmsx3+WHVlIOUA34TW1sw+wRpNmOlXnLDkw/T7233Jnm6t+aNf4v2E3e2Q==} engines: {node: '>=18'} hasBin: true peerDependencies: - graphql: '>= 16.8.x' typescript: '>= 4.8.x' peerDependenciesMeta: - graphql: - optional: true typescript: optional: true @@ -8600,13 +8601,23 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.47.0: - resolution: {integrity: sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==} + playwright-core@1.44.1: + resolution: {integrity: sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==} + engines: {node: '>=16'} + hasBin: true + + playwright-core@1.46.1: + resolution: {integrity: sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==} engines: {node: '>=18'} hasBin: true - playwright@1.47.0: - resolution: {integrity: sha512-jOWiRq2pdNAX/mwLiwFYnPHpEZ4rM+fRSQpRHwEwZlP2PUANvL3+aJOF/bvISMhFD30rqMxUB4RJx9aQbfh4Ww==} + playwright@1.44.1: + resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} + engines: {node: '>=16'} + hasBin: true + + playwright@1.46.1: + resolution: {integrity: sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==} engines: {node: '>=18'} hasBin: true @@ -9777,8 +9788,8 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.26.0: - resolution: {integrity: sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==} + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} engines: {node: '>=16'} type-is@1.6.18: @@ -12037,7 +12048,7 @@ snapshots: - supports-color - typescript - '@mswjs/interceptors@0.29.1': + '@mswjs/interceptors@0.35.0': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -12062,7 +12073,7 @@ snapshots: '@mui/core-downloads-tracker@5.16.7': {} - '@mui/docs@6.0.2(rwfzlnjuk4hzzgjkzvpdfrnhqi)': + '@mui/docs@6.0.2(bm6kywyrtzseqscuvn3yfzmlbi)': dependencies: '@babel/runtime': 7.25.6 '@mui/base': 5.0.0-beta.40(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12074,7 +12085,7 @@ snapshots: clipboard-copy: 4.0.1 clsx: 2.1.1 csstype: 3.1.3 - next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -12140,7 +12151,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.7.3 - playwright: 1.47.0 + playwright: 1.46.1 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12173,7 +12184,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.7.3 - playwright: 1.47.0 + playwright: 1.46.1 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12221,11 +12232,11 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1) '@types/react': 18.3.4 - '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.4)(next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.25.6 '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@emotion/cache': 11.13.1 @@ -12884,9 +12895,9 @@ snapshots: '@pkgr/core@0.1.1': {} - '@playwright/test@1.47.0': + '@playwright/test@1.44.1': dependencies: - playwright: 1.47.0 + playwright: 1.44.1 '@polka/url@1.0.0-next.24': {} @@ -13635,21 +13646,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.0.5(playwright@1.47.0)(typescript@5.5.4)(vitest@2.0.5)': + '@vitest/browser@2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/utils': 2.0.5 magic-string: 0.30.10 - msw: 2.4.2(typescript@5.5.4) + msw: 2.4.4(typescript@5.5.4) sirv: 2.0.4 vitest: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) ws: 8.18.0 optionalDependencies: - playwright: 1.47.0 + playwright: 1.46.1 transitivePeerDependencies: - bufferutil - - graphql - typescript - utf-8-validate @@ -16416,6 +16426,8 @@ snapshots: graphemer@1.4.0: {} + graphql@16.9.0: {} + gtoken@7.0.1(encoding@0.1.13): dependencies: gaxios: 6.1.1(encoding@0.1.13) @@ -18028,23 +18040,24 @@ snapshots: ms@2.1.3: {} - msw@2.4.2(typescript@5.5.4): + msw@2.4.4(typescript@5.5.4): dependencies: '@bundled-es-modules/cookie': 2.0.0 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 '@inquirer/confirm': 3.2.0 - '@mswjs/interceptors': 0.29.1 + '@mswjs/interceptors': 0.35.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 '@types/statuses': 2.0.5 chalk: 4.1.2 + graphql: 16.9.0 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 path-to-regexp: 6.2.1 strict-event-emitter: 0.5.1 - type-fest: 4.26.0 + type-fest: 4.26.1 yargs: 17.7.2 optionalDependencies: typescript: 5.5.4 @@ -18082,7 +18095,7 @@ snapshots: nested-error-stacks@2.1.1: {} - next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.47.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.7(@babel/core@7.25.2)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.7 '@swc/helpers': 0.5.5 @@ -18104,7 +18117,7 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.7 '@next/swc-win32-x64-msvc': 14.2.7 '@opentelemetry/api': 1.8.0 - '@playwright/test': 1.47.0 + '@playwright/test': 1.44.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -18747,11 +18760,19 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.47.0: {} + playwright-core@1.44.1: {} + + playwright-core@1.46.1: {} + + playwright@1.44.1: + dependencies: + playwright-core: 1.44.1 + optionalDependencies: + fsevents: 2.3.2 - playwright@1.47.0: + playwright@1.46.1: dependencies: - playwright-core: 1.47.0 + playwright-core: 1.46.1 optionalDependencies: fsevents: 2.3.2 @@ -20045,7 +20066,7 @@ snapshots: type-fest@2.19.0: {} - type-fest@4.26.0: {} + type-fest@4.26.1: {} type-is@1.6.18: dependencies: @@ -20314,7 +20335,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.3 - '@vitest/browser': 2.0.5(playwright@1.47.0)(typescript@5.5.4)(vitest@2.0.5) + '@vitest/browser': 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) '@vitest/ui': 2.0.5(vitest@2.0.5) jsdom: 24.1.3 transitivePeerDependencies: From ad28046bedf3b516f79b1bd9aaf7e0ccc732bf15 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 17:12:19 +0200 Subject: [PATCH 020/253] overwrite playwright in internal packages --- package.json | 4 +++- pnpm-lock.yaml | 38 +++++++++++--------------------------- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 5f951ff637840..4112e5d39db07 100644 --- a/package.json +++ b/package.json @@ -203,7 +203,9 @@ }, "resolutions": { "react-is": "^18.3.1", - "@types/node": "^20.14.8" + "@types/node": "^20.14.8", + "@playwright/test": "1.44.1", + "playwright": "1.44.1" }, "packageManager": "pnpm@9.9.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ebb349680c910..8a77c39bf8a48 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,8 @@ settings: overrides: react-is: ^18.3.1 '@types/node': ^20.14.8 + '@playwright/test': 1.44.1 + playwright: 1.44.1 patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -114,7 +116,7 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.44.1 + specifier: 1.44.1 version: 1.44.1 '@testing-library/react': specifier: ^16.0.1 @@ -175,7 +177,7 @@ importers: version: 4.3.1(vite@5.3.4(@types/node@20.16.3)(terser@5.27.0)) '@vitest/browser': specifier: ^2.0.5 - version: 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) + version: 2.0.5(playwright@1.44.1)(typescript@5.5.4)(vitest@2.0.5) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.44) @@ -4437,7 +4439,7 @@ packages: '@vitest/browser@2.0.5': resolution: {integrity: sha512-VbOYtu/6R3d7ASZREcrJmRY/sQuRFO9wMVsEDqfYbWiJRh2fDNi8CL1Csn7Ux31pOcPmmM5QvzFCMpiojvVh8g==} peerDependencies: - playwright: '*' + playwright: 1.44.1 safaridriver: '*' vitest: 2.0.5 webdriverio: '*' @@ -8045,7 +8047,7 @@ packages: hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 + '@playwright/test': 1.44.1 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 @@ -8606,21 +8608,11 @@ packages: engines: {node: '>=16'} hasBin: true - playwright-core@1.46.1: - resolution: {integrity: sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==} - engines: {node: '>=18'} - hasBin: true - playwright@1.44.1: resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} engines: {node: '>=16'} hasBin: true - playwright@1.46.1: - resolution: {integrity: sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==} - engines: {node: '>=18'} - hasBin: true - possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -12151,7 +12143,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.7.3 - playwright: 1.46.1 + playwright: 1.44.1 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12184,7 +12176,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.7.3 - playwright: 1.46.1 + playwright: 1.44.1 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13646,7 +13638,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5)': + '@vitest/browser@2.0.5(playwright@1.44.1)(typescript@5.5.4)(vitest@2.0.5)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) @@ -13657,7 +13649,7 @@ snapshots: vitest: 2.0.5(@types/node@20.16.3)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) ws: 8.18.0 optionalDependencies: - playwright: 1.46.1 + playwright: 1.44.1 transitivePeerDependencies: - bufferutil - typescript @@ -18762,20 +18754,12 @@ snapshots: playwright-core@1.44.1: {} - playwright-core@1.46.1: {} - playwright@1.44.1: dependencies: playwright-core: 1.44.1 optionalDependencies: fsevents: 2.3.2 - playwright@1.46.1: - dependencies: - playwright-core: 1.46.1 - optionalDependencies: - fsevents: 2.3.2 - possible-typed-array-names@1.0.0: {} postcss-selector-parser@6.1.0: @@ -20335,7 +20319,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.3 - '@vitest/browser': 2.0.5(playwright@1.46.1)(typescript@5.5.4)(vitest@2.0.5) + '@vitest/browser': 2.0.5(playwright@1.44.1)(typescript@5.5.4)(vitest@2.0.5) '@vitest/ui': 2.0.5(vitest@2.0.5) jsdom: 24.1.3 transitivePeerDependencies: From d522dab0792bbe7defb8cc55c8a06af09e7c3a63 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 17:43:29 +0200 Subject: [PATCH 021/253] easy config --- vitest.workspace.ts | 54 ++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 0ab9f52689f3a..723b73675d06a 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,31 +1,35 @@ import { defineWorkspace } from 'vitest/config'; import react from '@vitejs/plugin-react'; -export default defineWorkspace([ - { - extends: './vitest.config.mts', - plugins: [react()], - test: { - include: ['packages/x-charts/**/*.test.tsx'], - name: 'charts/browser', - browser: { - enabled: true, - name: 'chromium', - provider: 'playwright', - headless: true, - // https://playwright.dev - providerOptions: {}, - screenshotFailures: false, +const packages = ['charts']; + +export default defineWorkspace( + packages.flatMap((name) => [ + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: [`packages/x-${name}/**/*.test.tsx`], + name: `${name}/browser`, + browser: { + enabled: true, + name: 'chromium', + provider: 'playwright', + headless: true, + // https://playwright.dev + providerOptions: {}, + screenshotFailures: false, + }, }, }, - }, - { - extends: './vitest.config.mts', - plugins: [react()], - test: { - include: ['packages/x-charts/**/*.test.tsx'], - name: 'charts/jsdom', - environment: 'jsdom', + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: [`packages/x-${name}/**/*.test.tsx`], + name: `${name}/jsdom`, + environment: 'jsdom', + }, }, - }, -]); + ]), +); From 795d4af98319d5540245710346c7ca3d53db71f6 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 17:56:37 +0200 Subject: [PATCH 022/253] Add date pickers to alias --- vitest.config.mts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vitest.config.mts b/vitest.config.mts index 863a4c2460482..76ea28f0daa49 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -7,10 +7,18 @@ export default defineConfig({ find: '@mui/x-charts', replacement: new URL('./packages/x-charts/src', import.meta.url).pathname, }, + { + find: '@mui/x-date-pickers', + replacement: new URL('./packages/x-date-pickers/src', import.meta.url).pathname, + }, { find: 'test/utils', replacement: new URL('./test/utils', import.meta.url).pathname, }, + { + find: '@mui/x-internals', + replacement: new URL('./packages/x-internals/src', import.meta.url).pathname, + }, ], }, test: { From 18b7a5c8c25212fa8d0d42d109c57bf5678885c5 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 10 Sep 2024 17:56:47 +0200 Subject: [PATCH 023/253] fix skips in date pickers --- .../DateCalendar/tests/DateCalendar.test.tsx | 6 +- .../tests/editing.DateField.test.tsx | 6 +- .../DateField/tests/format.DateField.test.tsx | 6 +- .../tests/DesktopDatePicker.test.tsx | 24 ++-- .../tests/MobileDateTimePicker.test.tsx | 6 +- .../tests/MobileTimePicker.test.tsx | 6 +- .../tests/StaticDatePicker.test.tsx | 12 +- .../StaticTimePicker.test.tsx | 12 +- .../src/TimeClock/tests/TimeClock.test.tsx | 114 ++++++++++++++---- 9 files changed, 141 insertions(+), 51 deletions(-) diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index 81833dfd0e525..f70a4332e5a62 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -520,9 +520,11 @@ describe('', () => { expect(screen.getByMuiTest('calendar-month-and-year-text')).to.have.text('January 2022'); }); - it('should scroll to show the selected year', function test() { + it('should scroll to show the selected year', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Editing', () => { }); }); - it('should support day with letter suffix', function test() { + it('should support day with letter suffix', function test(t = {}) { // Luxon don't have any day format with a letter suffix if (adapter.lib === 'luxon') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } testFieldChange({ diff --git a/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx b/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx index 67c0df9d5edcf..341770ff553e0 100644 --- a/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx +++ b/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx @@ -68,12 +68,14 @@ describeAdapters(' - Format', DateField, ({ adapter, renderWithProp expectFieldValueV6(input, 'January Escaped 2019'); }); - it('should support nested escaped characters', function test() { + it('should support nested escaped characters', function test(t = {}) { const { start: startChar, end: endChar } = adapter.escapedCharacters; // If your start character and end character are equal // Then you can't have nested escaped characters if (startChar === endChar) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Test with v7 input diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx index 5d90362ce0788..570731e75b0eb 100644 --- a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx +++ b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx @@ -101,9 +101,11 @@ describe('', () => { expect(screen.getByRole('radio', { checked: true, name: 'January' })).not.to.equal(null); }); - it('should move the focus to the newly opened views', function test() { + it('should move the focus to the newly opened views', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -157,13 +159,6 @@ describe('', () => { ); }); - before(function beforeHook() { - // JSDOM has neither layout nor window.scrollTo - if (/jsdom/.test(window.navigator.userAgent)) { - this.skip(); - } - }); - let originalScrollX: number; let originalScrollY: number; @@ -173,10 +168,17 @@ describe('', () => { }); afterEach(() => { - window.scrollTo(originalScrollX, originalScrollY); + window.scrollTo?.(originalScrollX, originalScrollY); }); - it('does not scroll when opened', () => { + it('does not scroll when opened', (t = {}) => { + // JSDOM has neither layout nor window.scrollTo + if (/jsdom/.test(window.navigator.userAgent)) { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleClose = spy(); const handleOpen = spy(); function BottomAnchoredDesktopTimePicker() { diff --git a/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx b/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx index 1e21c3dbc9355..a1e8409873a8e 100644 --- a/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx +++ b/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx @@ -104,9 +104,11 @@ describe('', () => { expect(screen.queryByRole('dialog')).toBeVisible(); }); - it('should call onChange when selecting each view', function test() { + it('should call onChange when selecting each view', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); diff --git a/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx b/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx index 62d073d3c10ca..79475e6b82424 100644 --- a/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx +++ b/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx @@ -48,9 +48,11 @@ describe('', () => { expect(handleChange.firstCall.args[0]).toEqualDateTime(new Date(2019, 0, 1, 16, 20)); }); - it('should call onChange when selecting each view', async function test() { + it('should call onChange when selecting each view', async function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); diff --git a/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx b/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx index 4041769edcd67..e9410f0f0ef16 100644 --- a/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx +++ b/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx @@ -42,9 +42,11 @@ describe('', () => { ); } - it('should take focus when `autoFocus=true`', function test() { + it('should take focus when `autoFocus=true`', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -53,9 +55,11 @@ describe('', () => { expect(isInside).to.equal(true); }); - it('should not take focus when `autoFocus=false`', function test() { + it('should not take focus when `autoFocus=false`', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); diff --git a/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx b/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx index f5a04623b4af4..39871420ac0c4 100644 --- a/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx +++ b/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx @@ -35,10 +35,12 @@ describe('', () => { ], })); - it('should allow view modification, but not update value when `readOnly` prop is passed', function test() { + it('should allow view modification, but not update value when `readOnly` prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ @@ -85,10 +87,12 @@ describe('', () => { expect(disabledHours.length).to.equal(0); }); - it('should allow switching between views and display disabled options when `disabled` prop is passed', function test() { + it('should allow switching between views and display disabled options when `disabled` prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ diff --git a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx index 9fbf3dfcfe98d..11558005d7ec5 100644 --- a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx +++ b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx @@ -180,10 +180,12 @@ describe('', () => { }); }); - it('should display options, but not update value when readOnly prop is passed', function test() { + it('should display options, but not update value when readOnly prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ @@ -208,10 +210,12 @@ describe('', () => { expect(disabledHours.length).to.equal(0); }); - it('should display disabled options when disabled prop is passed', function test() { + it('should display disabled options when disabled prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ @@ -237,12 +241,6 @@ describe('', () => { }); describe('Time validation on touch ', () => { - before(function beforeHook() { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - this.skip(); - } - }); - const clockTouchEvent = { '13:--': { changedTouches: [ @@ -278,7 +276,13 @@ describe('', () => { }, }; - it('should select enabled hour', () => { + it('should select enabled hour', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -301,7 +305,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled minute', () => { + it('should select enabled minute', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -325,7 +335,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled', () => { + it('should not select minute when time is disabled', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled (no current value)', () => { + it('should not select minute when time is disabled (no current value)', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour', () => { + it('should not select disabled hour', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour (no current value)', () => { + it('should not select disabled hour (no current value)', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should visually disable the dates not matching minutesStep', () => { + it('should visually disable the dates not matching minutesStep', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + render( ', () => { expect(screen.getByLabelText('30 minutes')).not.to.have.class('Mui-disabled'); }); - it('should select enabled second', () => { + it('should select enabled second', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -436,7 +482,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select second when time is disabled', () => { + it('should not select second when time is disabled', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select second when time is disabled (no current value)', () => { + it('should not select second when time is disabled (no current value)', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should select enabled hour on touch and drag', () => { + it('should select enabled hour on touch and drag', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -494,7 +558,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled hour and move to next view on touch end', () => { + it('should select enabled hour and move to next view on touch end', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( From bbeed7fa8303baec92b9183c9104321e6421ae7d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 15:26:34 +0200 Subject: [PATCH 024/253] Revert "fix skips in date pickers" This reverts commit 18b7a5c8c25212fa8d0d42d109c57bf5678885c5. --- .../DateCalendar/tests/DateCalendar.test.tsx | 6 +- .../tests/editing.DateField.test.tsx | 6 +- .../DateField/tests/format.DateField.test.tsx | 6 +- .../tests/DesktopDatePicker.test.tsx | 24 ++-- .../tests/MobileDateTimePicker.test.tsx | 6 +- .../tests/MobileTimePicker.test.tsx | 6 +- .../tests/StaticDatePicker.test.tsx | 12 +- .../StaticTimePicker.test.tsx | 12 +- .../src/TimeClock/tests/TimeClock.test.tsx | 114 ++++-------------- 9 files changed, 51 insertions(+), 141 deletions(-) diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index f70a4332e5a62..81833dfd0e525 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -520,11 +520,9 @@ describe('', () => { expect(screen.getByMuiTest('calendar-month-and-year-text')).to.have.text('January 2022'); }); - it('should scroll to show the selected year', function test(t = {}) { + it('should scroll to show the selected year', function test() { if (isJSDOM) { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); // Needs layout } render( - Editing', () => { }); }); - it('should support day with letter suffix', function test(t = {}) { + it('should support day with letter suffix', function test() { // Luxon don't have any day format with a letter suffix if (adapter.lib === 'luxon') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } testFieldChange({ diff --git a/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx b/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx index 341770ff553e0..67c0df9d5edcf 100644 --- a/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx +++ b/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx @@ -68,14 +68,12 @@ describeAdapters(' - Format', DateField, ({ adapter, renderWithProp expectFieldValueV6(input, 'January Escaped 2019'); }); - it('should support nested escaped characters', function test(t = {}) { + it('should support nested escaped characters', function test() { const { start: startChar, end: endChar } = adapter.escapedCharacters; // If your start character and end character are equal // Then you can't have nested escaped characters if (startChar === endChar) { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } // Test with v7 input diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx index 570731e75b0eb..5d90362ce0788 100644 --- a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx +++ b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx @@ -101,11 +101,9 @@ describe('', () => { expect(screen.getByRole('radio', { checked: true, name: 'January' })).not.to.equal(null); }); - it('should move the focus to the newly opened views', function test(t = {}) { + it('should move the focus to the newly opened views', function test() { if (isJSDOM) { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } render(); @@ -159,6 +157,13 @@ describe('', () => { ); }); + before(function beforeHook() { + // JSDOM has neither layout nor window.scrollTo + if (/jsdom/.test(window.navigator.userAgent)) { + this.skip(); + } + }); + let originalScrollX: number; let originalScrollY: number; @@ -168,17 +173,10 @@ describe('', () => { }); afterEach(() => { - window.scrollTo?.(originalScrollX, originalScrollY); + window.scrollTo(originalScrollX, originalScrollY); }); - it('does not scroll when opened', (t = {}) => { - // JSDOM has neither layout nor window.scrollTo - if (/jsdom/.test(window.navigator.userAgent)) { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('does not scroll when opened', () => { const handleClose = spy(); const handleOpen = spy(); function BottomAnchoredDesktopTimePicker() { diff --git a/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx b/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx index a1e8409873a8e..1e21c3dbc9355 100644 --- a/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx +++ b/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx @@ -104,11 +104,9 @@ describe('', () => { expect(screen.queryByRole('dialog')).toBeVisible(); }); - it('should call onChange when selecting each view', function test(t = {}) { + it('should call onChange when selecting each view', function test() { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } const onChange = spy(); diff --git a/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx b/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx index 79475e6b82424..62d073d3c10ca 100644 --- a/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx +++ b/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx @@ -48,11 +48,9 @@ describe('', () => { expect(handleChange.firstCall.args[0]).toEqualDateTime(new Date(2019, 0, 1, 16, 20)); }); - it('should call onChange when selecting each view', async function test(t = {}) { + it('should call onChange when selecting each view', async function test() { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } const onChange = spy(); diff --git a/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx b/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx index e9410f0f0ef16..4041769edcd67 100644 --- a/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx +++ b/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx @@ -42,11 +42,9 @@ describe('', () => { ); } - it('should take focus when `autoFocus=true`', function test(t = {}) { + it('should take focus when `autoFocus=true`', function test() { if (isJSDOM) { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } render(); @@ -55,11 +53,9 @@ describe('', () => { expect(isInside).to.equal(true); }); - it('should not take focus when `autoFocus=false`', function test(t = {}) { + it('should not take focus when `autoFocus=false`', function test() { if (isJSDOM) { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } render(); diff --git a/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx b/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx index 39871420ac0c4..f5a04623b4af4 100644 --- a/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx +++ b/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx @@ -35,12 +35,10 @@ describe('', () => { ], })); - it('should allow view modification, but not update value when `readOnly` prop is passed', function test(t = {}) { + it('should allow view modification, but not update value when `readOnly` prop is passed', function test() { // Only run in supported browsers if (typeof Touch === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } const selectEvent = { changedTouches: [ @@ -87,12 +85,10 @@ describe('', () => { expect(disabledHours.length).to.equal(0); }); - it('should allow switching between views and display disabled options when `disabled` prop is passed', function test(t = {}) { + it('should allow switching between views and display disabled options when `disabled` prop is passed', function test() { // Only run in supported browsers if (typeof Touch === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } const selectEvent = { changedTouches: [ diff --git a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx index 11558005d7ec5..9fbf3dfcfe98d 100644 --- a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx +++ b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx @@ -180,12 +180,10 @@ describe('', () => { }); }); - it('should display options, but not update value when readOnly prop is passed', function test(t = {}) { + it('should display options, but not update value when readOnly prop is passed', function test() { // Only run in supported browsers if (typeof Touch === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } const selectEvent = { changedTouches: [ @@ -210,12 +208,10 @@ describe('', () => { expect(disabledHours.length).to.equal(0); }); - it('should display disabled options when disabled prop is passed', function test(t = {}) { + it('should display disabled options when disabled prop is passed', function test() { // Only run in supported browsers if (typeof Touch === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); + this.skip(); } const selectEvent = { changedTouches: [ @@ -241,6 +237,12 @@ describe('', () => { }); describe('Time validation on touch ', () => { + before(function beforeHook() { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + this.skip(); + } + }); + const clockTouchEvent = { '13:--': { changedTouches: [ @@ -276,13 +278,7 @@ describe('', () => { }, }; - it('should select enabled hour', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should select enabled hour', () => { const handleChange = spy(); const handleViewChange = spy(); render( @@ -305,13 +301,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled minute', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should select enabled minute', () => { const handleChange = spy(); const handleViewChange = spy(); render( @@ -335,13 +325,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should not select minute when time is disabled', () => { const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled (no current value)', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should not select minute when time is disabled (no current value)', () => { const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should not select disabled hour', () => { const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour (no current value)', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should not select disabled hour (no current value)', () => { const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should visually disable the dates not matching minutesStep', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should visually disable the dates not matching minutesStep', () => { render( ', () => { expect(screen.getByLabelText('30 minutes')).not.to.have.class('Mui-disabled'); }); - it('should select enabled second', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should select enabled second', () => { const handleChange = spy(); const handleViewChange = spy(); render( @@ -482,13 +436,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select second when time is disabled', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should not select second when time is disabled', () => { const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select second when time is disabled (no current value)', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should not select second when time is disabled (no current value)', () => { const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should select enabled hour on touch and drag', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should select enabled hour on touch and drag', () => { const handleChange = spy(); const handleViewChange = spy(); render( @@ -558,13 +494,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled hour and move to next view on touch end', (t = {}) => { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - this?.skip?.() || t?.skip(); - } - + it('should select enabled hour and move to next view on touch end', () => { const handleChange = spy(); const handleViewChange = spy(); render( From 8e375a28d88a61eb630cc8746688dfcbf1afc2c5 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 15:30:00 +0200 Subject: [PATCH 025/253] Add skip logic --- .../DateCalendar/tests/DateCalendar.test.tsx | 6 +- .../tests/editing.DateField.test.tsx | 6 +- .../DateField/tests/format.DateField.test.tsx | 6 +- .../tests/DesktopDatePicker.test.tsx | 24 ++-- .../tests/MobileDateTimePicker.test.tsx | 6 +- .../tests/MobileTimePicker.test.tsx | 6 +- .../tests/StaticDatePicker.test.tsx | 12 +- .../StaticTimePicker.test.tsx | 12 +- .../src/TimeClock/tests/TimeClock.test.tsx | 114 ++++++++++++++---- .../testCalculations.ts | 96 ++++++++++----- .../pickers/describePicker/describePicker.tsx | 54 ++++++--- .../testPickerOpenCloseLifeCycle.tsx | 12 +- 12 files changed, 249 insertions(+), 105 deletions(-) diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index 81833dfd0e525..f70a4332e5a62 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -520,9 +520,11 @@ describe('', () => { expect(screen.getByMuiTest('calendar-month-and-year-text')).to.have.text('January 2022'); }); - it('should scroll to show the selected year', function test() { + it('should scroll to show the selected year', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Editing', () => { }); }); - it('should support day with letter suffix', function test() { + it('should support day with letter suffix', function test(t = {}) { // Luxon don't have any day format with a letter suffix if (adapter.lib === 'luxon') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } testFieldChange({ diff --git a/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx b/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx index 67c0df9d5edcf..341770ff553e0 100644 --- a/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx +++ b/packages/x-date-pickers/src/DateField/tests/format.DateField.test.tsx @@ -68,12 +68,14 @@ describeAdapters(' - Format', DateField, ({ adapter, renderWithProp expectFieldValueV6(input, 'January Escaped 2019'); }); - it('should support nested escaped characters', function test() { + it('should support nested escaped characters', function test(t = {}) { const { start: startChar, end: endChar } = adapter.escapedCharacters; // If your start character and end character are equal // Then you can't have nested escaped characters if (startChar === endChar) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Test with v7 input diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx index 5d90362ce0788..570731e75b0eb 100644 --- a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx +++ b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx @@ -101,9 +101,11 @@ describe('', () => { expect(screen.getByRole('radio', { checked: true, name: 'January' })).not.to.equal(null); }); - it('should move the focus to the newly opened views', function test() { + it('should move the focus to the newly opened views', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -157,13 +159,6 @@ describe('', () => { ); }); - before(function beforeHook() { - // JSDOM has neither layout nor window.scrollTo - if (/jsdom/.test(window.navigator.userAgent)) { - this.skip(); - } - }); - let originalScrollX: number; let originalScrollY: number; @@ -173,10 +168,17 @@ describe('', () => { }); afterEach(() => { - window.scrollTo(originalScrollX, originalScrollY); + window.scrollTo?.(originalScrollX, originalScrollY); }); - it('does not scroll when opened', () => { + it('does not scroll when opened', (t = {}) => { + // JSDOM has neither layout nor window.scrollTo + if (/jsdom/.test(window.navigator.userAgent)) { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleClose = spy(); const handleOpen = spy(); function BottomAnchoredDesktopTimePicker() { diff --git a/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx b/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx index 1e21c3dbc9355..a1e8409873a8e 100644 --- a/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx +++ b/packages/x-date-pickers/src/MobileDateTimePicker/tests/MobileDateTimePicker.test.tsx @@ -104,9 +104,11 @@ describe('', () => { expect(screen.queryByRole('dialog')).toBeVisible(); }); - it('should call onChange when selecting each view', function test() { + it('should call onChange when selecting each view', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); diff --git a/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx b/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx index 62d073d3c10ca..79475e6b82424 100644 --- a/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx +++ b/packages/x-date-pickers/src/MobileTimePicker/tests/MobileTimePicker.test.tsx @@ -48,9 +48,11 @@ describe('', () => { expect(handleChange.firstCall.args[0]).toEqualDateTime(new Date(2019, 0, 1, 16, 20)); }); - it('should call onChange when selecting each view', async function test() { + it('should call onChange when selecting each view', async function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); diff --git a/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx b/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx index 4041769edcd67..e9410f0f0ef16 100644 --- a/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx +++ b/packages/x-date-pickers/src/StaticDatePicker/tests/StaticDatePicker.test.tsx @@ -42,9 +42,11 @@ describe('', () => { ); } - it('should take focus when `autoFocus=true`', function test() { + it('should take focus when `autoFocus=true`', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -53,9 +55,11 @@ describe('', () => { expect(isInside).to.equal(true); }); - it('should not take focus when `autoFocus=false`', function test() { + it('should not take focus when `autoFocus=false`', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); diff --git a/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx b/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx index f5a04623b4af4..39871420ac0c4 100644 --- a/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx +++ b/packages/x-date-pickers/src/StaticTimePicker/StaticTimePicker.test.tsx @@ -35,10 +35,12 @@ describe('', () => { ], })); - it('should allow view modification, but not update value when `readOnly` prop is passed', function test() { + it('should allow view modification, but not update value when `readOnly` prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ @@ -85,10 +87,12 @@ describe('', () => { expect(disabledHours.length).to.equal(0); }); - it('should allow switching between views and display disabled options when `disabled` prop is passed', function test() { + it('should allow switching between views and display disabled options when `disabled` prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ diff --git a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx index 9fbf3dfcfe98d..11558005d7ec5 100644 --- a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx +++ b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx @@ -180,10 +180,12 @@ describe('', () => { }); }); - it('should display options, but not update value when readOnly prop is passed', function test() { + it('should display options, but not update value when readOnly prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ @@ -208,10 +210,12 @@ describe('', () => { expect(disabledHours.length).to.equal(0); }); - it('should display disabled options when disabled prop is passed', function test() { + it('should display disabled options when disabled prop is passed', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const selectEvent = { changedTouches: [ @@ -237,12 +241,6 @@ describe('', () => { }); describe('Time validation on touch ', () => { - before(function beforeHook() { - if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { - this.skip(); - } - }); - const clockTouchEvent = { '13:--': { changedTouches: [ @@ -278,7 +276,13 @@ describe('', () => { }, }; - it('should select enabled hour', () => { + it('should select enabled hour', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -301,7 +305,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled minute', () => { + it('should select enabled minute', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -325,7 +335,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled', () => { + it('should not select minute when time is disabled', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled (no current value)', () => { + it('should not select minute when time is disabled (no current value)', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour', () => { + it('should not select disabled hour', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour (no current value)', () => { + it('should not select disabled hour (no current value)', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should visually disable the dates not matching minutesStep', () => { + it('should visually disable the dates not matching minutesStep', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + render( ', () => { expect(screen.getByLabelText('30 minutes')).not.to.have.class('Mui-disabled'); }); - it('should select enabled second', () => { + it('should select enabled second', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -436,7 +482,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select second when time is disabled', () => { + it('should not select second when time is disabled', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select second when time is disabled (no current value)', () => { + it('should not select second when time is disabled (no current value)', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); render( ', () => { expect(handleChange.callCount).to.equal(0); }); - it('should select enabled hour on touch and drag', () => { + it('should select enabled hour on touch and drag', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( @@ -494,7 +558,13 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled hour and move to next view on touch end', () => { + it('should select enabled hour and move to next view on touch end', (t = {}) => { + if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const handleChange = spy(); const handleViewChange = spy(); render( diff --git a/test/utils/pickers/describeGregorianAdapter/testCalculations.ts b/test/utils/pickers/describeGregorianAdapter/testCalculations.ts index 10ef8845ec083..d479c2c27f933 100644 --- a/test/utils/pickers/describeGregorianAdapter/testCalculations.ts +++ b/test/utils/pickers/describeGregorianAdapter/testCalculations.ts @@ -222,9 +222,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.isEqual(null, testDateLocale)).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const dateInLondonTZ = adapterTZ.setTimezone(testDateIso, 'Europe/London'); @@ -250,9 +252,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ ).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone. @@ -283,9 +287,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ ).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same month when represented in their respective timezone. @@ -316,9 +322,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ ); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone. @@ -343,9 +351,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ ); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone. @@ -367,9 +377,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.isAfter(testDateLocale, adapter.date()!)).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const dateInLondonTZ = adapterTZ.endOfDay( @@ -396,9 +408,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.isAfterYear(testDateLocale, nextYearLocale)).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone. @@ -424,9 +438,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.isAfterDay(testDateLocale, nextDayLocale)).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone. @@ -464,9 +480,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.isBefore(adapter.date()!, testDateLocale)).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const dateInLondonTZ = adapterTZ.endOfDay( @@ -493,9 +511,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.isBeforeYear(testDateLocale, nextYearLocale)).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same year when represented in their respective timezone. @@ -521,9 +541,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.isBeforeDay(testDateLocale, previousDayLocale)).to.equal(false); }); - it('should work with different timezones', function test() { + it('should work with different timezones', function test(t = {}) { if (!adapter.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Both dates below have the same timestamp, but they are not in the same day when represented in their respective timezone. @@ -659,9 +681,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.endOfMonth(testDateLocale)).toEqualDateTime(expected); }); - it('should update the offset when entering DST', function test() { + it('should update the offset when entering DST', function test(t = {}) { if (!adapterTZ.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay); @@ -692,9 +716,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.addMonths(testDateIso, 3)).toEqualDateTime('2019-01-30T11:44:00.000Z'); }); - it('should update the offset when entering DST', function test() { + it('should update the offset when entering DST', function test(t = {}) { if (!adapterTZ.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay); @@ -708,9 +734,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.addWeeks(testDateIso, -2)).toEqualDateTime('2018-10-16T11:44:00.000Z'); }); - it('should update the offset when entering DST', function test() { + it('should update the offset when entering DST', function test(t = {}) { if (!adapterTZ.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay); @@ -724,9 +752,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ expect(adapter.addDays(testDateIso, -2)).toEqualDateTime('2018-10-28T11:44:00.000Z'); }); - it('should update the offset when entering DST', function test() { + it('should update the offset when entering DST', function test(t = {}) { if (!adapterTZ.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expectSameTimeInMonacoTZ(adapterTZ, testDateLastNonDSTDay); @@ -833,9 +863,11 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ }); }); - it('should respect the DST', function test() { + it('should respect the DST', function test(t = {}) { if (!adapterTZ.isTimezoneCompatible) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const referenceDate = adapterTZ.date('2022-03-17', 'Europe/Paris'); diff --git a/test/utils/pickers/describePicker/describePicker.tsx b/test/utils/pickers/describePicker/describePicker.tsx index 4332a4c15710e..3c5e39dc0351b 100644 --- a/test/utils/pickers/describePicker/describePicker.tsx +++ b/test/utils/pickers/describePicker/describePicker.tsx @@ -11,9 +11,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe const propsToOpen = variant === 'static' ? {} : { open: true }; - it('should forward the `inputRef` prop to the text field ( textfield DOM structure only)', function test() { + it('should forward the `inputRef` prop to the text field ( textfield DOM structure only)', function test(t = {}) { if (fieldType === 'multi-input' || variant === 'static') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const inputRef = React.createRef(); @@ -23,9 +25,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe }); describe('Localization', () => { - it('should respect the `localeText` prop', function test() { + it('should respect the `localeText` prop', function test(t = {}) { if (hasNoView) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -41,9 +45,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe }); describe('Component slot: OpenPickerIcon', () => { - it('should render custom component', function test() { + it('should render custom component', function test(t = {}) { if (variant === 'static' || fieldType === 'multi-input') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } function HomeIcon(props: SvgIconProps) { @@ -69,9 +75,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe }); describe('Component slot: DesktopPaper', () => { - it('should forward onClick and onTouchStart', function test() { + it('should forward onClick and onTouchStart', function test(t = {}) { if (hasNoView || variant !== 'desktop') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const handleClick = spy(); @@ -99,9 +107,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe }); describe('Component slot: Popper', () => { - it('should forward onClick and onTouchStart', function test() { + it('should forward onClick and onTouchStart', function test(t = {}) { if (hasNoView || variant !== 'desktop') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const handleClick = spy(); @@ -129,9 +139,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe }); describe('Component slot: Toolbar', () => { - it('should render toolbar on mobile but not on desktop when `hidden` is not defined', function test() { + it('should render toolbar on mobile but not on desktop when `hidden` is not defined', function test(t = {}) { if (hasNoView) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -148,9 +160,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe } }); - it('should render toolbar when `hidden` is `false`', function test() { + it('should render toolbar when `hidden` is `false`', function test(t = {}) { if (hasNoView) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -163,9 +177,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe expect(screen.getByTestId('pickers-toolbar')).toBeVisible(); }); - it('should not render toolbar when `hidden` is `true`', function test() { + it('should not render toolbar when `hidden` is `true`', function test(t = {}) { if (hasNoView) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -180,9 +196,11 @@ function innerDescribePicker(ElementToTest: React.ElementType, options: Describe }); describe('prop: disableOpenPicker', () => { - it('should not render the open picker button, but still render the picker if its open', function test() { + it('should not render the open picker button, but still render the picker if its open', function test(t = {}) { if (variant === 'static') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( diff --git a/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx b/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx index 57aa07b9e9c6f..26ab3a2056bcd 100644 --- a/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx +++ b/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx @@ -286,10 +286,12 @@ export const testPickerOpenCloseLifeCycle: DescribeValueTestSuite expect(onClose.callCount).to.equal(1); }); - it('should call onClose when clicking outside of the picker without prior change', function test() { + it('should call onClose when clicking outside of the picker without prior change', function test(t = {}) { // TODO: Fix this test and enable it on mobile and date-range if (pickerParams.variant === 'mobile' || isRangeType) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); @@ -315,10 +317,12 @@ export const testPickerOpenCloseLifeCycle: DescribeValueTestSuite expect(onClose.callCount).to.equal(1); }); - it('should call onClose and onAccept with the live value when clicking outside of the picker', function test() { + it('should call onClose and onAccept with the live value when clicking outside of the picker', function test(t = {}) { // TODO: Fix this test and enable it on mobile and date-range if (pickerParams.variant === 'mobile' || isRangeType) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); From 3eced208a07db8a4559708128ca3229d4feac9a7 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 16:02:16 +0200 Subject: [PATCH 026/253] Fix low hanging fruits --- .../src/TimeClock/tests/timezone.TimeClock.test.tsx | 10 +++++++++- test/setup.ts | 7 +------ test/utils/pickers/createPickerRenderer.tsx | 3 ++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx b/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx index c3886da5774c8..31117cf8d7d38 100644 --- a/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx +++ b/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx @@ -12,6 +12,12 @@ import { const TIMEZONE_TO_TEST = ['UTC', 'system', 'America/New_York']; +const isVitest = + // VITEST is present on the environment when not in browser mode. + process.env.VITEST === 'true' || + // VITEST_BROWSER_DEBUG is present on vitest in browser mode. + typeof process.env.VITEST_BROWSER_DEBUG !== 'undefined'; + describe(' - Timezone', () => { describeAdapters('Timezone prop', TimeClock, ({ adapter, render }) => { if (!adapter.isTimezoneCompatible) { @@ -33,7 +39,9 @@ describe(' - Timezone', () => { // On dayjs, we are not able to know if a date is UTC because it's the system timezone or because it was created as UTC. // In a real world scenario, this should probably never occur. - expect(adapter.getTimezone(actualDate)).to.equal(adapter.lib === 'dayjs' ? 'UTC' : 'system'); + expect(adapter.getTimezone(actualDate)).to.equal( + adapter.lib === 'dayjs' && !isVitest ? 'UTC' : 'system', + ); expect(actualDate).toEqualDateTime(expectedDate); }); diff --git a/test/setup.ts b/test/setup.ts index f5b177be6d65d..8e34fcebb9318 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,10 +1,5 @@ import { beforeAll, afterAll } from 'vitest'; -import chai from 'chai'; -import chaiDom from 'chai-dom'; -import chaiPlugin from '@mui/internal-test-utils/chaiPlugin'; - -chai.use(chaiDom); -chai.use(chaiPlugin); +import 'test/utils/addChaiAssertions'; // @ts-ignore globalThis.before = beforeAll; diff --git a/test/utils/pickers/createPickerRenderer.tsx b/test/utils/pickers/createPickerRenderer.tsx index 25da543cf517d..5dfc92bd05368 100644 --- a/test/utils/pickers/createPickerRenderer.tsx +++ b/test/utils/pickers/createPickerRenderer.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { createRenderer, CreateRendererOptions, RenderOptions } from '@mui/internal-test-utils'; import { AdapterClassToUse, AdapterName, adapterToUse, availableAdapters } from './adapters'; +import { vi } from 'vitest'; interface CreatePickerRendererOptions extends CreateRendererOptions { // Set-up locale with date-fns object. Other are deduced from `locale.code` @@ -16,7 +17,7 @@ export function createPickerRenderer({ instance, ...createRendererOptions }: CreatePickerRendererOptions = {}) { - const { clock, render: clientRender } = createRenderer(createRendererOptions); + const { clock, render: clientRender } = createRenderer({ ...createRendererOptions, vi }); let adapterLocale = [ 'date-fns', From 2893eef406f4a4b2f233a19aafbf6659a66f7511 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 16:20:56 +0200 Subject: [PATCH 027/253] Add touch, remove timeout --- test/setup.ts | 27 +++++++++++++++++++ .../testPickerOpenCloseLifeCycle.tsx | 2 -- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/test/setup.ts b/test/setup.ts index 8e34fcebb9318..3758e3d50babd 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -5,3 +5,30 @@ import 'test/utils/addChaiAssertions'; globalThis.before = beforeAll; // @ts-ignore globalThis.after = afterAll; + +class Touch { + constructor(instance) { + this.instance = instance; + } + + get identifier() { + return this.instance.identifier; + } + + get pageX() { + return this.instance.pageX; + } + + get pageY() { + return this.instance.pageY; + } + + get clientX() { + return this.instance.clientX; + } + + get clientY() { + return this.instance.clientY; + } +} +globalThis.window.Touch = Touch; diff --git a/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx b/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx index 26ab3a2056bcd..91f60aea3d085 100644 --- a/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx +++ b/test/utils/pickers/describeValue/testPickerOpenCloseLifeCycle.tsx @@ -182,8 +182,6 @@ export const testPickerOpenCloseLifeCycle: DescribeValueTestSuite }); it('should not call onClose or onAccept when selecting a date and `props.closeOnSelect` is false', function test() { - // increase the timeout of this test as it tends to sometimes fail on CI with `DesktopDateTimeRangePicker` or `MobileDateTimeRangePicker` - this.timeout(10000); const onChange = spy(); const onAccept = spy(); const onClose = spy(); From 4645e727e4c31a21129eac4c05d6f320b2247518 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 16:21:20 +0200 Subject: [PATCH 028/253] Run test in utc --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b4966dfef440d..68fc06f2f916e 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "release:tag": "node scripts/releaseTag.mjs", "validate": "concurrently \"pnpm prettier && pnpm eslint\" \"pnpm proptypes\" \"pnpm docs:typescript:formatted\" \"pnpm docs:api\"", "clean:node_modules": "rimraf --glob \"**/node_modules\"", - "vitest": "vitest" + "vitest": "cross-env TZ=UTC vitest" }, "devDependencies": { "@actions/core": "^1.10.1", From a8464a9c161a2e5c2da034c9ebff6cda1a9dd691 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 16:44:54 +0200 Subject: [PATCH 029/253] update config --- vitest.config.mts | 2 ++ vitest.workspace.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/vitest.config.mts b/vitest.config.mts index 76ea28f0daa49..c50dc5adf5857 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -24,5 +24,7 @@ export default defineConfig({ test: { globals: true, setupFiles: ['test/setup.ts'], + // Required for some datepickers tests that contain early returns. + passWithNoTests: true, }, }); diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 723b73675d06a..69bd98b1f3f40 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,7 +1,7 @@ import { defineWorkspace } from 'vitest/config'; import react from '@vitejs/plugin-react'; -const packages = ['charts']; +const packages = ['charts', 'date-pickers']; export default defineWorkspace( packages.flatMap((name) => [ From 8f540d7789790575c1d5f62f60e914c9cc1df70b Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 16:51:22 +0200 Subject: [PATCH 030/253] global override pnpm --- package.json | 5 +- packages/x-charts/package.json | 2 +- pnpm-lock.yaml | 90 ++++++++++------------------------ 3 files changed, 30 insertions(+), 67 deletions(-) diff --git a/package.json b/package.json index 68fc06f2f916e..d9cacc2913d85 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@mui/icons-material": "^5.16.7", "@mui/internal-babel-plugin-resolve-imports": "1.0.17", "@mui/internal-markdown": "^1.0.12", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils", + "@mui/internal-test-utils": "^1.0.12", "@mui/material": "^5.16.7", "@mui/monorepo": "github:mui/material-ui#64aaf564c82cd8bd709116ad38123dbcab8d3bfb", "@mui/utils": "^5.16.6", @@ -205,7 +205,8 @@ "react-is": "^18.3.1", "@types/node": "^20.16.5", "@playwright/test": "1.44.1", - "playwright": "1.44.1" + "playwright": "1.44.1", + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils" }, "packageManager": "pnpm@9.10.0", "engines": { diff --git a/packages/x-charts/package.json b/packages/x-charts/package.json index 7966165f2806b..ebd5bd8c47d77 100644 --- a/packages/x-charts/package.json +++ b/packages/x-charts/package.json @@ -65,7 +65,7 @@ } }, "devDependencies": { - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils", + "@mui/internal-test-utils": "^1.0.12", "@mui/material": "^5.16.7", "@mui/system": "^5.16.7", "@react-spring/core": "^9.7.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4f2599fedac00..309f41715402b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,7 @@ overrides: '@types/node': ^20.16.5 '@playwright/test': 1.44.1 playwright: 1.44.1 + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -95,8 +96,8 @@ importers: specifier: ^1.0.12 version: 1.0.12 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -766,8 +767,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1010,8 +1011,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1122,8 +1123,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1184,8 +1185,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1237,8 +1238,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1332,8 +1333,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1379,8 +1380,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -1399,8 +1400,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -1443,8 +1444,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1502,8 +1503,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: ^1.0.12 - version: 1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3161,14 +3162,8 @@ packages: '@mui/internal-scripts@1.0.19': resolution: {integrity: sha512-NFyNxOIfrUtn3744rqk4UmkgGfbG7rntHxSFEXGAEy4yQRoEIIbOfHQURKJSupDKyCc48vSFMk+eGbiMBEYpKg==} - '@mui/internal-test-utils@1.0.12': - resolution: {integrity: sha512-D6qc9h2sK2owOMQ68j9yaChr0iNW5mqSrfVGbRJ7NHMeyovkqIMQLHCwvs05d+5cccAeqalvKVsNvK3BkMilEw==} - peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 - - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils} + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils} version: 1.0.12 peerDependencies: react: ^18.2.0 @@ -12113,40 +12108,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@1.0.12(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/register': 7.24.6(@babel/core@7.25.2) - '@babel/runtime': 7.25.6 - '@emotion/cache': 11.13.1 - '@emotion/react': 11.13.3(@types/react@18.3.4)(react@18.3.1) - '@testing-library/dom': 10.4.0 - '@testing-library/react': 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - chai: 4.5.0 - chai-dom: 1.12.0(chai@4.5.0) - dom-accessibility-api: 0.7.0 - format-util: 1.0.5 - fs-extra: 11.2.0 - jsdom: 24.1.3 - lodash: 4.17.21 - mocha: 10.7.3 - playwright: 1.44.1 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - sinon: 18.0.0 - transitivePeerDependencies: - - '@babel/core' - - '@types/react' - - '@types/react-dom' - - bufferutil - - canvas - - supports-color - - utf-8-validate - - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/5fd08300/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) From 4507e81e2ecf8f137049d91357e03d20febff396 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 17:08:34 +0200 Subject: [PATCH 031/253] Refactor Touch class to support non-browser mode --- test/setup.ts | 47 ++++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/test/setup.ts b/test/setup.ts index 3758e3d50babd..4a73419fa3179 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -6,29 +6,38 @@ globalThis.before = beforeAll; // @ts-ignore globalThis.after = afterAll; -class Touch { - constructor(instance) { - this.instance = instance; - } +const isVitest = + // VITEST is present on the environment when not in browser mode. + process.env.VITEST === 'true'; - get identifier() { - return this.instance.identifier; - } +// Only necessary when not in browser mode. +if (isVitest) { + class Touch { + instance: any; + constructor(instance: any) { + this.instance = instance; + } - get pageX() { - return this.instance.pageX; - } + get identifier() { + return this.instance.identifier; + } - get pageY() { - return this.instance.pageY; - } + get pageX() { + return this.instance.pageX; + } - get clientX() { - return this.instance.clientX; - } + get pageY() { + return this.instance.pageY; + } + + get clientX() { + return this.instance.clientX; + } - get clientY() { - return this.instance.clientY; + get clientY() { + return this.instance.clientY; + } } + // @ts-expect-error + globalThis.window.Touch = Touch; } -globalThis.window.Touch = Touch; From 90754d6fa01f206cb36109ae459e73c282cea1a2 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 11 Sep 2024 17:29:23 +0200 Subject: [PATCH 032/253] divide jsdom/browser tests --- .github/workflows/vitest.yml | 24 ++++++++++++++++--- .../tests/editing.DateField.test.tsx | 6 ++--- vitest.workspace.ts | 4 ++-- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml index 8343e89d261a0..72fb915a9c177 100644 --- a/.github/workflows/vitest.yml +++ b/.github/workflows/vitest.yml @@ -13,8 +13,8 @@ on: permissions: {} jobs: - benchmarks: - name: Vitest Tests + vitest-jsdom: + name: Vitest Tests (jsdom) runs-on: ubuntu-latest steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 @@ -30,4 +30,22 @@ jobs: - name: Install Playwright Browsers run: pnpm playwright install --with-deps - name: Run Tests - run: pnpm vitest + run: pnpm vitest --project "jsdom/*" + vitest-browser: + name: Vitest Tests (browser) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 + with: + run_install: false + - name: Use Node.js 20.x + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + with: + node-version: 20 + cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies + - run: pnpm install --frozen-lockfile + - name: Install Playwright Browsers + run: pnpm playwright install --with-deps + - name: Run Tests + run: pnpm vitest --project "browser/*" diff --git a/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx b/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx index 9ac3fdec4b35c..94dd08bb70540 100644 --- a/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx +++ b/packages/x-date-pickers/src/DateField/tests/editing.DateField.test.tsx @@ -2086,8 +2086,8 @@ describe(' - Editing', () => { let originalUserAgent: string = ''; beforeEach(() => { - originalUserAgent = global.navigator.userAgent; - Object.defineProperty(global.navigator, 'userAgent', { + originalUserAgent = globalThis.navigator.userAgent; + Object.defineProperty(globalThis.navigator, 'userAgent', { configurable: true, writable: true, value: @@ -2096,7 +2096,7 @@ describe(' - Editing', () => { }); afterEach(() => { - Object.defineProperty(global.navigator, 'userAgent', { + Object.defineProperty(globalThis.navigator, 'userAgent', { configurable: true, value: originalUserAgent, }); diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 69bd98b1f3f40..211d5ac9b55d2 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -10,7 +10,7 @@ export default defineWorkspace( plugins: [react()], test: { include: [`packages/x-${name}/**/*.test.tsx`], - name: `${name}/browser`, + name: `browser/${name}`, browser: { enabled: true, name: 'chromium', @@ -27,7 +27,7 @@ export default defineWorkspace( plugins: [react()], test: { include: [`packages/x-${name}/**/*.test.tsx`], - name: `${name}/jsdom`, + name: `jsdom/${name}`, environment: 'jsdom', }, }, From 8218f0ecc4873c5da31c103ec98d4c1adc65ab9d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 12 Sep 2024 11:14:02 +0200 Subject: [PATCH 033/253] fix pickers setup --- test/setup.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/test/setup.ts b/test/setup.ts index 4a73419fa3179..3f9568978bdf7 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,5 +1,6 @@ import { beforeAll, afterAll } from 'vitest'; import 'test/utils/addChaiAssertions'; +import 'test/utils/setupPickers'; // @ts-ignore globalThis.before = beforeAll; From a9af3e46ef570f21eb55b65ec1d280a5efe32698 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 12 Sep 2024 11:55:22 +0200 Subject: [PATCH 034/253] Fix date-fns-v3 imports --- vitest.config.mts | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/vitest.config.mts b/vitest.config.mts index c50dc5adf5857..638d606896911 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -19,6 +19,23 @@ export default defineConfig({ find: '@mui/x-internals', replacement: new URL('./packages/x-internals/src', import.meta.url).pathname, }, + // Use built in replacements for date-fns and date-fns-jalali + { + find: 'date-fns', + replacement: 'date-fns-v3', + customResolver(source, importer) { + if (importer?.includes('src/AdapterDateFnsV3')) return source; + return null; + }, + }, + { + find: 'date-fns-jalali', + replacement: 'date-fns-jalali-v3', + customResolver(source, importer) { + if (importer?.includes('src/AdapterDateFnsJalaliV3')) return source; + return null; + }, + }, ], }, test: { @@ -28,3 +45,24 @@ export default defineConfig({ passWithNoTests: true, }, }); + +// plugins.push([ +// 'babel-plugin-replace-imports', +// { +// test: /date-fns/i, +// replacer: 'date-fns-v3', +// // This option is provided by the `patches/babel-plugin-replace-imports@1.0.2.patch` patch +// filenameIncludes: 'src/AdapterDateFnsV3/', +// }, +// ]); +// plugins.push([ +// 'babel-plugin-replace-imports', +// { +// test: /date-fns-jalali/i, +// replacer: 'date-fns-jalali-v3', +// // This option is provided by the `patches/babel-plugin-replace-imports@1.0.2.patch` patch +// filenameIncludes: 'src/AdapterDateFnsJalaliV3/', +// }, +// 'replace-date-fns-jalali-imports', +// ]); +// } From 6fffa88a930a9ecd26d08975325c5a27dbae1d37 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 12 Sep 2024 17:19:33 +0200 Subject: [PATCH 035/253] Ignore datefnsv3 in browser --- vitest.config.mts | 8 +++++-- vitest.workspace.ts | 53 ++++++++++++++++++++++++--------------------- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/vitest.config.mts b/vitest.config.mts index 638d606896911..77d9b7f87f2bd 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -24,7 +24,9 @@ export default defineConfig({ find: 'date-fns', replacement: 'date-fns-v3', customResolver(source, importer) { - if (importer?.includes('src/AdapterDateFnsV3')) return source; + if (importer?.includes('src/AdapterDateFnsV3')) { + return source; + } return null; }, }, @@ -32,7 +34,9 @@ export default defineConfig({ find: 'date-fns-jalali', replacement: 'date-fns-jalali-v3', customResolver(source, importer) { - if (importer?.includes('src/AdapterDateFnsJalaliV3')) return source; + if (importer?.includes('src/AdapterDateFnsJalaliV3')) { + return source; + } return null; }, }, diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 211d5ac9b55d2..4a0ca0ca6c3f4 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -4,32 +4,35 @@ import react from '@vitejs/plugin-react'; const packages = ['charts', 'date-pickers']; export default defineWorkspace( - packages.flatMap((name) => [ - { - extends: './vitest.config.mts', - plugins: [react()], - test: { - include: [`packages/x-${name}/**/*.test.tsx`], - name: `browser/${name}`, - browser: { - enabled: true, - name: 'chromium', - provider: 'playwright', - headless: true, - // https://playwright.dev - providerOptions: {}, - screenshotFailures: false, + packages.flatMap( + (name): ReturnType => [ + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: [`packages/x-${name}/**/*.test.tsx`], + exclude: [`packages/x-${name}/**/*V3.test.tsx`], + name: `browser/${name}`, + browser: { + enabled: true, + name: 'chromium', + provider: 'playwright', + headless: true, + // https://playwright.dev + providerOptions: {}, + screenshotFailures: false, + }, }, }, - }, - { - extends: './vitest.config.mts', - plugins: [react()], - test: { - include: [`packages/x-${name}/**/*.test.tsx`], - name: `jsdom/${name}`, - environment: 'jsdom', + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: [`packages/x-${name}/**/*.test.tsx`], + name: `jsdom/${name}`, + environment: 'jsdom', + }, }, - }, - ]), + ], + ), ); From 2b0754e0e5484241d01ed4b17163ed4a7e640196 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 12 Sep 2024 17:38:13 +0200 Subject: [PATCH 036/253] Revert unnecessary check --- .../src/TimeClock/tests/timezone.TimeClock.test.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx b/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx index 31117cf8d7d38..c3886da5774c8 100644 --- a/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx +++ b/packages/x-date-pickers/src/TimeClock/tests/timezone.TimeClock.test.tsx @@ -12,12 +12,6 @@ import { const TIMEZONE_TO_TEST = ['UTC', 'system', 'America/New_York']; -const isVitest = - // VITEST is present on the environment when not in browser mode. - process.env.VITEST === 'true' || - // VITEST_BROWSER_DEBUG is present on vitest in browser mode. - typeof process.env.VITEST_BROWSER_DEBUG !== 'undefined'; - describe(' - Timezone', () => { describeAdapters('Timezone prop', TimeClock, ({ adapter, render }) => { if (!adapter.isTimezoneCompatible) { @@ -39,9 +33,7 @@ describe(' - Timezone', () => { // On dayjs, we are not able to know if a date is UTC because it's the system timezone or because it was created as UTC. // In a real world scenario, this should probably never occur. - expect(adapter.getTimezone(actualDate)).to.equal( - adapter.lib === 'dayjs' && !isVitest ? 'UTC' : 'system', - ); + expect(adapter.getTimezone(actualDate)).to.equal(adapter.lib === 'dayjs' ? 'UTC' : 'system'); expect(actualDate).toEqualDateTime(expectedDate); }); From 23925ac65442c4ba6860fe78ca15527c32941c45 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 12 Sep 2024 22:07:09 +0200 Subject: [PATCH 037/253] jsdom working for charts and datepickers --- .../src/AdapterMoment/AdapterMoment.test.tsx | 4 ++++ .../tests/localization.DateCalendar.test.tsx | 23 +++++++++++------- .../tests/DesktopDatePicker.test.tsx | 2 +- .../src/internals/utils/date-utils.test.ts | 4 ++-- test/setup.ts | 2 ++ test/utils/pickers/createPickerRenderer.tsx | 2 +- .../testCalculations.ts | 5 ++++ .../testLocalization.ts | 5 ++++ vitest.config.mts | 24 +++---------------- vitest.workspace.ts | 13 +++++++--- 10 files changed, 48 insertions(+), 36 deletions(-) diff --git a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx index fa684d96e8608..e29237af2fbff 100644 --- a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx +++ b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx @@ -25,8 +25,12 @@ describe('', () => { frenchLocale: 'fr', }; + moment.locale('en'); + describeGregorianAdapter(AdapterMoment, commonParams); + moment.locale('en'); + // Makes sure that all the tests that do not use timezones works fine when dayjs do not support UTC / timezone. describeGregorianAdapter(AdapterMoment, { ...commonParams, diff --git a/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx index 1efabf3533184..a5d5d66d4f503 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx @@ -9,27 +9,34 @@ import 'dayjs/locale/he'; import 'dayjs/locale/fr'; import 'moment/locale/he'; import 'moment/locale/fr'; +import moment from 'moment'; const ADAPTERS_TO_USE: AdapterName[] = ['date-fns', 'dayjs', 'luxon', 'moment']; describe(' - localization', () => { ADAPTERS_TO_USE.forEach((adapterName) => { describe(`with '${adapterName}'`, () => { - const { render } = createPickerRenderer({ - locale: adapterName === 'date-fns' ? he : { code: 'he' }, - adapterName, - }); + describe('with wrapper', () => { + const { render } = createPickerRenderer({ + locale: adapterName === 'date-fns' ? he : { code: 'he' }, + adapterName, + }); - it('should display correct week day labels in Hebrew locale ', () => { - render(); + it('should display correct week day labels in Hebrew locale ', () => { + render(); - expect(screen.getByText('א')).toBeVisible(); + expect(screen.getByText('א')).toBeVisible(); + }); }); describe('without wrapper', () => { const { render: renderWithoutWrapper } = createRenderer(); - it('should correctly switch between locale with week starting in Monday and week starting in Sunday', () => { + it('should correctly switch between locale with week starting in Monday and week starting in Sunday', async () => { + if (adapterName === 'moment') { + moment.locale('en'); + } + const { setProps } = renderWithoutWrapper( diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx index 570731e75b0eb..d985d81e2d80c 100644 --- a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx +++ b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx @@ -173,7 +173,7 @@ describe('', () => { it('does not scroll when opened', (t = {}) => { // JSDOM has neither layout nor window.scrollTo - if (/jsdom/.test(window.navigator.userAgent)) { + if (/jsdom/.test(window.navigator.userAgent) || process.env.MUI_BROWSER === 'true') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions this?.skip?.() || t?.skip(); diff --git a/packages/x-date-pickers/src/internals/utils/date-utils.test.ts b/packages/x-date-pickers/src/internals/utils/date-utils.test.ts index a9d642959c4e4..bb13bf147ef8c 100644 --- a/packages/x-date-pickers/src/internals/utils/date-utils.test.ts +++ b/packages/x-date-pickers/src/internals/utils/date-utils.test.ts @@ -116,7 +116,7 @@ describe('findClosestEnabledDate', () => { }); expect(result).toEqualDateTime(adapterToUse.addDays(tryDate, 1)); - clock.reset(); + clock.restore(); }); it('should return `null` when disablePast+disableFuture and now is invalid', () => { @@ -180,7 +180,7 @@ describe('findClosestEnabledDate', () => { }); expect(result).toEqualDateTime(adapterToUse.date('2000-01-02T11:12:13.550Z')); - clock.reset(); + clock.restore(); }); it('should return maxDate if it is before the date and valid', () => { diff --git a/test/setup.ts b/test/setup.ts index 3f9568978bdf7..4f3411a86468d 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,6 +1,7 @@ import { beforeAll, afterAll } from 'vitest'; import 'test/utils/addChaiAssertions'; import 'test/utils/setupPickers'; +import 'test/utils/licenseRelease'; // @ts-ignore globalThis.before = beforeAll; @@ -15,6 +16,7 @@ const isVitest = if (isVitest) { class Touch { instance: any; + constructor(instance: any) { this.instance = instance; } diff --git a/test/utils/pickers/createPickerRenderer.tsx b/test/utils/pickers/createPickerRenderer.tsx index 5dfc92bd05368..5323eeccee4c9 100644 --- a/test/utils/pickers/createPickerRenderer.tsx +++ b/test/utils/pickers/createPickerRenderer.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { createRenderer, CreateRendererOptions, RenderOptions } from '@mui/internal-test-utils'; -import { AdapterClassToUse, AdapterName, adapterToUse, availableAdapters } from './adapters'; import { vi } from 'vitest'; +import { AdapterClassToUse, AdapterName, adapterToUse, availableAdapters } from './adapters'; interface CreatePickerRendererOptions extends CreateRendererOptions { // Set-up locale with date-fns object. Other are deduced from `locale.code` diff --git a/test/utils/pickers/describeGregorianAdapter/testCalculations.ts b/test/utils/pickers/describeGregorianAdapter/testCalculations.ts index d479c2c27f933..62d86974c3dad 100644 --- a/test/utils/pickers/describeGregorianAdapter/testCalculations.ts +++ b/test/utils/pickers/describeGregorianAdapter/testCalculations.ts @@ -1,6 +1,7 @@ import { expect } from 'chai'; import { MuiPickersAdapter, PickersTimezone, PickerValidDate } from '@mui/x-date-pickers/models'; import { getDateOffset } from 'test/utils/pickers'; +import moment from 'moment'; import { DescribeGregorianAdapterTestSuite } from './describeGregorianAdapter.types'; import { TEST_DATE_ISO_STRING, TEST_DATE_LOCALE_STRING } from './describeGregorianAdapter.utils'; @@ -889,6 +890,10 @@ export const testCalculations: DescribeGregorianAdapterTestSuite = ({ }); it('should respect the locale of the adapter, not the locale of the date', function test() { + if (adapter.lib === 'moment') { + moment.locale('en'); + } + const dateFr = adapterFr.date('2022-03-17', 'default'); const weekArray = adapter.getWeekArray(dateFr); diff --git a/test/utils/pickers/describeGregorianAdapter/testLocalization.ts b/test/utils/pickers/describeGregorianAdapter/testLocalization.ts index a63d1e0cf851d..2064d9672ad3e 100644 --- a/test/utils/pickers/describeGregorianAdapter/testLocalization.ts +++ b/test/utils/pickers/describeGregorianAdapter/testLocalization.ts @@ -1,6 +1,7 @@ import { expect } from 'chai'; import { AdapterFormats } from '@mui/x-date-pickers/models'; import { cleanText } from 'test/utils/pickers'; +import moment from 'moment'; import { DescribeGregorianAdapterTestSuite } from './describeGregorianAdapter.types'; import { TEST_DATE_ISO_STRING } from './describeGregorianAdapter.utils'; @@ -42,6 +43,10 @@ export const testLocalization: DescribeGregorianAdapterTestSuite = ({ adapter }) }); it('Method: getCurrentLocaleCode', () => { + if (adapter.lib === 'moment') { + moment.locale('en'); + } + // Returns the default locale expect(adapter.getCurrentLocaleCode()).to.match(/en/); }); diff --git a/vitest.config.mts b/vitest.config.mts index 77d9b7f87f2bd..7d6eecb8bf01b 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -47,26 +47,8 @@ export default defineConfig({ setupFiles: ['test/setup.ts'], // Required for some datepickers tests that contain early returns. passWithNoTests: true, + env: { + MUI_VITEST: 'true', + }, }, }); - -// plugins.push([ -// 'babel-plugin-replace-imports', -// { -// test: /date-fns/i, -// replacer: 'date-fns-v3', -// // This option is provided by the `patches/babel-plugin-replace-imports@1.0.2.patch` patch -// filenameIncludes: 'src/AdapterDateFnsV3/', -// }, -// ]); -// plugins.push([ -// 'babel-plugin-replace-imports', -// { -// test: /date-fns-jalali/i, -// replacer: 'date-fns-jalali-v3', -// // This option is provided by the `patches/babel-plugin-replace-imports@1.0.2.patch` patch -// filenameIncludes: 'src/AdapterDateFnsJalaliV3/', -// }, -// 'replace-date-fns-jalali-imports', -// ]); -// } diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 4a0ca0ca6c3f4..8ca730a0c6d96 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -10,9 +10,12 @@ export default defineWorkspace( extends: './vitest.config.mts', plugins: [react()], test: { - include: [`packages/x-${name}/**/*.test.tsx`], - exclude: [`packages/x-${name}/**/*V3.test.tsx`], + include: [`packages/x-${name}/src/**/*.test.{ts,tsx,js,jsx}`], + exclude: [`packages/x-${name}/src/**/*V3.test.{ts,tsx,js,jsx}`], name: `browser/${name}`, + env: { + MUI_BROWSER: 'true', + }, browser: { enabled: true, name: 'chromium', @@ -28,9 +31,13 @@ export default defineWorkspace( extends: './vitest.config.mts', plugins: [react()], test: { - include: [`packages/x-${name}/**/*.test.tsx`], + include: [`packages/x-${name}/src/**/*.test.{ts,tsx,js,jsx}`], + exclude: [`packages/x-${name}/src/**/*.browser.test.{ts,tsx,js,jsx}`], name: `jsdom/${name}`, environment: 'jsdom', + env: { + MUI_JSDOM: 'true', + }, }, }, ], From 5c85b9faf2bfba49d308638c77dc1aed88f914af Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 13 Sep 2024 13:56:21 +0200 Subject: [PATCH 038/253] add small config changes --- test/setup.ts | 6 ++---- vitest.workspace.ts | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/test/setup.ts b/test/setup.ts index 4f3411a86468d..9b1a10c68a9db 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -8,12 +8,10 @@ globalThis.before = beforeAll; // @ts-ignore globalThis.after = afterAll; -const isVitest = - // VITEST is present on the environment when not in browser mode. - process.env.VITEST === 'true'; +const isVitestJsdom = process.env.MUI_JSDOM === 'true'; // Only necessary when not in browser mode. -if (isVitest) { +if (isVitestJsdom) { class Touch { instance: any; diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 8ca730a0c6d96..7cd40a27b2790 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -3,6 +3,10 @@ import react from '@vitejs/plugin-react'; const packages = ['charts', 'date-pickers']; +// Ideally we move the configuration to each package. +// Currently it doesn't work because vitest doesn't detect two different configurations in the same package. +// We could bypass this limitation by having a folder per configuration. + export default defineWorkspace( packages.flatMap( (name): ReturnType => [ From f1269fd363d3fc341bbab97baf5d623974f30e41 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 13 Sep 2024 14:17:24 +0200 Subject: [PATCH 039/253] import vitest only if in vitest --- test/utils/pickers/createPickerRenderer.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/utils/pickers/createPickerRenderer.tsx b/test/utils/pickers/createPickerRenderer.tsx index 5323eeccee4c9..f4e453e665b0c 100644 --- a/test/utils/pickers/createPickerRenderer.tsx +++ b/test/utils/pickers/createPickerRenderer.tsx @@ -1,7 +1,6 @@ import * as React from 'react'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { createRenderer, CreateRendererOptions, RenderOptions } from '@mui/internal-test-utils'; -import { vi } from 'vitest'; import { AdapterClassToUse, AdapterName, adapterToUse, availableAdapters } from './adapters'; interface CreatePickerRendererOptions extends CreateRendererOptions { @@ -11,6 +10,12 @@ interface CreatePickerRendererOptions extends CreateRendererOptions { instance?: any; } +let vi: any; + +if (process.env.MUI_VITEST === 'true') { + vi = (await import('vitest')).vi; +} + export function createPickerRenderer({ locale, adapterName, From 3e2fbe4dee2ba73366754642226807e83cf7d212 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 13 Sep 2024 14:33:05 +0200 Subject: [PATCH 040/253] types/chai clash with vitest --- package.json | 1 - pnpm-lock.yaml | 6 ------ test/package.json | 1 - 3 files changed, 8 deletions(-) diff --git a/package.json b/package.json index d9cacc2913d85..fde91f610da35 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,6 @@ "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", "@types/babel__traverse": "^7.20.6", - "@types/chai": "^4.3.19", "@types/chai-dom": "^1.11.3", "@types/fs-extra": "^11.0.4", "@types/karma": "^6.3.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 309f41715402b..4d3a0f6955307 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -128,9 +128,6 @@ importers: '@types/babel__traverse': specifier: ^7.20.6 version: 7.20.6 - '@types/chai': - specifier: ^4.3.19 - version: 4.3.19 '@types/chai-dom': specifier: ^1.11.3 version: 1.11.3 @@ -1560,9 +1557,6 @@ importers: '@react-spring/web': specifier: ^9.7.4 version: 9.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/chai': - specifier: ^4.3.19 - version: 4.3.19 '@types/karma': specifier: ^6.3.8 version: 6.3.8 diff --git a/test/package.json b/test/package.json index 1544d72be6797..dd2526f5f9ca5 100644 --- a/test/package.json +++ b/test/package.json @@ -19,7 +19,6 @@ "@mui/x-date-pickers-pro": "workspace:*", "@mui/x-license": "workspace:*", "@react-spring/web": "^9.7.4", - "@types/chai": "^4.3.19", "@types/karma": "^6.3.8", "@types/moment-jalaali": "^0.7.9", "@types/prop-types": "^15.7.12", From e396545d8f4eda4a424dc442428340eb59fb2926 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 13 Sep 2024 14:46:00 +0200 Subject: [PATCH 041/253] Use global vi --- package.json | 2 +- pnpm-lock.yaml | 54 ++++++++++----------- test/utils/pickers/createPickerRenderer.tsx | 12 ++--- 3 files changed, 33 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index 6a5a5cf4b5d0e..8e713d4493623 100644 --- a/package.json +++ b/package.json @@ -206,7 +206,7 @@ "@types/node": "^20.16.5", "@playwright/test": "1.44.1", "playwright": "1.44.1", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils" + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils" }, "packageManager": "pnpm@9.10.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58bce6a1a1d5a..cdcfa9a1bdd1d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: '@types/node': ^20.16.5 '@playwright/test': 1.44.1 playwright: 1.44.1 - '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -96,8 +96,8 @@ importers: specifier: ^1.0.12 version: 1.0.12 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -780,8 +780,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1024,8 +1024,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1136,8 +1136,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1198,8 +1198,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1251,8 +1251,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1346,8 +1346,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1393,8 +1393,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -1413,8 +1413,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -1457,8 +1457,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1516,8 +1516,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3172,9 +3172,9 @@ packages: '@mui/internal-scripts@1.0.19': resolution: {integrity: sha512-NFyNxOIfrUtn3744rqk4UmkgGfbG7rntHxSFEXGAEy4yQRoEIIbOfHQURKJSupDKyCc48vSFMk+eGbiMBEYpKg==} - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils} - version: 1.0.12 + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils} + version: 1.0.13 peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 @@ -12124,7 +12124,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ae23bac4/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) diff --git a/test/utils/pickers/createPickerRenderer.tsx b/test/utils/pickers/createPickerRenderer.tsx index f4e453e665b0c..7bda8acb1dc7f 100644 --- a/test/utils/pickers/createPickerRenderer.tsx +++ b/test/utils/pickers/createPickerRenderer.tsx @@ -10,19 +10,17 @@ interface CreatePickerRendererOptions extends CreateRendererOptions { instance?: any; } -let vi: any; - -if (process.env.MUI_VITEST === 'true') { - vi = (await import('vitest')).vi; -} - export function createPickerRenderer({ locale, adapterName, instance, ...createRendererOptions }: CreatePickerRendererOptions = {}) { - const { clock, render: clientRender } = createRenderer({ ...createRendererOptions, vi }); + const { clock, render: clientRender } = createRenderer({ + ...createRendererOptions, + // @ts-expect-error is global + vi, + }); let adapterLocale = [ 'date-fns', From 5121079a506e1e3536a4bedf2d5448d3543bcd33 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 13 Sep 2024 15:22:41 +0200 Subject: [PATCH 042/253] Use globalThis.vi --- test/utils/pickers/createPickerRenderer.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/utils/pickers/createPickerRenderer.tsx b/test/utils/pickers/createPickerRenderer.tsx index 7bda8acb1dc7f..880110e4048a2 100644 --- a/test/utils/pickers/createPickerRenderer.tsx +++ b/test/utils/pickers/createPickerRenderer.tsx @@ -18,8 +18,7 @@ export function createPickerRenderer({ }: CreatePickerRendererOptions = {}) { const { clock, render: clientRender } = createRenderer({ ...createRendererOptions, - // @ts-expect-error is global - vi, + vi: globalThis.vi ?? undefined, }); let adapterLocale = [ From 570e9390857893f8129df64e5220e877d13c3b46 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 13 Sep 2024 15:57:47 +0200 Subject: [PATCH 043/253] Fix test functions without closure --- .../tests/DesktopDatePicker.test.tsx | 8 ++++--- .../src/TimeClock/tests/TimeClock.test.tsx | 24 +++++++++---------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx index d985d81e2d80c..3adfc21cfe1f5 100644 --- a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx +++ b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx @@ -168,12 +168,14 @@ describe('', () => { }); afterEach(() => { - window.scrollTo?.(originalScrollX, originalScrollY); + if (isJSDOM || process.env.MUI_BROWSER === 'true') { + window.scrollTo?.(originalScrollX, originalScrollY); + } }); - it('does not scroll when opened', (t = {}) => { + it('does not scroll when opened', function test(t = {}) { // JSDOM has neither layout nor window.scrollTo - if (/jsdom/.test(window.navigator.userAgent) || process.env.MUI_BROWSER === 'true') { + if (isJSDOM || process.env.MUI_BROWSER === 'true') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions this?.skip?.() || t?.skip(); diff --git a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx index 11558005d7ec5..0d331f84aec61 100644 --- a/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx +++ b/packages/x-date-pickers/src/TimeClock/tests/TimeClock.test.tsx @@ -276,7 +276,7 @@ describe('', () => { }, }; - it('should select enabled hour', (t = {}) => { + it('should select enabled hour', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -305,7 +305,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled minute', (t = {}) => { + it('should select enabled minute', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -335,7 +335,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled', (t = {}) => { + it('should not select minute when time is disabled', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -359,7 +359,7 @@ describe('', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select minute when time is disabled (no current value)', (t = {}) => { + it('should not select minute when time is disabled (no current value)', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -383,7 +383,7 @@ describe('', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour', (t = {}) => { + it('should not select disabled hour', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -407,7 +407,7 @@ describe('', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select disabled hour (no current value)', (t = {}) => { + it('should not select disabled hour (no current value)', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -431,7 +431,7 @@ describe('', () => { expect(handleChange.callCount).to.equal(0); }); - it('should visually disable the dates not matching minutesStep', (t = {}) => { + it('should visually disable the dates not matching minutesStep', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -452,7 +452,7 @@ describe('', () => { expect(screen.getByLabelText('30 minutes')).not.to.have.class('Mui-disabled'); }); - it('should select enabled second', (t = {}) => { + it('should select enabled second', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -482,7 +482,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should not select second when time is disabled', (t = {}) => { + it('should not select second when time is disabled', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -506,7 +506,7 @@ describe('', () => { expect(handleChange.callCount).to.equal(0); }); - it('should not select second when time is disabled (no current value)', (t = {}) => { + it('should not select second when time is disabled (no current value)', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -530,7 +530,7 @@ describe('', () => { expect(handleChange.callCount).to.equal(0); }); - it('should select enabled hour on touch and drag', (t = {}) => { + it('should select enabled hour on touch and drag', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions @@ -558,7 +558,7 @@ describe('', () => { expect(handleViewChange.callCount).to.equal(0); }); - it('should select enabled hour and move to next view on touch end', (t = {}) => { + it('should select enabled hour and move to next view on touch end', function test(t = {}) { if (typeof window.Touch === 'undefined' || typeof window.TouchEvent === 'undefined') { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions From 8812678b6ffd00c89f7976e031a9b4f233c10fe8 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 16 Sep 2024 15:23:02 +0200 Subject: [PATCH 044/253] browser only test example --- .eslintrc.js | 18 +- package.json | 4 +- .../tests/DesktopDatePicker.browser.test.tsx | 89 +++++++ packages/x-date-pickers/tsconfig.json | 3 +- pnpm-lock.yaml | 236 ++++++++++++++++-- tsconfig.json | 1 + vitest.workspace.ts | 13 +- 7 files changed, 329 insertions(+), 35 deletions(-) create mode 100644 packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx diff --git a/.eslintrc.js b/.eslintrc.js index d7b85f4b16dec..319c98fb33880 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -37,7 +37,7 @@ const addReactCompilerRule = (packagesNames, isEnabled) => !isEnabled ? [] : packagesNames.map((packageName) => ({ - files: [`packages/${packageName}/src/**/*{.ts,.tsx,.js}`], + files: [`packages/${packageName}/src/**/*.?(c|m)[jt]s?(x)`], rules: { 'react-compiler/react-compiler': 'error', }, @@ -58,7 +58,7 @@ const RESTRICTED_TOP_LEVEL_IMPORTS = [ // It needs to know about the parent "no-restricted-imports" to not override them. const buildPackageRestrictedImports = (packageName, root, allowRootImports = true) => [ { - files: [`packages/${root}/src/**/*{.ts,.tsx,.js}`], + files: [`packages/${root}/src/**/*.?(c|m)[jt]s?(x)`], excludedFiles: ['*.d.ts', '*.spec.ts', '*.spec.tsx', '**.test.tx', '**.test.tsx'], rules: { 'no-restricted-imports': [ @@ -94,8 +94,8 @@ const buildPackageRestrictedImports = (packageName, root, allowRootImports = tru : [ { files: [ - `packages/${root}/src/**/*.test{.ts,.tsx,.js}`, - `packages/${root}/src/**/*.spec{.ts,.tsx,.js}`, + `packages/${root}/src/**/*.test.?(c|m)[jt]s?(x)`, + `packages/${root}/src/**/*.spec.?(c|m)[jt]s?(x)`, ], excludedFiles: ['*.d.ts'], rules: { @@ -244,7 +244,7 @@ module.exports = { }, }, { - files: ['packages/*/src/**/*{.ts,.tsx,.js}'], + files: ['packages/*/src/**/*.?(c|m)[jt]s?(x)'], excludedFiles: ['*.d.ts', '*.spec.ts', '*.spec.tsx'], rules: { 'material-ui/mui-name-matches-component-name': [ @@ -267,7 +267,7 @@ module.exports = { }, }, { - files: ['docs/**/*{.ts,.tsx,.js}'], + files: ['docs/**/*.?(c|m)[jt]s?(x)'], excludedFiles: ['*.d.ts'], rules: { 'no-restricted-imports': [ @@ -297,6 +297,12 @@ module.exports = { ], }, }, + { + files: ['**/*.browser.test.?(c|m)[jt]s?(x)'], + rules: { + 'testing-library/prefer-screen-queries': 'off', + }, + }, ...buildPackageRestrictedImports('@mui/x-charts', 'x-charts', false), ...buildPackageRestrictedImports('@mui/x-charts-pro', 'x-charts-pro', false), ...buildPackageRestrictedImports('@mui/x-codemod', 'x-codemod', false), diff --git a/package.json b/package.json index 8e713d4493623..d4d30e07f9fcb 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^4.3.1", - "@vitest/browser": "^2.0.5", + "@vitest/browser": "^2.1.1", "autoprefixer": "^10.4.20", "axe-core": "4.10.0", "babel-loader": "^9.1.3", @@ -195,7 +195,7 @@ "typescript": "^5.5.4", "unist-util-visit": "^5.0.0", "util": "^0.12.5", - "vitest": "2.0.5", + "vitest": "2.1.1", "webpack": "^5.94.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx new file mode 100644 index 0000000000000..2181ddc14696e --- /dev/null +++ b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx @@ -0,0 +1,89 @@ +import { page } from '@vitest/browser/context'; +import * as React from 'react'; +import { describe, expect, it } from 'vitest'; +import { TransitionProps } from '@mui/material/transitions'; +import { spy } from 'sinon'; +import { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker'; +import { createPickerRenderer, adapterToUse } from 'test/utils/pickers'; +import { act } from '@mui/internal-test-utils'; + +// Alternative on how we could write browser tests + +describe('DesktopDatePicker (browser)', () => { + const { render } = createPickerRenderer(); + + const NoTransition = React.forwardRef(function NoTransition( + props: TransitionProps & { children?: React.ReactNode }, + ref: React.Ref, + ) { + const { children, in: inProp } = props; + + if (!inProp) { + return null; + } + return ( +
+ {children} +
+ ); + }); + + let originalScrollX: number; + let originalScrollY: number; + + beforeEach(() => { + originalScrollX = window.screenX; + originalScrollY = window.scrollY; + }); + + afterEach(() => { + window.scrollTo?.(originalScrollX, originalScrollY); + }); + + it('does not scroll when opened', async () => { + const handleClose = spy(); + const handleOpen = spy(); + function BottomAnchoredDesktopTimePicker() { + const [anchorEl, anchorElRef] = React.useState(null); + + React.useEffect(() => { + if (anchorEl !== null) { + window.scrollTo(0, anchorEl.getBoundingClientRect().top); + } + }, [anchorEl]); + + return ( + +
Spacer
+ +
+ ); + } + render(); + const scrollYBeforeOpen = window.scrollY; + + await expect.element(page.getByRole('button', { name: /choose date/i })).toBeInTheDocument(); + + await act(async () => { + await page.getByRole('button', { name: /choose date/i }).click({ + timeout: 10000, + }); + }); + + expect(handleClose.callCount).to.equal(0); + expect(handleOpen.callCount).to.equal(1); + expect(window.scrollY, 'focus caused scroll').to.equal(scrollYBeforeOpen); + }); +}); diff --git a/packages/x-date-pickers/tsconfig.json b/packages/x-date-pickers/tsconfig.json index 5f862d31ec2ba..2cffb9a5455ad 100644 --- a/packages/x-date-pickers/tsconfig.json +++ b/packages/x-date-pickers/tsconfig.json @@ -6,7 +6,8 @@ "@mui/material/themeCssVarsAugmentation", "chai-dom", "mocha", - "node" + "node", + "@vitest/browser/providers/playwright" ], "noImplicitAny": false }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cdcfa9a1bdd1d..2e8e12623da02 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -174,8 +174,8 @@ importers: specifier: ^4.3.1 version: 4.3.1(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) '@vitest/browser': - specifier: ^2.0.5 - version: 2.0.5(playwright@1.44.1)(typescript@5.5.4)(vitest@2.0.5) + specifier: ^2.1.1 + version: 2.1.1(@vitest/spy@2.1.1)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.1) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.45) @@ -399,8 +399,8 @@ importers: specifier: ^0.12.5 version: 0.12.5 vitest: - specifier: 2.0.5 - version: 2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + specifier: 2.1.1 + version: 2.1.1(@types/node@20.16.5)(@vitest/browser@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) webpack: specifier: ^5.94.0 version: 5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.94.0)) @@ -3102,8 +3102,8 @@ packages: '@jridgewell/source-map@0.3.5': resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -4462,21 +4462,63 @@ packages: webdriverio: optional: true + '@vitest/browser@2.1.1': + resolution: {integrity: sha512-wLKqohwlZI24xMIEZAPwv9SVliv1avaIBeE0ou471D++BRPhiw2mubKBczFFIDHXuSL7UXb8/JQK9Ui6ttW9bQ==} + peerDependencies: + playwright: 1.44.1 + safaridriver: '*' + vitest: 2.1.1 + webdriverio: '*' + peerDependenciesMeta: + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + '@vitest/expect@2.1.1': + resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} + + '@vitest/mocker@2.1.1': + resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} + peerDependencies: + '@vitest/spy': 2.1.1 + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + '@vitest/pretty-format@2.1.1': + resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} + '@vitest/runner@2.0.5': resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} + '@vitest/runner@2.1.1': + resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} + '@vitest/snapshot@2.0.5': resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} + '@vitest/snapshot@2.1.1': + resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} + '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + '@vitest/spy@2.1.1': + resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} + '@vitest/ui@2.0.5': resolution: {integrity: sha512-m+ZpVt/PVi/nbeRKEjdiYeoh0aOfI9zr3Ria9LO7V2PlMETtAXJS3uETEZkc8Be2oOl8mhd7Ew+5SRBXRYncNw==} peerDependencies: @@ -4485,6 +4527,9 @@ packages: '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + '@vitest/utils@2.1.1': + resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} + '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -7666,8 +7711,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} make-array@1.0.5: resolution: {integrity: sha512-sgK2SAzxT19rWU+qxKUcn6PAh/swiIiz2F8C2cZjLc1z4iwYIfdoihqFIDQ8BDzAGtWPYJ6Sr13K1j/DXynDLA==} @@ -9623,8 +9668,11 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} tinypool@1.0.0: resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} @@ -9988,6 +10036,11 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true + vite-node@2.1.1: + resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + vite@5.3.4: resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -10041,6 +10094,31 @@ packages: jsdom: optional: true + vitest@2.1.1: + resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^20.16.5 + '@vitest/browser': 2.1.1 + '@vitest/ui': 2.1.1 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + void-elements@2.0.1: resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} engines: {node: '>=0.10.0'} @@ -11938,7 +12016,7 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.1': {} @@ -11950,12 +12028,12 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@lerna/create@8.1.8(@swc/core@1.6.13(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13)(typescript@5.5.4)': dependencies: @@ -13612,7 +13690,7 @@ snapshots: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/utils': 2.0.5 - magic-string: 0.30.10 + magic-string: 0.30.11 msw: 2.4.4(typescript@5.5.4) sirv: 2.0.4 vitest: 2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) @@ -13623,6 +13701,28 @@ snapshots: - bufferutil - typescript - utf-8-validate + optional: true + + '@vitest/browser@2.1.1(@vitest/spy@2.1.1)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.1)': + dependencies: + '@testing-library/dom': 10.4.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) + '@vitest/utils': 2.1.1 + magic-string: 0.30.11 + msw: 2.4.4(typescript@5.5.4) + sirv: 2.0.4 + tinyrainbow: 1.2.0 + vitest: 2.1.1(@types/node@20.16.5)(@vitest/browser@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) + ws: 8.18.0 + optionalDependencies: + playwright: 1.44.1 + transitivePeerDependencies: + - '@vitest/spy' + - bufferutil + - typescript + - utf-8-validate + - vite '@vitest/expect@2.0.5': dependencies: @@ -13631,25 +13731,60 @@ snapshots: chai: 5.1.1 tinyrainbow: 1.2.0 + '@vitest/expect@2.1.1': + dependencies: + '@vitest/spy': 2.1.1 + '@vitest/utils': 2.1.1 + chai: 5.1.1 + tinyrainbow: 1.2.0 + + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))': + dependencies: + '@vitest/spy': 2.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.11 + optionalDependencies: + msw: 2.4.4(typescript@5.5.4) + vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) + '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 + '@vitest/pretty-format@2.1.1': + dependencies: + tinyrainbow: 1.2.0 + '@vitest/runner@2.0.5': dependencies: '@vitest/utils': 2.0.5 pathe: 1.1.2 + '@vitest/runner@2.1.1': + dependencies: + '@vitest/utils': 2.1.1 + pathe: 1.1.2 + '@vitest/snapshot@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 - magic-string: 0.30.10 + magic-string: 0.30.11 + pathe: 1.1.2 + + '@vitest/snapshot@2.1.1': + dependencies: + '@vitest/pretty-format': 2.1.1 + magic-string: 0.30.11 pathe: 1.1.2 '@vitest/spy@2.0.5': dependencies: tinyspy: 3.0.0 + '@vitest/spy@2.1.1': + dependencies: + tinyspy: 3.0.0 + '@vitest/ui@2.0.5(vitest@2.0.5)': dependencies: '@vitest/utils': 2.0.5 @@ -13668,6 +13803,12 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 + '@vitest/utils@2.1.1': + dependencies: + '@vitest/pretty-format': 2.1.1 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 @@ -17541,9 +17682,9 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.10: + magic-string@0.30.11: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 make-array@1.0.5: {} @@ -19872,7 +20013,9 @@ snapshots: tiny-warning@1.0.3: {} - tinybench@2.8.0: {} + tinybench@2.9.0: {} + + tinyexec@0.3.0: {} tinypool@1.0.0: {} @@ -20228,6 +20371,22 @@ snapshots: - supports-color - terser + vite-node@2.1.1(@types/node@20.16.5)(terser@5.27.0): + dependencies: + cac: 6.7.14 + debug: 4.3.6(supports-color@8.1.1) + pathe: 1.1.2 + vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + vite@5.3.4(@types/node@20.16.5)(terser@5.27.0): dependencies: esbuild: 0.21.5 @@ -20242,7 +20401,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 - '@vitest/pretty-format': 2.0.5 + '@vitest/pretty-format': 2.1.1 '@vitest/runner': 2.0.5 '@vitest/snapshot': 2.0.5 '@vitest/spy': 2.0.5 @@ -20250,10 +20409,10 @@ snapshots: chai: 5.1.1 debug: 4.3.6(supports-color@8.1.1) execa: 8.0.1 - magic-string: 0.30.10 + magic-string: 0.30.11 pathe: 1.1.2 std-env: 3.7.0 - tinybench: 2.8.0 + tinybench: 2.9.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) @@ -20273,6 +20432,41 @@ snapshots: - supports-color - terser + vitest@2.1.1(@types/node@20.16.5)(@vitest/browser@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0): + dependencies: + '@vitest/expect': 2.1.1 + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) + '@vitest/pretty-format': 2.1.1 + '@vitest/runner': 2.1.1 + '@vitest/snapshot': 2.1.1 + '@vitest/spy': 2.1.1 + '@vitest/utils': 2.1.1 + chai: 5.1.1 + debug: 4.3.6(supports-color@8.1.1) + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinyexec: 0.3.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) + vite-node: 2.1.1(@types/node@20.16.5)(terser@5.27.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.16.5 + '@vitest/browser': 2.1.1(@vitest/spy@2.1.1)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.1) + jsdom: 24.1.3 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - stylus + - sugarss + - supports-color + - terser + void-elements@2.0.1: {} w3c-xmlserializer@5.0.0: diff --git a/tsconfig.json b/tsconfig.json index a83b65a5e4b7e..b44a09769cb8b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,6 +8,7 @@ "strict": true, "baseUrl": "./", "allowJs": true, + "types": ["@vitest/browser/providers/playwright"], "paths": { "@mui/x-data-grid": ["./packages/x-data-grid/src"], "@mui/x-data-grid/*": ["./packages/x-data-grid/src/*"], diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 7cd40a27b2790..ee117aff773e4 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -5,7 +5,7 @@ const packages = ['charts', 'date-pickers']; // Ideally we move the configuration to each package. // Currently it doesn't work because vitest doesn't detect two different configurations in the same package. -// We could bypass this limitation by having a folder per configuration. +// We could bypass this limitation by having a folder per configuration. Eg: `packages/x-charts/browser` & `packages/x-charts/jsdom`. export default defineWorkspace( packages.flatMap( @@ -14,8 +14,11 @@ export default defineWorkspace( extends: './vitest.config.mts', plugins: [react()], test: { - include: [`packages/x-${name}/src/**/*.test.{ts,tsx,js,jsx}`], - exclude: [`packages/x-${name}/src/**/*V3.test.{ts,tsx,js,jsx}`], + include: [`packages/x-${name}/src/**/*.test.?(c|m)[jt]s?(x)`], + exclude: [ + `packages/x-${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`, + `packages/x-${name}/src/**/*V3.test.?(c|m)[jt]s?(x)`, + ], name: `browser/${name}`, env: { MUI_BROWSER: 'true', @@ -35,8 +38,8 @@ export default defineWorkspace( extends: './vitest.config.mts', plugins: [react()], test: { - include: [`packages/x-${name}/src/**/*.test.{ts,tsx,js,jsx}`], - exclude: [`packages/x-${name}/src/**/*.browser.test.{ts,tsx,js,jsx}`], + include: [`packages/x-${name}/src/**/*.test.?(c|m)[jt]s?(x)`], + exclude: [`packages/x-${name}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], name: `jsdom/${name}`, environment: 'jsdom', env: { From a06bb502bf4fbcd9f872a19e7eded8f8cd316dfe Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 16 Sep 2024 15:23:14 +0200 Subject: [PATCH 045/253] Fix moment imports --- .../src/AdapterMoment/AdapterMoment.test.tsx | 6 +++--- .../AdapterMomentHijri/AdapterMomentHijri.test.tsx | 2 +- .../AdapterMomentJalaali.test.tsx | 2 +- .../tests/localization.DateCalendar.test.tsx | 4 ++-- .../tests/DesktopDatePicker.test.tsx | 11 +++++++---- .../fixtures/DatePicker/MomentJalaliDateCalendar.tsx | 2 +- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx index e29237af2fbff..4d191d34cf4d0 100644 --- a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx +++ b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx @@ -12,9 +12,9 @@ import { TEST_DATE_ISO_STRING, buildFieldInteractions, } from 'test/utils/pickers'; -import 'moment/locale/de'; -import 'moment/locale/fr'; -import 'moment/locale/ko'; +import 'moment/dist/locale/de'; +import 'moment/dist/locale/fr'; +import 'moment/dist/locale/ko'; describe('', () => { const commonParams = { diff --git a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx index bd86f319abe60..e4045cd7c951e 100644 --- a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx @@ -9,7 +9,7 @@ import { describeHijriAdapter, buildFieldInteractions, } from 'test/utils/pickers'; -import 'moment/locale/ar'; +import 'moment/dist/locale/ar'; describe('', () => { describeHijriAdapter(AdapterMomentHijri, { diff --git a/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx b/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx index 9a30e357c05d0..8cb1544738f84 100644 --- a/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx @@ -10,7 +10,7 @@ import { buildFieldInteractions, } from 'test/utils/pickers'; import { AdapterFormats } from '@mui/x-date-pickers/models'; -import 'moment/locale/fa'; +import 'moment/dist/locale/fa'; describe('', () => { describeJalaliAdapter(AdapterMomentJalaali, { diff --git a/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx index a5d5d66d4f503..4fe3bba1d1563 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx @@ -7,8 +7,8 @@ import { createPickerRenderer, AdapterName, availableAdapters } from 'test/utils import { he, fr } from 'date-fns/locale'; import 'dayjs/locale/he'; import 'dayjs/locale/fr'; -import 'moment/locale/he'; -import 'moment/locale/fr'; +import 'moment/dist/locale/he'; +import 'moment/dist/locale/fr'; import moment from 'moment'; const ADAPTERS_TO_USE: AdapterName[] = ['date-fns', 'dayjs', 'luxon', 'moment']; diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx index 3adfc21cfe1f5..1f2606f794037 100644 --- a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx +++ b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.test.tsx @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { spy } from 'sinon'; import { TransitionProps } from '@mui/material/transitions'; import { inputBaseClasses } from '@mui/material/InputBase'; -import { fireEvent, screen } from '@mui/internal-test-utils'; +import { act, fireEvent, screen } from '@mui/internal-test-utils'; import { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker'; import { createPickerRenderer, adapterToUse, openPicker } from 'test/utils/pickers'; @@ -168,14 +168,14 @@ describe('', () => { }); afterEach(() => { - if (isJSDOM || process.env.MUI_BROWSER === 'true') { + if (!isJSDOM) { window.scrollTo?.(originalScrollX, originalScrollY); } }); it('does not scroll when opened', function test(t = {}) { // JSDOM has neither layout nor window.scrollTo - if (isJSDOM || process.env.MUI_BROWSER === 'true') { + if (isJSDOM) { // @ts-expect-error to support mocha and vitest // eslint-disable-next-line @typescript-eslint/no-unused-expressions this?.skip?.() || t?.skip(); @@ -214,7 +214,10 @@ describe('', () => { render(); const scrollYBeforeOpen = window.scrollY; - fireEvent.click(screen.getByLabelText(/choose date/i)); + // Can't use `userEvent.click` as it scrolls the window before it clicks on browsers. + act(() => { + screen.getByLabelText(/choose date/i).click(); + }); expect(handleClose.callCount).to.equal(0); expect(handleOpen.callCount).to.equal(1); diff --git a/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx b/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx index aabca41feb74f..9ba98b56fd17e 100644 --- a/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx +++ b/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { AdapterMomentJalaali } from '@mui/x-date-pickers/AdapterMomentJalaali'; import moment from 'moment-jalaali'; -import 'moment/locale/fa'; +import 'moment/dist/locale/fa'; import { DateCalendar } from '@mui/x-date-pickers/DateCalendar'; export default function MomentJalaliDateCalendar() { From f3da2754193c0115c639e292f2c3a1b8b1e80e81 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 16 Sep 2024 15:39:26 +0200 Subject: [PATCH 046/253] fix russian tests --- packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx index 4d191d34cf4d0..bf033ff530dc7 100644 --- a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx +++ b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx @@ -15,6 +15,7 @@ import { import 'moment/dist/locale/de'; import 'moment/dist/locale/fr'; import 'moment/dist/locale/ko'; +import 'moment/dist/locale/ru'; describe('', () => { const commonParams = { From 7ba380b7be0c0b9724a42eb3b9fb4e82458e211d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 16 Sep 2024 16:17:43 +0200 Subject: [PATCH 047/253] fix field keyboard test --- .../src/tests/fieldKeyboardInteraction.test.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx b/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx index 3d7436f158ea1..b90a92f43357d 100644 --- a/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx +++ b/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx @@ -1,5 +1,5 @@ import { expect } from 'chai'; -import moment from 'moment/moment'; +import moment from 'moment'; import jMoment from 'moment-jalaali'; import { fireEvent } from '@mui/internal-test-utils'; import { @@ -15,6 +15,7 @@ import { getDateSectionConfigFromFormatToken, cleanLeadingZeros, } from '../internals/hooks/useField/useField.utils'; +import 'moment/dist/locale/fa'; const testDate = '2018-05-15T09:35:10'; @@ -213,7 +214,7 @@ adapterToTest.forEach((adapterName) => { adapterName, }); - before(() => { + beforeEach(() => { if (adapterName === 'moment-jalaali') { jMoment.loadPersian(); } else if (adapterName === 'moment') { @@ -221,7 +222,7 @@ adapterToTest.forEach((adapterName) => { } }); - after(() => { + afterEach(() => { if (adapterName === 'moment-jalaali') { moment.locale('en'); } From ca22dde678144d15c29eb56927b70a05bb4f4f25 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 16 Sep 2024 17:42:32 +0200 Subject: [PATCH 048/253] Fix karma config --- test/karma.tests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/karma.tests.js b/test/karma.tests.js index e041b5849b8cd..7d585bfb04af1 100644 --- a/test/karma.tests.js +++ b/test/karma.tests.js @@ -18,5 +18,5 @@ afterEach(function beforeEachHook() { }); }); -const packagesContext = require.context('../packages', true, /\.test\.tsx$/); +const packagesContext = require.context('../packages', true, /^((?!browser|jsdom).)*\.test\.tsx$/); packagesContext.keys().forEach(packagesContext); From ff6c7156642849a0689d950fa0b92e04305c6d1e Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 16 Sep 2024 22:25:06 +0200 Subject: [PATCH 049/253] mocha ignore browser/jsdom extensions --- .mocharc.js | 7 +++++-- .../src/AdapterMoment/AdapterMoment.test.tsx | 8 ++++---- .../src/AdapterMomentHijri/AdapterMomentHijri.test.tsx | 2 +- .../AdapterMomentJalaali/AdapterMomentJalaali.test.tsx | 2 +- .../DateCalendar/tests/localization.DateCalendar.test.tsx | 4 ++-- .../src/tests/fieldKeyboardInteraction.test.tsx | 2 +- vitest.config.mts | 4 ++++ 7 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.mocharc.js b/.mocharc.js index 3f1b312f2f7c5..4cd5bea32607f 100644 --- a/.mocharc.js +++ b/.mocharc.js @@ -1,12 +1,15 @@ // We can't import the `.mocharc.js` of the monorepo, otherwise we trigger its `setupBabel`. + module.exports = { - extension: ['js', 'ts', 'tsx'], + extension: ['js', 'ts', 'tsx', 'jsx'], ignore: [ '**/build/**', '**/node_modules/**', // Mocha seems to ignore .next anyway (maybe because dotfiles?). // We're leaving this to make sure. 'docs/.next/**', + 'packages/**/*.browser.test.{js,ts,tsx,jsx}', + 'packages/**/*.jsdom.test.{js,ts,tsx,jsx}', ], recursive: true, timeout: (process.env.CIRCLECI === 'true' ? 5 : 2) * 1000, // Circle CI has low-performance CPUs. @@ -21,5 +24,5 @@ module.exports = { '**/build/**', 'docs/.next/**', ], - spec: ['packages/**/*.test.{js,ts,tsx}', 'docs/src/modules/**/*.test.{js,ts,tsx}'], + spec: ['packages/**/*.test.{js,ts,tsx,jsx}', 'docs/src/modules/**/*.test.{js,ts,tsx,jsx}'], }; diff --git a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx index bf033ff530dc7..1f46081580628 100644 --- a/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx +++ b/packages/x-date-pickers/src/AdapterMoment/AdapterMoment.test.tsx @@ -12,10 +12,10 @@ import { TEST_DATE_ISO_STRING, buildFieldInteractions, } from 'test/utils/pickers'; -import 'moment/dist/locale/de'; -import 'moment/dist/locale/fr'; -import 'moment/dist/locale/ko'; -import 'moment/dist/locale/ru'; +import 'moment/locale/de'; +import 'moment/locale/fr'; +import 'moment/locale/ko'; +import 'moment/locale/ru'; describe('', () => { const commonParams = { diff --git a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx index e4045cd7c951e..bd86f319abe60 100644 --- a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx @@ -9,7 +9,7 @@ import { describeHijriAdapter, buildFieldInteractions, } from 'test/utils/pickers'; -import 'moment/dist/locale/ar'; +import 'moment/locale/ar'; describe('', () => { describeHijriAdapter(AdapterMomentHijri, { diff --git a/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx b/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx index 8cb1544738f84..9a30e357c05d0 100644 --- a/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentJalaali/AdapterMomentJalaali.test.tsx @@ -10,7 +10,7 @@ import { buildFieldInteractions, } from 'test/utils/pickers'; import { AdapterFormats } from '@mui/x-date-pickers/models'; -import 'moment/dist/locale/fa'; +import 'moment/locale/fa'; describe('', () => { describeJalaliAdapter(AdapterMomentJalaali, { diff --git a/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx index 4fe3bba1d1563..a5d5d66d4f503 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/localization.DateCalendar.test.tsx @@ -7,8 +7,8 @@ import { createPickerRenderer, AdapterName, availableAdapters } from 'test/utils import { he, fr } from 'date-fns/locale'; import 'dayjs/locale/he'; import 'dayjs/locale/fr'; -import 'moment/dist/locale/he'; -import 'moment/dist/locale/fr'; +import 'moment/locale/he'; +import 'moment/locale/fr'; import moment from 'moment'; const ADAPTERS_TO_USE: AdapterName[] = ['date-fns', 'dayjs', 'luxon', 'moment']; diff --git a/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx b/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx index b90a92f43357d..6348a9b046b2b 100644 --- a/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx +++ b/packages/x-date-pickers/src/tests/fieldKeyboardInteraction.test.tsx @@ -15,7 +15,7 @@ import { getDateSectionConfigFromFormatToken, cleanLeadingZeros, } from '../internals/hooks/useField/useField.utils'; -import 'moment/dist/locale/fa'; +import 'moment/locale/fa'; const testDate = '2018-05-15T09:35:10'; diff --git a/vitest.config.mts b/vitest.config.mts index 7d6eecb8bf01b..8ce53f0bab1ff 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -40,6 +40,10 @@ export default defineConfig({ return null; }, }, + { + find: 'moment/locale', + replacement: 'moment/dist/locale', + }, ], }, test: { From 90d0af7383b3477c55b0273cfe9dc73b6fe40f82 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 16 Sep 2024 22:54:08 +0200 Subject: [PATCH 050/253] Remove browser example to fix typescript --- .../tests/DesktopDatePicker.browser.test.tsx | 89 ------------------- packages/x-date-pickers/tsconfig.json | 3 +- tsconfig.json | 1 - 3 files changed, 1 insertion(+), 92 deletions(-) delete mode 100644 packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx diff --git a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx b/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx deleted file mode 100644 index 2181ddc14696e..0000000000000 --- a/packages/x-date-pickers/src/DesktopDatePicker/tests/DesktopDatePicker.browser.test.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import { page } from '@vitest/browser/context'; -import * as React from 'react'; -import { describe, expect, it } from 'vitest'; -import { TransitionProps } from '@mui/material/transitions'; -import { spy } from 'sinon'; -import { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker'; -import { createPickerRenderer, adapterToUse } from 'test/utils/pickers'; -import { act } from '@mui/internal-test-utils'; - -// Alternative on how we could write browser tests - -describe('DesktopDatePicker (browser)', () => { - const { render } = createPickerRenderer(); - - const NoTransition = React.forwardRef(function NoTransition( - props: TransitionProps & { children?: React.ReactNode }, - ref: React.Ref, - ) { - const { children, in: inProp } = props; - - if (!inProp) { - return null; - } - return ( -
- {children} -
- ); - }); - - let originalScrollX: number; - let originalScrollY: number; - - beforeEach(() => { - originalScrollX = window.screenX; - originalScrollY = window.scrollY; - }); - - afterEach(() => { - window.scrollTo?.(originalScrollX, originalScrollY); - }); - - it('does not scroll when opened', async () => { - const handleClose = spy(); - const handleOpen = spy(); - function BottomAnchoredDesktopTimePicker() { - const [anchorEl, anchorElRef] = React.useState(null); - - React.useEffect(() => { - if (anchorEl !== null) { - window.scrollTo(0, anchorEl.getBoundingClientRect().top); - } - }, [anchorEl]); - - return ( - -
Spacer
- -
- ); - } - render(); - const scrollYBeforeOpen = window.scrollY; - - await expect.element(page.getByRole('button', { name: /choose date/i })).toBeInTheDocument(); - - await act(async () => { - await page.getByRole('button', { name: /choose date/i }).click({ - timeout: 10000, - }); - }); - - expect(handleClose.callCount).to.equal(0); - expect(handleOpen.callCount).to.equal(1); - expect(window.scrollY, 'focus caused scroll').to.equal(scrollYBeforeOpen); - }); -}); diff --git a/packages/x-date-pickers/tsconfig.json b/packages/x-date-pickers/tsconfig.json index 2cffb9a5455ad..5f862d31ec2ba 100644 --- a/packages/x-date-pickers/tsconfig.json +++ b/packages/x-date-pickers/tsconfig.json @@ -6,8 +6,7 @@ "@mui/material/themeCssVarsAugmentation", "chai-dom", "mocha", - "node", - "@vitest/browser/providers/playwright" + "node" ], "noImplicitAny": false }, diff --git a/tsconfig.json b/tsconfig.json index b44a09769cb8b..a83b65a5e4b7e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,6 @@ "strict": true, "baseUrl": "./", "allowJs": true, - "types": ["@vitest/browser/providers/playwright"], "paths": { "@mui/x-data-grid": ["./packages/x-data-grid/src"], "@mui/x-data-grid/*": ["./packages/x-data-grid/src/*"], From db2817d153a7294aba08d3fc62c5021d47f37c6c Mon Sep 17 00:00:00 2001 From: Jose C Quintas Jr Date: Fri, 4 Oct 2024 15:30:55 +0200 Subject: [PATCH 051/253] Update .mocharc.js Co-authored-by: Olivier Tassinari Signed-off-by: Jose C Quintas Jr --- .mocharc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mocharc.js b/.mocharc.js index 4cd5bea32607f..56cf1623cfabc 100644 --- a/.mocharc.js +++ b/.mocharc.js @@ -1,7 +1,7 @@ // We can't import the `.mocharc.js` of the monorepo, otherwise we trigger its `setupBabel`. module.exports = { - extension: ['js', 'ts', 'tsx', 'jsx'], + extension: ['js', 'ts', 'tsx'], ignore: [ '**/build/**', '**/node_modules/**', From b2b862840dd141da48e764e8586aa9ffa22f08d8 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 4 Oct 2024 15:28:55 +0200 Subject: [PATCH 052/253] update packages --- package.json | 6 +- pnpm-lock.yaml | 400 +++++++-------------------- test/performance-charts/package.json | 2 +- 3 files changed, 109 insertions(+), 299 deletions(-) diff --git a/package.json b/package.json index d4d30e07f9fcb..e0ff0cae941aa 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^4.3.1", - "@vitest/browser": "^2.1.1", + "@vitest/browser": "^2.1.2", "autoprefixer": "^10.4.20", "axe-core": "4.10.0", "babel-loader": "^9.1.3", @@ -195,7 +195,7 @@ "typescript": "^5.5.4", "unist-util-visit": "^5.0.0", "util": "^0.12.5", - "vitest": "2.1.1", + "vitest": "2.1.2", "webpack": "^5.94.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", @@ -206,7 +206,7 @@ "@types/node": "^20.16.5", "@playwright/test": "1.44.1", "playwright": "1.44.1", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils" + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils" }, "packageManager": "pnpm@9.10.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e8e12623da02..17e742d19a562 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: '@types/node': ^20.16.5 '@playwright/test': 1.44.1 playwright: 1.44.1 - '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -96,8 +96,8 @@ importers: specifier: ^1.0.12 version: 1.0.12 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -174,8 +174,8 @@ importers: specifier: ^4.3.1 version: 4.3.1(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) '@vitest/browser': - specifier: ^2.1.1 - version: 2.1.1(@vitest/spy@2.1.1)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.1) + specifier: ^2.1.2 + version: 2.1.2(@vitest/spy@2.1.2)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.2) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.45) @@ -399,8 +399,8 @@ importers: specifier: ^0.12.5 version: 0.12.5 vitest: - specifier: 2.1.1 - version: 2.1.1(@types/node@20.16.5)(@vitest/browser@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) + specifier: 2.1.2 + version: 2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) webpack: specifier: ^5.94.0 version: 5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.94.0)) @@ -780,8 +780,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1024,8 +1024,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1136,8 +1136,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1198,8 +1198,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1251,8 +1251,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1346,8 +1346,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1393,8 +1393,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -1413,8 +1413,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -1457,8 +1457,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1516,8 +1516,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1626,7 +1626,7 @@ importers: devDependencies: '@codspeed/vitest-plugin': specifier: ^3.1.1 - version: 3.1.1(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0)) + version: 3.1.1(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0)) '@emotion/react': specifier: ^11.13.3 version: 11.13.3(@types/react@18.3.4)(react@18.3.1) @@ -1653,7 +1653,7 @@ importers: version: 3.7.0(@swc/helpers@0.5.5)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) '@vitest/ui': specifier: 2.0.5 - version: 2.0.5(vitest@2.0.5) + version: 2.0.5(vitest@2.1.2) jsdom: specifier: ^24.1.3 version: 24.1.3 @@ -1664,8 +1664,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vitest: - specifier: 2.0.5 - version: 2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + specifier: 2.1.2 + version: 2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) packages: @@ -3172,9 +3172,9 @@ packages: '@mui/internal-scripts@1.0.19': resolution: {integrity: sha512-NFyNxOIfrUtn3744rqk4UmkgGfbG7rntHxSFEXGAEy4yQRoEIIbOfHQURKJSupDKyCc48vSFMk+eGbiMBEYpKg==} - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils} - version: 1.0.13 + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils} + version: 1.0.15 peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 @@ -4447,12 +4447,12 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 - '@vitest/browser@2.0.5': - resolution: {integrity: sha512-VbOYtu/6R3d7ASZREcrJmRY/sQuRFO9wMVsEDqfYbWiJRh2fDNi8CL1Csn7Ux31pOcPmmM5QvzFCMpiojvVh8g==} + '@vitest/browser@2.1.2': + resolution: {integrity: sha512-tqpGfz2sfjFFNuZ2iLZ6EGRVnH8z18O93ZIicbLsxDhiLgRNz84UcjSvX4pbheuddW+BJeNbLGdM3BU8vohbEg==} peerDependencies: playwright: 1.44.1 safaridriver: '*' - vitest: 2.0.5 + vitest: 2.1.2 webdriverio: '*' peerDependenciesMeta: playwright: @@ -4462,31 +4462,13 @@ packages: webdriverio: optional: true - '@vitest/browser@2.1.1': - resolution: {integrity: sha512-wLKqohwlZI24xMIEZAPwv9SVliv1avaIBeE0ou471D++BRPhiw2mubKBczFFIDHXuSL7UXb8/JQK9Ui6ttW9bQ==} - peerDependencies: - playwright: 1.44.1 - safaridriver: '*' - vitest: 2.1.1 - webdriverio: '*' - peerDependenciesMeta: - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true + '@vitest/expect@2.1.2': + resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==} - '@vitest/expect@2.0.5': - resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - - '@vitest/expect@2.1.1': - resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} - - '@vitest/mocker@2.1.1': - resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} + '@vitest/mocker@2.1.2': + resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==} peerDependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 msw: ^2.3.5 vite: ^5.0.0 peerDependenciesMeta: @@ -4498,26 +4480,17 @@ packages: '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - '@vitest/pretty-format@2.1.1': - resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} - - '@vitest/runner@2.0.5': - resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} - - '@vitest/runner@2.1.1': - resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} + '@vitest/pretty-format@2.1.2': + resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==} - '@vitest/snapshot@2.0.5': - resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} + '@vitest/runner@2.1.2': + resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==} - '@vitest/snapshot@2.1.1': - resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} + '@vitest/snapshot@2.1.2': + resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==} - '@vitest/spy@2.0.5': - resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - - '@vitest/spy@2.1.1': - resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} + '@vitest/spy@2.1.2': + resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==} '@vitest/ui@2.0.5': resolution: {integrity: sha512-m+ZpVt/PVi/nbeRKEjdiYeoh0aOfI9zr3Ria9LO7V2PlMETtAXJS3uETEZkc8Be2oOl8mhd7Ew+5SRBXRYncNw==} @@ -4527,8 +4500,8 @@ packages: '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@vitest/utils@2.1.1': - resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} + '@vitest/utils@2.1.2': + resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} '@webassemblyjs/ast@1.12.1': resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} @@ -6274,10 +6247,6 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - execa@9.3.1: resolution: {integrity: sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==} engines: {node: ^18.19.0 || >=20.5.0} @@ -6574,10 +6543,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - get-stream@9.0.1: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} @@ -6857,10 +6822,6 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - human-signals@8.0.0: resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} engines: {node: '>=18.18.0'} @@ -7125,10 +7086,6 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-stream@4.0.1: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} @@ -7919,10 +7876,6 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -8314,10 +8267,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -9299,6 +9248,9 @@ packages: sinon@18.0.0: resolution: {integrity: sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA==} + sinon@18.0.1: + resolution: {integrity: sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==} + sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -9495,10 +9447,6 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - strip-final-newline@4.0.0: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} @@ -10031,13 +9979,8 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@2.0.5: - resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite-node@2.1.1: - resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} + vite-node@2.1.2: + resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -10069,40 +10012,15 @@ packages: terser: optional: true - vitest@2.0.5: - resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^20.16.5 - '@vitest/browser': 2.0.5 - '@vitest/ui': 2.0.5 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vitest@2.1.1: - resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} + vitest@2.1.2: + resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^20.16.5 - '@vitest/browser': 2.1.1 - '@vitest/ui': 2.1.1 + '@vitest/browser': 2.1.2 + '@vitest/ui': 2.1.2 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -11510,11 +11428,11 @@ snapshots: transitivePeerDependencies: - debug - '@codspeed/vitest-plugin@3.1.1(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0))': + '@codspeed/vitest-plugin@3.1.1(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0))': dependencies: '@codspeed/core': 3.1.1 vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) - vitest: 2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + vitest: 2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) transitivePeerDependencies: - debug @@ -12202,7 +12120,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/2284ad61/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.2)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) @@ -12225,7 +12143,7 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - sinon: 18.0.0 + sinon: 18.0.1 transitivePeerDependencies: - '@babel/core' - '@types/react' @@ -13685,35 +13603,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.0.5(playwright@1.44.1)(typescript@5.5.4)(vitest@2.0.5)': + '@vitest/browser@2.1.2(@vitest/spy@2.1.2)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.2)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/utils': 2.0.5 - magic-string: 0.30.11 - msw: 2.4.4(typescript@5.5.4) - sirv: 2.0.4 - vitest: 2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) - ws: 8.18.0 - optionalDependencies: - playwright: 1.44.1 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - optional: true - - '@vitest/browser@2.1.1(@vitest/spy@2.1.1)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.1)': - dependencies: - '@testing-library/dom': 10.4.0 - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) - '@vitest/utils': 2.1.1 + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) + '@vitest/utils': 2.1.2 magic-string: 0.30.11 msw: 2.4.4(typescript@5.5.4) sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.1.1(@types/node@20.16.5)(@vitest/browser@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) + vitest: 2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) ws: 8.18.0 optionalDependencies: playwright: 1.44.1 @@ -13724,23 +13624,16 @@ snapshots: - utf-8-validate - vite - '@vitest/expect@2.0.5': - dependencies: - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 - chai: 5.1.1 - tinyrainbow: 1.2.0 - - '@vitest/expect@2.1.1': + '@vitest/expect@2.1.2': dependencies: - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))': + '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))': dependencies: - '@vitest/spy': 2.1.1 + '@vitest/spy': 2.1.2 estree-walker: 3.0.3 magic-string: 0.30.11 optionalDependencies: @@ -13751,41 +13644,26 @@ snapshots: dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.1.1': + '@vitest/pretty-format@2.1.2': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.0.5': - dependencies: - '@vitest/utils': 2.0.5 - pathe: 1.1.2 - - '@vitest/runner@2.1.1': + '@vitest/runner@2.1.2': dependencies: - '@vitest/utils': 2.1.1 + '@vitest/utils': 2.1.2 pathe: 1.1.2 - '@vitest/snapshot@2.0.5': + '@vitest/snapshot@2.1.2': dependencies: - '@vitest/pretty-format': 2.0.5 + '@vitest/pretty-format': 2.1.2 magic-string: 0.30.11 pathe: 1.1.2 - '@vitest/snapshot@2.1.1': - dependencies: - '@vitest/pretty-format': 2.1.1 - magic-string: 0.30.11 - pathe: 1.1.2 - - '@vitest/spy@2.0.5': + '@vitest/spy@2.1.2': dependencies: tinyspy: 3.0.0 - '@vitest/spy@2.1.1': - dependencies: - tinyspy: 3.0.0 - - '@vitest/ui@2.0.5(vitest@2.0.5)': + '@vitest/ui@2.0.5(vitest@2.1.2)': dependencies: '@vitest/utils': 2.0.5 fast-glob: 3.3.2 @@ -13794,7 +13672,7 @@ snapshots: pathe: 1.1.2 sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0) + vitest: 2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0) '@vitest/utils@2.0.5': dependencies: @@ -13803,9 +13681,9 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@vitest/utils@2.1.1': + '@vitest/utils@2.1.2': dependencies: - '@vitest/pretty-format': 2.1.1 + '@vitest/pretty-format': 2.1.2 loupe: 3.1.1 tinyrainbow: 1.2.0 @@ -15957,18 +15835,6 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - execa@9.3.1: dependencies: '@sindresorhus/merge-streams': 4.0.0 @@ -16321,8 +16187,6 @@ snapshots: get-stream@6.0.1: {} - get-stream@8.0.1: {} - get-stream@9.0.1: dependencies: '@sec-ant/readable-stream': 0.4.1 @@ -16685,8 +16549,6 @@ snapshots: human-signals@2.1.0: {} - human-signals@5.0.0: {} - human-signals@8.0.0: {} hyperlinker@1.0.0: {} @@ -16912,8 +16774,6 @@ snapshots: is-stream@2.0.1: {} - is-stream@3.0.0: {} - is-stream@4.0.1: {} is-string@1.0.7: @@ -17985,8 +17845,6 @@ snapshots: mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} - min-indent@1.0.1: {} minimatch@3.0.5: @@ -18506,10 +18364,6 @@ snapshots: dependencies: mimic-fn: 2.1.0 - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -19606,6 +19460,15 @@ snapshots: nise: 6.0.0 supports-color: 7.2.0 + sinon@18.0.1: + dependencies: + '@sinonjs/commons': 3.0.1 + '@sinonjs/fake-timers': 11.2.2 + '@sinonjs/samsam': 8.0.0 + diff: 5.2.0 + nise: 6.0.0 + supports-color: 7.2.0 + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.24 @@ -19842,8 +19705,6 @@ snapshots: strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} - strip-final-newline@4.0.0: {} strip-indent@3.0.0: @@ -20354,24 +20215,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.0.5(@types/node@20.16.5)(terser@5.27.0): - dependencies: - cac: 6.7.14 - debug: 4.3.6(supports-color@8.1.1) - pathe: 1.1.2 - tinyrainbow: 1.2.0 - vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-node@2.1.1(@types/node@20.16.5)(terser@5.27.0): + vite-node@2.1.2(@types/node@20.16.5)(terser@5.27.0): dependencies: cac: 6.7.14 debug: 4.3.6(supports-color@8.1.1) @@ -20397,50 +20241,15 @@ snapshots: fsevents: 2.3.3 terser: 5.27.0 - vitest@2.0.5(@types/node@20.16.5)(@vitest/browser@2.0.5)(@vitest/ui@2.0.5)(jsdom@24.1.3)(terser@5.27.0): - dependencies: - '@ampproject/remapping': 2.3.0 - '@vitest/expect': 2.0.5 - '@vitest/pretty-format': 2.1.1 - '@vitest/runner': 2.0.5 - '@vitest/snapshot': 2.0.5 - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 - chai: 5.1.1 - debug: 4.3.6(supports-color@8.1.1) - execa: 8.0.1 - magic-string: 0.30.11 - pathe: 1.1.2 - std-env: 3.7.0 - tinybench: 2.9.0 - tinypool: 1.0.0 - tinyrainbow: 1.2.0 - vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) - vite-node: 2.0.5(@types/node@20.16.5)(terser@5.27.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 20.16.5 - '@vitest/browser': 2.0.5(playwright@1.44.1)(typescript@5.5.4)(vitest@2.0.5) - '@vitest/ui': 2.0.5(vitest@2.0.5) - jsdom: 24.1.3 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vitest@2.1.1(@types/node@20.16.5)(@vitest/browser@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0): + vitest@2.1.2(@types/node@20.16.5)(@vitest/browser@2.1.2)(@vitest/ui@2.0.5)(jsdom@24.1.3)(msw@2.4.4(typescript@5.5.4))(terser@5.27.0): dependencies: - '@vitest/expect': 2.1.1 - '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) - '@vitest/pretty-format': 2.1.1 - '@vitest/runner': 2.1.1 - '@vitest/snapshot': 2.1.1 - '@vitest/spy': 2.1.1 - '@vitest/utils': 2.1.1 + '@vitest/expect': 2.1.2 + '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.4(typescript@5.5.4))(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0)) + '@vitest/pretty-format': 2.1.2 + '@vitest/runner': 2.1.2 + '@vitest/snapshot': 2.1.2 + '@vitest/spy': 2.1.2 + '@vitest/utils': 2.1.2 chai: 5.1.1 debug: 4.3.6(supports-color@8.1.1) magic-string: 0.30.11 @@ -20451,11 +20260,12 @@ snapshots: tinypool: 1.0.0 tinyrainbow: 1.2.0 vite: 5.3.4(@types/node@20.16.5)(terser@5.27.0) - vite-node: 2.1.1(@types/node@20.16.5)(terser@5.27.0) + vite-node: 2.1.2(@types/node@20.16.5)(terser@5.27.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.5 - '@vitest/browser': 2.1.1(@vitest/spy@2.1.1)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.1) + '@vitest/browser': 2.1.2(@vitest/spy@2.1.2)(playwright@1.44.1)(typescript@5.5.4)(vite@5.3.4(@types/node@20.16.5)(terser@5.27.0))(vitest@2.1.2) + '@vitest/ui': 2.0.5(vitest@2.1.2) jsdom: 24.1.3 transitivePeerDependencies: - less diff --git a/test/performance-charts/package.json b/test/performance-charts/package.json index d8a2c84264fb2..8607f7dfab8e3 100644 --- a/test/performance-charts/package.json +++ b/test/performance-charts/package.json @@ -20,6 +20,6 @@ "jsdom": "^24.1.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "vitest": "2.0.5" + "vitest": "2.1.2" } } From 8434b41c2cd10f41d086d9c1c8d46642be0e391d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 4 Oct 2024 15:37:13 +0200 Subject: [PATCH 053/253] use x-package for names --- vitest.workspace.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index ee117aff773e4..a850f5b3d2ff6 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,7 +1,7 @@ -import { defineWorkspace } from 'vitest/config'; import react from '@vitejs/plugin-react'; +import { defineWorkspace } from 'vitest/config'; -const packages = ['charts', 'date-pickers']; +const packages = ['x-charts', 'x-date-pickers']; // Ideally we move the configuration to each package. // Currently it doesn't work because vitest doesn't detect two different configurations in the same package. @@ -14,10 +14,10 @@ export default defineWorkspace( extends: './vitest.config.mts', plugins: [react()], test: { - include: [`packages/x-${name}/src/**/*.test.?(c|m)[jt]s?(x)`], + include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], exclude: [ - `packages/x-${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`, - `packages/x-${name}/src/**/*V3.test.?(c|m)[jt]s?(x)`, + `packages/${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`, + `packages/${name}/src/**/*V3.test.?(c|m)[jt]s?(x)`, ], name: `browser/${name}`, env: { @@ -38,8 +38,8 @@ export default defineWorkspace( extends: './vitest.config.mts', plugins: [react()], test: { - include: [`packages/x-${name}/src/**/*.test.?(c|m)[jt]s?(x)`], - exclude: [`packages/x-${name}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], + include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], + exclude: [`packages/${name}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], name: `jsdom/${name}`, environment: 'jsdom', env: { From 0f8b218fe18112f1a0ef8dc05065bb8cfbb172f5 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 12:35:59 +0200 Subject: [PATCH 054/253] try urls --- vitest.config.mts | 17 ++++++++++++----- vitest.workspace.ts | 5 +---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/vitest.config.mts b/vitest.config.mts index 8ce53f0bab1ff..81b3e7bd6ede7 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,4 +1,5 @@ import { defineConfig } from 'vitest/config'; +import path from 'path'; export default defineConfig({ resolve: { @@ -23,11 +24,13 @@ export default defineConfig({ { find: 'date-fns', replacement: 'date-fns-v3', - customResolver(source, importer) { + async customResolver(source, importer) { if (importer?.includes('src/AdapterDateFnsV3')) { - return source; + const file = new URL(import.meta.resolve(source)).pathname; + return file; } - return null; + const file = new URL(import.meta.resolve('date-fns')).pathname; + return file; }, }, { @@ -35,9 +38,13 @@ export default defineConfig({ replacement: 'date-fns-jalali-v3', customResolver(source, importer) { if (importer?.includes('src/AdapterDateFnsJalaliV3')) { - return source; + const file = new URL(import.meta.resolve(source)).pathname; + console.log(source, file); + return file; } - return null; + const file = new URL(import.meta.resolve(source.replace('-v3', ''))).pathname; + console.log(source, JSON.stringify(file)); + return file; }, }, { diff --git a/vitest.workspace.ts b/vitest.workspace.ts index a850f5b3d2ff6..db0ef5779c78f 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -15,10 +15,7 @@ export default defineWorkspace( plugins: [react()], test: { include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], - exclude: [ - `packages/${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`, - `packages/${name}/src/**/*V3.test.?(c|m)[jt]s?(x)`, - ], + exclude: [`packages/${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`], name: `browser/${name}`, env: { MUI_BROWSER: 'true', From 2d5d395c26c9842a9014b205205699d55e2f554f Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 14:25:27 +0200 Subject: [PATCH 055/253] mock datefns in files instead of globally --- .../AdapterDateFnsJalaliV3.test.tsx | 49 ++++++++++++++++++- .../AdapterDateFnsJalaliV3.ts | 2 +- .../AdapterDateFnsV3.test.tsx | 49 ++++++++++++++++++- .../src/AdapterDateFnsV3/AdapterDateFnsV3.ts | 2 +- packages/x-date-pickers/tsconfig.build.json | 1 + packages/x-date-pickers/tsconfig.json | 1 + test/setup.ts | 5 +- test/utils/mochaHooks.js | 6 +++ vitest.config.mts | 28 ----------- 9 files changed, 108 insertions(+), 35 deletions(-) diff --git a/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.test.tsx b/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.test.tsx index f97f309af0fd3..410d06ea7110b 100644 --- a/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.test.tsx +++ b/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.test.tsx @@ -1,15 +1,60 @@ import { expect } from 'chai'; import { DateTimeField } from '@mui/x-date-pickers/DateTimeField'; -import { AdapterDateFnsJalali } from '@mui/x-date-pickers/AdapterDateFnsJalaliV3'; import { createPickerRenderer, expectFieldValueV7, describeJalaliAdapter, buildFieldInteractions, } from 'test/utils/pickers'; -import { enUS, faIR } from 'date-fns-jalali/locale'; +import { enUS, faIR } from 'date-fns-jalali-v3/locale'; import { AdapterFormats } from '@mui/x-date-pickers/models'; +import { AdapterDateFnsJalali } from '@mui/x-date-pickers/AdapterDateFnsJalaliV3'; + +vi.mock('date-fns-jalali/addSeconds', () => import('date-fns-jalali-v3/addSeconds')); +vi.mock('date-fns-jalali/addMinutes', () => import('date-fns-jalali-v3/addMinutes')); +vi.mock('date-fns-jalali/addHours', () => import('date-fns-jalali-v3/addHours')); +vi.mock('date-fns-jalali/addDays', () => import('date-fns-jalali-v3/addDays')); +vi.mock('date-fns-jalali/addWeeks', () => import('date-fns-jalali-v3/addWeeks')); +vi.mock('date-fns-jalali/addMonths', () => import('date-fns-jalali-v3/addMonths')); +vi.mock('date-fns-jalali/addYears', () => import('date-fns-jalali-v3/addYears')); +vi.mock('date-fns-jalali/endOfDay', () => import('date-fns-jalali-v3/endOfDay')); +vi.mock('date-fns-jalali/endOfWeek', () => import('date-fns-jalali-v3/endOfWeek')); +vi.mock('date-fns-jalali/endOfYear', () => import('date-fns-jalali-v3/endOfYear')); +vi.mock('date-fns-jalali/format', () => import('date-fns-jalali-v3/format')); +vi.mock('date-fns-jalali/getHours', () => import('date-fns-jalali-v3/getHours')); +vi.mock('date-fns-jalali/getSeconds', () => import('date-fns-jalali-v3/getSeconds')); +vi.mock('date-fns-jalali/getMilliseconds', () => import('date-fns-jalali-v3/getMilliseconds')); +vi.mock('date-fns-jalali/getWeek', () => import('date-fns-jalali-v3/getWeek')); +vi.mock('date-fns-jalali/getYear', () => import('date-fns-jalali-v3/getYear')); +vi.mock('date-fns-jalali/getMonth', () => import('date-fns-jalali-v3/getMonth')); +vi.mock('date-fns-jalali/getDate', () => import('date-fns-jalali-v3/getDate')); +vi.mock('date-fns-jalali/getDaysInMonth', () => import('date-fns-jalali-v3/getDaysInMonth')); +vi.mock('date-fns-jalali/getMinutes', () => import('date-fns-jalali-v3/getMinutes')); +vi.mock('date-fns-jalali/isAfter', () => import('date-fns-jalali-v3/isAfter')); +vi.mock('date-fns-jalali/isBefore', () => import('date-fns-jalali-v3/isBefore')); +vi.mock('date-fns-jalali/isEqual', () => import('date-fns-jalali-v3/isEqual')); +vi.mock('date-fns-jalali/isSameDay', () => import('date-fns-jalali-v3/isSameDay')); +vi.mock('date-fns-jalali/isSameYear', () => import('date-fns-jalali-v3/isSameYear')); +vi.mock('date-fns-jalali/isSameMonth', () => import('date-fns-jalali-v3/isSameMonth')); +vi.mock('date-fns-jalali/isSameHour', () => import('date-fns-jalali-v3/isSameHour')); +vi.mock('date-fns-jalali/isValid', () => import('date-fns-jalali-v3/isValid')); +vi.mock('date-fns-jalali/parse', () => import('date-fns-jalali-v3/parse')); +vi.mock('date-fns-jalali/setDate', () => import('date-fns-jalali-v3/setDate')); +vi.mock('date-fns-jalali/setHours', () => import('date-fns-jalali-v3/setHours')); +vi.mock('date-fns-jalali/setMinutes', () => import('date-fns-jalali-v3/setMinutes')); +vi.mock('date-fns-jalali/setMonth', () => import('date-fns-jalali-v3/setMonth')); +vi.mock('date-fns-jalali/setSeconds', () => import('date-fns-jalali-v3/setSeconds')); +vi.mock('date-fns-jalali/setMilliseconds', () => import('date-fns-jalali-v3/setMilliseconds')); +vi.mock('date-fns-jalali/setYear', () => import('date-fns-jalali-v3/setYear')); +vi.mock('date-fns-jalali/startOfDay', () => import('date-fns-jalali-v3/startOfDay')); +vi.mock('date-fns-jalali/startOfMonth', () => import('date-fns-jalali-v3/startOfMonth')); +vi.mock('date-fns-jalali/endOfMonth', () => import('date-fns-jalali-v3/endOfMonth')); +vi.mock('date-fns-jalali/startOfWeek', () => import('date-fns-jalali-v3/startOfWeek')); +vi.mock('date-fns-jalali/startOfYear', () => import('date-fns-jalali-v3/startOfYear')); +vi.mock('date-fns-jalali/isWithinInterval', () => import('date-fns-jalali-v3/isWithinInterval')); +vi.mock('date-fns-jalali/locale/fa-IR', () => import('date-fns-jalali-v3/locale/fa-IR')); + describe('', () => { describeJalaliAdapter(AdapterDateFnsJalali, {}); diff --git a/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.ts b/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.ts index 1dc566b74605f..f83e4a80f50bb 100644 --- a/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.ts +++ b/packages/x-date-pickers/src/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.ts @@ -46,7 +46,7 @@ import { isWithinInterval } from 'date-fns-jalali/isWithinInterval'; import { faIR as defaultLocale } from 'date-fns-jalali/locale/fa-IR'; // date-fns-jalali v2 does not export types // @ts-ignore TODO remove when date-fns-jalali-v3 is the default -import { Locale as DateFnsLocale } from 'date-fns-jalali/locale/types'; +import type { Locale as DateFnsLocale } from 'date-fns-jalali/locale/types'; import { AdapterFormats, AdapterOptions, MuiPickersAdapter } from '../models'; import { AdapterDateFnsBase } from '../AdapterDateFnsBase'; diff --git a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx index f84af39c4472e..019757d08a0ba 100644 --- a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx +++ b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx @@ -1,6 +1,51 @@ -import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'; import { describeGregorianAdapter } from 'test/utils/pickers/describeGregorianAdapter'; -import { fr } from 'date-fns/locale'; +import { fr } from 'date-fns-v3/locale'; + +import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'; + +vi.mock('date-fns/addSeconds', () => import('date-fns-v3/addSeconds')); +vi.mock('date-fns/addMinutes', () => import('date-fns-v3/addMinutes')); +vi.mock('date-fns/addHours', () => import('date-fns-v3/addHours')); +vi.mock('date-fns/addDays', () => import('date-fns-v3/addDays')); +vi.mock('date-fns/addWeeks', () => import('date-fns-v3/addWeeks')); +vi.mock('date-fns/addMonths', () => import('date-fns-v3/addMonths')); +vi.mock('date-fns/addYears', () => import('date-fns-v3/addYears')); +vi.mock('date-fns/endOfDay', () => import('date-fns-v3/endOfDay')); +vi.mock('date-fns/endOfWeek', () => import('date-fns-v3/endOfWeek')); +vi.mock('date-fns/endOfYear', () => import('date-fns-v3/endOfYear')); +vi.mock('date-fns/format', () => import('date-fns-v3/format')); +vi.mock('date-fns/getHours', () => import('date-fns-v3/getHours')); +vi.mock('date-fns/getSeconds', () => import('date-fns-v3/getSeconds')); +vi.mock('date-fns/getMilliseconds', () => import('date-fns-v3/getMilliseconds')); +vi.mock('date-fns/getWeek', () => import('date-fns-v3/getWeek')); +vi.mock('date-fns/getYear', () => import('date-fns-v3/getYear')); +vi.mock('date-fns/getMonth', () => import('date-fns-v3/getMonth')); +vi.mock('date-fns/getDate', () => import('date-fns-v3/getDate')); +vi.mock('date-fns/getDaysInMonth', () => import('date-fns-v3/getDaysInMonth')); +vi.mock('date-fns/getMinutes', () => import('date-fns-v3/getMinutes')); +vi.mock('date-fns/isAfter', () => import('date-fns-v3/isAfter')); +vi.mock('date-fns/isBefore', () => import('date-fns-v3/isBefore')); +vi.mock('date-fns/isEqual', () => import('date-fns-v3/isEqual')); +vi.mock('date-fns/isSameDay', () => import('date-fns-v3/isSameDay')); +vi.mock('date-fns/isSameYear', () => import('date-fns-v3/isSameYear')); +vi.mock('date-fns/isSameMonth', () => import('date-fns-v3/isSameMonth')); +vi.mock('date-fns/isSameHour', () => import('date-fns-v3/isSameHour')); +vi.mock('date-fns/isValid', () => import('date-fns-v3/isValid')); +vi.mock('date-fns/parse', () => import('date-fns-v3/parse')); +vi.mock('date-fns/setDate', () => import('date-fns-v3/setDate')); +vi.mock('date-fns/setHours', () => import('date-fns-v3/setHours')); +vi.mock('date-fns/setMinutes', () => import('date-fns-v3/setMinutes')); +vi.mock('date-fns/setMonth', () => import('date-fns-v3/setMonth')); +vi.mock('date-fns/setSeconds', () => import('date-fns-v3/setSeconds')); +vi.mock('date-fns/setMilliseconds', () => import('date-fns-v3/setMilliseconds')); +vi.mock('date-fns/setYear', () => import('date-fns-v3/setYear')); +vi.mock('date-fns/startOfDay', () => import('date-fns-v3/startOfDay')); +vi.mock('date-fns/startOfMonth', () => import('date-fns-v3/startOfMonth')); +vi.mock('date-fns/endOfMonth', () => import('date-fns-v3/endOfMonth')); +vi.mock('date-fns/startOfWeek', () => import('date-fns-v3/startOfWeek')); +vi.mock('date-fns/startOfYear', () => import('date-fns-v3/startOfYear')); +vi.mock('date-fns/isWithinInterval', () => import('date-fns-v3/isWithinInterval')); +vi.mock('date-fns/locale/en-US', () => import('date-fns-v3/locale/en-US')); describe('', () => { describeGregorianAdapter(AdapterDateFns, { diff --git a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.ts b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.ts index 9c5332b9e1fee..5fbc932b66be9 100644 --- a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.ts +++ b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.ts @@ -47,7 +47,7 @@ import { isWithinInterval } from 'date-fns/isWithinInterval'; import { enUS } from 'date-fns/locale/en-US'; // date-fns v2 does not export types // @ts-ignore TODO remove when date-fns-v3 is the default -import { Locale as DateFnsLocale } from 'date-fns/locale/types'; +import type { Locale as DateFnsLocale } from 'date-fns/locale/types'; import { AdapterFormats, AdapterOptions, MuiPickersAdapter } from '../models'; import { AdapterDateFnsBase } from '../AdapterDateFnsBase'; diff --git a/packages/x-date-pickers/tsconfig.build.json b/packages/x-date-pickers/tsconfig.build.json index 308d2110b536c..25e983d655ebb 100644 --- a/packages/x-date-pickers/tsconfig.build.json +++ b/packages/x-date-pickers/tsconfig.build.json @@ -10,6 +10,7 @@ "outDir": "build", "rootDir": "./src", "types": [ + "vitest/globals", "node", "@mui/material/themeCssVarsAugmentation", "dayjs/plugin/utc.d.ts", diff --git a/packages/x-date-pickers/tsconfig.json b/packages/x-date-pickers/tsconfig.json index 5f862d31ec2ba..4664bab602d7b 100644 --- a/packages/x-date-pickers/tsconfig.json +++ b/packages/x-date-pickers/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../../tsconfig.json", "compilerOptions": { "types": [ + "vitest/globals", "@mui/internal-test-utils/initMatchers", "@mui/material/themeCssVarsAugmentation", "chai-dom", diff --git a/test/setup.ts b/test/setup.ts index 9b1a10c68a9db..58e22ef960a41 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,4 +1,4 @@ -import { beforeAll, afterAll } from 'vitest'; +import { beforeAll, afterAll, vi } from 'vitest'; import 'test/utils/addChaiAssertions'; import 'test/utils/setupPickers'; import 'test/utils/licenseRelease'; @@ -8,6 +8,9 @@ globalThis.before = beforeAll; // @ts-ignore globalThis.after = afterAll; +// @ts-ignore +globalThis.vi = vi; + const isVitestJsdom = process.env.MUI_JSDOM === 'true'; // Only necessary when not in browser mode. diff --git a/test/utils/mochaHooks.js b/test/utils/mochaHooks.js index e7d0a9df9f613..28300ac5086a9 100644 --- a/test/utils/mochaHooks.js +++ b/test/utils/mochaHooks.js @@ -39,3 +39,9 @@ export function createXMochaHooks(coreMochaHooks = {}) { return mochaHooks; } + +// So we can mock files without having to have a global override in vitest +// eslint-disable-next-line no-undef +globalThis.vi = { + mock: () => {}, +}; diff --git a/vitest.config.mts b/vitest.config.mts index 81b3e7bd6ede7..456ad1884344d 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,5 +1,4 @@ import { defineConfig } from 'vitest/config'; -import path from 'path'; export default defineConfig({ resolve: { @@ -20,33 +19,6 @@ export default defineConfig({ find: '@mui/x-internals', replacement: new URL('./packages/x-internals/src', import.meta.url).pathname, }, - // Use built in replacements for date-fns and date-fns-jalali - { - find: 'date-fns', - replacement: 'date-fns-v3', - async customResolver(source, importer) { - if (importer?.includes('src/AdapterDateFnsV3')) { - const file = new URL(import.meta.resolve(source)).pathname; - return file; - } - const file = new URL(import.meta.resolve('date-fns')).pathname; - return file; - }, - }, - { - find: 'date-fns-jalali', - replacement: 'date-fns-jalali-v3', - customResolver(source, importer) { - if (importer?.includes('src/AdapterDateFnsJalaliV3')) { - const file = new URL(import.meta.resolve(source)).pathname; - console.log(source, file); - return file; - } - const file = new URL(import.meta.resolve(source.replace('-v3', ''))).pathname; - console.log(source, JSON.stringify(file)); - return file; - }, - }, { find: 'moment/locale', replacement: 'moment/dist/locale', From 493133d43dcd867e6992751d343eae472dced1c4 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 14:52:59 +0200 Subject: [PATCH 056/253] use datefnsv4 --- .../AdapterDateFnsV3.test.tsx | 88 +++++++++---------- pnpm-lock.yaml | 44 +++------- test/performance-charts/package.json | 2 +- 3 files changed, 59 insertions(+), 75 deletions(-) diff --git a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx index 019757d08a0ba..6277d9d46d63b 100644 --- a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx +++ b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx @@ -1,51 +1,51 @@ import { describeGregorianAdapter } from 'test/utils/pickers/describeGregorianAdapter'; -import { fr } from 'date-fns-v3/locale'; +import { fr } from 'date-fns-v4/locale'; import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'; -vi.mock('date-fns/addSeconds', () => import('date-fns-v3/addSeconds')); -vi.mock('date-fns/addMinutes', () => import('date-fns-v3/addMinutes')); -vi.mock('date-fns/addHours', () => import('date-fns-v3/addHours')); -vi.mock('date-fns/addDays', () => import('date-fns-v3/addDays')); -vi.mock('date-fns/addWeeks', () => import('date-fns-v3/addWeeks')); -vi.mock('date-fns/addMonths', () => import('date-fns-v3/addMonths')); -vi.mock('date-fns/addYears', () => import('date-fns-v3/addYears')); -vi.mock('date-fns/endOfDay', () => import('date-fns-v3/endOfDay')); -vi.mock('date-fns/endOfWeek', () => import('date-fns-v3/endOfWeek')); -vi.mock('date-fns/endOfYear', () => import('date-fns-v3/endOfYear')); -vi.mock('date-fns/format', () => import('date-fns-v3/format')); -vi.mock('date-fns/getHours', () => import('date-fns-v3/getHours')); -vi.mock('date-fns/getSeconds', () => import('date-fns-v3/getSeconds')); -vi.mock('date-fns/getMilliseconds', () => import('date-fns-v3/getMilliseconds')); -vi.mock('date-fns/getWeek', () => import('date-fns-v3/getWeek')); -vi.mock('date-fns/getYear', () => import('date-fns-v3/getYear')); -vi.mock('date-fns/getMonth', () => import('date-fns-v3/getMonth')); -vi.mock('date-fns/getDate', () => import('date-fns-v3/getDate')); -vi.mock('date-fns/getDaysInMonth', () => import('date-fns-v3/getDaysInMonth')); -vi.mock('date-fns/getMinutes', () => import('date-fns-v3/getMinutes')); -vi.mock('date-fns/isAfter', () => import('date-fns-v3/isAfter')); -vi.mock('date-fns/isBefore', () => import('date-fns-v3/isBefore')); -vi.mock('date-fns/isEqual', () => import('date-fns-v3/isEqual')); -vi.mock('date-fns/isSameDay', () => import('date-fns-v3/isSameDay')); -vi.mock('date-fns/isSameYear', () => import('date-fns-v3/isSameYear')); -vi.mock('date-fns/isSameMonth', () => import('date-fns-v3/isSameMonth')); -vi.mock('date-fns/isSameHour', () => import('date-fns-v3/isSameHour')); -vi.mock('date-fns/isValid', () => import('date-fns-v3/isValid')); -vi.mock('date-fns/parse', () => import('date-fns-v3/parse')); -vi.mock('date-fns/setDate', () => import('date-fns-v3/setDate')); -vi.mock('date-fns/setHours', () => import('date-fns-v3/setHours')); -vi.mock('date-fns/setMinutes', () => import('date-fns-v3/setMinutes')); -vi.mock('date-fns/setMonth', () => import('date-fns-v3/setMonth')); -vi.mock('date-fns/setSeconds', () => import('date-fns-v3/setSeconds')); -vi.mock('date-fns/setMilliseconds', () => import('date-fns-v3/setMilliseconds')); -vi.mock('date-fns/setYear', () => import('date-fns-v3/setYear')); -vi.mock('date-fns/startOfDay', () => import('date-fns-v3/startOfDay')); -vi.mock('date-fns/startOfMonth', () => import('date-fns-v3/startOfMonth')); -vi.mock('date-fns/endOfMonth', () => import('date-fns-v3/endOfMonth')); -vi.mock('date-fns/startOfWeek', () => import('date-fns-v3/startOfWeek')); -vi.mock('date-fns/startOfYear', () => import('date-fns-v3/startOfYear')); -vi.mock('date-fns/isWithinInterval', () => import('date-fns-v3/isWithinInterval')); -vi.mock('date-fns/locale/en-US', () => import('date-fns-v3/locale/en-US')); +vi.mock('date-fns/addSeconds', () => import('date-fns-v4/addSeconds')); +vi.mock('date-fns/addMinutes', () => import('date-fns-v4/addMinutes')); +vi.mock('date-fns/addHours', () => import('date-fns-v4/addHours')); +vi.mock('date-fns/addDays', () => import('date-fns-v4/addDays')); +vi.mock('date-fns/addWeeks', () => import('date-fns-v4/addWeeks')); +vi.mock('date-fns/addMonths', () => import('date-fns-v4/addMonths')); +vi.mock('date-fns/addYears', () => import('date-fns-v4/addYears')); +vi.mock('date-fns/endOfDay', () => import('date-fns-v4/endOfDay')); +vi.mock('date-fns/endOfWeek', () => import('date-fns-v4/endOfWeek')); +vi.mock('date-fns/endOfYear', () => import('date-fns-v4/endOfYear')); +vi.mock('date-fns/format', () => import('date-fns-v4/format')); +vi.mock('date-fns/getHours', () => import('date-fns-v4/getHours')); +vi.mock('date-fns/getSeconds', () => import('date-fns-v4/getSeconds')); +vi.mock('date-fns/getMilliseconds', () => import('date-fns-v4/getMilliseconds')); +vi.mock('date-fns/getWeek', () => import('date-fns-v4/getWeek')); +vi.mock('date-fns/getYear', () => import('date-fns-v4/getYear')); +vi.mock('date-fns/getMonth', () => import('date-fns-v4/getMonth')); +vi.mock('date-fns/getDate', () => import('date-fns-v4/getDate')); +vi.mock('date-fns/getDaysInMonth', () => import('date-fns-v4/getDaysInMonth')); +vi.mock('date-fns/getMinutes', () => import('date-fns-v4/getMinutes')); +vi.mock('date-fns/isAfter', () => import('date-fns-v4/isAfter')); +vi.mock('date-fns/isBefore', () => import('date-fns-v4/isBefore')); +vi.mock('date-fns/isEqual', () => import('date-fns-v4/isEqual')); +vi.mock('date-fns/isSameDay', () => import('date-fns-v4/isSameDay')); +vi.mock('date-fns/isSameYear', () => import('date-fns-v4/isSameYear')); +vi.mock('date-fns/isSameMonth', () => import('date-fns-v4/isSameMonth')); +vi.mock('date-fns/isSameHour', () => import('date-fns-v4/isSameHour')); +vi.mock('date-fns/isValid', () => import('date-fns-v4/isValid')); +vi.mock('date-fns/parse', () => import('date-fns-v4/parse')); +vi.mock('date-fns/setDate', () => import('date-fns-v4/setDate')); +vi.mock('date-fns/setHours', () => import('date-fns-v4/setHours')); +vi.mock('date-fns/setMinutes', () => import('date-fns-v4/setMinutes')); +vi.mock('date-fns/setMonth', () => import('date-fns-v4/setMonth')); +vi.mock('date-fns/setSeconds', () => import('date-fns-v4/setSeconds')); +vi.mock('date-fns/setMilliseconds', () => import('date-fns-v4/setMilliseconds')); +vi.mock('date-fns/setYear', () => import('date-fns-v4/setYear')); +vi.mock('date-fns/startOfDay', () => import('date-fns-v4/startOfDay')); +vi.mock('date-fns/startOfMonth', () => import('date-fns-v4/startOfMonth')); +vi.mock('date-fns/endOfMonth', () => import('date-fns-v4/endOfMonth')); +vi.mock('date-fns/startOfWeek', () => import('date-fns-v4/startOfWeek')); +vi.mock('date-fns/startOfYear', () => import('date-fns-v4/startOfYear')); +vi.mock('date-fns/isWithinInterval', () => import('date-fns-v4/isWithinInterval')); +vi.mock('date-fns/locale/en-US', () => import('date-fns-v4/locale/en-US')); describe('', () => { describeGregorianAdapter(AdapterDateFns, { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9d6713ced3f6..7152c9fcab2ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -400,7 +400,7 @@ importers: version: 0.12.5 vitest: specifier: 2.1.2 - version: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) + version: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.2)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) webpack: specifier: ^5.95.0 version: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) @@ -1652,8 +1652,8 @@ importers: specifier: ^3.7.0 version: 3.7.0(@swc/helpers@0.5.5)(vite@5.3.4(@types/node@20.16.11)(terser@5.27.0)) '@vitest/ui': - specifier: 2.1.1 - version: 2.1.1(vitest@2.1.2) + specifier: 2.1.2 + version: 2.1.2(vitest@2.1.2) jsdom: specifier: ^24.1.3 version: 24.1.3 @@ -1665,7 +1665,7 @@ importers: version: 18.3.1(react@18.3.1) vitest: specifier: 2.1.2 - version: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) + version: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.2)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) packages: @@ -4622,9 +4622,6 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.1': - resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} - '@vitest/pretty-format@2.1.2': resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==} @@ -4637,13 +4634,10 @@ packages: '@vitest/spy@2.1.2': resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==} - '@vitest/ui@2.1.1': - resolution: {integrity: sha512-IIxo2LkQDA+1TZdPLYPclzsXukBWd5dX2CKpGqH8CCt8Wh0ZuDn4+vuQ9qlppEju6/igDGzjWF/zyorfsf+nHg==} + '@vitest/ui@2.1.2': + resolution: {integrity: sha512-92gcNzkDnmxOxyHzQrQYRsoV9Q0Aay0r4QMLnV+B+lbqlUWa8nDg9ivyLV5mMVTtGirHsYUGGh/zbIA55gBZqA==} peerDependencies: - vitest: 2.1.1 - - '@vitest/utils@2.1.1': - resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} + vitest: 2.1.2 '@vitest/utils@2.1.2': resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} @@ -11880,7 +11874,7 @@ snapshots: dependencies: '@codspeed/core': 3.1.1 vite: 5.3.4(@types/node@20.16.11)(terser@5.27.0) - vitest: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) + vitest: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.2)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) transitivePeerDependencies: - debug @@ -14061,7 +14055,7 @@ snapshots: msw: 2.4.4(typescript@5.6.2) sirv: 2.0.4 tinyrainbow: 1.2.0 - vitest: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) + vitest: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.2)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) ws: 8.18.0 optionalDependencies: playwright: 1.44.1 @@ -14088,10 +14082,6 @@ snapshots: msw: 2.4.4(typescript@5.6.2) vite: 5.3.4(@types/node@20.16.11)(terser@5.27.0) - '@vitest/pretty-format@2.1.1': - dependencies: - tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.1.2': dependencies: tinyrainbow: 1.2.0 @@ -14111,22 +14101,16 @@ snapshots: dependencies: tinyspy: 3.0.0 - '@vitest/ui@2.1.1(vitest@2.1.2)': + '@vitest/ui@2.1.2(vitest@2.1.2)': dependencies: - '@vitest/utils': 2.1.1 + '@vitest/utils': 2.1.2 fflate: 0.8.2 flatted: 3.3.1 pathe: 1.1.2 sirv: 2.0.4 tinyglobby: 0.2.9 tinyrainbow: 1.2.0 - vitest: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) - - '@vitest/utils@2.1.1': - dependencies: - '@vitest/pretty-format': 2.1.1 - loupe: 3.1.1 - tinyrainbow: 1.2.0 + vitest: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.2)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) '@vitest/utils@2.1.2': dependencies: @@ -20783,7 +20767,7 @@ snapshots: fsevents: 2.3.3 terser: 5.27.0 - vitest@2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.1)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0): + vitest@2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.2)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0): dependencies: '@vitest/expect': 2.1.2 '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.4(typescript@5.6.2))(vite@5.3.4(@types/node@20.16.11)(terser@5.27.0)) @@ -20807,7 +20791,7 @@ snapshots: optionalDependencies: '@types/node': 20.16.11 '@vitest/browser': 2.1.2(@vitest/spy@2.1.2)(playwright@1.44.1)(typescript@5.6.2)(vite@5.3.4(@types/node@20.16.11)(terser@5.27.0))(vitest@2.1.2) - '@vitest/ui': 2.1.1(vitest@2.1.2) + '@vitest/ui': 2.1.2(vitest@2.1.2) jsdom: 24.1.3 transitivePeerDependencies: - less diff --git a/test/performance-charts/package.json b/test/performance-charts/package.json index 647abe1f2ef4a..b6dbaf7360fdf 100644 --- a/test/performance-charts/package.json +++ b/test/performance-charts/package.json @@ -16,7 +16,7 @@ "@testing-library/user-event": "^14.5.2", "@vitejs/plugin-react": "^4.3.1", "@vitejs/plugin-react-swc": "^3.7.0", - "@vitest/ui": "2.1.1", + "@vitest/ui": "2.1.2", "jsdom": "^24.1.3", "react": "^18.3.1", "react-dom": "^18.3.1", From f338a122f03cb5bfe90b9a20cbc52f86c887edd4 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 14:56:07 +0200 Subject: [PATCH 057/253] dedupe --- pnpm-lock.yaml | 694 +++++++------------------------------------------ 1 file changed, 91 insertions(+), 603 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7152c9fcab2ab..db4d09856ae16 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -403,7 +403,7 @@ importers: version: 2.1.2(@types/node@20.16.11)(@vitest/browser@2.1.2)(@vitest/ui@2.1.2)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.2))(terser@5.27.0) webpack: specifier: ^5.95.0 - version: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + version: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -704,7 +704,7 @@ importers: version: 4.2.6 '@types/webpack-bundle-analyzer': specifier: ^4.7.0 - version: 4.7.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + version: 4.7.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) gm: specifier: ^1.25.0 version: 1.25.0 @@ -1776,18 +1776,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.25.7': resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.7': resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} @@ -1796,18 +1788,10 @@ packages: resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.25.7': resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} - engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.7': resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} engines: {node: '>=6.9.0'} @@ -1816,32 +1800,16 @@ packages: resolution: {integrity: sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.7': resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.4': - resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.25.7': resolution: {integrity: sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.2': - resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.7': resolution: {integrity: sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==} engines: {node: '>=6.9.0'} @@ -1853,46 +1821,24 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-member-expression-to-functions@7.24.8': - resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.25.7': resolution: {integrity: sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.7': resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.25.7': resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} - engines: {node: '>=6.9.0'} - '@babel/helper-optimise-call-expression@7.25.7': resolution: {integrity: sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.25.7': resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} @@ -1903,54 +1849,28 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.0': - resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.7': resolution: {integrity: sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.25.7': resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.25.7': resolution: {integrity: sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.7': resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.7': resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.7': resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} @@ -1963,10 +1883,6 @@ packages: resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - '@babel/highlight@7.25.7': resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} @@ -1978,11 +1894,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.25.7': resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} @@ -2085,12 +1996,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.7': resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} @@ -2181,12 +2086,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.4': - resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.7': resolution: {integrity: sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==} engines: {node: '>=6.9.0'} @@ -2301,12 +2200,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.25.7': resolution: {integrity: sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==} engines: {node: '>=6.9.0'} @@ -2337,12 +2230,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': - resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.7': resolution: {integrity: sha512-FbuJ63/4LEL32mIxrxwYaqjJxpbzxPVQj5a+Ebrc8JICV6YX8nE53jY+K0RZT3um56GoNWgkS2BQ/uLGTjtwfw==} engines: {node: '>=6.9.0'} @@ -2373,12 +2260,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.8': - resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.7': resolution: {integrity: sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==} engines: {node: '>=6.9.0'} @@ -2391,12 +2272,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.4': - resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.7': resolution: {integrity: sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==} engines: {node: '>=6.9.0'} @@ -2564,21 +2439,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/register@7.24.6': - resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/register@7.25.7': resolution: {integrity: sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - '@babel/runtime-corejs2@7.25.7': resolution: {integrity: sha512-xdsLBlDCJIZzwH1fBJ7GJu+bRFO0Sqv10WotmwMu83Joep1erPcWbTr84rZD42kPzSjtmrFgshdWHKfQTWOsng==} engines: {node: '>=6.9.0'} @@ -2587,10 +2453,6 @@ packages: resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} - engines: {node: '>=6.9.0'} - '@babel/template@7.25.7': resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} @@ -2599,10 +2461,6 @@ packages: resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} - engines: {node: '>=6.9.0'} - '@babel/types@7.25.7': resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} @@ -3265,7 +3123,7 @@ packages: resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 + '@types/react': ^18.3.4 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -5127,10 +4985,6 @@ packages: bluebird@3.4.7: resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - body-parser@1.20.3: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -5158,11 +5012,6 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.24.0: resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -5254,9 +5103,6 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001647: - resolution: {integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==} - caniuse-lite@1.0.30001667: resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} @@ -6015,9 +5861,6 @@ packages: electron-to-chromium@1.5.33: resolution: {integrity: sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==} - electron-to-chromium@1.5.4: - resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -6579,10 +6422,6 @@ packages: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} engines: {node: '>=8.0.0'} - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -7441,15 +7280,6 @@ packages: canvas: optional: true - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -8134,10 +7964,6 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -8758,9 +8584,6 @@ packages: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} @@ -8978,14 +8801,6 @@ packages: resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} engines: {node: '>=0.9'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} - engines: {node: '>=0.6'} - qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} @@ -9153,10 +8968,6 @@ packages: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -9177,10 +8988,6 @@ packages: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - regexpu-core@6.1.1: resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} engines: {node: '>=4'} @@ -9199,10 +9006,6 @@ packages: resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==} hasBin: true - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} @@ -9529,10 +9332,6 @@ packages: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -10335,16 +10134,6 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.94.0: - resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack@5.95.0: resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} engines: {node: '>=10.13.0'} @@ -10753,17 +10542,10 @@ snapshots: '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 chokidar: 3.6.0 - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 - '@babel/code-frame@7.25.7': dependencies: '@babel/highlight': 7.25.7 - picocolors: 1.0.1 - - '@babel/compat-data@7.25.4': {} + picocolors: 1.1.0 '@babel/compat-data@7.25.7': {} @@ -10787,13 +10569,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.25.6': - dependencies: - '@babel/types': 7.25.7 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - '@babel/generator@7.25.7': dependencies: '@babel/types': 7.25.7 @@ -10801,10 +10576,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.24.7': - dependencies: - '@babel/types': 7.25.7 - '@babel/helper-annotate-as-pure@7.25.7': dependencies: '@babel/types': 7.25.7 @@ -10816,14 +10587,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-compilation-targets@7.25.2': - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 - '@babel/helper-compilation-targets@7.25.7': dependencies: '@babel/compat-data': 7.25.7 @@ -10832,19 +10595,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.7 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -10858,13 +10608,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -10875,7 +10618,7 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 debug: 4.3.6(supports-color@8.1.1) lodash.debounce: 4.0.8 @@ -10883,13 +10626,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.24.8': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-member-expression-to-functions@7.25.7': dependencies: '@babel/traverse': 7.25.7 @@ -10897,13 +10633,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-imports@7.25.7': dependencies: '@babel/traverse': 7.25.7 @@ -10911,16 +10640,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -10931,16 +10650,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.24.7': - dependencies: - '@babel/types': 7.25.7 - '@babel/helper-optimise-call-expression@7.25.7': dependencies: '@babel/types': 7.25.7 - '@babel/helper-plugin-utils@7.24.8': {} - '@babel/helper-plugin-utils@7.25.7': {} '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.25.7)': @@ -10952,15 +10665,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -10970,13 +10674,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-simple-access@7.25.7': dependencies: '@babel/traverse': 7.25.7 @@ -10984,13 +10681,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.25.7': dependencies: '@babel/traverse': 7.25.7 @@ -10998,16 +10688,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.24.8': {} - '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-option@7.24.8': {} - '@babel/helper-validator-option@7.25.7': {} '@babel/helper-wrap-function@7.25.7': @@ -11023,19 +10707,12 @@ snapshots: '@babel/template': 7.25.7 '@babel/types': 7.25.7 - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - '@babel/highlight@7.25.7': dependencies: '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/node@7.25.7(@babel/core@7.25.7)': dependencies: @@ -11047,10 +10724,6 @@ snapshots: regenerator-runtime: 0.14.1 v8flags: 3.2.0 - '@babel/parser@7.25.6': - dependencies: - '@babel/types': 7.25.7 - '@babel/parser@7.25.7': dependencies: '@babel/types': 7.25.7 @@ -11093,8 +10766,8 @@ snapshots: '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.7) + '@babel/helper-plugin-utils': 7.25.7 transitivePeerDependencies: - supports-color @@ -11110,7 +10783,7 @@ snapshots: '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.7)': dependencies: @@ -11130,7 +10803,7 @@ snapshots: '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-import-assertions@7.25.7(@babel/core@7.25.7)': dependencies: @@ -11152,11 +10825,6 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -11170,7 +10838,7 @@ snapshots: '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.7)': dependencies: @@ -11190,7 +10858,7 @@ snapshots: '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.7)': dependencies: @@ -11210,7 +10878,7 @@ snapshots: '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.7) + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-arrow-functions@7.25.7(@babel/core@7.25.7)': @@ -11247,14 +10915,6 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-class-properties@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -11335,7 +10995,7 @@ snapshots: '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.7) '@babel/plugin-transform-for-of@7.25.7(@babel/core@7.25.7)': @@ -11385,15 +11045,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-commonjs@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -11432,12 +11083,6 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-nullish-coalescing-operator@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -11472,15 +11117,6 @@ snapshots: '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-optional-chaining@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -11495,14 +11131,6 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.7) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-private-methods@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -11546,12 +11174,12 @@ snapshots: '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.7)': dependencies: @@ -11747,8 +11375,8 @@ snapshots: '@babel/preset-flow@7.24.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-option': 7.25.7 '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.25.7) '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.7)': @@ -11781,15 +11409,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/register@7.24.6(@babel/core@7.25.7)': - dependencies: - '@babel/core': 7.25.7 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - '@babel/register@7.25.7(@babel/core@7.25.7)': dependencies: '@babel/core': 7.25.7 @@ -11799,8 +11418,6 @@ snapshots: pirates: 4.0.6 source-map-support: 0.5.21 - '@babel/regjsgen@0.8.0': {} - '@babel/runtime-corejs2@7.25.7': dependencies: core-js: 2.6.12 @@ -11810,12 +11427,6 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.0': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.7 - '@babel/template@7.25.7': dependencies: '@babel/code-frame': 7.25.7 @@ -11834,12 +11445,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.25.6': - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - '@babel/types@7.25.7': dependencies: '@babel/helper-string-parser': 7.25.7 @@ -11905,7 +11510,7 @@ snapshots: '@emotion/babel-plugin@11.12.0': dependencies: - '@babel/helper-module-imports': 7.24.7 + '@babel/helper-module-imports': 7.25.7 '@babel/runtime': 7.25.7 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 @@ -12212,12 +11817,12 @@ snapshots: '@gitbeaker/core@38.12.1': dependencies: '@gitbeaker/requester-utils': 38.12.1 - qs: 6.11.2 + qs: 6.13.0 xcase: 2.0.1 '@gitbeaker/requester-utils@38.12.1': dependencies: - qs: 6.11.2 + qs: 6.13.0 xcase: 2.0.1 '@gitbeaker/rest@38.12.1': @@ -12551,7 +12156,7 @@ snapshots: dependencies: '@babel/core': 7.25.7 '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.7) + '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.7) '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.7) '@babel/types': 7.25.7 '@mui/internal-docs-utils': 1.0.14 @@ -12564,9 +12169,9 @@ snapshots: '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) - '@babel/register': 7.24.6(@babel/core@7.25.7) + '@babel/register': 7.25.7(@babel/core@7.25.7) '@babel/runtime': 7.25.7 '@emotion/cache': 11.13.1 '@emotion/react': 11.13.3(@types/react@18.3.4)(react@18.3.1) @@ -13579,7 +13184,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@babel/runtime': 7.25.7 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -13625,7 +13230,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.6 + '@babel/parser': 7.25.7 '@babel/types': 7.25.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -13637,7 +13242,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.6 + '@babel/parser': 7.25.7 '@babel/types': 7.25.7 '@types/babel__traverse@7.20.6': @@ -13880,11 +13485,11 @@ snapshots: '@types/unist@3.0.3': {} - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4)': + '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))': dependencies: '@types/node': 20.16.11 tapable: 2.2.1 - webpack: 5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -14194,19 +13799,19 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.95.0)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.95.0)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.95.0)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) '@xtuc/ieee754@1.2.0': {} @@ -14547,11 +14152,11 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.47): dependencies: - browserslist: 4.23.3 - caniuse-lite: 1.0.30001647 + browserslist: 4.24.0 + caniuse-lite: 1.0.30001667 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 postcss: 8.4.47 postcss-value-parser: 4.2.0 @@ -14576,11 +14181,11 @@ snapshots: '@babel/core': 7.25.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) babel-plugin-istanbul@7.0.0: dependencies: - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 6.0.2 @@ -14604,16 +14209,16 @@ snapshots: babel-plugin-optimize-clsx@2.6.2: dependencies: - '@babel/generator': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/generator': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 find-cache-dir: 3.3.2 lodash: 4.17.21 object-hash: 2.2.0 babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.25.7): dependencies: - '@babel/compat-data': 7.25.4 + '@babel/compat-data': 7.25.7 '@babel/core': 7.25.7 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.7) semver: 6.3.1 @@ -14696,23 +14301,6 @@ snapshots: bluebird@3.4.7: {} - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - body-parser@1.20.3: dependencies: bytes: 3.1.2 @@ -14760,13 +14348,6 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.23.3: - dependencies: - caniuse-lite: 1.0.30001647 - electron-to-chromium: 1.5.4 - node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) - browserslist@4.24.0: dependencies: caniuse-lite: 1.0.30001667 @@ -14824,7 +14405,7 @@ snapshots: fs-minipass: 3.0.3 glob: 10.3.10 lru-cache: 10.4.3 - minipass: 7.0.4 + minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -14869,8 +14450,6 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001647: {} - caniuse-lite@1.0.30001667: {} chai-dom@1.12.0(chai@4.5.0): @@ -15101,7 +14680,7 @@ snapshots: dependencies: schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) compression@1.7.4: dependencies: @@ -15226,7 +14805,7 @@ snapshots: core-js-compat@3.38.1: dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 core-js@2.6.12: {} @@ -15669,8 +15248,6 @@ snapshots: electron-to-chromium@1.5.33: {} - electron-to-chromium@1.5.4: {} - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -15976,7 +15553,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) transitivePeerDependencies: - supports-color @@ -16085,7 +15662,7 @@ snapshots: eslint-plugin-react-compiler@0.0.0-experimental-9ed098e-20240725(eslint@8.57.1): dependencies: '@babel/core': 7.25.7 - '@babel/parser': 7.25.6 + '@babel/parser': 7.25.7 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.25.7) eslint: 8.57.1 hermes-parser: 0.20.1 @@ -16510,11 +16087,6 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 3.0.7 - foreground-child@3.1.1: - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 @@ -16564,7 +16136,7 @@ snapshots: fs-minipass@3.0.3: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 fs-readdir-recursive@1.1.0: {} @@ -16713,15 +16285,15 @@ snapshots: glob@10.3.10: dependencies: - foreground-child: 3.1.1 + foreground-child: 3.3.0 jackspeak: 2.3.6 minimatch: 9.0.4 - minipass: 7.0.4 + minipass: 7.1.2 path-scurry: 1.10.1 glob@11.0.0: dependencies: - foreground-child: 3.1.1 + foreground-child: 3.3.0 jackspeak: 4.0.2 minimatch: 10.0.1 minipass: 7.1.2 @@ -16822,7 +16394,7 @@ snapshots: extend: 3.0.2 gaxios: 6.1.1(encoding@0.1.13) google-auth-library: 9.14.1(encoding@0.1.13) - qs: 6.11.2 + qs: 6.13.0 url-template: 2.0.8 uuid: 9.0.1 transitivePeerDependencies: @@ -16955,7 +16527,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) htmlparser2@6.1.0: dependencies: @@ -17302,7 +16874,7 @@ snapshots: istanbul-lib-instrument@6.0.2: dependencies: '@babel/core': 7.25.7 - '@babel/parser': 7.25.6 + '@babel/parser': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -17417,20 +16989,20 @@ snapshots: jscodeshift@17.0.0(@babel/preset-env@7.25.7(@babel/core@7.25.7)): dependencies: '@babel/core': 7.25.7 - '@babel/parser': 7.25.6 - '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.7) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.7) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.7) - '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.7) + '@babel/parser': 7.25.7 + '@babel/plugin-transform-class-properties': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-optional-chaining': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.7) '@babel/preset-flow': 7.24.7(@babel/core@7.25.7) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) - '@babel/register': 7.24.6(@babel/core@7.25.7) + '@babel/register': 7.25.7(@babel/core@7.25.7) flow-parser: 0.227.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 - picocolors: 1.0.1 + picocolors: 1.1.0 recast: 0.23.9 temp: 0.9.4 write-file-atomic: 5.0.1 @@ -17469,10 +17041,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@0.5.0: {} - - jsesc@2.5.2: {} - jsesc@3.0.2: {} json-bigint@1.0.0: @@ -17657,13 +17225,13 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 9.0.4 - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-merge: 4.2.2 karma@6.4.4: dependencies: '@colors/colors': 1.5.0 - body-parser: 1.20.2 + body-parser: 1.20.3 braces: 3.0.3 chokidar: 3.6.0 connect: 3.7.0 @@ -18039,7 +17607,7 @@ snapshots: cacache: 18.0.3 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 - minipass: 7.0.4 + minipass: 7.1.2 minipass-fetch: 3.0.4 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -18357,11 +17925,11 @@ snapshots: minipass-collect@2.0.1: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 minipass-fetch@3.0.4: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: @@ -18387,8 +17955,6 @@ snapshots: minipass@5.0.0: {} - minipass@7.0.4: {} - minipass@7.1.2: {} minizlib@2.1.2: @@ -18514,7 +18080,7 @@ snapshots: '@next/env': 14.2.14 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001647 + caniuse-lite: 1.0.30001667 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -18662,7 +18228,7 @@ snapshots: '@npmcli/redact': 2.0.1 jsonparse: 1.3.1 make-fetch-happen: 13.0.0 - minipass: 7.0.4 + minipass: 7.1.2 minipass-fetch: 3.0.4 minizlib: 2.1.2 npm-package-arg: 11.0.2 @@ -19012,7 +18578,7 @@ snapshots: '@npmcli/run-script': 8.1.0 cacache: 18.0.3 fs-minipass: 3.0.3 - minipass: 7.0.4 + minipass: 7.1.2 npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-pick-manifest: 9.0.1 @@ -19065,7 +18631,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19116,7 +18682,7 @@ snapshots: path-scurry@1.10.1: dependencies: lru-cache: 10.4.3 - minipass: 7.0.4 + minipass: 7.1.2 path-scurry@2.0.0: dependencies: @@ -19145,8 +18711,6 @@ snapshots: pathval@2.0.0: {} - picocolors@1.0.1: {} - picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -19203,14 +18767,14 @@ snapshots: postcss@8.4.31: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 postcss@8.4.38: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 postcss@8.4.47: dependencies: @@ -19255,7 +18819,7 @@ snapshots: find-up: 5.0.0 ignore: 5.3.1 mri: 1.2.0 - picocolors: 1.0.1 + picocolors: 1.1.0 picomatch: 3.0.1 prettier: 3.3.3 tslib: 2.6.2 @@ -19332,14 +18896,6 @@ snapshots: qjobs@1.2.0: {} - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - - qs@6.11.2: - dependencies: - side-channel: 1.0.6 - qs@6.13.0: dependencies: side-channel: 1.0.6 @@ -19377,7 +18933,7 @@ snapshots: react-docgen@5.4.3: dependencies: '@babel/core': 7.25.7 - '@babel/generator': 7.25.6 + '@babel/generator': 7.25.7 '@babel/runtime': 7.25.7 ast-types: 0.14.2 commander: 2.20.3 @@ -19544,10 +19100,6 @@ snapshots: globalthis: 1.0.3 which-builtin-type: 1.1.3 - regenerate-unicode-properties@10.1.1: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -19569,15 +19121,6 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 - regexpu-core@5.3.2: - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - regexpu-core@6.1.1: dependencies: regenerate: 1.4.2 @@ -19602,10 +19145,6 @@ snapshots: dependencies: jsesc: 3.0.2 - regjsparser@0.9.1: - dependencies: - jsesc: 0.5.0 - relateurl@0.2.7: {} release-zalgo@1.0.0: @@ -20032,8 +19571,6 @@ snapshots: dependencies: is-plain-obj: 1.1.0 - source-map-js@1.2.0: {} - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -20090,7 +19627,7 @@ snapshots: ssri@10.0.6: dependencies: - minipass: 7.0.4 + minipass: 7.1.2 stackback@0.0.2: {} @@ -20125,7 +19662,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) string-width@4.2.3: dependencies: @@ -20324,17 +19861,6 @@ snapshots: mkdirp: 0.5.6 rimraf: 2.6.3 - terser-webpack-plugin@5.3.10(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack@5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.27.0 - webpack: 5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) - optionalDependencies: - '@swc/core': 1.6.13(@swc/helpers@0.5.5) - terser-webpack-plugin@5.3.10(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack@5.95.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -20342,7 +19868,7 @@ snapshots: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) optionalDependencies: '@swc/core': 1.6.13(@swc/helpers@0.5.5) @@ -20660,17 +20186,11 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.0(browserslist@4.23.3): - dependencies: - browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 - update-browserslist-db@1.1.0(browserslist@4.24.0): dependencies: browserslist: 4.24.0 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 update-check@1.5.4: dependencies: @@ -20835,7 +20355,7 @@ snapshots: gzip-size: 6.0.0 html-escaper: 2.0.2 opener: 1.5.2 - picocolors: 1.0.1 + picocolors: 1.1.0 sirv: 2.0.4 ws: 7.5.9 transitivePeerDependencies: @@ -20845,9 +20365,9 @@ snapshots: webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.95.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.95.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.95.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -20856,7 +20376,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20873,7 +20393,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4): + webpack@5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)): dependencies: '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 @@ -20881,39 +20401,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.1 acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.3 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack@5.94.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4)) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - optionalDependencies: - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.95.0(@swc/core@1.6.13(@swc/helpers@0.5.5))(webpack-cli@5.1.4): - dependencies: - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.23.3 + browserslist: 4.24.0 chrome-trace-event: 1.0.3 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 From 66c410ec6457edca277c69485399438f5247ccc1 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 15:28:34 +0200 Subject: [PATCH 058/253] try fixing babelconfig --- babel.config.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/babel.config.js b/babel.config.js index c5948a3c53c04..6f80f40876ba6 100644 --- a/babel.config.js +++ b/babel.config.js @@ -110,8 +110,8 @@ module.exports = function getBabelConfig(api) { plugins.push([ 'babel-plugin-replace-imports', { - test: /date-fns/i, - replacer: 'date-fns-v4', + test: /date-fns\//i, + replacer: 'date-fns-v4/', // This option is provided by the `patches/babel-plugin-replace-imports@1.0.2.patch` patch filenameIncludes: 'src/AdapterDateFnsV3/', }, @@ -119,8 +119,8 @@ module.exports = function getBabelConfig(api) { plugins.push([ 'babel-plugin-replace-imports', { - test: /date-fns-jalali/i, - replacer: 'date-fns-jalali-v3', + test: /date-fns-jalali\//i, + replacer: 'date-fns-jalali-v3/', // This option is provided by the `patches/babel-plugin-replace-imports@1.0.2.patch` patch filenameIncludes: 'src/AdapterDateFnsJalaliV3/', }, From 94b444350709e0763acef112fc56020c2df38b66 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 16:03:34 +0200 Subject: [PATCH 059/253] fix typescript --- .../src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx | 7 +++++++ packages/x-date-pickers/tsconfig.build.json | 1 - packages/x-date-pickers/tsconfig.json | 1 - test/utils/pickers/createPickerRenderer.tsx | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx index 6277d9d46d63b..1140863221fe8 100644 --- a/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx +++ b/packages/x-date-pickers/src/AdapterDateFnsV3/AdapterDateFnsV3.test.tsx @@ -3,6 +3,13 @@ import { fr } from 'date-fns-v4/locale'; import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3'; +// TODO: remove when we migrate to vitest +declare global { + const vi: { + mock: any; + }; +} + vi.mock('date-fns/addSeconds', () => import('date-fns-v4/addSeconds')); vi.mock('date-fns/addMinutes', () => import('date-fns-v4/addMinutes')); vi.mock('date-fns/addHours', () => import('date-fns-v4/addHours')); diff --git a/packages/x-date-pickers/tsconfig.build.json b/packages/x-date-pickers/tsconfig.build.json index 25e983d655ebb..308d2110b536c 100644 --- a/packages/x-date-pickers/tsconfig.build.json +++ b/packages/x-date-pickers/tsconfig.build.json @@ -10,7 +10,6 @@ "outDir": "build", "rootDir": "./src", "types": [ - "vitest/globals", "node", "@mui/material/themeCssVarsAugmentation", "dayjs/plugin/utc.d.ts", diff --git a/packages/x-date-pickers/tsconfig.json b/packages/x-date-pickers/tsconfig.json index 4664bab602d7b..5f862d31ec2ba 100644 --- a/packages/x-date-pickers/tsconfig.json +++ b/packages/x-date-pickers/tsconfig.json @@ -2,7 +2,6 @@ "extends": "../../tsconfig.json", "compilerOptions": { "types": [ - "vitest/globals", "@mui/internal-test-utils/initMatchers", "@mui/material/themeCssVarsAugmentation", "chai-dom", diff --git a/test/utils/pickers/createPickerRenderer.tsx b/test/utils/pickers/createPickerRenderer.tsx index 880110e4048a2..e094bb63beb9d 100644 --- a/test/utils/pickers/createPickerRenderer.tsx +++ b/test/utils/pickers/createPickerRenderer.tsx @@ -18,6 +18,7 @@ export function createPickerRenderer({ }: CreatePickerRendererOptions = {}) { const { clock, render: clientRender } = createRenderer({ ...createRendererOptions, + // @ts-ignore vi: globalThis.vi ?? undefined, }); From 43ce018b76092d10c6305feddcce8984b84dfc80 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 17:28:29 +0200 Subject: [PATCH 060/253] add license and pro packages --- package.json | 2 +- .../DateRangeCalendar.test.tsx | 24 ++++++--- .../tests/DesktopDateRangePicker.test.tsx | 6 ++- pnpm-lock.yaml | 54 +++++++++---------- test/setup.ts | 11 ++++ vitest.config.mts | 12 +++++ vitest.workspace.ts | 2 +- 7 files changed, 72 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 2fabdfbdcbdee..74d3c3871efaa 100644 --- a/package.json +++ b/package.json @@ -206,7 +206,7 @@ "@types/node": "^20.16.10", "@playwright/test": "1.44.1", "playwright": "1.44.1", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils" + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils" }, "packageManager": "pnpm@9.12.0", "engines": { diff --git a/packages/x-date-pickers-pro/src/DateRangeCalendar/DateRangeCalendar.test.tsx b/packages/x-date-pickers-pro/src/DateRangeCalendar/DateRangeCalendar.test.tsx index 085f45fcde1b5..87c4e9aa2f01c 100644 --- a/packages/x-date-pickers-pro/src/DateRangeCalendar/DateRangeCalendar.test.tsx +++ b/packages/x-date-pickers-pro/src/DateRangeCalendar/DateRangeCalendar.test.tsx @@ -177,9 +177,11 @@ describe('', () => { expect(onChange.callCount).to.equal(0); }); - it('should not emit "onChange" when touch dragging is ended where it was started', function test() { + it('should not emit "onChange" when touch dragging is ended where it was started', function test(t = {}) { if (!document.elementFromPoint) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); render( @@ -245,9 +247,11 @@ describe('', () => { expect(document.activeElement).toHaveAccessibleName('2'); }); - it('should emit "onChange" when touch dragging end date', function test() { + it('should emit "onChange" when touch dragging end date', function test(t = {}) { if (!document.elementFromPoint) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); const initialValue: [any, any] = [ @@ -323,9 +327,11 @@ describe('', () => { expect(document.activeElement).toHaveAccessibleName('22'); }); - it('should emit "onChange" when touch dragging start date', function test() { + it('should emit "onChange" when touch dragging start date', function test(t = {}) { if (!document.elementFromPoint) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); const initialValue: [any, any] = [ @@ -398,9 +404,11 @@ describe('', () => { ).to.have.lengthOf(10); }); - it('should dynamically update "shouldDisableDate" when flip touch dragging', function test() { + it('should dynamically update "shouldDisableDate" when flip touch dragging', function test(t = {}) { if (!document.elementFromPoint) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const initialValue: [any, any] = [ adapterToUse.date('2018-01-01'), diff --git a/packages/x-date-pickers-pro/src/DesktopDateRangePicker/tests/DesktopDateRangePicker.test.tsx b/packages/x-date-pickers-pro/src/DesktopDateRangePicker/tests/DesktopDateRangePicker.test.tsx index 8ec9617073430..8d2c2913e7fe7 100644 --- a/packages/x-date-pickers-pro/src/DesktopDateRangePicker/tests/DesktopDateRangePicker.test.tsx +++ b/packages/x-date-pickers-pro/src/DesktopDateRangePicker/tests/DesktopDateRangePicker.test.tsx @@ -459,10 +459,12 @@ describe('', () => { expect(onClose.callCount).to.equal(0); }); - it('should call onClose when blur the current field without prior change', function test() { + it('should call onClose when blur the current field without prior change', function test(t = {}) { // test:unit does not call `blur` when focusing another element. if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const onChange = spy(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db4d09856ae16..7eed1ee1a0946 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: '@types/node': ^20.16.10 '@playwright/test': 1.44.1 playwright: 1.44.1 - '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -96,8 +96,8 @@ importers: specifier: ^1.0.15 version: 1.0.15 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -780,8 +780,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1024,8 +1024,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1136,8 +1136,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1198,8 +1198,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1251,8 +1251,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1346,8 +1346,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1393,8 +1393,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1413,8 +1413,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1457,8 +1457,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1516,8 +1516,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3123,7 +3123,7 @@ packages: resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} peerDependencies: - '@types/react': ^18.3.4 + '@types/react': ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -3175,8 +3175,8 @@ packages: '@mui/internal-scripts@1.0.22': resolution: {integrity: sha512-+GEmp73U9o2touhiMRNO+hv8AlYWwVpu6ZjKLnZ3OLoYq5kg0e2p8GMpHTBTmalNKXXM3kOchgs0NYoYJwsX4g==} - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils} + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils} version: 1.0.15 peerDependencies: react: ^18.2.0 @@ -12167,7 +12167,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/0648e94b/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) diff --git a/test/setup.ts b/test/setup.ts index 58e22ef960a41..3df2109ece642 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -2,6 +2,7 @@ import { beforeAll, afterAll, vi } from 'vitest'; import 'test/utils/addChaiAssertions'; import 'test/utils/setupPickers'; import 'test/utils/licenseRelease'; +import { generateTestLicenseKey, setupTestLicenseKey } from 'test/utils/testLicense'; // @ts-ignore globalThis.before = beforeAll; @@ -13,6 +14,16 @@ globalThis.vi = vi; const isVitestJsdom = process.env.MUI_JSDOM === 'true'; +let licenseKey: string = ''; + +beforeAll(() => { + licenseKey = generateTestLicenseKey(); +}); + +beforeEach(() => { + setupTestLicenseKey(licenseKey); +}); + // Only necessary when not in browser mode. if (isVitestJsdom) { class Touch { diff --git a/vitest.config.mts b/vitest.config.mts index 456ad1884344d..754a15987c878 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -7,10 +7,18 @@ export default defineConfig({ find: '@mui/x-charts', replacement: new URL('./packages/x-charts/src', import.meta.url).pathname, }, + { + find: '@mui/x-charts-pro', + replacement: new URL('./packages/x-charts-pro/src', import.meta.url).pathname, + }, { find: '@mui/x-date-pickers', replacement: new URL('./packages/x-date-pickers/src', import.meta.url).pathname, }, + { + find: '@mui/x-date-pickers-pro', + replacement: new URL('./packages/x-date-pickers-pro/src', import.meta.url).pathname, + }, { find: 'test/utils', replacement: new URL('./test/utils', import.meta.url).pathname, @@ -19,6 +27,10 @@ export default defineConfig({ find: '@mui/x-internals', replacement: new URL('./packages/x-internals/src', import.meta.url).pathname, }, + { + find: '@mui/x-license', + replacement: new URL('./packages/x-license/src', import.meta.url).pathname, + }, { find: 'moment/locale', replacement: 'moment/dist/locale', diff --git a/vitest.workspace.ts b/vitest.workspace.ts index db0ef5779c78f..7398c6ecdc73e 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,7 +1,7 @@ import react from '@vitejs/plugin-react'; import { defineWorkspace } from 'vitest/config'; -const packages = ['x-charts', 'x-date-pickers']; +const packages = ['x-charts', 'x-charts-pro', 'x-date-pickers', 'x-date-pickers-pro']; // Ideally we move the configuration to each package. // Currently it doesn't work because vitest doesn't detect two different configurations in the same package. From b2192635d8f5282c478f49e90790fd654f4a26f7 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 19:00:21 +0200 Subject: [PATCH 061/253] add license and internals tests --- vitest.workspace.ts | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 7398c6ecdc73e..d5e453b17be7f 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,14 +1,20 @@ import react from '@vitejs/plugin-react'; import { defineWorkspace } from 'vitest/config'; -const packages = ['x-charts', 'x-charts-pro', 'x-date-pickers', 'x-date-pickers-pro']; +const packages = [ + 'x-charts', + 'x-charts-pro', + 'x-date-pickers', + 'x-date-pickers-pro', + 'x-internals', +]; // Ideally we move the configuration to each package. // Currently it doesn't work because vitest doesn't detect two different configurations in the same package. // We could bypass this limitation by having a folder per configuration. Eg: `packages/x-charts/browser` & `packages/x-charts/jsdom`. -export default defineWorkspace( - packages.flatMap( +export default defineWorkspace([ + ...packages.flatMap( (name): ReturnType => [ { extends: './vitest.config.mts', @@ -46,4 +52,17 @@ export default defineWorkspace( }, ], ), -); + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: [`packages/x-license/src/**/*.test.?(c|m)[jt]s?(x)`], + exclude: [`packages/x-license/src/**/*.browser.test.?(c|m)[jt]s?(x)`], + name: `jsdom/x-license`, + environment: 'jsdom', + env: { + MUI_JSDOM: 'true', + }, + }, + }, +]); From f530667a28f84199fb6941e7f0ef33f000ecebc1 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 19:20:27 +0200 Subject: [PATCH 062/253] add todo --- vitest.workspace.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index d5e453b17be7f..0925caf214048 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -52,6 +52,10 @@ export default defineWorkspace([ }, ], ), + // TODO: Decide on + // Manually changing the process.env in browser tests doesn't work. + // And alternative is to use `const {NODE_ENV} = process.env` in the code instead. + // x-license relies on `process.env.NODE_ENV` to determine the environment. { extends: './vitest.config.mts', plugins: [react()], From 4fd6d33c6d71af73c51de89034172272307bfe70 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 8 Oct 2024 19:58:15 +0200 Subject: [PATCH 063/253] run test without mocking timers --- .../src/DateCalendar/tests/DateCalendar.test.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index f70a4332e5a62..a6dfb5fa45a17 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -128,10 +128,8 @@ describe('', () => { }); describe('with fake timers', () => { - clock.withFakeTimers(); - // test: https://github.com/mui/mui-x/issues/12373 - it('should not reset day to `startOfDay` if value already exists when finding the closest enabled date', () => { + it('should not reset day to `startOfDay` if value already exists when finding the closest enabled date', async () => { const onChange = spy(); const defaultDate = adapterToUse.date('2019-01-02T11:12:13.550Z'); render(); @@ -140,8 +138,8 @@ describe('', () => { screen.getByRole('button', { name: 'calendar view is open, switch to year view' }), ); fireEvent.click(screen.getByRole('radio', { name: '2020' })); - // Finish the transition to the day view - clock.runToLast(); + + await screen.findByRole('gridcell', { name: '1' }); fireEvent.click(screen.getByRole('gridcell', { name: '1' })); fireEvent.click( From 8d3601cbcc437589f8842c3070c6351c82e6c711 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 9 Oct 2024 10:26:38 +0200 Subject: [PATCH 064/253] update internals --- package.json | 2 +- pnpm-lock.yaml | 52 +++++++++++++++++++++++++------------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index 74d3c3871efaa..68a06b213a497 100644 --- a/package.json +++ b/package.json @@ -206,7 +206,7 @@ "@types/node": "^20.16.10", "@playwright/test": "1.44.1", "playwright": "1.44.1", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils" + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils" }, "packageManager": "pnpm@9.12.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7eed1ee1a0946..e1cc7169d6ee1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: '@types/node': ^20.16.10 '@playwright/test': 1.44.1 playwright: 1.44.1 - '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -96,8 +96,8 @@ importers: specifier: ^1.0.15 version: 1.0.15 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -780,8 +780,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1024,8 +1024,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1136,8 +1136,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1198,8 +1198,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1251,8 +1251,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1346,8 +1346,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1393,8 +1393,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1413,8 +1413,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1457,8 +1457,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1516,8 +1516,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3175,8 +3175,8 @@ packages: '@mui/internal-scripts@1.0.22': resolution: {integrity: sha512-+GEmp73U9o2touhiMRNO+hv8AlYWwVpu6ZjKLnZ3OLoYq5kg0e2p8GMpHTBTmalNKXXM3kOchgs0NYoYJwsX4g==} - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils} + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils} version: 1.0.15 peerDependencies: react: ^18.2.0 @@ -12167,7 +12167,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/ccb3dd51/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) From 4497dd87bd70e2902c879b641364924e4db9cc39 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 9 Oct 2024 10:38:41 +0200 Subject: [PATCH 065/253] remove unused clock var --- .../x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index c307c2d6a82cc..2a3dd88a7f5b0 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -9,7 +9,7 @@ import { createPickerRenderer, adapterToUse } from 'test/utils/pickers'; const isJSDOM = /jsdom/.test(window.navigator.userAgent); describe('', () => { - const { render, clock } = createPickerRenderer({ clockConfig: new Date(2019, 0, 2) }); + const { render } = createPickerRenderer({ clockConfig: new Date(2019, 0, 2) }); it('switches between views uncontrolled', async () => { const handleViewChange = spy(); From 65397591a6dfae838e176cf22673da93420d351f Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 9 Oct 2024 11:29:52 +0200 Subject: [PATCH 066/253] make test work in vitest and mocha --- .../src/DateCalendar/tests/DateCalendar.test.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index 2a3dd88a7f5b0..993e51ab21bda 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -9,7 +9,7 @@ import { createPickerRenderer, adapterToUse } from 'test/utils/pickers'; const isJSDOM = /jsdom/.test(window.navigator.userAgent); describe('', () => { - const { render } = createPickerRenderer({ clockConfig: new Date(2019, 0, 2) }); + const { render, clock } = createPickerRenderer({ clockConfig: new Date(2019, 0, 2) }); it('switches between views uncontrolled', async () => { const handleViewChange = spy(); @@ -128,6 +128,11 @@ describe('', () => { }); describe('with fake timers', () => { + // TODO: remove when migrated to vitest + if (process.env.MUI_VITEST !== 'true') { + clock.withFakeTimers(); + } + // test: https://github.com/mui/mui-x/issues/12373 it('should not reset day to `startOfDay` if value already exists when finding the closest enabled date', async () => { const onChange = spy(); @@ -139,7 +144,12 @@ describe('', () => { ); fireEvent.click(screen.getByRole('radio', { name: '2020' })); - await screen.findByRole('gridcell', { name: '1' }); + if (process.env.MUI_VITEST !== 'true') { + // Finish the transition to the day view + clock.runToLast(); + } else { + await screen.findByRole('gridcell', { name: '1' }); + } fireEvent.click(screen.getByRole('gridcell', { name: '1' })); fireEvent.click( From b20b1bb0df505036464f8b965c0b4facceddf7be Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 09:46:32 +0200 Subject: [PATCH 067/253] sequence.hooks = list --- package.json | 2 +- pnpm-lock.yaml | 52 +++++++++++++++++++++++------------------------ vitest.config.mts | 3 +++ 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index eaa7028bf43c0..dc853d1000ca9 100644 --- a/package.json +++ b/package.json @@ -206,7 +206,7 @@ "@types/node": "^20.16.10", "@playwright/test": "1.44.1", "playwright": "1.44.1", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils" + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils" }, "packageManager": "pnpm@9.12.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e1cc7169d6ee1..45ebbc1557b78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: '@types/node': ^20.16.10 '@playwright/test': 1.44.1 playwright: 1.44.1 - '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -96,8 +96,8 @@ importers: specifier: ^1.0.15 version: 1.0.15 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -780,8 +780,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1024,8 +1024,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1136,8 +1136,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1198,8 +1198,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1251,8 +1251,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1346,8 +1346,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1393,8 +1393,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1413,8 +1413,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1457,8 +1457,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1516,8 +1516,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3175,8 +3175,8 @@ packages: '@mui/internal-scripts@1.0.22': resolution: {integrity: sha512-+GEmp73U9o2touhiMRNO+hv8AlYWwVpu6ZjKLnZ3OLoYq5kg0e2p8GMpHTBTmalNKXXM3kOchgs0NYoYJwsX4g==} - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils} + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils} version: 1.0.15 peerDependencies: react: ^18.2.0 @@ -12167,7 +12167,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/9e3c2847/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) diff --git a/vitest.config.mts b/vitest.config.mts index 754a15987c878..66a3ddb307aed 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -42,6 +42,9 @@ export default defineConfig({ setupFiles: ['test/setup.ts'], // Required for some datepickers tests that contain early returns. passWithNoTests: true, + sequence: { + hooks: 'list', + }, env: { MUI_VITEST: 'true', }, From 840c4b61e933f09be94d8b300018c4c503d12cb2 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 10:41:40 +0200 Subject: [PATCH 068/253] Fix datepickes pro test --- .../testTextFieldKeyboardRangeValidation.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/test/utils/pickers/describeRangeValidation/testTextFieldKeyboardRangeValidation.tsx b/test/utils/pickers/describeRangeValidation/testTextFieldKeyboardRangeValidation.tsx index c25c09224a9a7..4b9a71b585b22 100644 --- a/test/utils/pickers/describeRangeValidation/testTextFieldKeyboardRangeValidation.tsx +++ b/test/utils/pickers/describeRangeValidation/testTextFieldKeyboardRangeValidation.tsx @@ -55,7 +55,9 @@ export const testTextFieldKeyboardRangeValidation: DescribeRangeValidationTestSu adapterToUse.isAfter(date, adapterToUse.date('2018-03-11'))} + shouldDisableDate={(date: any) => + adapterToUse.isAfter(date, adapterToUse.date('2018-03-11')) + } />, ); act(() => { @@ -89,7 +91,8 @@ export const testTextFieldKeyboardRangeValidation: DescribeRangeValidationTestSu testInvalidStatus([true, true], isSingleInput); setProps({ - shouldDisableDate: (date) => adapterToUse.isBefore(date, adapterToUse.date('2018-03-13')), + shouldDisableDate: (date: any) => + adapterToUse.isBefore(date, adapterToUse.date('2018-03-13')), }); expect(onErrorMock.callCount).to.equal(3); @@ -114,7 +117,7 @@ export const testTextFieldKeyboardRangeValidation: DescribeRangeValidationTestSu } act(() => { - setValue(adapterToUse.date(past)); + setValue(past); }); expect(onErrorMock.callCount).to.equal(1); @@ -122,7 +125,7 @@ export const testTextFieldKeyboardRangeValidation: DescribeRangeValidationTestSu testInvalidStatus([true, false], isSingleInput); act(() => { - setValue(adapterToUse.date(past), { setEndDate: true }); + setValue(past, { setEndDate: true }); }); expect(onErrorMock.callCount).to.equal(2); @@ -130,8 +133,9 @@ export const testTextFieldKeyboardRangeValidation: DescribeRangeValidationTestSu testInvalidStatus([true, true], isSingleInput); act(() => { - setValue(adapterToUse.date(now)); + setValue(adapterToUse.addHours(now, 1)); }); + expect(onErrorMock.callCount).to.equal(3); expect(onErrorMock.lastCall.args[0]).to.deep.equal([null, 'disablePast']); testInvalidStatus([false, true], isSingleInput); From 6db68b847cc18e25367f48610faf2871086d6225 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 12:12:19 +0200 Subject: [PATCH 069/253] ignore failing browser tests --- .../AdapterMomentHijri.test.tsx | 16 ++++++++++++++-- .../pickers/describeHijriAdapter/testFormat.ts | 7 ++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx index bd86f319abe60..bcad494172d01 100644 --- a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx @@ -22,7 +22,13 @@ describe('', () => { }); describe('Adapter localization', () => { - it('Formatting', () => { + it('Formatting', (t = {}) => { + if (process.env.MUI_BROWSER === 'true') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + t?.skip(); + } + const adapter = new AdapterMomentHijri(); const expectDate = (format: keyof AdapterFormats, expectedWithArSA: string) => { @@ -80,7 +86,13 @@ describe('', () => { expectFieldValueV7(view.getSectionsContainer(), localizedTexts[localeKey].placeholder); }); - it('should have well formatted value', () => { + it('should have well formatted value', (t = {}) => { + if (process.env.MUI_BROWSER === 'true') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + t?.skip(); + } + const view = renderWithProps({ enableAccessibleFieldDOMStructure: true, value: adapter.date(testDate), diff --git a/test/utils/pickers/describeHijriAdapter/testFormat.ts b/test/utils/pickers/describeHijriAdapter/testFormat.ts index 6a22c488298f9..4cadf934ccfaa 100644 --- a/test/utils/pickers/describeHijriAdapter/testFormat.ts +++ b/test/utils/pickers/describeHijriAdapter/testFormat.ts @@ -2,7 +2,12 @@ import { expect } from 'chai'; import { DescribeHijriAdapterTestSuite } from './describeHijriAdapter.types'; export const testFormat: DescribeHijriAdapterTestSuite = ({ adapter }) => { - it('should format the seconds without leading zeroes for format "s"', () => { + it('should format the seconds without leading zeroes for format "s"', (t = {}) => { + if (process.env.MUI_BROWSER === 'true') { + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + t?.skip(); + } const date = adapter.date('2020-01-01T23:44:09.000Z')!; expect(adapter.formatByString(date, 's')).to.equal('٩'); }); From 9f6f828d8e95b1af48a0c3ea474d29711d0ab216 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 12:19:01 +0200 Subject: [PATCH 070/253] add lib alias config --- vitest.config.mts | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/vitest.config.mts b/vitest.config.mts index 66a3ddb307aed..65661a9cc1eea 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -3,34 +3,27 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ resolve: { alias: [ - { - find: '@mui/x-charts', - replacement: new URL('./packages/x-charts/src', import.meta.url).pathname, - }, - { - find: '@mui/x-charts-pro', - replacement: new URL('./packages/x-charts-pro/src', import.meta.url).pathname, - }, - { - find: '@mui/x-date-pickers', - replacement: new URL('./packages/x-date-pickers/src', import.meta.url).pathname, - }, - { - find: '@mui/x-date-pickers-pro', - replacement: new URL('./packages/x-date-pickers-pro/src', import.meta.url).pathname, - }, + ...[ + { lib: 'charts', plans: ['pro'] }, + { lib: 'date-pickers', plans: ['pro'] }, + { lib: 'internals' }, + { lib: 'license' }, + ].flatMap((v) => { + return [ + { + find: `@mui/x-${v.lib}`, + replacement: new URL(`./packages/x-${v.lib}/src`, import.meta.url).pathname, + }, + ...(v.plans ?? []).map((plan) => ({ + find: `@mui/x-${v.lib}-${plan}`, + replacement: new URL(`./packages/x-${v.lib}-${plan}/src`, import.meta.url).pathname, + })), + ]; + }), { find: 'test/utils', replacement: new URL('./test/utils', import.meta.url).pathname, }, - { - find: '@mui/x-internals', - replacement: new URL('./packages/x-internals/src', import.meta.url).pathname, - }, - { - find: '@mui/x-license', - replacement: new URL('./packages/x-license/src', import.meta.url).pathname, - }, { find: 'moment/locale', replacement: 'moment/dist/locale', From a353cb60a7c88cec978b7016938db0169e1de761 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 12:54:40 +0200 Subject: [PATCH 071/253] init data-grid and replace skips --- .../utils/useGridApiEventHandler.test.tsx | 6 +- .../src/tests/cells.DataGrid.test.tsx | 25 ++++-- .../tests/columnSpanning.DataGrid.test.tsx | 38 +++++--- .../src/tests/columns.DataGrid.test.tsx | 7 +- .../src/tests/density.DataGrid.test.tsx | 86 ++++++++++++++---- .../src/tests/export.DataGrid.test.tsx | 14 ++- .../src/tests/keyboard.DataGrid.test.tsx | 66 +++++++++----- .../src/tests/layout.DataGrid.test.tsx | 88 ++++++++++++------- .../src/tests/pagination.DataGrid.test.tsx | 29 +++--- .../tests/quickFiltering.DataGrid.test.tsx | 6 +- .../src/tests/rowSelection.DataGrid.test.tsx | 19 ++-- .../src/tests/rowSpanning.DataGrid.test.tsx | 36 +++++--- .../src/tests/rows.DataGrid.test.tsx | 36 +++++--- .../src/tests/slots.DataGrid.test.tsx | 6 +- vitest.config.mts | 1 + vitest.workspace.ts | 1 + 16 files changed, 307 insertions(+), 157 deletions(-) diff --git a/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx b/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx index 1ee0bd2c105f0..b8927764fb0d0 100644 --- a/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx +++ b/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx @@ -13,14 +13,16 @@ describe('useGridApiEventHandler', () => { const { render } = createRenderer(); describe('FinalizationRegistry-based implementation', () => { - it('should unsubscribe event listeners registered by uncommitted components', async function test() { + it('should unsubscribe event listeners registered by uncommitted components', async function test(t = {}) { if ( !/jsdom/.test(window.navigator.userAgent) || typeof FinalizationRegistry === 'undefined' || typeof global.gc === 'undefined' ) { // Needs ability to trigger the garbage collector and support for FinalizationRegistry (added in node 14) - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const useGridApiEventHandler = createUseGridApiEventHandler({ diff --git a/packages/x-data-grid/src/tests/cells.DataGrid.test.tsx b/packages/x-data-grid/src/tests/cells.DataGrid.test.tsx index 61c3a5b0f72da..89017b5b55d71 100644 --- a/packages/x-data-grid/src/tests/cells.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/cells.DataGrid.test.tsx @@ -64,10 +64,12 @@ describe(' - Cells', () => { expect(color).not.to.equal('rgba(0, 0, 0, 0)'); } - it('should add right border to cells', function test() { + it('should add right border to cells', function test(t = {}) { if (isJSDOM) { // Doesn't work with mocked window.getComputedStyle - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -86,10 +88,12 @@ describe(' - Cells', () => { }); // See https://github.com/mui/mui-x/issues/4122 - it('should add right border to cells in the last row', function test() { + it('should add right border to cells in the last row', function test(t = {}) { if (isJSDOM) { // Doesn't work with mocked window.getComputedStyle - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -188,9 +192,11 @@ describe(' - Cells', () => { }).toWarnDev(['MUI X: The cell with id=1 and field=brand received focus.']); }); - it('should keep the focused cell/row rendered in the DOM if it scrolls outside the viewport', function test() { + it('should keep the focused cell/row rendered in the DOM if it scrolls outside the viewport', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; const defaultData = getBasicGridData(20, 20); @@ -220,9 +226,12 @@ describe(' - Cells', () => { }); // See https://github.com/mui/mui-x/issues/6378 - it('should not cause scroll jump when focused cell mounts in the render zone', async function test() { + it('should not cause scroll jump when focused cell mounts in the render zone', async function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; diff --git a/packages/x-data-grid/src/tests/columnSpanning.DataGrid.test.tsx b/packages/x-data-grid/src/tests/columnSpanning.DataGrid.test.tsx index b326949ee1d7a..d4c70f94fc25b 100644 --- a/packages/x-data-grid/src/tests/columnSpanning.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/columnSpanning.DataGrid.test.tsx @@ -268,10 +268,12 @@ describe(' - Column spanning', () => { expect(getActiveCell()).to.equal('0-0'); }); - it('should work with row virtualization', function test() { + it('should work with row virtualization', function test(t = {}) { if (isJSDOM) { // needs virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rows = [ @@ -333,9 +335,12 @@ describe(' - Column spanning', () => { expect(activeCell).to.equal('3-0'); }); - it('should work with column virtualization', function test() { + it('should work with column virtualization', function test(t = {}) { if (isJSDOM) { - this.skip(); // needs layout + // needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -439,9 +444,12 @@ describe(' - Column spanning', () => { expect(getActiveCell()).to.equal('1-2'); }); - it('should scroll the whole cell into view when `colSpan` > 1', function test() { + it('should scroll the whole cell into view when `colSpan` > 1', function test(t = {}) { if (isJSDOM) { - this.skip(); // needs layout + // needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -720,10 +728,12 @@ describe(' - Column spanning', () => { checkRows(2, ['Adidas', 'Puma']); }); - it('should work with column virtualization', function test() { + it('should work with column virtualization', function test(t = {}) { if (isJSDOM) { // Need layouting for column virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -772,10 +782,12 @@ describe(' - Column spanning', () => { ); }); - it('should work with both column and row virtualization', function test() { + it('should work with both column and row virtualization', function test(t = {}) { if (isJSDOM) { // Need layouting for column virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; @@ -836,10 +848,12 @@ describe(' - Column spanning', () => { ); }); - it('should work with pagination and column virtualization', function test() { + it('should work with pagination and column virtualization', function test(t = {}) { if (isJSDOM) { // Need layouting for column virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; diff --git a/packages/x-data-grid/src/tests/columns.DataGrid.test.tsx b/packages/x-data-grid/src/tests/columns.DataGrid.test.tsx index 652d3e9bf1539..54e680f9a81b3 100644 --- a/packages/x-data-grid/src/tests/columns.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/columns.DataGrid.test.tsx @@ -123,9 +123,12 @@ describe(' - Columns', () => { }); // https://github.com/mui/mui-x/issues/13719 - it('should not crash when updating columns immediately after scrolling', function test() { + it('should not crash when updating columns immediately after scrolling', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const data = [ diff --git a/packages/x-data-grid/src/tests/density.DataGrid.test.tsx b/packages/x-data-grid/src/tests/density.DataGrid.test.tsx index aaad84e1c4fe2..6d77b5743a340 100644 --- a/packages/x-data-grid/src/tests/density.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/density.DataGrid.test.tsx @@ -50,15 +50,15 @@ describe(' - Density', () => { ); } - before(function beforeHook() { - if (isJSDOM) { - // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` - this.skip(); - } - }); - describe('prop: `initialState.density`', () => { - it('should set the density to the value of initialState.density', () => { + it('should set the density to the value of initialState.density', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const rowHeight = 30; render(
@@ -78,7 +78,14 @@ describe(' - Density', () => { }); describe('prop: `density`', () => { - it('should set the density value using density prop', () => { + it('should set the density value using density prop', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const rowHeight = 30; render(
@@ -89,7 +96,13 @@ describe(' - Density', () => { expectHeight(rowHeight * COMPACT_DENSITY_FACTOR); }); - it('should allow to control the density from the prop using state', () => { + it('should allow to control the density from the prop using state', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } const rowHeight = 30; function Grid(props: Partial) { @@ -123,7 +136,13 @@ describe(' - Density', () => { expectHeight(rowHeight * COMPACT_DENSITY_FACTOR); }); - it('should call `onDensityChange` prop when density gets updated', () => { + it('should call `onDensityChange` prop when density gets updated', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } const onDensityChange = spy(); function Test() { return ( @@ -147,7 +166,14 @@ describe(' - Density', () => { }); describe('density selection menu', () => { - it('should increase grid density when selecting compact density', () => { + it('should increase grid density when selecting compact density', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const rowHeight = 30; render(
@@ -168,7 +194,14 @@ describe(' - Density', () => { expectHeight(rowHeight * COMPACT_DENSITY_FACTOR); }); - it('should decrease grid density when selecting comfortable density', () => { + it('should decrease grid density when selecting comfortable density', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const rowHeight = 30; render(
@@ -188,7 +221,14 @@ describe(' - Density', () => { expectHeight(rowHeight * COMFORTABLE_DENSITY_FACTOR); }); - it('should increase grid density even if toolbar is not enabled', () => { + it('should increase grid density even if toolbar is not enabled', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const rowHeight = 30; render(
@@ -199,7 +239,14 @@ describe(' - Density', () => { expectHeight(rowHeight * COMPACT_DENSITY_FACTOR); }); - it('should decrease grid density even if toolbar is not enabled', () => { + it('should decrease grid density even if toolbar is not enabled', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + const rowHeight = 30; render(
@@ -210,7 +257,14 @@ describe(' - Density', () => { expectHeight(rowHeight * COMFORTABLE_DENSITY_FACTOR); }); - it('should apply to the root element a class corresponding to the current density', () => { + it('should apply to the root element a class corresponding to the current density', function test(t = {}) { + if (isJSDOM) { + // JSDOM seem to not support CSS variables properly and `height: var(--height)` ends up being `height: ''` + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); + } + function Test(props: Partial) { return (
diff --git a/packages/x-data-grid/src/tests/export.DataGrid.test.tsx b/packages/x-data-grid/src/tests/export.DataGrid.test.tsx index fd39af7dd1ad2..d4e686bea24b4 100644 --- a/packages/x-data-grid/src/tests/export.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/export.DataGrid.test.tsx @@ -6,6 +6,12 @@ import { useBasicDemoData } from '@mui/x-data-grid-generator'; import { createRenderer, screen, fireEvent } from '@mui/internal-test-utils'; describe(' - Export', () => { + // We need `createObjectURL` to test the downloaded value + if (/jsdom/.test(window.navigator.userAgent)) { + // Need layouting + return; + } + const { render, clock } = createRenderer({ clock: 'fake' }); function TestCase(props: Omit) { @@ -18,14 +24,6 @@ describe(' - Export', () => { ); } - // We need `createObjectURL` to test the downloaded value - before(function beforeHook() { - if (/jsdom/.test(window.navigator.userAgent)) { - // Need layouting - this.skip(); - } - }); - let spyCreateObjectURL: SinonSpy; beforeEach(() => { diff --git a/packages/x-data-grid/src/tests/keyboard.DataGrid.test.tsx b/packages/x-data-grid/src/tests/keyboard.DataGrid.test.tsx index a83f17033416a..7781a68768d9d 100644 --- a/packages/x-data-grid/src/tests/keyboard.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/keyboard.DataGrid.test.tsx @@ -158,10 +158,12 @@ describe(' - Keyboard', () => { expect(getActiveCell()).to.equal('1-0'); // Already on the 1st cell }); - it('should move down by the amount of rows visible on screen when pressing "PageDown"', function test() { + it('should move down by the amount of rows visible on screen when pressing "PageDown"', function test(t = {}) { if (isJSDOM) { // This test is not relevant if we can't choose the actual height - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -174,10 +176,12 @@ describe(' - Keyboard', () => { expect(getActiveCell()).to.equal(`9-1`); }); - it('should move down by the amount of rows visible on screen when pressing Space key', function test() { + it('should move down by the amount of rows visible on screen when pressing Space key', function test(t = {}) { if (isJSDOM) { // This test is not relevant if we can't choose the actual height - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -190,10 +194,12 @@ describe(' - Keyboard', () => { expect(getActiveCell()).to.equal(`9-1`); }); - it('should move up by the amount of rows visible on screen when pressing "PageUp"', function test() { + it('should move up by the amount of rows visible on screen when pressing "PageUp"', function test(t = {}) { if (isJSDOM) { // This test is not relevant if we can't choose the actual height - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -204,10 +210,12 @@ describe(' - Keyboard', () => { expect(getActiveCell()).to.equal(`3-1`); }); - it('should move to the first row before moving to column header when pressing "PageUp"', function test() { + it('should move to the first row before moving to column header when pressing "PageUp"', function test(t = {}) { if (isJSDOM) { // This test is not relevant if we can't choose the actual height - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -223,10 +231,12 @@ describe(' - Keyboard', () => { expect(getActiveColumnHeader()).to.equal(`1`); }); - it('should move to the first row before moving to column header when pressing "PageUp" on page > 0', function test() { + it('should move to the first row before moving to column header when pressing "PageUp" on page > 0', function test(t = {}) { if (isJSDOM) { // This test is not relevant if we can't choose the actual height - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -309,10 +319,12 @@ describe(' - Keyboard', () => { }); describe('column header navigation', () => { - it('should scroll horizontally when navigating between column headers with arrows', function test() { + it('should scroll horizontally when navigating between column headers with arrows', function test(t = {}) { if (isJSDOM) { // Need layouting for column virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
@@ -326,10 +338,12 @@ describe(' - Keyboard', () => { expect(virtualScroller.scrollLeft).not.to.equal(0); }); - it('should scroll horizontally when navigating between column headers with arrows even if rows are empty', function test() { + it('should scroll horizontally when navigating between column headers with arrows even if rows are empty', function test(t = {}) { if (isJSDOM) { // Need layouting for column virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
@@ -379,10 +393,12 @@ describe(' - Keyboard', () => { expect(getActiveColumnHeader()).to.equal('0'); }); - it('should move down by the amount of rows visible on screen when pressing "PageDown"', function test() { + it('should move down by the amount of rows visible on screen when pressing "PageDown"', function test(t = {}) { if (isJSDOM) { // This test is not relevant if we can't choose the actual height - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -392,10 +408,12 @@ describe(' - Keyboard', () => { expect(getActiveCell()).to.equal(`5-1`); }); - it('should move focus when the focus is on a column header button', function test() { + it('should move focus when the focus is on a column header button', function test(t = {}) { if (isJSDOM) { // This test is not relevant if we can't choose the actual height - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -499,10 +517,12 @@ describe(' - Keyboard', () => { ); } - it('should scroll horizontally when navigating between column group headers with arrows', function test() { + it('should scroll horizontally when navigating between column group headers with arrows', function test(t = {}) { if (isJSDOM) { // Need layouting for column virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
@@ -520,10 +540,12 @@ describe(' - Keyboard', () => { expect(virtualScroller.scrollLeft).not.to.equal(0); }); - it('should scroll horizontally when navigating between column headers with arrows even if rows are empty', function test() { + it('should scroll horizontally when navigating between column headers with arrows even if rows are empty', function test(t = {}) { if (isJSDOM) { // Need layouting for column virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
diff --git a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx index aee37da9c508f..1a5d6733a2a00 100644 --- a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx @@ -74,12 +74,10 @@ describe(' - Layout & warnings', () => { }); describe('Layout', () => { - before(function beforeHook() { - if (/jsdom/.test(window.navigator.userAgent)) { - // Need layouting - this.skip(); - } - }); + if (/jsdom/.test(window.navigator.userAgent)) { + // Need layouting + return; + } it('should resize the width of the columns', async () => { interface TestCaseProps { @@ -693,10 +691,12 @@ describe(' - Layout & warnings', () => { ); }); - it('should include the scrollbar in the intrinsic height when there are more columns to show', function test() { + it('should include the scrollbar in the intrinsic height when there are more columns to show', function test(t = {}) { // On MacOS the scrollbar has zero width if (/macintosh/i.test(window.navigator.userAgent)) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const columnHeaderHeight = 40; const rowHeight = 30; @@ -789,10 +789,12 @@ describe(' - Layout & warnings', () => { expect(gridVar('--DataGrid-hasScrollX')).to.equal('0'); }); - it('should have a horizontal scrollbar when there are more columns to show and no rows', function test() { + it('should have a horizontal scrollbar when there are more columns to show and no rows', function test(t = {}) { // On MacOS the scrollbar has zero width if (/macintosh/i.test(window.navigator.userAgent)) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
@@ -937,12 +939,14 @@ describe(' - Layout & warnings', () => { }).toErrorDev('MUI X: `` is not a valid prop.'); }); - it('should throw if the rows has no id', function test() { + it('should throw if the rows has no id', function test(t = {}) { // TODO is this fixed? if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rows = [ @@ -1022,9 +1026,11 @@ describe(' - Layout & warnings', () => { describe('non-strict mode', () => { const { render: innerRender } = createRenderer({ strict: false }); - it('should render in JSDOM', function test() { + it('should render in JSDOM', function test(t = {}) { if (!/jsdom/.test(window.navigator.userAgent)) { - this.skip(); // Only run in JSDOM + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } innerRender(
@@ -1036,9 +1042,12 @@ describe(' - Layout & warnings', () => { }); }); - it('should allow style customization using the theme', function test() { + it('should allow style customization using the theme', function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { - this.skip(); // Doesn't work with mocked window.getComputedStyle + // Doesn't work with mocked window.getComputedStyle + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const theme = createTheme({ @@ -1078,9 +1087,12 @@ describe(' - Layout & warnings', () => { expect(window.getComputedStyle(getCell(0, 0)).backgroundColor).to.equal('rgb(0, 128, 0)'); }); - it('should support the sx prop', function test() { + it('should support the sx prop', function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { - this.skip(); // Doesn't work with mocked window.getComputedStyle + // Doesn't work with mocked window.getComputedStyle + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const theme = createTheme({ @@ -1161,11 +1173,11 @@ describe(' - Layout & warnings', () => { }); describe('should not overflow parent', () => { - before(function beforeHook() { - if (/jsdom/.test(window.navigator.userAgent)) { - this.skip(); // Doesn't work with mocked window.getComputedStyle - } - }); + if (/jsdom/.test(window.navigator.userAgent)) { + // Doesn't work with mocked window.getComputedStyle + + return; + } const rows = [{ id: 1, username: '@MUI', age: 20 }]; const columns = [ @@ -1203,10 +1215,12 @@ describe(' - Layout & warnings', () => { }); // See https://github.com/mui/mui-x/issues/8737 - it('should not add horizontal scrollbar when .MuiDataGrid-main has border', async function test() { + it('should not add horizontal scrollbar when .MuiDataGrid-main has border', async function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -1231,10 +1245,12 @@ describe(' - Layout & warnings', () => { }); // See https://github.com/mui/mui-x/issues/8689#issuecomment-1582616570 - it('should not add scrollbars when the parent container has fractional size', async function test() { + it('should not add scrollbars when the parent container has fractional size', async function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -1250,10 +1266,12 @@ describe(' - Layout & warnings', () => { }); // See https://github.com/mui/mui-x/issues/9510 - it('should not exceed maximum call stack size when the parent container has fractional width', function test() { + it('should not exceed maximum call stack size when the parent container has fractional width', function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -1264,10 +1282,12 @@ describe(' - Layout & warnings', () => { }); // See https://github.com/mui/mui-x/issues/9550 - it('should not exceed maximum call stack size with duplicated flex fields', function test() { + it('should not exceed maximum call stack size with duplicated flex fields', function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expect(() => { @@ -1289,10 +1309,12 @@ describe(' - Layout & warnings', () => { }); // See https://github.com/mui/mui-x/issues/9550#issuecomment-1619020477 - it('should not exceed maximum call stack size caused by floating point precision error', function test() { + it('should not exceed maximum call stack size caused by floating point precision error', function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( diff --git a/packages/x-data-grid/src/tests/pagination.DataGrid.test.tsx b/packages/x-data-grid/src/tests/pagination.DataGrid.test.tsx index 94421d70f768b..e6f5e579bf352 100644 --- a/packages/x-data-grid/src/tests/pagination.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/pagination.DataGrid.test.tsx @@ -33,12 +33,9 @@ describe(' - Pagination', () => { } describe('prop: paginationModel and onPaginationModelChange', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + return; + } it('should display the rows of page given in props', () => { render(); @@ -391,12 +388,10 @@ describe(' - Pagination', () => { }); describe('prop: autoPageSize', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } function TestCaseAutoPageSize( props: Omit & { height: number; nbRows: number }, @@ -638,12 +633,10 @@ describe(' - Pagination', () => { }); describe('prop: initialState.pagination', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } it('should allow to initialize the paginationModel', () => { render( diff --git a/packages/x-data-grid/src/tests/quickFiltering.DataGrid.test.tsx b/packages/x-data-grid/src/tests/quickFiltering.DataGrid.test.tsx index 44d608d5602fd..3c14dcf31baba 100644 --- a/packages/x-data-grid/src/tests/quickFiltering.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/quickFiltering.DataGrid.test.tsx @@ -639,9 +639,11 @@ describe(' - Quick filter', () => { }); // https://github.com/mui/mui-x/issues/6783 - it('should not override user input when typing', async function test() { + it('should not override user input when typing', async function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } // Warning: this test doesn't fail consistently as it is timing-sensitive. const debounceMs = 50; diff --git a/packages/x-data-grid/src/tests/rowSelection.DataGrid.test.tsx b/packages/x-data-grid/src/tests/rowSelection.DataGrid.test.tsx index 78d613915b143..75b79a8243d47 100644 --- a/packages/x-data-grid/src/tests/rowSelection.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/rowSelection.DataGrid.test.tsx @@ -365,9 +365,11 @@ describe(' - Row selection', () => { expect(input2.checked).to.equal(true); }); - it('should remove the selection from rows that are filtered out', async function test() { + it('should remove the selection from rows that are filtered out', async function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Row selection', () => { expect(getSelectedRowIds()).to.deep.equal([1, 2]); }); - it('should not jump during scroll while the focus is on the checkbox', function test() { + it('should not jump during scroll while the focus is on the checkbox', function test(t = {}) { if (isJSDOM) { - this.skip(); // HTMLElement.focus() only scrolls to the element on a real browser + // HTMLElement.focus() only scrolls to the element on a real browser + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const data = getBasicGridData(20, 1); render(); @@ -584,11 +589,13 @@ describe(' - Row selection', () => { describe('ripple', () => { clock.withFakeTimers(); - it('should keep only one ripple visible when navigating between checkboxes', async function test() { + it('should keep only one ripple visible when navigating between checkboxes', async function test(t = {}) { if (isJSDOM) { // JSDOM doesn't fire "blur" when .focus is called in another element // FIXME Firefox doesn't show any ripple - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const cell = getCell(1, 1); diff --git a/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx b/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx index c3875d9b3889f..0f6d078d7f1cc 100644 --- a/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/rowSpanning.DataGrid.test.tsx @@ -112,9 +112,11 @@ describe(' - Row spanning', () => { const rowHeight = 52; - it('should span the repeating row values', function test() { + it('should span the repeating row values', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const rowsWithSpannedCells = Object.keys(apiRef.current.state.rowSpanning.spannedCells); @@ -128,9 +130,11 @@ describe(' - Row spanning', () => { }); describe('sorting', () => { - it('should work with sorting when initializing sorting', function test() { + it('should work with sorting when initializing sorting', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Row spanning', () => { expect(spannedCell).to.have.style('height', `${rowHeight * spanValue.code}px`); }); - it('should work with sorting when controlling sorting', function test() { + it('should work with sorting when controlling sorting', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const rowsWithSpannedCells = Object.keys(apiRef.current.state.rowSpanning.spannedCells); @@ -164,9 +170,11 @@ describe(' - Row spanning', () => { }); describe('filtering', () => { - it('should work with filtering when initializing filter', function test() { + it('should work with filtering when initializing filter', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Row spanning', () => { expect(spannedCell).to.have.style('height', `${rowHeight * spanValue.code}px`); }); - it('should work with filtering when controlling filter', function test() { + it('should work with filtering when controlling filter', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Row spanning', () => { }); describe('pagination', () => { - it('should only compute the row spanning state for current page', async function test() { + it('should only compute the row spanning state for current page', async function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Rows', () => { ); } - it('should throw an error if getActions is missing', function test() { + it('should throw an error if getActions is missing', function test(t = {}) { if (!isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expect(() => { render( @@ -494,12 +496,10 @@ describe(' - Rows', () => { }); describe('prop: getRowHeight', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } describe('static row height', () => { const ROW_HEIGHT = 52; @@ -820,10 +820,13 @@ describe(' - Rows', () => { }); }); - it('should position correctly the render zone when the 2nd page has less rows than the 1st page', async function test() { + it('should position correctly the render zone when the 2nd page has less rows than the 1st page', async function test(t = {}) { const { userAgent } = window.navigator; if (!userAgent.includes('Headless') || /edg/i.test(userAgent)) { - this.skip(); // FIXME: We need a waitFor that works with fake clock + // FIXME: We need a waitFor that works with fake clock + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const data = getBasicGridData(120, 3); const columnHeaderHeight = 50; @@ -874,10 +877,13 @@ describe(' - Rows', () => { expect(gridOffsetTop()).to.equal(0); }); - it('should position correctly the render zone when changing pageSize to a lower value and moving to next page', async function test() { + it('should position correctly the render zone when changing pageSize to a lower value and moving to next page', async function test(t = {}) { const { userAgent } = window.navigator; if (!userAgent.includes('Headless') || /edg/i.test(userAgent)) { - this.skip(); // In Chrome non-headless and Edge this test is flacky + // In Chrome non-headless and Edge this test is flacky + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const data = getBasicGridData(120, 3); const columnHeaderHeight = 50; @@ -1120,10 +1126,12 @@ describe(' - Rows', () => { }); // https://github.com/mui/mui-x/issues/10373 - it('should set proper `data-rowindex` and `aria-rowindex` when focused row is out of the viewport', async function test() { + it('should set proper `data-rowindex` and `aria-rowindex` when focused row is out of the viewport', async function test(t = {}) { if (isJSDOM) { // needs virtualization - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
diff --git a/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx b/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx index 9059c02653f77..dcf10c48f00a4 100644 --- a/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx @@ -155,12 +155,14 @@ describe(' - Slots', () => { }); }); - it('should throw if a component is used without providing the context', function test() { + it('should throw if a component is used without providing the context', function test(t = {}) { // TODO is this fixed? if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expect(() => { diff --git a/vitest.config.mts b/vitest.config.mts index 65661a9cc1eea..335524fb3d26a 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -6,6 +6,7 @@ export default defineConfig({ ...[ { lib: 'charts', plans: ['pro'] }, { lib: 'date-pickers', plans: ['pro'] }, + { lib: 'data-grid', plans: ['pro', 'premium', 'generator'] }, { lib: 'internals' }, { lib: 'license' }, ].flatMap((v) => { diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 0925caf214048..8ed855b12776d 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -6,6 +6,7 @@ const packages = [ 'x-charts-pro', 'x-date-pickers', 'x-date-pickers-pro', + 'x-data-grid', 'x-internals', ]; From 188522223c040f69d4141d6749493ef44f901d8f Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 13:25:39 +0200 Subject: [PATCH 072/253] fix toerror --- packages/x-data-grid/src/tests/layout.DataGrid.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx index 1a5d6733a2a00..f438dea45af91 100644 --- a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx @@ -965,7 +965,8 @@ describe(' - Layout & warnings', () => { }).toErrorDev([ 'The data grid component requires all rows to have a unique `id` property', 'The data grid component requires all rows to have a unique `id` property', - 'The above error occurred in the component', + // Cut off the end of the phrase as vitest seems to rename DataGrid into DataGrid2 + 'The above error occurred in the Date: Fri, 11 Oct 2024 13:33:20 +0200 Subject: [PATCH 073/253] datagrid cleanup --- test/setup.ts | 9 +++++++++ vitest.config.mts | 1 + 2 files changed, 10 insertions(+) diff --git a/test/setup.ts b/test/setup.ts index 3df2109ece642..5ef087e6ff99c 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -3,6 +3,9 @@ import 'test/utils/addChaiAssertions'; import 'test/utils/setupPickers'; import 'test/utils/licenseRelease'; import { generateTestLicenseKey, setupTestLicenseKey } from 'test/utils/testLicense'; +import { unstable_resetCleanupTracking as unstable_resetCleanupTrackingDataGrid } from '@mui/x-data-grid'; +import { unstable_resetCleanupTracking as unstable_resetCleanupTrackingDataGridPro } from '@mui/x-data-grid-pro'; +// import { unstable_resetCleanupTracking as unstable_resetCleanupTrackingTreeView } from '@mui/x-tree-view'; // @ts-ignore globalThis.before = beforeAll; @@ -24,6 +27,12 @@ beforeEach(() => { setupTestLicenseKey(licenseKey); }); +afterEach(() => { + unstable_resetCleanupTrackingDataGrid(); + unstable_resetCleanupTrackingDataGridPro(); + // unstable_resetCleanupTrackingTreeView(); +}); + // Only necessary when not in browser mode. if (isVitestJsdom) { class Touch { diff --git a/vitest.config.mts b/vitest.config.mts index 335524fb3d26a..839c1e24df4d6 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -6,6 +6,7 @@ export default defineConfig({ ...[ { lib: 'charts', plans: ['pro'] }, { lib: 'date-pickers', plans: ['pro'] }, + { lib: 'tree-view', plans: ['pro'] }, { lib: 'data-grid', plans: ['pro', 'premium', 'generator'] }, { lib: 'internals' }, { lib: 'license' }, From b869545589f6b6562e5666f22438791526f30a87 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 13:53:42 +0200 Subject: [PATCH 074/253] fix jsdom issues --- .../x-data-grid/src/tests/layout.DataGrid.test.tsx | 2 +- .../x-data-grid/src/tests/slots.DataGrid.test.tsx | 12 ++++++++++-- test/setup.ts | 8 ++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx index f438dea45af91..5365215a038bd 100644 --- a/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/layout.DataGrid.test.tsx @@ -965,7 +965,7 @@ describe(' - Layout & warnings', () => { }).toErrorDev([ 'The data grid component requires all rows to have a unique `id` property', 'The data grid component requires all rows to have a unique `id` property', - // Cut off the end of the phrase as vitest seems to rename DataGrid into DataGrid2 + // Cut off the end of the phrase as vitest seems to 2 at the end of the component name 'The above error occurred in the - Slots', () => {
, ); expect(onClick.callCount).to.equal(0); - const button = screen.getByRole('button', { name: /show filters/i }); + + let button; + // I can see the button in the debug, but it's not found by the test... + if (process.env.MUI_JSDOM) { + button = screen.getByTestId('FilterAltIcon'); + } else { + button = screen.getByRole('button', { name: /show filters/i }); + } fireEvent.click(button); expect(onClick.lastCall.args[0]).to.have.property('field', 'brand'); expect(onClick.lastCall.args[1]).to.have.property('target', button); @@ -174,7 +181,8 @@ describe(' - Slots', () => { }).toErrorDev([ 'MUI X: useGridRootProps should only be used inside the DataGrid, DataGridPro or DataGridPremium component.', 'MUI X: useGridRootProps should only be used inside the DataGrid, DataGridPro or DataGridPremium component.', - 'The above error occurred in the component', + // Cut off the end of the phrase as vitest seems to 2 at the end of the component name + 'The above error occurred in the { }); afterEach(() => { - unstable_resetCleanupTrackingDataGrid(); - unstable_resetCleanupTrackingDataGridPro(); + // unstable_resetCleanupTrackingDataGrid(); + // unstable_resetCleanupTrackingDataGridPro(); // unstable_resetCleanupTrackingTreeView(); }); From 739c2d40762cef5bd54b68e654289e77646fa86a Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 13:55:03 +0200 Subject: [PATCH 075/253] fix browser tests datagrid --- packages/x-data-grid/src/tests/export.DataGrid.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x-data-grid/src/tests/export.DataGrid.test.tsx b/packages/x-data-grid/src/tests/export.DataGrid.test.tsx index d4e686bea24b4..b08b5c85ff453 100644 --- a/packages/x-data-grid/src/tests/export.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/export.DataGrid.test.tsx @@ -27,7 +27,7 @@ describe(' - Export', () => { let spyCreateObjectURL: SinonSpy; beforeEach(() => { - spyCreateObjectURL = spy(global.URL, 'createObjectURL'); + spyCreateObjectURL = spy(globalThis.URL, 'createObjectURL'); }); afterEach(() => { From 8b38fd95bfb92aa0a203b57610b3c83bbd410107 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 14:06:30 +0200 Subject: [PATCH 076/253] datagrid pro skips --- .../tests/accessibility.DataGridPro.test.tsx | 10 +-- .../tests/columnHeaders.DataGridPro.test.tsx | 7 +- .../tests/columnPinning.DataGridPro.test.tsx | 36 ++++++--- .../tests/columnSpanning.DataGridPro.test.tsx | 12 ++- .../src/tests/columns.DataGridPro.test.tsx | 36 ++++----- .../tests/detailPanel.DataGridPro.test.tsx | 74 +++++++++++++------ .../src/tests/events.DataGridPro.test.tsx | 7 +- .../src/tests/filtering.DataGridPro.test.tsx | 21 ++++-- .../tests/infiniteLoader.DataGridPro.test.tsx | 21 ++++-- .../src/tests/layout.DataGridPro.test.tsx | 17 +++-- .../src/tests/lazyLoader.DataGridPro.test.tsx | 21 ++++-- .../src/tests/rowPinning.DataGridPro.test.tsx | 48 ++++++++---- .../src/tests/rows.DataGridPro.test.tsx | 20 ++--- .../src/tests/sorting.DataGridPro.test.tsx | 6 +- vitest.workspace.ts | 1 + 15 files changed, 213 insertions(+), 124 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/accessibility.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/accessibility.DataGridPro.test.tsx index 474026c577d05..301dfad857896 100644 --- a/packages/x-data-grid-pro/src/tests/accessibility.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/accessibility.DataGridPro.test.tsx @@ -15,12 +15,10 @@ function logViolations(violations: any) { } describe(' - Accessibility', () => { - before(function beforeHook() { - if (!/chrome/i.test(window.navigator.userAgent)) { - // Only run accessibility tests in Chrome, since it should behave the same in all browsers - this.skip(); - } - }); + if (!/chrome/i.test(window.navigator.userAgent)) { + // Only run accessibility tests in Chrome, since it should behave the same in all browsers + return; + } const { render } = createRenderer(); diff --git a/packages/x-data-grid-pro/src/tests/columnHeaders.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columnHeaders.DataGridPro.test.tsx index 90830ac40578e..39d2c0191c291 100644 --- a/packages/x-data-grid-pro/src/tests/columnHeaders.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columnHeaders.DataGridPro.test.tsx @@ -31,9 +31,12 @@ describe(' - Column headers', () => { ], }; - it('should not scroll the column headers when a column is focused', function test() { + it('should not scroll the column headers when a column is focused', function test(t = {}) { if (isJSDOM) { - this.skip(); // JSDOM version of .focus() doesn't scroll + // JSDOM version of .focus() doesn't scroll + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
diff --git a/packages/x-data-grid-pro/src/tests/columnPinning.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columnPinning.DataGridPro.test.tsx index 448aa1d0c63ca..c82f5d59c3a35 100644 --- a/packages/x-data-grid-pro/src/tests/columnPinning.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columnPinning.DataGridPro.test.tsx @@ -89,10 +89,12 @@ describe(' - Column pinning', () => { window.ResizeObserver = originalResizeObserver; }); - it('should scroll when the next cell to focus is covered by the left pinned columns', function test() { + it('should scroll when the next cell to focus is covered by the left pinned columns', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const virtualScroller = document.querySelector(`.${gridClasses.virtualScroller}`)!; @@ -104,10 +106,12 @@ describe(' - Column pinning', () => { expect(virtualScroller.scrollLeft).to.equal(0); }); - it('should scroll when the next cell to focus is covered by the right pinned columns', function test() { + it('should scroll when the next cell to focus is covered by the right pinned columns', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const virtualScroller = document.querySelector(`.${gridClasses.virtualScroller}`)!; @@ -118,10 +122,12 @@ describe(' - Column pinning', () => { expect(virtualScroller.scrollLeft).to.equal(100); }); - it('should increase the width of right pinned columns by resizing to the left', function test() { + it('should increase the width of right pinned columns by resizing to the left', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const columnHeader = getColumnHeaderCell(2); @@ -136,10 +142,12 @@ describe(' - Column pinning', () => { expect(separator).to.have.class(gridClasses['columnSeparator--sideLeft']); }); - it('should reduce the width of right pinned columns by resizing to the right', function test() { + it('should reduce the width of right pinned columns by resizing to the right', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const columnHeader = getColumnHeaderCell(2); @@ -204,10 +212,12 @@ describe(' - Column pinning', () => { expect(getColumnHeadersTextContent()).to.deep.equal(['id', '', 'Currency Pair']); }); - it('should add border to right pinned columns section when `showCellVerticalBorder={true}`', function test() { + it('should add border to right pinned columns section when `showCellVerticalBorder={true}`', function test(t = {}) { if (isJSDOM) { // Doesn't work with mocked window.getComputedStyle - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -227,10 +237,12 @@ describe(' - Column pinning', () => { }); // https://github.com/mui/mui-x/issues/12431 - it('should not render unnecessary filler after the last row', function test() { + it('should not render unnecessary filler after the last row', function test(t = {}) { if (isJSDOM) { // Needs layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; diff --git a/packages/x-data-grid-pro/src/tests/columnSpanning.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columnSpanning.DataGridPro.test.tsx index 5c3bd5c7c0cce..60110a3db7c64 100644 --- a/packages/x-data-grid-pro/src/tests/columnSpanning.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columnSpanning.DataGridPro.test.tsx @@ -36,10 +36,12 @@ describe(' - Column spanning', () => { ], }; - it('should not apply `colSpan` in pinned columns section if there is only one column there', function test() { + it('should not apply `colSpan` in pinned columns section if there is only one column there', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -155,10 +157,12 @@ describe(' - Column spanning', () => { expect(() => getCell(2, 3)).to.throw(/not found/); }); - it('should work with column resizing', function test() { + it('should work with column resizing', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const columns = [{ field: 'brand', colSpan: 2 }, { field: 'category' }, { field: 'price' }]; diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 3d6e0567771d6..4eb6d41310e66 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -83,12 +83,10 @@ describe(' - Columns', () => { }); describe('resizing', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } const columns = [{ field: 'brand', width: 100 }]; @@ -102,10 +100,12 @@ describe(' - Columns', () => { expect(getCell(1, 0).getBoundingClientRect().width).to.equal(110); }); - it('should allow to resize columns with the touch', function test() { + it('should allow to resize columns with the touch', function test(t = {}) { // Only run in supported browsers if (typeof Touch === 'undefined') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); const separator = document.querySelector(`.${gridClasses['columnSeparator--resizable']}`)!; @@ -238,12 +238,10 @@ describe(' - Columns', () => { }); describe('flex resizing', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } it('should resize the flex width after resizing another column with api', () => { const twoColumns = [ @@ -435,12 +433,10 @@ describe(' - Columns', () => { }); describe('autosizing', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } const rows = [ { diff --git a/packages/x-data-grid-pro/src/tests/detailPanel.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/detailPanel.DataGridPro.test.tsx index 1f71824e507fa..e2becfae021d2 100644 --- a/packages/x-data-grid-pro/src/tests/detailPanel.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/detailPanel.DataGridPro.test.tsx @@ -32,9 +32,12 @@ describe(' - Detail panel', () => { ); } - it('should not allow to expand rows that do not specify a detail element', function test() { + it('should not allow to expand rows that do not specify a detail element', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( (Number(id) === 0 ? null :
)} />); const cell = getCell(0, 0); @@ -43,9 +46,11 @@ describe(' - Detail panel', () => { expect(getRow(0)).toHaveComputedStyle({ marginBottom: '0px' }); }); - it('should not consider the height of the detail panels when rendering new rows during scroll', function test() { + it('should not consider the height of the detail panels when rendering new rows during scroll', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; render( @@ -68,9 +73,11 @@ describe(' - Detail panel', () => { expect(getColumnValues(1)[0]).to.equal('2'); // If there was no expanded row, the first rendered would be 5 }); - it('should derive the height from the content if getDetailPanelHeight returns "auto"', async function test() { + it('should derive the height from the content if getDetailPanelHeight returns "auto"', async function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; const detailPanelHeight = 100; @@ -97,9 +104,11 @@ describe(' - Detail panel', () => { }); }); - it('should update the detail panel height if the content height changes when getDetailPanelHeight returns "auto"', async function test() { + it('should update the detail panel height if the content height changes when getDetailPanelHeight returns "auto"', async function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } function ExpandableCell() { const [expanded, setExpanded] = React.useState(false); @@ -153,9 +162,12 @@ describe(' - Detail panel', () => { }); }); - it('should position correctly the detail panels', function test() { + it('should position correctly the detail panels', function test(t = {}) { if (isJSDOM) { - this.skip(); // Doesn't work with mocked window.getComputedStyle + // Doesn't work with mocked window.getComputedStyle + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; @@ -201,9 +213,12 @@ describe(' - Detail panel', () => { expect(screen.queryByText('Row 0')).to.equal(null); }); - it('should consider the height of the detail panel when scrolling to a cell', function test() { + it('should consider the height of the detail panel when scrolling to a cell', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const rowHeight = 50; const columnHeaderHeight = 50; @@ -229,9 +244,12 @@ describe(' - Detail panel', () => { expect(virtualScroller.scrollTop).to.equal(50); }); - it('should not scroll vertically when navigating expanded row cells', function test() { + it('should not scroll vertically when navigating expanded row cells', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } function Component() { const data = useBasicDemoData(10, 4); @@ -365,9 +383,12 @@ describe(' - Detail panel', () => { expect(getDetailPanelHeight2.callCount).to.equal(2); }); - it('should update the panel height if getDetailPanelHeight is changed while the panel is open', function test() { + it('should update the panel height if getDetailPanelHeight is changed while the panel is open', function test(t = {}) { if (isJSDOM) { - this.skip(); // Doesn't work with mocked window.getComputedStyle + // Doesn't work with mocked window.getComputedStyle + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const getDetailPanelHeight = spy(() => 100); @@ -437,9 +458,12 @@ describe(' - Detail panel', () => { }); // See https://github.com/mui/mui-x/issues/4607 - it('should make detail panel to take full width of the content', function test() { + it('should make detail panel to take full width of the content', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Detail panel', () => { }); // See https://github.com/mui/mui-x/issues/6694 - it('should add a bottom margin to the expanded row when using `getRowSpacing`', function test() { + it('should add a bottom margin to the expanded row when using `getRowSpacing`', function test(t = {}) { if (isJSDOM) { - this.skip(); // Doesn't work with mocked window.getComputedStyle + // Doesn't work with mocked window.getComputedStyle + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -493,9 +520,12 @@ describe(' - Detail panel', () => { expect(screen.getByTestId(`detail-panel-content`).textContent).to.equal(`${counter}`); }); - it("should not render detail panel for the focused row if it's outside of the viewport", function test() { + it("should not render detail panel for the focused row if it's outside of the viewport", function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( - Events params', () => { }); }); - it('publishing GRID_ROWS_SCROLL should call onFetchRows callback when rows lazy loading is enabled', function test() { + it('publishing GRID_ROWS_SCROLL should call onFetchRows callback when rows lazy loading is enabled', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const handleFetchRows = spy(); render( diff --git a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx index 0f52a5973d60d..d50cbfd4982df 100644 --- a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx @@ -659,9 +659,12 @@ describe(' - Filter', () => { }); }); - it('should not scroll the page when a filter is removed from the panel', function test() { + it('should not scroll the page when a filter is removed from the panel', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(
@@ -693,9 +696,12 @@ describe(' - Filter', () => { expect(window.scrollY).to.equal(initialScrollPosition); }); - it('should not scroll the page when opening the filter panel and the operator=isAnyOf', function test() { + it('should not scroll the page when opening the filter panel and the operator=isAnyOf', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -911,9 +917,12 @@ describe(' - Filter', () => { }); }); - it('should give a stable ID to the filter item used as placeholder', function test() { + it('should give a stable ID to the filter item used as placeholder', function test(t = {}) { if (isJSDOM) { - this.skip(); // It's not re-rendering the filter panel correctly + // It's not re-rendering the filter panel correctly + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const { rerender } = render(); diff --git a/packages/x-data-grid-pro/src/tests/infiniteLoader.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/infiniteLoader.DataGridPro.test.tsx index 131bc7fc66684..ce570569b23c7 100644 --- a/packages/x-data-grid-pro/src/tests/infiniteLoader.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/infiniteLoader.DataGridPro.test.tsx @@ -14,9 +14,12 @@ describe(' - Infnite loader', () => { const { render } = createRenderer(); - it('should call `onRowsScrollEnd` when viewport scroll reaches the bottom', async function test() { + it('should call `onRowsScrollEnd` when viewport scroll reaches the bottom', async function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const baseRows = [ { id: 0, brand: 'Nike' }, @@ -63,9 +66,12 @@ describe(' - Infnite loader', () => { }); }); - it('should call `onRowsScrollEnd` when there is not enough rows to cover the viewport height', async function test() { + it('should call `onRowsScrollEnd` when there is not enough rows to cover the viewport height', async function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const allRows = [ @@ -165,9 +171,12 @@ describe(' - Infnite loader', () => { expect(getRow.callCount).to.equal(5); }); - it('should not observe intersections with the rows pinned to the bottom', async function test() { + it('should not observe intersections with the rows pinned to the bottom', async function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const baseRows = [ { id: 0, brand: 'Nike' }, diff --git a/packages/x-data-grid-pro/src/tests/layout.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/layout.DataGridPro.test.tsx index 34c8e9ded21ff..9b01204e88478 100644 --- a/packages/x-data-grid-pro/src/tests/layout.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/layout.DataGridPro.test.tsx @@ -27,12 +27,10 @@ describe(' - Layout', () => { columns: [{ field: 'brand', width: 100 }], }; - before(function beforeHook() { - if (/jsdom/.test(window.navigator.userAgent)) { - // Need layouting - this.skip(); - } - }); + if (/jsdom/.test(window.navigator.userAgent)) { + // Need layouting + return; + } // Adaptation of describeConformance() describe('MUI component API', () => { @@ -170,9 +168,12 @@ describe(' - Layout', () => { expect(document.querySelector('[title="Ordenar"]')).not.to.equal(null); }); - it('should support the sx prop', function test() { + it('should support the sx prop', function test(t = {}) { if (/jsdom/.test(window.navigator.userAgent)) { - this.skip(); // Doesn't work with mocked window.getComputedStyle + // Doesn't work with mocked window.getComputedStyle + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const theme = createTheme({ diff --git a/packages/x-data-grid-pro/src/tests/lazyLoader.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/lazyLoader.DataGridPro.test.tsx index 1f2dbac26b937..6ec102058f4aa 100644 --- a/packages/x-data-grid-pro/src/tests/lazyLoader.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/lazyLoader.DataGridPro.test.tsx @@ -57,9 +57,12 @@ describe(' - Lazy loader', () => { ); } - it('should not call onFetchRows if the viewport is fully loaded', function test() { + it('should not call onFetchRows if the viewport is fully loaded', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const handleFetchRows = spy(); const rows = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }, { id: 7 }]; @@ -67,9 +70,12 @@ describe(' - Lazy loader', () => { expect(handleFetchRows.callCount).to.equal(0); }); - it('should call onFetchRows when sorting is applied', function test() { + it('should call onFetchRows when sorting is applied', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const handleFetchRows = spy(); render(); @@ -80,9 +86,12 @@ describe(' - Lazy loader', () => { expect(handleFetchRows.callCount).to.equal(2); }); - it('should render skeleton cell if rowCount is bigger than the number of rows', function test() { + it('should render skeleton cell if rowCount is bigger than the number of rows', function test(t = {}) { if (isJSDOM) { - this.skip(); // Needs layout + // Needs layout + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); diff --git a/packages/x-data-grid-pro/src/tests/rowPinning.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/rowPinning.DataGridPro.test.tsx index 15f787bfdc454..9c5f8b7a73c68 100644 --- a/packages/x-data-grid-pro/src/tests/rowPinning.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/rowPinning.DataGridPro.test.tsx @@ -122,10 +122,12 @@ describe(' - Row pinning', () => { expect(screen.getByText(`Total Rows: ${rowCount - 2}`)).not.to.equal(null); }); - it('should keep rows pinned on rows scroll', function test() { + it('should keep rows pinned on rows scroll', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render(); @@ -420,10 +422,12 @@ describe(' - Row pinning', () => { expect(getActiveCellRowId()).to.equal('1'); }); - it('should work with pinned columns', function test() { + it('should work with pinned columns', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } function TestCase() { @@ -489,10 +493,12 @@ describe(' - Row pinning', () => { }); }); - it('should work with variable row height', function test() { + it('should work with variable row height', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } let apiRef!: React.MutableRefObject; @@ -522,10 +528,12 @@ describe(' - Row pinning', () => { expect(getRowById(1)?.clientHeight).to.equal(20); }); - it('should always update on `rowHeight` change', async function test() { + it('should always update on `rowHeight` change', async function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const defaultRowHeight = 52; @@ -559,10 +567,12 @@ describe(' - Row pinning', () => { expect(grid('pinnedRows--bottom')!.offsetHeight).to.equal(36); }); - it('should work with `autoHeight`', function test() { + it('should work with `autoHeight`', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const columnHeaderHeight = 56; @@ -583,10 +593,12 @@ describe(' - Row pinning', () => { expect(grid('main')!.clientHeight).to.equal(columnHeaderHeight + rowHeight * rowCount); }); - it('should work with `autoPageSize`', function test() { + it('should work with `autoPageSize`', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( @@ -765,10 +777,12 @@ describe(' - Row pinning', () => { expect(getRowById(1)!).to.have.class(className); }); - it('should support cell editing', async function test() { + it('should support cell editing', async function test(t = {}) { if (isJSDOM) { // flaky in JSDOM - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const processRowUpdate = spy((row) => ({ ...row, currencyPair: 'USD-GBP' })); const columns: GridColDef[] = [{ field: 'id' }, { field: 'name', editable: true }]; @@ -804,10 +818,12 @@ describe(' - Row pinning', () => { expect(processRowUpdate.lastCall.args[0]).to.deep.equal({ id: 3, name: 'Marcus' }); }); - it('should support row editing', async function test() { + it('should support row editing', async function test(t = {}) { if (isJSDOM) { // flaky in JSDOM - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const processRowUpdate = spy((row) => ({ ...row, currencyPair: 'USD-GBP' })); const columns: GridColDef[] = [{ field: 'id' }, { field: 'name', editable: true }]; diff --git a/packages/x-data-grid-pro/src/tests/rows.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/rows.DataGridPro.test.tsx index 3acb545b4ed5e..2bbc7629fa0f3 100644 --- a/packages/x-data-grid-pro/src/tests/rows.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/rows.DataGridPro.test.tsx @@ -397,12 +397,10 @@ describe(' - Rows', () => { }); describe('virtualization', () => { - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } let apiRef: React.MutableRefObject; function TestCaseVirtualization( @@ -890,12 +888,10 @@ describe(' - Rows', () => { describe('apiRef: setRowHeight', () => { const ROW_HEIGHT = 52; - before(function beforeHook() { - if (isJSDOM) { - // Need layouting - this.skip(); - } - }); + if (isJSDOM) { + // Need layouting + return; + } beforeEach(() => { baselineProps = { diff --git a/packages/x-data-grid-pro/src/tests/sorting.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/sorting.DataGridPro.test.tsx index f2778ad7cd932..ea12377adb2cc 100644 --- a/packages/x-data-grid-pro/src/tests/sorting.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/sorting.DataGridPro.test.tsx @@ -170,10 +170,12 @@ describe(' - Sorting', () => { }); }); - it('should prune rendering on cells', function test() { + it('should prune rendering on cells', function test(t = {}) { // The number of renders depends on the user-agent if (!/HeadlessChrome/.test(window.navigator.userAgent) || !isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } let renderCellCount: number = 0; diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 8ed855b12776d..53c662187039c 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -7,6 +7,7 @@ const packages = [ 'x-date-pickers', 'x-date-pickers-pro', 'x-data-grid', + 'x-data-grid-pro', 'x-internals', ]; From f5493b86309488630990c012a3e5e82d7fa42fdb Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 14:37:58 +0200 Subject: [PATCH 077/253] Fix weird prop logic --- .../tests/cellEditing.DataGridPro.test.tsx | 131 +++++++++--------- 1 file changed, 66 insertions(+), 65 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx index 61eb25906561a..bd1f453e8ee6e 100644 --- a/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx @@ -28,9 +28,7 @@ describe(' - Cell editing', () => { props: GridRenderEditCellParams, ) => React.ReactNode); - let columnProps: any = {}; - - function TestCase(props: Partial) { + function TestCase(props: Partial & { columnProps?: Record }) { apiRef = useGridApiRef(); return (
@@ -39,7 +37,7 @@ describe(' - Cell editing', () => { {...defaultData} columns={defaultData.columns.map((column) => column.field === 'currencyPair' - ? { ...column, renderEditCell, editable: true, ...columnProps } + ? { ...column, renderEditCell, editable: true, ...(props.columnProps ?? {}) } : column, )} {...props} @@ -50,7 +48,6 @@ describe(' - Cell editing', () => { afterEach(() => { renderEditCell.resetHistory(); - columnProps = {}; }); describe('apiRef', () => { @@ -112,8 +109,7 @@ describe(' - Cell editing', () => { ...row, currencyPair: value.trim(), }); - columnProps.valueSetter = valueSetter; - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].row).to.deep.equal(defaultData.rows[0]); await act(() => @@ -126,14 +122,14 @@ describe(' - Cell editing', () => { }); it('should pass the new value through the value parser if defined', async () => { - columnProps.valueParser = spy((value) => value.toLowerCase()); - render(); + const valueParser = spy((value) => value.toLowerCase()); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); - expect(columnProps.valueParser.callCount).to.equal(0); + expect(valueParser.callCount).to.equal(0); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), ); - expect(columnProps.valueParser.callCount).to.equal(1); + expect(valueParser.callCount).to.equal(1); expect(renderEditCell.lastCall.args[0].value).to.equal('usd gbp'); }); @@ -148,10 +144,8 @@ describe(' - Cell editing', () => { }); it('should set isProcessingProps to true before calling preProcessEditCellProps', async () => { - columnProps.preProcessEditCellProps = spy( - ({ props }: GridPreProcessEditCellProps) => props, - ); - render(); + const preProcessEditCellProps = spy(({ props }: GridPreProcessEditCellProps) => props); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); let promise: Promise | null = null; // We want to flush updates before preProcessEditCellProps resolves @@ -167,10 +161,8 @@ describe(' - Cell editing', () => { }); it('should call preProcessEditCellProps with the correct params', async () => { - columnProps.preProcessEditCellProps = spy( - ({ props }: GridPreProcessEditCellProps) => props, - ); - render(); + const preProcessEditCellProps = spy(({ props }: GridPreProcessEditCellProps) => props); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); await act(() => apiRef.current.setEditCellValue({ @@ -179,7 +171,7 @@ describe(' - Cell editing', () => { value: 'USD GBP', }), ); - const args = columnProps.preProcessEditCellProps.lastCall.args[0]; + const args = preProcessEditCellProps.lastCall.args[0]; expect(args.id).to.equal(0); expect(args.row).to.deep.equal(defaultData.rows[0]); expect(args.hasChanged).to.equal(true); @@ -192,14 +184,19 @@ describe(' - Cell editing', () => { }); it('should not publish onCellEditStop if field has error', async () => { - columnProps.preProcessEditCellProps = spy(({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = spy(({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, })); const handleEditCellStop = spy(); - render(); + render( + , + ); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); await act(() => apiRef.current.setEditCellValue({ @@ -217,11 +214,11 @@ describe(' - Cell editing', () => { }); it('should pass to renderEditCell the props returned by preProcessEditCellProps', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, foo: 'bar', }); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].foo).to.equal(undefined); await act(() => @@ -231,11 +228,11 @@ describe(' - Cell editing', () => { }); it('should not pass to renderEditCell the value returned by preProcessEditCellProps', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, value: 'foobar', }); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].value).to.equal('USDGBP'); await act(() => @@ -245,8 +242,8 @@ describe(' - Cell editing', () => { }); it('should set isProcessingProps to false after calling preProcessEditCellProps', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => props; - render(); + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => props; + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); let promise: Promise | null = null; // We want to flush updates before preProcessEditCellProps resolves @@ -263,11 +260,11 @@ describe(' - Cell editing', () => { }); it('should return false if preProcessEditCellProps sets an error', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect( await act(() => @@ -280,13 +277,13 @@ describe(' - Cell editing', () => { ).to.equal(false); }); - it('should return false if the cell left the edit mode while calling preProcessEditCellProps', (done) => { + it('should return false if the cell left the edit mode while calling preProcessEditCellProps', async () => { let resolveCallback: () => void; - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => new Promise((resolve) => { resolveCallback = () => resolve(props); }); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); let promise: Promise; @@ -298,11 +295,6 @@ describe(' - Cell editing', () => { }) as Promise; }); - promise!.then((result) => { - expect(result).to.equal(false); - done(); - }); - act(() => apiRef.current.stopCellEditMode({ id: 0, @@ -312,6 +304,8 @@ describe(' - Cell editing', () => { ); resolveCallback!(); + + expect(await act(async () => promise)).to.equal(false); }); describe('with debounceMs > 0', () => { @@ -363,11 +357,11 @@ describe(' - Cell editing', () => { it('should update the row with the new value stored', async () => { render(); - act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); - await act(() => + await act(async () => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); + await act(async () => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), ); - act(() => apiRef.current.stopCellEditMode({ id: 0, field: 'currencyPair' })); + await act(async () => apiRef.current.stopCellEditMode({ id: 0, field: 'currencyPair' })); expect(getCell(0, 1).textContent).to.equal('USD GBP'); }); @@ -389,11 +383,11 @@ describe(' - Cell editing', () => { it('should do nothing if props are still being processed and ignoreModifications=false', async () => { let resolveCallback: () => void; - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => new Promise((resolve) => { resolveCallback = () => resolve(props); }); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); let promise: Promise; @@ -415,11 +409,11 @@ describe(' - Cell editing', () => { }); it('should do nothing if props contain error=true', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), @@ -429,12 +423,17 @@ describe(' - Cell editing', () => { }); it('should keep mode=edit if props of any column contains error=true', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); const onCellModesModelChange = spy(); - render(); + render( + , + ); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), @@ -446,11 +445,11 @@ describe(' - Cell editing', () => { }); it('should allow a 2nd call if the first call was when error=true', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: props.value.length === 0, }); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); await act(() => @@ -580,12 +579,12 @@ describe(' - Cell editing', () => { }); it('should pass the new value through the value setter before calling processRowUpdate', async () => { - columnProps.valueSetter = spy((value, row) => ({ + const valueSetter = spy((value, row) => ({ ...row, _currencyPair: value, })); const processRowUpdate = spy(() => new Promise(() => {})); - render(); + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), @@ -596,13 +595,13 @@ describe(' - Cell editing', () => { currencyPair: 'USDGBP', _currencyPair: 'USD GBP', }); - expect(columnProps.valueSetter.lastCall.args[0]).to.equal('USD GBP'); - expect(columnProps.valueSetter.lastCall.args[1]).to.deep.equal(defaultData.rows[0]); + expect(valueSetter.lastCall.args[0]).to.equal('USD GBP'); + expect(valueSetter.lastCall.args[1]).to.deep.equal(defaultData.rows[0]); }); it('should move focus to the cell below when cellToFocusAfter=below', async () => { - columnProps.renderEditCell = (props: GridCellProps) => ; - render(); + const renderEditCellProp = (props: GridCellProps) => ; + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(getCell(0, 1).querySelector('input')).toHaveFocus(); @@ -617,7 +616,7 @@ describe(' - Cell editing', () => { }); it('should move focus to the cell on the right when cellToFocusAfter=right', async () => { - columnProps.renderEditCell = (props: GridCellProps) => ; + const renderEditCellProp = (props: GridCellProps) => ; render( - Cell editing', () => { { field: 'currencyPair', editable: true }, { field: 'price1M', editable: true }, ]} + columnProps={{ renderEditCell: renderEditCellProp }} />, ); @@ -642,7 +642,7 @@ describe(' - Cell editing', () => { }); it('should move focus to the cell on the left when cellToFocusAfter=left', async () => { - columnProps.renderEditCell = (props: GridCellProps) => ; + const renderEditCellProp = (props: GridCellProps) => ; render( - Cell editing', () => { { field: 'currencyPair', editable: true }, { field: 'price1M', editable: true }, ]} + columnProps={{ renderEditCell: renderEditCellProp }} />, ); @@ -1011,8 +1012,8 @@ describe(' - Cell editing', () => { }); it('should call stopCellEditMode with ignoreModifications=false if the props are being processed', async () => { - columnProps.preProcessEditCellProps = () => new Promise(() => {}); - render(); + const preProcessEditCellProps = () => new Promise(() => {}); + render(); const spiedStopCellEditMode = spyApi(apiRef.current, 'stopCellEditMode'); fireEvent.doubleClick(getCell(0, 1)); await act( @@ -1088,8 +1089,8 @@ describe(' - Cell editing', () => { }); it('should call stopCellEditMode with ignoreModifications=false if the props are being processed', async () => { - columnProps.preProcessEditCellProps = () => new Promise(() => {}); - render(); + const preProcessEditCellProps = () => new Promise(() => {}); + render(); const spiedStopCellEditMode = spyApi(apiRef.current, 'stopCellEditMode'); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); @@ -1137,8 +1138,8 @@ describe(' - Cell editing', () => { }); it('should call stopCellEditMode with ignoreModifications=false if the props are being processed', async () => { - columnProps.preProcessEditCellProps = () => new Promise(() => {}); - render(); + const preProcessEditCellProps = () => new Promise(() => {}); + render(); const spiedStopCellEditMode = spyApi(apiRef.current, 'stopCellEditMode'); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); @@ -1240,11 +1241,11 @@ describe(' - Cell editing', () => { }); it('should not mutate the cellModesModel prop if props of any column contains error=true', async () => { - columnProps.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - const { setProps } = render(); + const { setProps } = render(); const cell = getCell(0, 1); fireEvent.mouseUp(cell); fireEvent.click(cell); From 820bbd58d23161595e65283a014eee3a2a4b52c4 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 14:45:54 +0200 Subject: [PATCH 078/253] Also change rendereditcell --- .../tests/cellEditing.DataGridPro.test.tsx | 73 ++++++++++++++----- 1 file changed, 53 insertions(+), 20 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx index bd1f453e8ee6e..3fa98b164baac 100644 --- a/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/cellEditing.DataGridPro.test.tsx @@ -24,12 +24,13 @@ describe(' - Cell editing', () => { const defaultData = getBasicGridData(4, 2); - const renderEditCell = spy((() => ) as ( + const defaultRenderEditCell = (() => ) as ( props: GridRenderEditCellParams, - ) => React.ReactNode); + ) => React.ReactNode; function TestCase(props: Partial & { columnProps?: Record }) { apiRef = useGridApiRef(); + const { columnProps = {}, ...rest } = props; return (
- Cell editing', () => { {...defaultData} columns={defaultData.columns.map((column) => column.field === 'currencyPair' - ? { ...column, renderEditCell, editable: true, ...(props.columnProps ?? {}) } + ? { + ...column, + renderEditCell: defaultRenderEditCell, + editable: true, + ...columnProps, + } : column, )} - {...props} + {...rest} />
); } - afterEach(() => { - renderEditCell.resetHistory(); - }); - describe('apiRef', () => { describe('startCellEditMode', () => { it('should throw when the cell is already in edit mode', () => { @@ -68,14 +70,19 @@ describe(' - Cell editing', () => { }); it('should render the component given in renderEditCell', () => { - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); expect(renderEditCell.callCount).to.equal(0); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.callCount).not.to.equal(0); }); it('should pass props to renderEditCell', () => { - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); + act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].value).to.equal('USDGBP'); expect(renderEditCell.lastCall.args[0].error).to.equal(false); @@ -83,7 +90,10 @@ describe(' - Cell editing', () => { }); it('should empty the value if deleteValue is true', () => { - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); + act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair', deleteValue: true }), ); @@ -95,7 +105,10 @@ describe(' - Cell editing', () => { describe('setEditCellValue', () => { it('should update the value prop given to renderEditCell', async () => { - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); + act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].value).to.equal('USDGBP'); await act(() => @@ -109,7 +122,10 @@ describe(' - Cell editing', () => { ...row, currencyPair: value.trim(), }); - render(); + + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].row).to.deep.equal(defaultData.rows[0]); await act(() => @@ -123,7 +139,10 @@ describe(' - Cell editing', () => { it('should pass the new value through the value parser if defined', async () => { const valueParser = spy((value) => value.toLowerCase()); - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); + act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(valueParser.callCount).to.equal(0); await act(() => @@ -145,7 +164,9 @@ describe(' - Cell editing', () => { it('should set isProcessingProps to true before calling preProcessEditCellProps', async () => { const preProcessEditCellProps = spy(({ props }: GridPreProcessEditCellProps) => props); - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); let promise: Promise | null = null; // We want to flush updates before preProcessEditCellProps resolves @@ -218,7 +239,9 @@ describe(' - Cell editing', () => { ...props, foo: 'bar', }); - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].foo).to.equal(undefined); await act(() => @@ -232,7 +255,9 @@ describe(' - Cell editing', () => { ...props, value: 'foobar', }); - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].value).to.equal('USDGBP'); await act(() => @@ -243,7 +268,9 @@ describe(' - Cell editing', () => { it('should set isProcessingProps to false after calling preProcessEditCellProps', async () => { const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => props; - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); let promise: Promise | null = null; // We want to flush updates before preProcessEditCellProps resolves @@ -312,7 +339,11 @@ describe(' - Cell editing', () => { clock.withFakeTimers(); it('should debounce multiple changes if debounceMs > 0', () => { - render(); + const renderEditCell = spy((() => ) as ( + props: GridRenderEditCellParams, + ) => React.ReactNode); + + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); expect(renderEditCell.lastCall.args[0].value).to.equal('USDGBP'); renderEditCell.resetHistory(); @@ -669,7 +700,9 @@ describe(' - Cell editing', () => { it('should run all pending value mutations before calling processRowUpdate', async () => { const processRowUpdate = spy(() => new Promise(() => {})); - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startCellEditMode({ id: 0, field: 'currencyPair' })); await act( () => From 834249920ef8a21b42b43bef86d4fd2802220dbf Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 16:48:48 +0200 Subject: [PATCH 079/253] refactor row editing --- .../src/tests/rowEditing.DataGridPro.test.tsx | 278 +++++++++++------- 1 file changed, 170 insertions(+), 108 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx index fa95887bf4307..599de9fe4af41 100644 --- a/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/rowEditing.DataGridPro.test.tsx @@ -34,19 +34,13 @@ describe(' - Row editing', () => { return ; } - const renderEditCell1 = spy((props: GridRenderEditCellParams) => ( + const defaultRenderEditCell = (props: GridRenderEditCellParams) => ( - )); + ); - const renderEditCell2 = spy((props: GridRenderEditCellParams) => ( - - )); - - let column1Props: any = {}; - let column2Props: any = {}; - - function TestCase(props: Partial) { + function TestCase(props: Partial & { column1Props?: any; column2Props?: any }) { apiRef = useGridApiRef(); + const { column1Props = {}, column2Props = {}, ...rest } = props; return (
- Row editing', () => { if (column.field === 'currencyPair') { return { ...column, - renderEditCell: renderEditCell1, + renderEditCell: defaultRenderEditCell, editable: true, ...column1Props, }; @@ -66,26 +60,19 @@ describe(' - Row editing', () => { if (column.field === 'price1M') { return { ...column, - renderEditCell: renderEditCell2, + renderEditCell: defaultRenderEditCell, editable: true, ...column2Props, }; } return column; })} - {...props} + {...rest} />
); } - afterEach(() => { - renderEditCell1.resetHistory(); - renderEditCell2.resetHistory(); - column1Props = {}; - column2Props = {}; - }); - describe('apiRef', () => { describe('startRowEditMode', () => { it('should throw when the row is already in edit mode', () => { @@ -113,7 +100,15 @@ describe(' - Row editing', () => { }); it('should render the components given in renderEditCell', () => { - render(); + const renderEditCell1 = spy(defaultRenderEditCell); + const renderEditCell2 = spy(defaultRenderEditCell); + + render( + , + ); expect(renderEditCell1.callCount).to.equal(0); expect(renderEditCell2.callCount).to.equal(0); act(() => apiRef.current.startRowEditMode({ id: 0 })); @@ -122,7 +117,15 @@ describe(' - Row editing', () => { }); it('should pass props to renderEditCell', () => { - render(); + const renderEditCell1 = spy(defaultRenderEditCell); + const renderEditCell2 = spy(defaultRenderEditCell); + + render( + , + ); act(() => apiRef.current.startRowEditMode({ id: 0 })); expect(renderEditCell1.lastCall.args[0].value).to.equal('USDGBP'); expect(renderEditCell1.lastCall.args[0].error).to.equal(false); @@ -133,7 +136,16 @@ describe(' - Row editing', () => { }); it('should empty the value if deleteValue is true', () => { - render(); + const renderEditCell1 = spy(defaultRenderEditCell); + const renderEditCell2 = spy(defaultRenderEditCell); + + render( + , + ); + act(() => apiRef.current.startRowEditMode({ id: 0, @@ -148,7 +160,16 @@ describe(' - Row editing', () => { describe('setEditCellValue', () => { it('should update the value prop given to renderEditCell', async () => { - render(); + const renderEditCell1 = spy(defaultRenderEditCell); + const renderEditCell2 = spy(defaultRenderEditCell); + + render( + , + ); + act(() => apiRef.current.startRowEditMode({ id: 0 })); expect(renderEditCell1.lastCall.args[0].value).to.equal('USDGBP'); await act(() => @@ -162,8 +183,15 @@ describe(' - Row editing', () => { ...row, currencyPair: value.trim(), }); - column1Props.valueSetter = valueSetter; - render(); + const renderEditCell1 = spy(defaultRenderEditCell); + const renderEditCell2 = spy(defaultRenderEditCell); + + render( + , + ); act(() => apiRef.current.startRowEditMode({ id: 0 })); expect(renderEditCell1.lastCall.args[0].row).to.deep.equal(defaultData.rows[0]); await act(() => @@ -178,15 +206,17 @@ describe(' - Row editing', () => { }); it('should pass the new value through the value parser if defined', async () => { - column1Props.valueParser = spy((value) => value.toLowerCase()); - render(); + const valueParser = spy((value) => value.toLowerCase()); + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); - expect(column1Props.valueParser.callCount).to.equal(0); + expect(valueParser.callCount).to.equal(0); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), ); - expect(column1Props.valueParser.callCount).to.equal(1); - expect(renderEditCell1.lastCall.args[0].value).to.equal('usd gbp'); + expect(valueParser.callCount).to.equal(1); + expect(renderEditCell.lastCall.args[0].value).to.equal('usd gbp'); }); it('should return true if no preProcessEditCellProps is defined', async () => { @@ -200,8 +230,9 @@ describe(' - Row editing', () => { }); it('should set isProcessingProps to true before calling preProcessEditCellProps', async () => { - column1Props.preProcessEditCellProps = () => new Promise(() => {}); - render(); + const preProcessEditCellProps = () => new Promise(() => {}); + const renderEditCell = spy(defaultRenderEditCell); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); await act( () => @@ -210,23 +241,24 @@ describe(' - Row editing', () => { resolve(); }), ); - expect(renderEditCell1.lastCall.args[0].isProcessingProps).to.equal(true); + expect(renderEditCell.lastCall.args[0].isProcessingProps).to.equal(true); }); it('should call all preProcessEditCellProps with the correct params', async () => { - column1Props.preProcessEditCellProps = spy( - ({ props }: GridPreProcessEditCellProps) => props, - ); - column2Props.preProcessEditCellProps = spy( - ({ props }: GridPreProcessEditCellProps) => props, + const preProcessEditCellProps1 = spy(({ props }: GridPreProcessEditCellProps) => props); + const preProcessEditCellProps2 = spy(({ props }: GridPreProcessEditCellProps) => props); + render( + , ); - render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), ); - const args1 = column1Props.preProcessEditCellProps.lastCall.args[0]; + const args1 = preProcessEditCellProps1.lastCall.args[0]; expect(args1.id).to.equal(0); expect(args1.row).to.deep.equal(defaultData.rows[0]); expect(args1.hasChanged).to.equal(true); @@ -237,7 +269,7 @@ describe(' - Row editing', () => { changeReason: 'setEditCellValue', }); - const args2 = column2Props.preProcessEditCellProps.lastCall.args[0]; + const args2 = preProcessEditCellProps2.lastCall.args[0]; expect(args2.id).to.equal(0); expect(args2.row).to.deep.equal(defaultData.rows[0]); expect(args2.hasChanged).to.equal(false); @@ -249,46 +281,62 @@ describe(' - Row editing', () => { }); it('should pass to renderEditCell the props returned by preProcessEditCellProps', async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const renderEditCell = spy(defaultRenderEditCell); + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, foo: 'bar', }); - render(); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); - expect(renderEditCell1.lastCall.args[0].foo).to.equal(undefined); + expect(renderEditCell.lastCall.args[0].foo).to.equal(undefined); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), ); - expect(renderEditCell1.lastCall.args[0].foo).to.equal('bar'); + expect(renderEditCell.lastCall.args[0].foo).to.equal('bar'); }); it('should not pass to renderEditCell the value returned by preProcessEditCellProps', async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const renderEditCell = spy(defaultRenderEditCell); + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, value: 'foobar', }); - render(); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); - expect(renderEditCell1.lastCall.args[0].value).to.equal('USDGBP'); + expect(renderEditCell.lastCall.args[0].value).to.equal('USDGBP'); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), ); - expect(renderEditCell1.lastCall.args[0].value).to.equal('USD GBP'); + expect(renderEditCell.lastCall.args[0].value).to.equal('USD GBP'); }); it('should set isProcessingProps to false after calling preProcessEditCellProps', async () => { let resolve1: () => void; let resolve2: () => void; - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => + const renderEditCell1 = spy(defaultRenderEditCell); + const renderEditCell2 = spy(defaultRenderEditCell); + + const preProcessEditCellProps1 = ({ props }: GridPreProcessEditCellProps) => new Promise((resolve) => { resolve1 = () => resolve(props); }); - column2Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => + const preProcessEditCellProps2 = ({ props }: GridPreProcessEditCellProps) => new Promise((resolve) => { resolve2 = () => resolve(props); }); - render(); + render( + , + ); act(() => apiRef.current.startRowEditMode({ id: 0 })); let promise: Promise; await act( @@ -312,11 +360,11 @@ describe(' - Row editing', () => { }); it('should return false if preProcessEditCellProps sets an error', async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - render(); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); expect( await act(() => @@ -329,13 +377,13 @@ describe(' - Row editing', () => { ).to.equal(false); }); - it('should return false if the cell left the edit mode while calling preProcessEditCellProps', (done) => { + it('should return false if the cell left the edit mode while calling preProcessEditCellProps', async () => { let resolveCallback: () => void; - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => new Promise((resolve) => { resolveCallback = () => resolve(props); }); - render(); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); let promise: Promise; @@ -347,11 +395,6 @@ describe(' - Row editing', () => { }) as Promise; }); - promise!.then((result) => { - expect(result).to.equal(false); - done(); - }); - act(() => apiRef.current.stopRowEditMode({ id: 0, @@ -360,16 +403,20 @@ describe(' - Row editing', () => { ); resolveCallback!(); + + expect(await act(async () => promise)).to.equal(false); }); describe('with debounceMs > 0', () => { clock.withFakeTimers(); it('should debounce multiple changes if debounceMs > 0', () => { - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); - expect(renderEditCell1.lastCall.args[0].value).to.equal('USDGBP'); - renderEditCell1.resetHistory(); + expect(renderEditCell.lastCall.args[0].value).to.equal('USDGBP'); + renderEditCell.resetHistory(); act(() => { apiRef.current.setEditCellValue({ id: 0, @@ -378,7 +425,7 @@ describe(' - Row editing', () => { debounceMs: 100, }); }); - expect(renderEditCell1.callCount).to.equal(0); + expect(renderEditCell.callCount).to.equal(0); act(() => { apiRef.current.setEditCellValue({ id: 0, @@ -387,10 +434,10 @@ describe(' - Row editing', () => { debounceMs: 100, }); }); - expect(renderEditCell1.callCount).to.equal(0); + expect(renderEditCell.callCount).to.equal(0); clock.tick(100); - expect(renderEditCell1.callCount).not.to.equal(0); - expect(renderEditCell1.lastCall.args[0].value).to.equal('USD GBP'); + expect(renderEditCell.callCount).not.to.equal(0); + expect(renderEditCell.lastCall.args[0].value).to.equal('USD GBP'); }); }); }); @@ -405,11 +452,11 @@ describe(' - Row editing', () => { it('should update the row with the new value stored', async () => { render(); - act(() => apiRef.current.startRowEditMode({ id: 0 })); - await act(() => + await act(async () => apiRef.current.startRowEditMode({ id: 0 })); + await act(async () => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), ); - act(() => apiRef.current.stopRowEditMode({ id: 0 })); + await act(async () => apiRef.current.stopRowEditMode({ id: 0 })); expect(getCell(0, 1).textContent).to.equal('USD GBP'); }); @@ -425,12 +472,12 @@ describe(' - Row editing', () => { it('should do nothing if props are still being processed and ignoreModifications=false', async () => { let resolveCallback: () => void; - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => new Promise((resolve) => { resolveCallback = () => resolve(props); }); - render(); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); let promise: Promise; @@ -453,11 +500,11 @@ describe(' - Row editing', () => { }); it('should do nothing if props of any column contains error=true', async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - render(); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), @@ -467,12 +514,17 @@ describe(' - Row editing', () => { }); it('should keep mode=edit if props of any column contains error=true', async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); const onRowModesModelChange = spy(); - render(); + render( + , + ); act(() => apiRef.current.startRowEditMode({ id: 0 })); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), @@ -482,11 +534,11 @@ describe(' - Row editing', () => { }); it('should allow a 2nd call if the first call was when error=true', async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: props.value.length === 0, }); - render(); + render(); act(() => apiRef.current.startRowEditMode({ id: 0 })); await act(() => @@ -612,16 +664,22 @@ describe(' - Row editing', () => { }); it('should pass the new value through all value setters before calling processRowUpdate', async () => { - column1Props.valueSetter = spy((value, row) => ({ + const valueSetter1 = spy((value, row) => ({ ...row, _currencyPair: value, })); - column2Props.valueSetter = spy((value, row) => ({ + const valueSetter2 = spy((value, row) => ({ ...row, _price1M: value, })); const processRowUpdate = spy((newRow) => newRow); - render(); + render( + , + ); act(() => apiRef.current.startRowEditMode({ id: 0 })); await act(() => apiRef.current.setEditCellValue({ id: 0, field: 'currencyPair', value: 'USD GBP' }), @@ -635,11 +693,11 @@ describe(' - Row editing', () => { price1M: 1, _price1M: 1, }); - expect(column1Props.valueSetter.lastCall.args[0]).to.equal('USD GBP'); - expect(column1Props.valueSetter.lastCall.args[1]).to.deep.equal(defaultData.rows[0]); + expect(valueSetter1.lastCall.args[0]).to.equal('USD GBP'); + expect(valueSetter1.lastCall.args[1]).to.deep.equal(defaultData.rows[0]); - expect(column2Props.valueSetter.lastCall.args[0]).to.equal(1); - expect(column2Props.valueSetter.lastCall.args[1]).to.deep.equal({ + expect(valueSetter2.lastCall.args[0]).to.equal(1); + expect(valueSetter2.lastCall.args[1]).to.deep.equal({ // Ensure that the row contains the values from the previous setter); ...defaultData.rows[0], currencyPair: 'USDGBP', @@ -727,7 +785,11 @@ describe(' - Row editing', () => { it('should run all pending value mutations before calling processRowUpdate', async () => { const processRowUpdate = spy((newRow) => newRow); - render(); + const renderEditCell = spy(defaultRenderEditCell); + + render( + , + ); act(() => apiRef.current.startRowEditMode({ id: 0 })); await act(async () => { apiRef.current.setEditCellValue({ @@ -739,7 +801,7 @@ describe(' - Row editing', () => { }); act(() => apiRef.current.stopRowEditMode({ id: 0 })); await act(() => Promise.resolve()); - expect(renderEditCell1.lastCall.args[0].value).to.equal('USD GBP'); + expect(renderEditCell.lastCall.args[0].value).to.equal('USD GBP'); expect(processRowUpdate.lastCall.args[0].currencyPair).to.equal('USD GBP'); }); }); @@ -973,11 +1035,11 @@ describe(' - Row editing', () => { }); it(`should not publish 'rowEditStop' if field has error`, async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - render(); + render(); const listener = spy(); apiRef.current.subscribeEvent('rowEditStop', listener); const cell = getCell(0, 1); @@ -1008,8 +1070,8 @@ describe(' - Row editing', () => { }); it('should call stopRowEditMode with ignoreModifications=false if the props are being processed', async () => { - column1Props.preProcessEditCellProps = () => new Promise(() => {}); - render(); + const preProcessEditCellProps = () => new Promise(() => {}); + render(); const spiedStopRowEditMode = spyApi(apiRef.current, 'stopRowEditMode'); fireEvent.doubleClick(getCell(0, 1)); act(() => { @@ -1036,11 +1098,11 @@ describe(' - Row editing', () => { }); it(`should publish 'rowEditStop' even if field has error`, async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - render(); + render(); const listener = spy(); apiRef.current.subscribeEvent('rowEditStop', listener); const cell = getCell(0, 1); @@ -1085,11 +1147,11 @@ describe(' - Row editing', () => { }); it(`should not publish 'rowEditStop' if field has error`, async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - render(); + render(); const listener = spy(); apiRef.current.subscribeEvent('rowEditStop', listener); const cell = getCell(0, 1); @@ -1120,8 +1182,8 @@ describe(' - Row editing', () => { }); it('should call stopRowEditMode with ignoreModifications=false if the props are being processed', async () => { - column1Props.preProcessEditCellProps = () => new Promise(() => {}); - render(); + const preProcessEditCellProps = () => new Promise(() => {}); + render(); const spiedStopRowEditMode = spyApi(apiRef.current, 'stopRowEditMode'); const cell = getCell(0, 1); fireUserEvent.mousePress(cell); @@ -1193,8 +1255,8 @@ describe(' - Row editing', () => { }); it('should call stopRowEditMode with ignoreModifications=false if the props are being processed', async () => { - column1Props.preProcessEditCellProps = () => new Promise(() => {}); - render(); + const preProcessEditCellProps = () => new Promise(() => {}); + render(); const spiedStopRowEditMode = spyApi(apiRef.current, 'stopRowEditMode'); const cell = getCell(0, 2); fireUserEvent.mousePress(cell); @@ -1329,11 +1391,11 @@ describe(' - Row editing', () => { }); it('should not mutate the rowModesModel prop if props of any column contains error=true', async () => { - column1Props.preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ + const preProcessEditCellProps = ({ props }: GridPreProcessEditCellProps) => ({ ...props, error: true, }); - const { setProps } = render(); + const { setProps } = render(); const cell = getCell(0, 1); fireEvent.mouseUp(cell); fireEvent.click(cell); @@ -1398,10 +1460,10 @@ describe(' - Row editing', () => { ); } - column1Props.renderEditCell = (props: GridRenderEditCellParams) => ( + const renderEditCell = (props: GridRenderEditCellParams) => ( ); - render(); + render(); fireEvent.doubleClick(getCell(0, 1)); const input = screen.getByTestId('input'); expect(input).toHaveFocus(); @@ -1423,10 +1485,10 @@ describe(' - Row editing', () => { ); } - column2Props.renderEditCell = (props: GridRenderEditCellParams) => ( + const renderEditCell = (props: GridRenderEditCellParams) => ( ); - render(); + render(); fireEvent.doubleClick(getCell(0, 2)); const input = screen.getByTestId('input'); expect(input).toHaveFocus(); From 163ed7ec864f81e4bbe4081bb965c638ac94002a Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 11 Oct 2024 16:49:03 +0200 Subject: [PATCH 080/253] fix jsdom specific logic for vitest --- .../src/tests/filtering.DataGridPro.test.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx index d50cbfd4982df..9704267dcf3c6 100644 --- a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx @@ -499,7 +499,9 @@ describe(' - Filter', () => { // https://github.com/testing-library/dom-testing-library/issues/820#issuecomment-726936225 const input = getSelectInput( screen.queryAllByRole('combobox', { name: 'Logic operator', hidden: true })[ - isJSDOM ? 1 : 0 // https://github.com/testing-library/dom-testing-library/issues/846 + // https://github.com/testing-library/dom-testing-library/issues/846 + // This error doesn't happen in vitest + isJSDOM && process.env.MUI_JSDOM !== 'true' ? 1 : 0 ], ); fireEvent.change(input!, { target: { value: 'or' } }); @@ -1191,8 +1193,11 @@ describe(' - Filter', () => { }, }; render(); - // For JSDom, the first hidden combo is also found which we are not interested in - const select = screen.getAllByRole('combobox', { name: 'Logic operator' })[isJSDOM ? 1 : 0]; + const select = screen.getAllByRole('combobox', { name: 'Logic operator' })[ + // For JSDom, the first hidden combo is also found which we are not interested in + // This error doesn't happen in vitest + isJSDOM && process.env.MUI_JSDOM !== 'true' ? 1 : 0 + ]; expect(select).not.to.have.class('Mui-disabled'); }); From 953059d307b7e6ccacfc352c552737eff151b91b Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Sat, 12 Oct 2024 00:14:23 +0200 Subject: [PATCH 081/253] fix issues with playwright scrollbar --- .../src/tests/columns.DataGridPro.test.tsx | 57 +++++++++++-------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 4eb6d41310e66..5a8c06ee402b8 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -165,12 +165,13 @@ describe(' - Columns', () => { fireEvent.doubleClick(separator); await microtasks(); expect(onColumnWidthChange.callCount).to.be.at.least(2); - const widthArgs = onColumnWidthChange.args.map((arg) => arg[0].width); - const isWidth114Present = widthArgs.some((width) => width === 114); - expect(isWidth114Present).to.equal(true); - const colDefWidthArgs = onColumnWidthChange.args.map((arg) => arg[0].colDef.width); - const isColDefWidth114Present = colDefWidthArgs.some((width) => width === 114); - expect(isColDefWidth114Present).to.equal(true); + const widthArgs = onColumnWidthChange.args.map((arg) => Math.round(arg[0].width)); + expect(widthArgs).to.deep.equal([120, 64]); + const colDefWidthArgs = onColumnWidthChange.args.map((arg) => + Math.round(arg[0].colDef.width), + ); + const isColDefWidth64Present = colDefWidthArgs.some((width) => width === 64); + expect(isColDefWidth64Present).to.equal(true); }); it('should not affect other cell elements that are not part of the main DataGrid instance', () => { @@ -445,52 +446,57 @@ describe(' - Columns', () => { }, { id: 1, - brand: 'Adidas', - }, - { - id: 2, brand: 'Puma', }, { - id: 3, + id: 2, brand: 'Lululemon Athletica', }, ]; - const columns = [ - { field: 'id', headerName: 'This is the ID column' }, - { field: 'brand', headerName: 'This is the brand column' }, - ]; - - const getWidths = () => { - return columns.map((_, i) => parseInt(getColumnHeaderCell(i).style.width, 10)); + const buildColumns = () => { + const columns = [ + { field: 'id', headerName: 'This is the ID column' }, + { field: 'brand', headerName: 'This is the brand column' }, + ]; + const getWidths = () => { + return columns.map((_, i) => parseInt(getColumnHeaderCell(i).style.width, 10)); + }; + return { + columns, + getWidths, + }; }; it('should work through the API', async () => { + const { columns, getWidths } = buildColumns(); render(); await apiRef.current.autosizeColumns(); await microtasks(); - expect(getWidths()).to.deep.equal([211, 233]); + expect(getWidths()).to.deep.equal([155, 177]); }); it('should work through double-clicking the separator', async () => { + const { columns, getWidths } = buildColumns(); render(); const separator = document.querySelectorAll( `.${gridClasses['columnSeparator--resizable']}`, )[1]; fireEvent.doubleClick(separator); await microtasks(); - expect(getWidths()).to.deep.equal([100, 233]); + expect(getWidths()).to.deep.equal([100, 177]); }); it('should work on mount', async () => { + const { columns, getWidths } = buildColumns(); render(); await microtasks(); /* first effect after render */ await microtasks(); /* async autosize operation */ - expect(getWidths()).to.deep.equal([211, 233]); + expect(getWidths()).to.deep.equal([155, 177]); }); describe('options', () => { const autosize = async (options: GridAutosizeOptions | undefined, widths: number[]) => { + const { columns, getWidths } = buildColumns(); render(); await apiRef.current.autosizeColumns({ includeHeaders: false, ...options }); await microtasks(); @@ -498,11 +504,11 @@ describe(' - Columns', () => { }; it('.columns works', async () => { - await autosize({ columns: [columns[0].field] }, [50, 100]); + await autosize({ columns: ['id'] }, [50, 100]); }); it('.includeHeaders works', async () => { - await autosize({ includeHeaders: true }, [211, 233]); + await autosize({ includeHeaders: true }, [155, 177]); }); it('.includeOutliers works', async () => { @@ -514,7 +520,7 @@ describe(' - Columns', () => { }); it('.expand works', async () => { - await autosize({ expand: true }, [134, 148]); + await autosize({ expand: true }, [101, 196]); }); }); }); @@ -532,6 +538,7 @@ describe(' - Columns', () => { act(() => apiRef.current.setColumnWidth('brand', 300)); expect(gridColumnLookupSelector(apiRef).brand.computedWidth).to.equal(300); + // @ts-expect-error privateApi is not defined act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnLookupSelector(apiRef).brand.computedWidth).to.equal(300); }); @@ -553,6 +560,7 @@ describe(' - Columns', () => { expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(2); act(() => apiRef.current.setColumnIndex('brand', 1)); expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(1); + // @ts-expect-error privateApi is not defined act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(1); }); @@ -567,6 +575,7 @@ describe(' - Columns', () => { act(() => apiRef.current.updateColumns([{ field: 'id' }])); expect(gridColumnFieldsSelector(apiRef)).to.deep.equal(['__check__', 'brand', 'id']); + // @ts-expect-error privateApi is not defined act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnFieldsSelector(apiRef)).to.deep.equal(['__check__', 'brand', 'id']); }); From dac3923970b165635400bd12a62b00e342e20d04 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 11:10:31 +0200 Subject: [PATCH 082/253] Revert "fix issues with playwright scrollbar" This reverts commit 953059d307b7e6ccacfc352c552737eff151b91b. --- .../src/tests/columns.DataGridPro.test.tsx | 57 ++++++++----------- 1 file changed, 24 insertions(+), 33 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 5a8c06ee402b8..4eb6d41310e66 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -165,13 +165,12 @@ describe(' - Columns', () => { fireEvent.doubleClick(separator); await microtasks(); expect(onColumnWidthChange.callCount).to.be.at.least(2); - const widthArgs = onColumnWidthChange.args.map((arg) => Math.round(arg[0].width)); - expect(widthArgs).to.deep.equal([120, 64]); - const colDefWidthArgs = onColumnWidthChange.args.map((arg) => - Math.round(arg[0].colDef.width), - ); - const isColDefWidth64Present = colDefWidthArgs.some((width) => width === 64); - expect(isColDefWidth64Present).to.equal(true); + const widthArgs = onColumnWidthChange.args.map((arg) => arg[0].width); + const isWidth114Present = widthArgs.some((width) => width === 114); + expect(isWidth114Present).to.equal(true); + const colDefWidthArgs = onColumnWidthChange.args.map((arg) => arg[0].colDef.width); + const isColDefWidth114Present = colDefWidthArgs.some((width) => width === 114); + expect(isColDefWidth114Present).to.equal(true); }); it('should not affect other cell elements that are not part of the main DataGrid instance', () => { @@ -446,57 +445,52 @@ describe(' - Columns', () => { }, { id: 1, - brand: 'Puma', + brand: 'Adidas', }, { id: 2, + brand: 'Puma', + }, + { + id: 3, brand: 'Lululemon Athletica', }, ]; - const buildColumns = () => { - const columns = [ - { field: 'id', headerName: 'This is the ID column' }, - { field: 'brand', headerName: 'This is the brand column' }, - ]; - const getWidths = () => { - return columns.map((_, i) => parseInt(getColumnHeaderCell(i).style.width, 10)); - }; - return { - columns, - getWidths, - }; + const columns = [ + { field: 'id', headerName: 'This is the ID column' }, + { field: 'brand', headerName: 'This is the brand column' }, + ]; + + const getWidths = () => { + return columns.map((_, i) => parseInt(getColumnHeaderCell(i).style.width, 10)); }; it('should work through the API', async () => { - const { columns, getWidths } = buildColumns(); render(); await apiRef.current.autosizeColumns(); await microtasks(); - expect(getWidths()).to.deep.equal([155, 177]); + expect(getWidths()).to.deep.equal([211, 233]); }); it('should work through double-clicking the separator', async () => { - const { columns, getWidths } = buildColumns(); render(); const separator = document.querySelectorAll( `.${gridClasses['columnSeparator--resizable']}`, )[1]; fireEvent.doubleClick(separator); await microtasks(); - expect(getWidths()).to.deep.equal([100, 177]); + expect(getWidths()).to.deep.equal([100, 233]); }); it('should work on mount', async () => { - const { columns, getWidths } = buildColumns(); render(); await microtasks(); /* first effect after render */ await microtasks(); /* async autosize operation */ - expect(getWidths()).to.deep.equal([155, 177]); + expect(getWidths()).to.deep.equal([211, 233]); }); describe('options', () => { const autosize = async (options: GridAutosizeOptions | undefined, widths: number[]) => { - const { columns, getWidths } = buildColumns(); render(); await apiRef.current.autosizeColumns({ includeHeaders: false, ...options }); await microtasks(); @@ -504,11 +498,11 @@ describe(' - Columns', () => { }; it('.columns works', async () => { - await autosize({ columns: ['id'] }, [50, 100]); + await autosize({ columns: [columns[0].field] }, [50, 100]); }); it('.includeHeaders works', async () => { - await autosize({ includeHeaders: true }, [155, 177]); + await autosize({ includeHeaders: true }, [211, 233]); }); it('.includeOutliers works', async () => { @@ -520,7 +514,7 @@ describe(' - Columns', () => { }); it('.expand works', async () => { - await autosize({ expand: true }, [101, 196]); + await autosize({ expand: true }, [134, 148]); }); }); }); @@ -538,7 +532,6 @@ describe(' - Columns', () => { act(() => apiRef.current.setColumnWidth('brand', 300)); expect(gridColumnLookupSelector(apiRef).brand.computedWidth).to.equal(300); - // @ts-expect-error privateApi is not defined act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnLookupSelector(apiRef).brand.computedWidth).to.equal(300); }); @@ -560,7 +553,6 @@ describe(' - Columns', () => { expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(2); act(() => apiRef.current.setColumnIndex('brand', 1)); expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(1); - // @ts-expect-error privateApi is not defined act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(1); }); @@ -575,7 +567,6 @@ describe(' - Columns', () => { act(() => apiRef.current.updateColumns([{ field: 'id' }])); expect(gridColumnFieldsSelector(apiRef)).to.deep.equal(['__check__', 'brand', 'id']); - // @ts-expect-error privateApi is not defined act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnFieldsSelector(apiRef)).to.deep.equal(['__check__', 'brand', 'id']); }); From ddc252d521e3caa6c06c14f5fd4dd2c7cf85fb9b Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 11:17:52 +0200 Subject: [PATCH 083/253] update headless config to show scrollbar --- tsconfig.json | 3 ++- vitest.workspace.ts | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index a83b65a5e4b7e..3a404c675965c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -47,7 +47,8 @@ "test/*": ["./test/*"], "docs/*": ["./node_modules/@mui/monorepo/docs/*"], "docsx/*": ["./docs/*"] - } + }, + "types": ["@vitest/browser/providers/playwright"] }, "exclude": ["**/node_modules/!(@mui)/**", "**/build/**/*", "docs/export/**/*"] } diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 53c662187039c..ccaccb143a967 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -34,7 +34,16 @@ export default defineWorkspace([ provider: 'playwright', headless: true, // https://playwright.dev - providerOptions: {}, + providerOptions: { + // https://playwright.dev/docs/api/class-browsertype#browsertypelaunchoptions + use: { + launchOptions: { + // Required for x-data-grid-pro tests. + // packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx + ignoreDefaultArgs: ['--hide-scrollbars'], + }, + }, + }, screenshotFailures: false, }, }, From 8d28a7b3e2c435a008d9052daa10b73c9b1b0262 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 11:31:40 +0200 Subject: [PATCH 084/253] fix static analysis --- .../x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx | 1 + .../src/AdapterMomentHijri/AdapterMomentHijri.test.tsx | 2 -- test/utils/pickers/describeHijriAdapter/testFormat.ts | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx b/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx index b8927764fb0d0..a951eae3cd519 100644 --- a/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx +++ b/packages/x-data-grid/src/hooks/utils/useGridApiEventHandler.test.tsx @@ -47,6 +47,7 @@ describe('useGridApiEventHandler', () => { expect(apiRef.current.subscribeEvent.callCount).to.equal(3); unmount(); + // @ts-expect-error to support mocha and vitest global.gc(); // Triggers garbage collector await sleep(50); diff --git a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx index bcad494172d01..21961ec0146af 100644 --- a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx @@ -25,7 +25,6 @@ describe('', () => { it('Formatting', (t = {}) => { if (process.env.MUI_BROWSER === 'true') { // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions t?.skip(); } @@ -89,7 +88,6 @@ describe('', () => { it('should have well formatted value', (t = {}) => { if (process.env.MUI_BROWSER === 'true') { // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions t?.skip(); } diff --git a/test/utils/pickers/describeHijriAdapter/testFormat.ts b/test/utils/pickers/describeHijriAdapter/testFormat.ts index 4cadf934ccfaa..a3b55113dd796 100644 --- a/test/utils/pickers/describeHijriAdapter/testFormat.ts +++ b/test/utils/pickers/describeHijriAdapter/testFormat.ts @@ -5,7 +5,6 @@ export const testFormat: DescribeHijriAdapterTestSuite = ({ adapter }) => { it('should format the seconds without leading zeroes for format "s"', (t = {}) => { if (process.env.MUI_BROWSER === 'true') { // @ts-expect-error to support mocha and vitest - // eslint-disable-next-line @typescript-eslint/no-unused-expressions t?.skip(); } const date = adapter.date('2020-01-01T23:44:09.000Z')!; From 0e13811211d1a3489146bf700ee8cbb58a34bd6a Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 14:36:32 +0200 Subject: [PATCH 085/253] try different config --- vitest.workspace.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index ccaccb143a967..6587991706895 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -36,12 +36,10 @@ export default defineWorkspace([ // https://playwright.dev providerOptions: { // https://playwright.dev/docs/api/class-browsertype#browsertypelaunchoptions - use: { - launchOptions: { - // Required for x-data-grid-pro tests. - // packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx - ignoreDefaultArgs: ['--hide-scrollbars'], - }, + launch: { + // Required for x-data-grid-pro tests. + // packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx + ignoreDefaultArgs: ['--hide-scrollbars'], }, }, screenshotFailures: false, From d32bfe5f7ee8eeea7d502cb0eab19f59e8b9f9eb Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 16:49:34 +0200 Subject: [PATCH 086/253] use different values for vitest and karma --- .../src/tests/columns.DataGridPro.test.tsx | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 4eb6d41310e66..9b0b0fe9856b2 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -165,12 +165,14 @@ describe(' - Columns', () => { fireEvent.doubleClick(separator); await microtasks(); expect(onColumnWidthChange.callCount).to.be.at.least(2); - const widthArgs = onColumnWidthChange.args.map((arg) => arg[0].width); - const isWidth114Present = widthArgs.some((width) => width === 114); - expect(isWidth114Present).to.equal(true); + const expectedWidth = process.env.MUI_BROWSER === 'true' ? 63.71875 : 114; + expect(onColumnWidthChange.args.map((arg) => arg[0].width)).to.deep.equal([ + 120, + expectedWidth, + ]); const colDefWidthArgs = onColumnWidthChange.args.map((arg) => arg[0].colDef.width); - const isColDefWidth114Present = colDefWidthArgs.some((width) => width === 114); - expect(isColDefWidth114Present).to.equal(true); + const isCorrectColDefWidthPresent = colDefWidthArgs.some((width) => width === expectedWidth); + expect(isCorrectColDefWidthPresent).to.equal(true); }); it('should not affect other cell elements that are not part of the main DataGrid instance', () => { @@ -469,7 +471,11 @@ describe(' - Columns', () => { render(); await apiRef.current.autosizeColumns(); await microtasks(); - expect(getWidths()).to.deep.equal([211, 233]); + if (process.env.MUI_BROWSER === 'true') { + expect(getWidths()).to.deep.equal([155, 177]); + } else { + expect(getWidths()).to.deep.equal([211, 233]); + } }); it('should work through double-clicking the separator', async () => { @@ -479,14 +485,22 @@ describe(' - Columns', () => { )[1]; fireEvent.doubleClick(separator); await microtasks(); - expect(getWidths()).to.deep.equal([100, 233]); + if (process.env.MUI_BROWSER === 'true') { + expect(getWidths()).to.deep.equal([100, 177]); + } else { + expect(getWidths()).to.deep.equal([100, 233]); + } }); it('should work on mount', async () => { render(); await microtasks(); /* first effect after render */ await microtasks(); /* async autosize operation */ - expect(getWidths()).to.deep.equal([211, 233]); + if (process.env.MUI_BROWSER === 'true') { + expect(getWidths()).to.deep.equal([155, 177]); + } else { + expect(getWidths()).to.deep.equal([211, 233]); + } }); describe('options', () => { @@ -502,7 +516,10 @@ describe(' - Columns', () => { }); it('.includeHeaders works', async () => { - await autosize({ includeHeaders: true }, [211, 233]); + await autosize( + { includeHeaders: true }, + process.env.MUI_BROWSER === 'true' ? [155, 177] : [211, 233], + ); }); it('.includeOutliers works', async () => { @@ -532,6 +549,7 @@ describe(' - Columns', () => { act(() => apiRef.current.setColumnWidth('brand', 300)); expect(gridColumnLookupSelector(apiRef).brand.computedWidth).to.equal(300); + // @ts-ignore act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnLookupSelector(apiRef).brand.computedWidth).to.equal(300); }); @@ -553,6 +571,7 @@ describe(' - Columns', () => { expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(2); act(() => apiRef.current.setColumnIndex('brand', 1)); expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(1); + // @ts-ignore act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnFieldsSelector(apiRef).indexOf('brand')).to.equal(1); }); @@ -567,6 +586,7 @@ describe(' - Columns', () => { act(() => apiRef.current.updateColumns([{ field: 'id' }])); expect(gridColumnFieldsSelector(apiRef)).to.deep.equal(['__check__', 'brand', 'id']); + // @ts-ignore act(() => privateApi.current.requestPipeProcessorsApplication('hydrateColumns')); expect(gridColumnFieldsSelector(apiRef)).to.deep.equal(['__check__', 'brand', 'id']); }); From dd40b0efb1f0b68ee334cf08c12ff0426cc8eb1f Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 18:26:23 +0200 Subject: [PATCH 087/253] initial data-grid-premium --- .../src/tests/cellSelection.DataGridPremium.test.tsx | 10 ++++------ .../src/tests/clipboard.DataGridPremium.test.tsx | 10 ++++------ .../src/tests/columns.DataGridPremium.test.tsx | 6 ++++-- .../src/tests/rowSpanning.DataGridPremium.test.tsx | 6 ++++-- vitest.workspace.ts | 1 + 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx index 1918719266a19..debafe72ff9e1 100644 --- a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx @@ -362,12 +362,10 @@ describe(' - Cell selection', () => { }); describe('Auto-scroll', () => { - before(function beforeHook() { - if (/jsdom/.test(window.navigator.userAgent)) { - // Need layouting - this.skip(); - } - }); + if (/jsdom/.test(window.navigator.userAgent)) { + // Need layouting + return; + } it('should auto-scroll when the mouse approaches the bottom edge', () => { stub(window, 'requestAnimationFrame').callsFake(() => 0); diff --git a/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx index b0c31797af376..e2f97b3594df8 100644 --- a/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/clipboard.DataGridPremium.test.tsx @@ -169,12 +169,10 @@ describe(' - Clipboard', () => { }); describe('paste', () => { - before(function beforeHook() { - if (/jsdom/.test(window.navigator.userAgent)) { - // These test are flaky in JSDOM - this.skip(); - } - }); + if (/jsdom/.test(window.navigator.userAgent)) { + // These test are flaky in JSDOM + return; + } function paste(cell: HTMLElement, pasteText: string) { const pasteEvent = new Event('paste'); diff --git a/packages/x-data-grid-premium/src/tests/columns.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/columns.DataGridPremium.test.tsx index 979136dc5e7e4..dea6b98750a51 100644 --- a/packages/x-data-grid-premium/src/tests/columns.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/columns.DataGridPremium.test.tsx @@ -11,10 +11,12 @@ describe(' - Columns', () => { describe('resizing', () => { // https://github.com/mui/mui-x/issues/10078 - it('should properly resize aggregated column', function test() { + it('should properly resize aggregated column', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } render( diff --git a/packages/x-data-grid-premium/src/tests/rowSpanning.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/rowSpanning.DataGridPremium.test.tsx index 13b9eb8409460..e94cf81f06276 100644 --- a/packages/x-data-grid-premium/src/tests/rowSpanning.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/rowSpanning.DataGridPremium.test.tsx @@ -109,9 +109,11 @@ describe(' - Row spanning', () => { } // See https://github.com/mui/mui-x/issues/14691 - it('should not throw when initializing an aggregation model', function test() { + it('should not throw when initializing an aggregation model', function test(t = {}) { if (isJSDOM) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expect(() => render( diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 6587991706895..2496eff56d3cf 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -8,6 +8,7 @@ const packages = [ 'x-date-pickers-pro', 'x-data-grid', 'x-data-grid-pro', + 'x-data-grid-premium', 'x-internals', ]; From 0bba87018b7e1448be26d9e9b013b9fc3ce442f2 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 18:28:06 +0200 Subject: [PATCH 088/253] remove unnecessary cleanup --- test/setup.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/setup.ts b/test/setup.ts index 92382713464e0..18c94fabce601 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -3,8 +3,6 @@ import 'test/utils/addChaiAssertions'; import 'test/utils/setupPickers'; import 'test/utils/licenseRelease'; import { generateTestLicenseKey, setupTestLicenseKey } from 'test/utils/testLicense'; -// import { unstable_resetCleanupTracking as unstable_resetCleanupTrackingDataGrid } from '@mui/x-data-grid'; -// import { unstable_resetCleanupTracking as unstable_resetCleanupTrackingDataGridPro } from '@mui/x-data-grid-pro'; // import { unstable_resetCleanupTracking as unstable_resetCleanupTrackingTreeView } from '@mui/x-tree-view'; // @ts-ignore @@ -28,8 +26,6 @@ beforeEach(() => { }); afterEach(() => { - // unstable_resetCleanupTrackingDataGrid(); - // unstable_resetCleanupTrackingDataGridPro(); // unstable_resetCleanupTrackingTreeView(); }); From f06ff48daa7e5a61b9f5a2f25e94e88c763d29fb Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 20:41:38 +0200 Subject: [PATCH 089/253] use user events --- .../cellSelection.DataGridPremium.test.tsx | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx index debafe72ff9e1..482bcc7143f38 100644 --- a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx @@ -256,9 +256,9 @@ describe(' - Cell selection', () => { }); // Context: https://github.com/mui/mui-x/issues/14184 - it('should add the new cell selection range to the existing state', () => { + it('should add the new cell selection range to the existing state', async () => { const onCellSelectionModelChange = spy(); - render( + const { user } = render( - Cell selection', () => { ); // Add a new cell range to the selection - fireEvent.mouseDown(getCell(2, 0), { ctrlKey: true }); - fireEvent.mouseOver(getCell(3, 0), { ctrlKey: true }); + // fireEvent.mouseDown(getCell(2, 0), { ctrlKey: true }); + // fireEvent.mouseOver(getCell(3, 0), { ctrlKey: true }); + const isMac = window.navigator.platform.toUpperCase().indexOf('MAC') >= 0; + + await user.keyboard(isMac ? '{Meta>}' : '{Control>'); + await user.pointer([ + // touch the screen at element1 + { keys: '[MouseLeft>]', target: getCell(2, 0) }, + // move the touch pointer to element2 + { target: getCell(3, 0) }, + // release the touch pointer at the last position (element2) + { keys: '[/MouseLeft]' }, + ]); + await user.keyboard(isMac ? '{/Meta}' : '{/Control}'); expect(onCellSelectionModelChange.lastCall.args[0]).to.deep.equal({ '0': { id: true }, From 5c57167a31ce10b51a569903a08f969a04a8aeac Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 21:49:25 +0200 Subject: [PATCH 090/253] fix access --- .../src/tests/rowGrouping.DataGridPremium.test.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx index 9f60eb3694cf7..bc9720eaba17c 100644 --- a/packages/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx @@ -667,7 +667,9 @@ describe(' - Row grouping', () => { />, ); expect(isGroupExpandedByDefault.callCount).to.equal(12); // Should not be called on leaves - const { childrenExpanded, ...node } = apiRef.current.state.rows.tree.A as GridGroupNode; + const { childrenExpanded, ...node } = apiRef.current.state.rows.tree[ + 'auto-generated-row-category1/Cat A' + ] as GridGroupNode; const callForNodeA = isGroupExpandedByDefault .getCalls() .find( From c264163bf5d2497bd238bcde12b3daa84f900052 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 21:53:29 +0200 Subject: [PATCH 091/253] enable treeview and skips --- .../src/TreeItem/TreeItem.test.tsx | 6 +- .../useTreeViewExpansion.test.tsx | 6 +- .../useTreeViewItems.test.tsx | 30 +++++--- .../useTreeViewKeyboardNavigation.test.tsx | 6 +- .../useTreeViewLabel.test.tsx | 72 ++++++++++++------- vitest.workspace.ts | 1 + 6 files changed, 81 insertions(+), 40 deletions(-) diff --git a/packages/x-tree-view/src/TreeItem/TreeItem.test.tsx b/packages/x-tree-view/src/TreeItem/TreeItem.test.tsx index ff89ba1e4f88a..0f0bca9db64b4 100644 --- a/packages/x-tree-view/src/TreeItem/TreeItem.test.tsx +++ b/packages/x-tree-view/src/TreeItem/TreeItem.test.tsx @@ -10,9 +10,11 @@ import { getFakeContextValue } from 'test/utils/tree-view/fakeContextValue'; describeTreeView<[]>('TreeItem component', ({ render, treeItemComponentName }) => { describe('ContentComponent / ContentProps props (TreeItem only)', () => { - it('should render TreeItem when itemId prop is escaping characters without throwing an error', function test() { + it('should render TreeItem when itemId prop is escaping characters without throwing an error', function test(t = {}) { if (treeItemComponentName === 'TreeItem2') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.test.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.test.tsx index 8019dcba99bbf..2d1a3145a770a 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.test.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.test.tsx @@ -207,12 +207,14 @@ describeTreeView<[UseTreeViewExpansionSignature]>( expect(view.isItemExpanded('1')).to.equal(true); }); - it('should be able to limit the expansion to the icon', function test() { + it('should be able to limit the expansion to the icon', function test(t = {}) { // This test is not relevant for the TreeItem component. // We could create the equivalent test for it, // but it's not worth the effort given the complexity of the old behavior override. if (!setup.includes('TreeItem2')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const CustomTreeItem = React.forwardRef(function MyTreeItem( diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx index 1fda8500521e8..4e94f276478db 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx @@ -14,12 +14,14 @@ describeTreeView< >( 'useTreeViewItems plugin', ({ render, renderFromJSX, treeViewComponentName, TreeViewComponent, TreeItemComponent }) => { - it('should throw an error when two items have the same ID', function test() { + it('should throw an error when two items have the same ID', function test(t = {}) { // TODO is this fixed? if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } expect(() => @@ -34,10 +36,12 @@ describeTreeView< ]); }); - it('should be able to use a custom id attribute', function test() { + it('should be able to use a custom id attribute', function test(t = {}) { // For now, only SimpleTreeView can use custom id attributes if (treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ @@ -107,9 +111,11 @@ describeTreeView< expect(view.getItemRoot('1')).not.to.have.attribute('aria-expanded'); }); - it('should mark an item as not expandable if it has only empty conditional arrays', function test() { + it('should mark an item as not expandable if it has only empty conditional arrays', function test(t = {}) { if (treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = renderFromJSX( @@ -124,9 +130,11 @@ describeTreeView< expect(view.isItemExpanded('1')).to.equal(false); }); - it('should mark an item as expandable if it has two array as children, one of which is empty (SimpleTreeView only)', function test() { + it('should mark an item as expandable if it has two array as children, one of which is empty (SimpleTreeView only)', function test(t = {}) { if (treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = renderFromJSX( @@ -141,9 +149,11 @@ describeTreeView< expect(view.isItemExpanded('1')).to.equal(true); }); - it('should mark an item as not expandable if it has one array containing an empty array as a children (SimpleTreeView only)', function test() { + it('should mark an item as not expandable if it has one array containing an empty array as a children (SimpleTreeView only)', function test(t = {}) { if (treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = renderFromJSX( diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx index 7dab02bcf8b2b..a6b957c6df48d 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.test.tsx @@ -1157,10 +1157,12 @@ describeTreeView< expect(view.getFocusedItemId()).to.equal('1'); }); - it('should work with ReactElement label', function test() { + it('should work with ReactElement label', function test(t = {}) { // Only the SimpleTreeView can have React Element labels. if (treeViewComponentName !== 'SimpleTreeView') { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewLabel/useTreeViewLabel.test.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewLabel/useTreeViewLabel.test.tsx index 375cc7a066a13..7b0e03dd5be35 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewLabel/useTreeViewLabel.test.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewLabel/useTreeViewLabel.test.tsx @@ -8,10 +8,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( ({ render, treeViewComponentName }) => { describe('interaction', () => { describe('render labelInput when needed', () => { - it('should not render labelInput when double clicked if item is not editable', function test() { + it('should not render labelInput when double clicked if item is not editable', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -26,10 +28,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabelInput('1')).to.equal(null); }); - it('should render labelInput when double clicked if item is editable', function test() { + it('should render labelInput when double clicked if item is editable', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -44,10 +48,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabelInput('1')).not.to.equal(null); }); - it('should not render label when double clicked if item is editable', function test() { + it('should not render label when double clicked if item is editable', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -62,10 +68,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabel('1')).to.equal(null); }); - it('should not render labelInput on Enter if item is not editable', function test() { + it('should not render labelInput on Enter if item is not editable', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -81,10 +89,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabel('1')).not.to.equal(null); }); - it('should render labelInput on Enter if item is editable', function test() { + it('should render labelInput on Enter if item is editable', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -99,10 +109,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabelInput('1')).not.to.equal(null); }); - it('should unmount labelInput after save', function test() { + it('should unmount labelInput after save', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -119,10 +131,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabel('1')).not.to.equal(null); }); - it('should unmount labelInput after cancel', function test() { + it('should unmount labelInput after cancel', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -141,10 +155,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( }); describe('labelInput value', () => { - it('should equal label value on first render', function test() { + it('should equal label value on first render', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -159,10 +175,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabelInput('1').value).to.equal('test'); }); - it('should save new value on Enter', function test() { + it('should save new value on Enter', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -179,10 +197,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabel('1').textContent).to.equal('new value'); }); - it('should hold new value on render after save', function test() { + it('should hold new value on render after save', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -200,10 +220,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( expect(view.getItemLabelInput('1').value).to.equal('new value'); }); - it('should hold initial value on render after cancel', function test() { + it('should hold initial value on render after cancel', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ experimentalFeatures: { labelEditing: true }, @@ -224,10 +246,12 @@ describeTreeView<[UseTreeViewLabelSignature]>( }); }); describe('updateItemLabel api method', () => { - it('should change the label value', function test() { + it('should change the label value', function test(t = {}) { // This test is not relevant for the TreeItem component or the SimpleTreeView. if (treeViewComponentName.startsWith('SimpleTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const view = render({ items: [{ id: '1', label: 'test' }], diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 2496eff56d3cf..3be6b8dc6fd4e 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -9,6 +9,7 @@ const packages = [ 'x-data-grid', 'x-data-grid-pro', 'x-data-grid-premium', + 'x-tree-view', 'x-internals', ]; From a1feb9bce78f3d1752f3d68312a825adc6352a0d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 21:56:32 +0200 Subject: [PATCH 092/253] fix treeview --- .../plugins/useTreeViewItems/useTreeViewItems.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx index 4e94f276478db..3c403cb373e15 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx @@ -32,7 +32,8 @@ describeTreeView< : []), 'MUI X: The Tree View component requires all items to have a unique `id` property.', 'MUI X: The Tree View component requires all items to have a unique `id` property.', - `The above error occurred in the component`, + // Vitest error message adds a 2 at the end of the component name + `The above error occurred in the Date: Mon, 14 Oct 2024 21:57:50 +0200 Subject: [PATCH 093/253] enable treeview pro --- vitest.workspace.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 3be6b8dc6fd4e..2eb3e68d8b0fb 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -10,6 +10,7 @@ const packages = [ 'x-data-grid-pro', 'x-data-grid-premium', 'x-tree-view', + 'x-tree-view-pro', 'x-internals', ]; From 8757aa4f784e6a70689ce80a82a16228948b2e2c Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 21:58:35 +0200 Subject: [PATCH 094/253] rename setup file --- test/{setup.ts => setupVitest.ts} | 0 vitest.config.mts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename test/{setup.ts => setupVitest.ts} (100%) diff --git a/test/setup.ts b/test/setupVitest.ts similarity index 100% rename from test/setup.ts rename to test/setupVitest.ts diff --git a/vitest.config.mts b/vitest.config.mts index 839c1e24df4d6..7d14def36ccab 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -34,7 +34,7 @@ export default defineConfig({ }, test: { globals: true, - setupFiles: ['test/setup.ts'], + setupFiles: ['test/setupVitest.ts'], // Required for some datepickers tests that contain early returns. passWithNoTests: true, sequence: { From 9799824d06e79fa04b8afbb02854a5c0d7b47948 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 22:05:44 +0200 Subject: [PATCH 095/253] update mui-internals and dedupe --- package.json | 2 +- pnpm-lock.yaml | 56 +++++++++++++++++++++++++------------------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index 0a2fd76267c2a..3adb6628e02cd 100644 --- a/package.json +++ b/package.json @@ -206,7 +206,7 @@ "@types/node": "^20.16.10", "@playwright/test": "1.44.1", "playwright": "1.44.1", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils" + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils" }, "packageManager": "pnpm@9.12.0", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 163af6434c24f..09ea1b096f56f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: '@types/node': ^20.16.10 '@playwright/test': 1.44.1 playwright: 1.44.1 - '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -96,8 +96,8 @@ importers: specifier: ^1.0.15 version: 1.0.15 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -780,8 +780,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1024,8 +1024,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1136,8 +1136,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1198,8 +1198,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1251,8 +1251,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1346,8 +1346,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1393,8 +1393,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1413,8 +1413,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1457,8 +1457,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1516,8 +1516,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3175,9 +3175,9 @@ packages: '@mui/internal-scripts@1.0.22': resolution: {integrity: sha512-+GEmp73U9o2touhiMRNO+hv8AlYWwVpu6ZjKLnZ3OLoYq5kg0e2p8GMpHTBTmalNKXXM3kOchgs0NYoYJwsX4g==} - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils} - version: 1.0.15 + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils} + version: 1.0.16 peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 @@ -12242,7 +12242,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/b67121a7/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.25.7)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.7) '@babel/preset-typescript': 7.25.7(@babel/core@7.25.7) @@ -20445,7 +20445,7 @@ snapshots: dependencies: '@vitest/expect': 2.1.2 '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(msw@2.4.4(typescript@5.6.3))(vite@5.3.4(@types/node@20.16.11)(terser@5.27.0)) - '@vitest/pretty-format': 2.1.2 + '@vitest/pretty-format': 2.1.3 '@vitest/runner': 2.1.2 '@vitest/snapshot': 2.1.2 '@vitest/spy': 2.1.2 From ed6dbb8f3d9cc4a44db74b83b319d79cfe9f82c7 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 22:17:07 +0200 Subject: [PATCH 096/253] fix tests --- .../src/context/AnimationProvider/useSkipAnimation.test.tsx | 6 ++++-- .../src/tests/cellSelection.DataGridPremium.test.tsx | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/x-charts/src/context/AnimationProvider/useSkipAnimation.test.tsx b/packages/x-charts/src/context/AnimationProvider/useSkipAnimation.test.tsx index 997cdbd30429b..290570d937658 100644 --- a/packages/x-charts/src/context/AnimationProvider/useSkipAnimation.test.tsx +++ b/packages/x-charts/src/context/AnimationProvider/useSkipAnimation.test.tsx @@ -28,11 +28,13 @@ describe('useSkipAnimation', () => { window.matchMedia = oldMatchMedia; }); - it('should throw an error when parent context not present', function test() { + it('should throw an error when parent context not present', function test(t = {}) { if (!/jsdom/.test(window.navigator.userAgent)) { // can't catch render errors in the browser for unknown reason // tried try-catch + error boundary + window onError preventDefault - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const errorRef = React.createRef(); diff --git a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx index 482bcc7143f38..3179db7503283 100644 --- a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx @@ -270,7 +270,7 @@ describe(' - Cell selection', () => { // fireEvent.mouseOver(getCell(3, 0), { ctrlKey: true }); const isMac = window.navigator.platform.toUpperCase().indexOf('MAC') >= 0; - await user.keyboard(isMac ? '{Meta>}' : '{Control>'); + await user.keyboard(isMac ? '{Meta>}' : '{Control>}'); await user.pointer([ // touch the screen at element1 { keys: '[MouseLeft>]', target: getCell(2, 0) }, From 7c62bfc31efc42faf203fe150102e03db352cc14 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Mon, 14 Oct 2024 23:02:39 +0200 Subject: [PATCH 097/253] update comments --- .../src/tests/cellSelection.DataGridPremium.test.tsx | 2 -- test/setupVitest.ts | 5 ----- vitest.config.mts | 3 ++- vitest.workspace.ts | 1 - 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx index 3179db7503283..f64b875cd53ad 100644 --- a/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx +++ b/packages/x-data-grid-premium/src/tests/cellSelection.DataGridPremium.test.tsx @@ -266,8 +266,6 @@ describe(' - Cell selection', () => { ); // Add a new cell range to the selection - // fireEvent.mouseDown(getCell(2, 0), { ctrlKey: true }); - // fireEvent.mouseOver(getCell(3, 0), { ctrlKey: true }); const isMac = window.navigator.platform.toUpperCase().indexOf('MAC') >= 0; await user.keyboard(isMac ? '{Meta>}' : '{Control>}'); diff --git a/test/setupVitest.ts b/test/setupVitest.ts index 18c94fabce601..3df2109ece642 100644 --- a/test/setupVitest.ts +++ b/test/setupVitest.ts @@ -3,7 +3,6 @@ import 'test/utils/addChaiAssertions'; import 'test/utils/setupPickers'; import 'test/utils/licenseRelease'; import { generateTestLicenseKey, setupTestLicenseKey } from 'test/utils/testLicense'; -// import { unstable_resetCleanupTracking as unstable_resetCleanupTrackingTreeView } from '@mui/x-tree-view'; // @ts-ignore globalThis.before = beforeAll; @@ -25,10 +24,6 @@ beforeEach(() => { setupTestLicenseKey(licenseKey); }); -afterEach(() => { - // unstable_resetCleanupTrackingTreeView(); -}); - // Only necessary when not in browser mode. if (isVitestJsdom) { class Touch { diff --git a/vitest.config.mts b/vitest.config.mts index 7d14def36ccab..c7de743b6d236 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -35,7 +35,8 @@ export default defineConfig({ test: { globals: true, setupFiles: ['test/setupVitest.ts'], - // Required for some datepickers tests that contain early returns. + // Required for some tests that contain early returns. + // Should be removed once we migrate to vitest. passWithNoTests: true, sequence: { hooks: 'list', diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 2eb3e68d8b0fb..d8e0bc0e818d0 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -38,7 +38,6 @@ export default defineWorkspace([ headless: true, // https://playwright.dev providerOptions: { - // https://playwright.dev/docs/api/class-browsertype#browsertypelaunchoptions launch: { // Required for x-data-grid-pro tests. // packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx From 4f6b9c4bca95cd66d4f5e524643d80dae5b61740 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 15 Oct 2024 00:04:08 +0200 Subject: [PATCH 098/253] jsdom only packages --- vitest.workspace.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/vitest.workspace.ts b/vitest.workspace.ts index d8e0bc0e818d0..27d138fadfec7 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -11,9 +11,10 @@ const packages = [ 'x-data-grid-premium', 'x-tree-view', 'x-tree-view-pro', - 'x-internals', ]; +const jsdomOnlyPackages = ['x-license', 'x-internals']; + // Ideally we move the configuration to each package. // Currently it doesn't work because vitest doesn't detect two different configurations in the same package. // We could bypass this limitation by having a folder per configuration. Eg: `packages/x-charts/browser` & `packages/x-charts/jsdom`. @@ -67,17 +68,18 @@ export default defineWorkspace([ // Manually changing the process.env in browser tests doesn't work. // And alternative is to use `const {NODE_ENV} = process.env` in the code instead. // x-license relies on `process.env.NODE_ENV` to determine the environment. - { + // x-internals has a weird chai import issue I couldn't fix + ...jsdomOnlyPackages.map((name) => ({ extends: './vitest.config.mts', plugins: [react()], test: { - include: [`packages/x-license/src/**/*.test.?(c|m)[jt]s?(x)`], - exclude: [`packages/x-license/src/**/*.browser.test.?(c|m)[jt]s?(x)`], - name: `jsdom/x-license`, + include: [`packages/${name}}/src/**/*.test.?(c|m)[jt]s?(x)`], + exclude: [`packages/${name}}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], + name: `jsdom/${name}}`, environment: 'jsdom', env: { MUI_JSDOM: 'true', }, }, - }, + })), ]); From 5442abd0f918b255a7e5255a994984883082848a Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 15 Oct 2024 11:39:58 +0200 Subject: [PATCH 099/253] setup circleci and enable coverage --- .circleci/config.yml | 36 +++++++++++ package.json | 1 + pnpm-lock.yaml | 143 +++++++++++++++++++++++++++++++++++++------ vitest.config.mts | 9 +++ 4 files changed, 169 insertions(+), 20 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c1146e554f239..4bfdcd8e072df 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -137,6 +137,29 @@ jobs: curl -Os https://uploader.codecov.io/latest/linux/codecov chmod +x codecov ./codecov -t ${CODECOV_TOKEN} -Z -F "$REACT_VERSION-jsdom" + + test_unit_vitest: + <<: *default-job + steps: + - checkout + - install_js + - run: + name: Tests fake browser (vitest) + command: pnpm vitest --project "jsdom/*" --coverage + - run: + name: Check coverage generated + command: | + if ! [[ -s coverage/lcov.info ]] + then + exit 1 + fi + # - run: + # name: Coverage + # command: | + # curl -Os https://uploader.codecov.io/latest/linux/codecov + # chmod +x codecov + # ./codecov -t ${CODECOV_TOKEN} -Z -F "$REACT_VERSION-jsdom" + test_lint: <<: *default-job steps: @@ -226,6 +249,19 @@ jobs: # hardcoded in karma-webpack path: /tmp/_karma_webpack_ destination: artifact-file + + test_browser_vitest: + <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal + steps: + - checkout + - install_js: + browsers: true + - run: + name: Tests real browsers (vitest) + command: pnpm vitest --project "browser/*" + test_types: <<: *default-job steps: diff --git a/package.json b/package.json index 3adb6628e02cd..d6273102ea1ca 100644 --- a/package.json +++ b/package.json @@ -121,6 +121,7 @@ "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^4.3.2", "@vitest/browser": "^2.1.3", + "@vitest/coverage-v8": "^2.1.3", "autoprefixer": "^10.4.20", "axe-core": "4.10.0", "babel-loader": "^9.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 09ea1b096f56f..887c174c07735 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -176,6 +176,9 @@ importers: '@vitest/browser': specifier: ^2.1.3 version: 2.1.3(@vitest/spy@2.1.3)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.16.11)(terser@5.27.0))(vitest@2.1.3) + '@vitest/coverage-v8': + specifier: ^2.1.3 + version: 2.1.3(@vitest/browser@2.1.3)(vitest@2.1.3) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -403,7 +406,7 @@ importers: version: 2.1.3(@types/node@20.16.11)(@vitest/browser@2.1.3)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.3))(terser@5.27.0) webpack: specifier: ^5.95.0 - version: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + version: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -4480,6 +4483,15 @@ packages: webdriverio: optional: true + '@vitest/coverage-v8@2.1.3': + resolution: {integrity: sha512-2OJ3c7UPoFSmBZwqD2VEkUw6A/tzPF0LmW0ZZhhB8PFxuc+9IBG/FaSM+RLEenc7ljzFvGN+G0nGQoZnh7sy2A==} + peerDependencies: + '@vitest/browser': 2.1.3 + vitest: 2.1.3 + peerDependenciesMeta: + '@vitest/browser': + optional: true + '@vitest/expect@2.1.2': resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==} @@ -6656,6 +6668,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@11.0.0: resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} engines: {node: 20 || >=22} @@ -7242,10 +7258,18 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + istanbul-reports@3.1.6: resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + istanbul@0.4.5: resolution: {integrity: sha512-nMtdn4hvK0HjUlzr1DrKSUY8ychprt8dzHOgY2KXsIhHu5PuQQEOTM27gV9Xblyon7aUH/TSFIjRHEODF/FRPg==} deprecated: |- @@ -7267,6 +7291,9 @@ packages: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.0.2: resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} engines: {node: 20 || >=22} @@ -7735,6 +7762,9 @@ packages: magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + make-array@1.0.5: resolution: {integrity: sha512-sgK2SAzxT19rWU+qxKUcn6PAh/swiIiz2F8C2cZjLc1z4iwYIfdoihqFIDQ8BDzAGtWPYJ6Sr13K1j/DXynDLA==} engines: {node: '>=0.10.0'} @@ -8590,6 +8620,10 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} engines: {node: 20 || >=22} @@ -9663,6 +9697,10 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} + text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -13564,7 +13602,7 @@ snapshots: dependencies: '@types/node': 20.16.11 tapable: 2.2.1 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13768,6 +13806,26 @@ snapshots: - utf-8-validate - vite + '@vitest/coverage-v8@2.1.3(@vitest/browser@2.1.3)(vitest@2.1.3)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.6(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magic-string: 0.30.11 + magicast: 0.3.5 + std-env: 3.7.0 + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.1.3(@types/node@20.16.11)(@vitest/browser@2.1.3)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.3))(terser@5.27.0) + optionalDependencies: + '@vitest/browser': 2.1.3(@vitest/spy@2.1.3)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.16.11)(terser@5.27.0))(vitest@2.1.3) + transitivePeerDependencies: + - supports-color + '@vitest/expect@2.1.2': dependencies: '@vitest/spy': 2.1.2 @@ -13937,19 +13995,19 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) '@xtuc/ieee754@1.2.0': {} @@ -14319,7 +14377,7 @@ snapshots: '@babel/core': 7.25.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) babel-plugin-istanbul@7.0.0: dependencies: @@ -14818,7 +14876,7 @@ snapshots: dependencies: schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) compression@1.7.4: dependencies: @@ -15691,7 +15749,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color @@ -16429,6 +16487,15 @@ snapshots: minipass: 7.1.2 path-scurry: 1.10.1 + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.4 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@11.0.0: dependencies: foreground-child: 3.3.0 @@ -16665,7 +16732,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) htmlparser2@6.1.0: dependencies: @@ -17042,11 +17109,24 @@ snapshots: transitivePeerDependencies: - supports-color + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.3.6(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + istanbul-reports@3.1.6: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + istanbul@0.4.5: dependencies: abbrev: 1.0.9 @@ -17085,6 +17165,12 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jackspeak@4.0.2: dependencies: '@isaacs/cliui': 8.0.2 @@ -17363,7 +17449,7 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 9.0.4 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-merge: 4.2.2 karma@6.4.4: @@ -17724,6 +17810,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.5: + dependencies: + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 + source-map-js: 1.2.1 + make-array@1.0.5: {} make-dir@2.1.0: @@ -18822,6 +18914,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-scurry@2.0.0: dependencies: lru-cache: 11.0.1 @@ -19800,7 +19897,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) string-width@4.2.3: dependencies: @@ -20006,7 +20103,7 @@ snapshots: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) optionalDependencies: '@swc/core': 1.7.35(@swc/helpers@0.5.5) @@ -20023,6 +20120,12 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 + test-exclude@7.0.1: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 10.4.5 + minimatch: 9.0.4 + text-extensions@1.9.0: {} text-table@0.2.0: {} @@ -20554,9 +20657,9 @@ snapshots: webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.95.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.95.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.95.0) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -20565,7 +20668,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20582,7 +20685,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)): + webpack@5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4): dependencies: '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 diff --git a/vitest.config.mts b/vitest.config.mts index c7de743b6d236..30d5c1f6ed6be 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -1,5 +1,8 @@ +import path from 'path'; import { defineConfig } from 'vitest/config'; +const MONOREPO_ROOT = path.resolve(__dirname, './'); + export default defineConfig({ resolve: { alias: [ @@ -38,6 +41,12 @@ export default defineConfig({ // Required for some tests that contain early returns. // Should be removed once we migrate to vitest. passWithNoTests: true, + coverage: { + provider: 'v8', + reporter: ['text', 'lcov'], + reportsDirectory: path.resolve(MONOREPO_ROOT, 'coverage'), + include: ['packages/*/src/**/*.ts', 'packages/*/src/**/*.tsx'], + }, sequence: { hooks: 'list', }, From aba0b6304e4f608bb85e1460370f336c32b0f6d8 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 15 Oct 2024 11:50:11 +0200 Subject: [PATCH 100/253] dedupe --- pnpm-lock.yaml | 76 +++++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 47 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 887c174c07735..ba30863bf5941 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -406,7 +406,7 @@ importers: version: 2.1.3(@types/node@20.16.11)(@vitest/browser@2.1.3)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.3))(terser@5.27.0) webpack: specifier: ^5.95.0 - version: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + version: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -7262,10 +7262,6 @@ packages: resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} - istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} - engines: {node: '>=8'} - istanbul-reports@3.1.7: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} @@ -8616,10 +8612,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -12603,7 +12595,7 @@ snapshots: '@npmcli/map-workspaces@3.0.6': dependencies: '@npmcli/name-from-folder': 2.0.0 - glob: 10.3.10 + glob: 10.4.5 minimatch: 9.0.4 read-package-json-fast: 3.0.2 @@ -12625,7 +12617,7 @@ snapshots: '@npmcli/package-json@5.2.0': dependencies: '@npmcli/git': 5.0.4 - glob: 10.3.10 + glob: 10.4.5 hosted-git-info: 7.0.2 json-parse-even-better-errors: 3.0.2 normalize-package-data: 6.0.2 @@ -13602,7 +13594,7 @@ snapshots: dependencies: '@types/node': 20.16.11 tapable: 2.2.1 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13995,19 +13987,19 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.95.0)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.95.0)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.95.0)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0)': dependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0) '@xtuc/ieee754@1.2.0': {} @@ -14377,7 +14369,7 @@ snapshots: '@babel/core': 7.25.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) babel-plugin-istanbul@7.0.0: dependencies: @@ -14586,7 +14578,7 @@ snapshots: foreground-child: 2.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.1.7 rimraf: 3.0.2 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 @@ -14599,7 +14591,7 @@ snapshots: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 - glob: 10.3.10 + glob: 10.4.5 lru-cache: 10.4.3 minipass: 7.1.2 minipass-collect: 2.0.1 @@ -14876,7 +14868,7 @@ snapshots: dependencies: schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) compression@1.7.4: dependencies: @@ -15749,7 +15741,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) transitivePeerDependencies: - supports-color @@ -16485,7 +16477,7 @@ snapshots: jackspeak: 2.3.6 minimatch: 9.0.4 minipass: 7.1.2 - path-scurry: 1.10.1 + path-scurry: 1.11.1 glob@10.4.5: dependencies: @@ -16535,7 +16527,7 @@ snapshots: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.10.1 + path-scurry: 1.11.1 globals@11.12.0: {} @@ -16732,7 +16724,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) htmlparser2@6.1.0: dependencies: @@ -17117,11 +17109,6 @@ snapshots: transitivePeerDependencies: - supports-color - istanbul-reports@3.1.6: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - istanbul-reports@3.1.7: dependencies: html-escaper: 2.0.2 @@ -17449,7 +17436,7 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 9.0.4 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-merge: 4.2.2 karma@6.4.4: @@ -18374,7 +18361,7 @@ snapshots: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.3.10 + glob: 10.4.5 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.1 @@ -18552,7 +18539,7 @@ snapshots: istanbul-lib-processinfo: 2.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.1.7 make-dir: 3.1.0 node-preload: 0.2.1 p-map: 3.0.0 @@ -18909,11 +18896,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.10.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -19897,7 +19879,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) string-width@4.2.3: dependencies: @@ -20032,7 +20014,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.3.10 + glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -20103,7 +20085,7 @@ snapshots: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) optionalDependencies: '@swc/core': 1.7.35(@swc/helpers@0.5.5) @@ -20657,9 +20639,9 @@ snapshots: webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.95.0) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.95.0) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.95.0) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0))(webpack@5.95.0) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -20668,7 +20650,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20685,7 +20667,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4): + webpack@5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.95.0)): dependencies: '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 From 5a930f106fa7060f425833469bb7e76ad285c13f Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 15 Oct 2024 13:00:21 +0200 Subject: [PATCH 101/253] make helper libs also testable under vitest --- .../{ => src}/tests/d3-interpolate.test.ts | 0 .../{ => src}/tests/d3-scale.test.ts | 0 vitest.config.mts | 24 ++-- vitest.workspace.ts | 113 +++++++++--------- 4 files changed, 69 insertions(+), 68 deletions(-) rename packages/x-charts-vendor/{ => src}/tests/d3-interpolate.test.ts (100%) rename packages/x-charts-vendor/{ => src}/tests/d3-scale.test.ts (100%) diff --git a/packages/x-charts-vendor/tests/d3-interpolate.test.ts b/packages/x-charts-vendor/src/tests/d3-interpolate.test.ts similarity index 100% rename from packages/x-charts-vendor/tests/d3-interpolate.test.ts rename to packages/x-charts-vendor/src/tests/d3-interpolate.test.ts diff --git a/packages/x-charts-vendor/tests/d3-scale.test.ts b/packages/x-charts-vendor/src/tests/d3-scale.test.ts similarity index 100% rename from packages/x-charts-vendor/tests/d3-scale.test.ts rename to packages/x-charts-vendor/src/tests/d3-scale.test.ts diff --git a/vitest.config.mts b/vitest.config.mts index 30d5c1f6ed6be..d09c0f8348b63 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -7,21 +7,21 @@ export default defineConfig({ resolve: { alias: [ ...[ - { lib: 'charts', plans: ['pro'] }, - { lib: 'date-pickers', plans: ['pro'] }, - { lib: 'tree-view', plans: ['pro'] }, - { lib: 'data-grid', plans: ['pro', 'premium', 'generator'] }, - { lib: 'internals' }, - { lib: 'license' }, + { lib: 'x-charts', plans: ['pro'] }, + { lib: 'x-date-pickers', plans: ['pro'] }, + { lib: 'x-tree-view', plans: ['pro'] }, + { lib: 'x-data-grid', plans: ['pro', 'premium', 'generator'] }, + { lib: 'x-internals' }, + { lib: 'x-license' }, ].flatMap((v) => { return [ { - find: `@mui/x-${v.lib}`, - replacement: new URL(`./packages/x-${v.lib}/src`, import.meta.url).pathname, + find: `@mui/${v.lib}`, + replacement: new URL(`./packages/${v.lib}/src`, import.meta.url).pathname, }, ...(v.plans ?? []).map((plan) => ({ - find: `@mui/x-${v.lib}-${plan}`, - replacement: new URL(`./packages/x-${v.lib}-${plan}/src`, import.meta.url).pathname, + find: `@mui/${v.lib}-${plan}`, + replacement: new URL(`./packages/${v.lib}-${plan}/src`, import.meta.url).pathname, })), ]; }), @@ -29,6 +29,10 @@ export default defineConfig({ find: 'test/utils', replacement: new URL('./test/utils', import.meta.url).pathname, }, + { + find: '@mui/x-charts-vendor', + replacement: new URL('./packages/x-charts-vendor', import.meta.url).pathname, + }, { find: 'moment/locale', replacement: 'moment/dist/locale', diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 27d138fadfec7..98978463ebac8 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,5 +1,5 @@ import react from '@vitejs/plugin-react'; -import { defineWorkspace } from 'vitest/config'; +import { defineWorkspace, WorkspaceProjectConfiguration } from 'vitest/config'; const packages = [ 'x-charts', @@ -13,73 +13,70 @@ const packages = [ 'x-tree-view-pro', ]; -const jsdomOnlyPackages = ['x-license', 'x-internals']; +const jsdomOnlyPackages = [ + 'x-license', + 'x-internals', + 'x-codemod', + 'x-charts-vendor', + 'eslint-plugin-material-ui', +]; + +const allPackages = [...packages, ...jsdomOnlyPackages]; // Ideally we move the configuration to each package. // Currently it doesn't work because vitest doesn't detect two different configurations in the same package. // We could bypass this limitation by having a folder per configuration. Eg: `packages/x-charts/browser` & `packages/x-charts/jsdom`. export default defineWorkspace([ - ...packages.flatMap( - (name): ReturnType => [ - { - extends: './vitest.config.mts', - plugins: [react()], - test: { - include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], - exclude: [`packages/${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`], - name: `browser/${name}`, - env: { - MUI_BROWSER: 'true', - }, - browser: { - enabled: true, - name: 'chromium', - provider: 'playwright', - headless: true, - // https://playwright.dev - providerOptions: { - launch: { - // Required for x-data-grid-pro tests. - // packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx - ignoreDefaultArgs: ['--hide-scrollbars'], + ...allPackages.flatMap((name): WorkspaceProjectConfiguration[] => [ + // TODO: Decide on + // Manually changing the process.env in browser tests doesn't work. + // And alternative is to use `const {NODE_ENV} = process.env` in the code instead. + // x-license relies on `process.env.NODE_ENV` to determine the environment. + // x-internals has a weird chai import issue I couldn't fix + ...(jsdomOnlyPackages.includes(name) + ? [] + : [ + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], + exclude: [`packages/${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`], + name: `browser/${name}`, + env: { + MUI_BROWSER: 'true', + }, + browser: { + enabled: true, + name: 'chromium', + provider: 'playwright', + headless: true, + // https://playwright.dev + providerOptions: { + launch: { + // Required for x-data-grid-pro tests. + // packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx + ignoreDefaultArgs: ['--hide-scrollbars'], + }, + }, + screenshotFailures: false, }, }, - screenshotFailures: false, }, + ]), + { + extends: './vitest.config.mts', + plugins: [react()], + test: { + include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], + exclude: [`packages/${name}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], + name: `jsdom/${name}`, + environment: 'jsdom', + env: { + MUI_JSDOM: 'true', }, }, - { - extends: './vitest.config.mts', - plugins: [react()], - test: { - include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], - exclude: [`packages/${name}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], - name: `jsdom/${name}`, - environment: 'jsdom', - env: { - MUI_JSDOM: 'true', - }, - }, - }, - ], - ), - // TODO: Decide on - // Manually changing the process.env in browser tests doesn't work. - // And alternative is to use `const {NODE_ENV} = process.env` in the code instead. - // x-license relies on `process.env.NODE_ENV` to determine the environment. - // x-internals has a weird chai import issue I couldn't fix - ...jsdomOnlyPackages.map((name) => ({ - extends: './vitest.config.mts', - plugins: [react()], - test: { - include: [`packages/${name}}/src/**/*.test.?(c|m)[jt]s?(x)`], - exclude: [`packages/${name}}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], - name: `jsdom/${name}}`, - environment: 'jsdom', - env: { - MUI_JSDOM: 'true', - }, }, - })), + ]), ]); From 8066b237a470e7776cea6d85cd9d4873ee84e908 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 15 Oct 2024 13:23:39 +0200 Subject: [PATCH 102/253] fix x-charts-vendor should import from esm --- vitest.config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vitest.config.mts b/vitest.config.mts index d09c0f8348b63..f64b90b85fe4b 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -31,7 +31,7 @@ export default defineConfig({ }, { find: '@mui/x-charts-vendor', - replacement: new URL('./packages/x-charts-vendor', import.meta.url).pathname, + replacement: new URL('./packages/x-charts-vendor/es', import.meta.url).pathname, }, { find: 'moment/locale', From 98013ae364f134b5d9e53dc8addf6e24c96e0e10 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 15 Oct 2024 16:37:12 +0200 Subject: [PATCH 103/253] run coverage in vitest gha --- .github/workflows/vitest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml index 72fb915a9c177..79c97648642c4 100644 --- a/.github/workflows/vitest.yml +++ b/.github/workflows/vitest.yml @@ -30,7 +30,7 @@ jobs: - name: Install Playwright Browsers run: pnpm playwright install --with-deps - name: Run Tests - run: pnpm vitest --project "jsdom/*" + run: pnpm vitest --project "jsdom/*" --coverage vitest-browser: name: Vitest Tests (browser) runs-on: ubuntu-latest From f3b6d1f1001e81ed4f3429600eaaa776046257f2 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 5 Nov 2024 15:31:40 +0100 Subject: [PATCH 104/253] add to workflow --- .circleci/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4bfdcd8e072df..fc5016d630632 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -336,6 +336,10 @@ workflows: <<: *default-context requires: - checkout + - test_unit_vitest: + <<: *default-context + requires: + - checkout - test_lint: <<: *default-context requires: @@ -348,6 +352,10 @@ workflows: <<: *default-context requires: - checkout + - test_browser_vitest: + <<: *default-context + requires: + - checkout - test_types: <<: *default-context requires: From 7cf9c6929666b5b6d9d21b911eed1ca19d921240 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 5 Nov 2024 15:33:16 +0100 Subject: [PATCH 105/253] apply glob suggestions --- .eslintrc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 319c98fb33880..f87b204e45fa9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -59,7 +59,7 @@ const RESTRICTED_TOP_LEVEL_IMPORTS = [ const buildPackageRestrictedImports = (packageName, root, allowRootImports = true) => [ { files: [`packages/${root}/src/**/*.?(c|m)[jt]s?(x)`], - excludedFiles: ['*.d.ts', '*.spec.ts', '*.spec.tsx', '**.test.tx', '**.test.tsx'], + excludedFiles: ['*.d.ts', '*.spec.*', '*.test.*'], rules: { 'no-restricted-imports': [ 'error', @@ -245,7 +245,7 @@ module.exports = { }, { files: ['packages/*/src/**/*.?(c|m)[jt]s?(x)'], - excludedFiles: ['*.d.ts', '*.spec.ts', '*.spec.tsx'], + excludedFiles: ['*.d.ts', '*.spec.*'], rules: { 'material-ui/mui-name-matches-component-name': [ 'error', From 0085b9e9adc44c5ea06fa3951ac31c77db5ea972 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 5 Nov 2024 15:54:26 +0100 Subject: [PATCH 106/253] dedupe --- pnpm-lock.yaml | 546 +++++++------------------------------------------ 1 file changed, 78 insertions(+), 468 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4bdffb3498c87..0b155e1fe4101 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,7 +172,7 @@ importers: version: 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@vitejs/plugin-react': specifier: ^4.3.2 - version: 4.3.2(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + version: 4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/browser': specifier: ^2.1.3 version: 2.1.3(@vitest/spy@2.1.3)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) @@ -1791,18 +1791,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/code-frame@7.25.7': - resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.7': - resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.2': resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} @@ -1811,18 +1803,10 @@ packages: resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.7': - resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.26.2': resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.7': - resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} - engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -1831,32 +1815,16 @@ packages: resolution: {integrity: sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.7': - resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.7': - resolution: {integrity: sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.25.9': resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.7': - resolution: {integrity: sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.9': resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} engines: {node: '>=6.9.0'} @@ -1868,46 +1836,24 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-member-expression-to-functions@7.25.7': - resolution: {integrity: sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.25.9': resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.7': - resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.7': - resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.26.0': resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.7': - resolution: {integrity: sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==} - engines: {node: '>=6.9.0'} - '@babel/helper-optimise-call-expression@7.25.9': resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.25.7': - resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.25.9': resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} @@ -1918,54 +1864,28 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.7': - resolution: {integrity: sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.9': resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.25.7': - resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.25.9': resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==} engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.25.7': - resolution: {integrity: sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==} - engines: {node: '>=6.9.0'} - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.7': - resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.7': - resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.7': - resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -1978,10 +1898,6 @@ packages: resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.25.7': - resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} - engines: {node: '>=6.9.0'} - '@babel/node@7.26.0': resolution: {integrity: sha512-5ASMjh42hbnqyCOK68Q5chh1jKAqn91IswFTN+niwt4FLABhEWCT1tEuuo6mlNQ4WG/oFQLvJ71PaHAKtWtJyA==} engines: {node: '>=6.9.0'} @@ -1989,11 +1905,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/parser@7.25.7': - resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.26.2': resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} @@ -2071,16 +1982,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} @@ -2123,12 +2024,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.7': - resolution: {integrity: sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.9': resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} @@ -2243,12 +2138,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.25.7': - resolution: {integrity: sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.25.9': resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} engines: {node: '>=6.9.0'} @@ -2279,12 +2168,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.7': - resolution: {integrity: sha512-FbuJ63/4LEL32mIxrxwYaqjJxpbzxPVQj5a+Ebrc8JICV6YX8nE53jY+K0RZT3um56GoNWgkS2BQ/uLGTjtwfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} engines: {node: '>=6.9.0'} @@ -2315,12 +2198,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.7': - resolution: {integrity: sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.9': resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} engines: {node: '>=6.9.0'} @@ -2333,12 +2210,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.7': - resolution: {integrity: sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.9': resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} engines: {node: '>=6.9.0'} @@ -2512,12 +2383,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/register@7.25.7': - resolution: {integrity: sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/register@7.25.9': resolution: {integrity: sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA==} engines: {node: '>=6.9.0'} @@ -2532,10 +2397,6 @@ packages: resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.7': - resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} - engines: {node: '>=6.9.0'} - '@babel/template@7.25.9': resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} @@ -2544,10 +2405,6 @@ packages: resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.7': - resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} @@ -4531,12 +4388,6 @@ packages: peerDependencies: vite: ^4 || ^5 - '@vitejs/plugin-react@4.3.2': - resolution: {integrity: sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - '@vitejs/plugin-react@4.3.3': resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -4983,9 +4834,6 @@ packages: resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - axios@1.7.5: - resolution: {integrity: sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==} - axios@1.7.7: resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} @@ -5769,15 +5617,6 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -6752,10 +6591,6 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -8135,9 +7970,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -9802,10 +9634,6 @@ packages: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -10633,7 +10461,7 @@ snapshots: '@argos-ci/api-client@0.7.0': dependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@8.1.1) openapi-fetch: 0.13.0 transitivePeerDependencies: - supports-color @@ -10644,7 +10472,7 @@ snapshots: '@argos-ci/util': 2.2.0 axios: 1.7.7(debug@4.3.7) convict: 6.2.4 - debug: 4.3.7 + debug: 4.3.7(supports-color@8.1.1) fast-glob: 3.3.2 sharp: 0.33.5 tmp: 0.2.3 @@ -10667,19 +10495,12 @@ snapshots: '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 chokidar: 3.6.0 - '@babel/code-frame@7.25.7': - dependencies: - '@babel/highlight': 7.25.7 - picocolors: 1.1.0 - '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/compat-data@7.25.7': {} - '@babel/compat-data@7.26.2': {} '@babel/core@7.26.0': @@ -10695,20 +10516,13 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.25.7': - dependencies: - '@babel/types': 7.26.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 - '@babel/generator@7.26.2': dependencies: '@babel/parser': 7.26.2 @@ -10717,10 +10531,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.25.7': - dependencies: - '@babel/types': 7.26.0 - '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.26.0 @@ -10732,14 +10542,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-compilation-targets@7.25.7': - dependencies: - '@babel/compat-data': 7.25.7 - '@babel/helper-validator-option': 7.25.7 - browserslist: 4.24.0 - lru-cache: 5.1.1 - semver: 6.3.1 - '@babel/helper-compilation-targets@7.25.9': dependencies: '@babel/compat-data': 7.26.2 @@ -10748,19 +10550,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.7 - '@babel/helper-member-expression-to-functions': 7.25.7 - '@babel/helper-optimise-call-expression': 7.25.7 - '@babel/helper-replace-supers': 7.25.7(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/traverse': 7.25.9 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10774,13 +10563,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.7 - regexpu-core: 6.1.1 - semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10791,21 +10573,14 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.25.7': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.25.9 @@ -10813,13 +10588,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.25.7': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-imports@7.25.9': dependencies: '@babel/traverse': 7.25.9 @@ -10827,16 +10595,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-simple-access': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10846,16 +10604,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.25.7': - dependencies: - '@babel/types': 7.26.0 - '@babel/helper-optimise-call-expression@7.25.9': dependencies: '@babel/types': 7.26.0 - '@babel/helper-plugin-utils@7.25.7': {} - '@babel/helper-plugin-utils@7.25.9': {} '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': @@ -10867,15 +10619,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.7 - '@babel/helper-optimise-call-expression': 7.25.7 - '@babel/traverse': 7.25.9 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10885,13 +10628,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-simple-access@7.25.7': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-simple-access@7.25.9': dependencies: '@babel/traverse': 7.25.9 @@ -10899,13 +10635,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.25.7': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.25.9 @@ -10913,16 +10642,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.25.7': {} - '@babel/helper-validator-option@7.25.9': {} '@babel/helper-wrap-function@7.25.9': @@ -10938,13 +10661,6 @@ snapshots: '@babel/template': 7.25.9 '@babel/types': 7.26.0 - '@babel/highlight@7.25.7': - dependencies: - '@babel/helper-validator-identifier': 7.25.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 - '@babel/node@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10955,10 +10671,6 @@ snapshots: regenerator-runtime: 0.14.1 v8flags: 3.2.0 - '@babel/parser@7.25.7': - dependencies: - '@babel/types': 7.26.0 - '@babel/parser@7.26.2': dependencies: '@babel/types': 7.26.0 @@ -11001,8 +10713,8 @@ snapshots: '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color @@ -11013,12 +10725,12 @@ snapshots: '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: @@ -11035,16 +10747,6 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11053,7 +10755,7 @@ snapshots: '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.26.0) + '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': @@ -11089,14 +10791,6 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-class-properties@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11174,7 +10868,7 @@ snapshots: '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.26.0) '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': @@ -11222,15 +10916,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-simple-access': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11269,12 +10954,6 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11305,15 +10984,6 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-optional-chaining@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11327,14 +10997,6 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-private-methods@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11377,12 +11039,12 @@ snapshots: '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': dependencies: @@ -11570,8 +11232,8 @@ snapshots: '@babel/preset-flow@7.24.7(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/helper-validator-option': 7.25.7 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.26.0) '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': @@ -11604,15 +11266,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/register@7.25.7(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - '@babel/register@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -11631,12 +11284,6 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.7': - dependencies: - '@babel/code-frame': 7.25.7 - '@babel/parser': 7.25.7 - '@babel/types': 7.26.0 - '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 @@ -11650,17 +11297,11 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.7': - dependencies: - '@babel/helper-string-parser': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - to-fast-properties: 2.0.0 - '@babel/types@7.26.0': dependencies: '@babel/helper-string-parser': 7.25.9 @@ -11683,7 +11324,7 @@ snapshots: '@codspeed/core@3.1.1': dependencies: - axios: 1.7.5 + axios: 1.7.7(debug@4.3.7) find-up: 6.3.0 form-data: 4.0.0 node-gyp-build: 4.8.1 @@ -11725,7 +11366,7 @@ snapshots: '@emotion/babel-plugin@11.12.0': dependencies: - '@babel/helper-module-imports': 7.25.7 + '@babel/helper-module-imports': 7.25.9 '@babel/runtime': 7.26.0 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 @@ -11978,7 +11619,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -12055,7 +11696,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -12384,9 +12025,9 @@ snapshots: '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.0)(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@babel/register': 7.25.7(@babel/core@7.26.0) + '@babel/register': 7.25.9(@babel/core@7.26.0) '@babel/runtime': 7.26.0 '@emotion/cache': 11.13.1 '@emotion/react': 11.13.3(@types/react@18.3.4)(react@18.3.1) @@ -13272,7 +12913,7 @@ snapshots: '@types/express': 4.17.21 '@types/promise.allsettled': 1.0.6 '@types/tsscmp': 1.0.2 - axios: 1.7.5 + axios: 1.7.7(debug@4.3.7) express: 4.21.0 path-to-regexp: 8.2.0 promise.allsettled: 1.0.7 @@ -13325,7 +12966,7 @@ snapshots: '@slack/types': 2.13.0 '@types/is-stream': 1.1.0 '@types/node': 20.17.6 - axios: 1.7.5 + axios: 1.7.7(debug@4.3.7) eventemitter3: 3.1.2 form-data: 2.5.1 is-electron: 2.2.2 @@ -13399,7 +13040,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.25.7 + '@babel/code-frame': 7.26.2 '@babel/runtime': 7.26.0 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -13411,7 +13052,7 @@ snapshots: '@testing-library/jest-dom@6.6.3': dependencies: '@adobe/css-tools': 4.4.0 - aria-query: 5.3.0 + aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -13445,7 +13086,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.7 + '@babel/parser': 7.26.2 '@babel/types': 7.26.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -13457,7 +13098,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.7 + '@babel/parser': 7.26.2 '@babel/types': 7.26.0 '@types/babel__traverse@7.20.6': @@ -13747,7 +13388,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) eslint: 8.57.1 optionalDependencies: typescript: 5.6.3 @@ -13768,7 +13409,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -13784,7 +13425,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -13798,7 +13439,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 @@ -13854,17 +13495,6 @@ snapshots: transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.3.2(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.26.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - transitivePeerDependencies: - - supports-color - '@vitejs/plugin-react@4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': dependencies: '@babel/core': 7.26.0 @@ -13901,7 +13531,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -14109,13 +13739,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color agent-base@7.1.0: dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -14410,14 +14040,6 @@ snapshots: axe-core@4.10.2: {} - axios@1.7.5: - dependencies: - follow-redirects: 1.15.6(debug@4.3.7) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - axios@1.7.7(debug@4.3.7): dependencies: follow-redirects: 1.15.6(debug@4.3.7) @@ -14437,7 +14059,7 @@ snapshots: babel-plugin-istanbul@7.0.0: dependencies: - '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-plugin-utils': 7.25.9 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 6.0.2 @@ -14461,16 +14083,16 @@ snapshots: babel-plugin-optimize-clsx@2.6.2: dependencies: - '@babel/generator': 7.25.7 - '@babel/template': 7.25.7 - '@babel/types': 7.25.7 + '@babel/generator': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 find-cache-dir: 3.3.2 lodash: 4.17.21 object-hash: 2.2.0 babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.26.0): dependencies: - '@babel/compat-data': 7.25.7 + '@babel/compat-data': 7.26.2 '@babel/core': 7.26.0 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) semver: 6.3.1 @@ -15221,7 +14843,7 @@ snapshots: chalk: 2.4.2 commander: 2.20.3 core-js: 3.35.1 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) fast-json-patch: 3.1.1 get-stdin: 6.0.0 http-proxy-agent: 5.0.0 @@ -15309,16 +14931,12 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.6(supports-color@8.1.1): + debug@4.3.7(supports-color@8.1.1): dependencies: - ms: 2.1.2 + ms: 2.1.3 optionalDependencies: supports-color: 8.1.1 - debug@4.3.7: - dependencies: - ms: 2.1.3 - decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -15513,7 +15131,7 @@ snapshots: base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) engine.io-parser: 5.2.1 ws: 8.11.0 transitivePeerDependencies: @@ -15569,7 +15187,7 @@ snapshots: function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 @@ -15846,7 +15464,7 @@ snapshots: '@es-joy/jsdoccomment': 0.49.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint: 8.57.1 espree: 10.1.0 @@ -15897,7 +15515,7 @@ snapshots: eslint-plugin-react-compiler@0.0.0-experimental-9ed098e-20240725(eslint@8.57.1): dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.25.7 + '@babel/parser': 7.26.2 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.0) eslint: 8.57.1 hermes-parser: 0.20.1 @@ -15974,7 +15592,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -16315,7 +15933,7 @@ snapshots: follow-redirects@1.15.6(debug@4.3.7): optionalDependencies: - debug: 4.3.7 + debug: 4.3.7(supports-color@8.1.1) for-each@0.3.3: dependencies: @@ -16578,10 +16196,6 @@ snapshots: dependencies: type-fest: 0.20.2 - globalthis@1.0.3: - dependencies: - define-properties: 1.2.1 - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -16795,14 +16409,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16817,14 +16431,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -17119,7 +16733,7 @@ snapshots: istanbul-lib-instrument@6.0.2: dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.25.7 + '@babel/parser': 7.26.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -17143,7 +16757,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -17152,7 +16766,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -17242,15 +16856,15 @@ snapshots: jscodeshift@17.0.0(@babel/preset-env@7.26.0(@babel/core@7.26.0)): dependencies: '@babel/core': 7.26.0 - '@babel/parser': 7.25.7 - '@babel/plugin-transform-class-properties': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.26.0) + '@babel/parser': 7.26.2 + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) '@babel/preset-flow': 7.24.7(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - '@babel/register': 7.25.7(@babel/core@7.26.0) + '@babel/register': 7.25.9(@babel/core@7.26.0) flow-parser: 0.227.0 graceful-fs: 4.2.11 micromatch: 4.0.8 @@ -17789,7 +17403,7 @@ snapshots: log4js@6.9.1: dependencies: date-format: 4.0.14 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) flatted: 3.3.1 rfdc: 1.3.1 streamroller: 3.1.5 @@ -17841,7 +17455,7 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.25.7 + '@babel/parser': 7.26.2 '@babel/types': 7.26.0 source-map-js: 1.2.1 @@ -18102,7 +17716,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -18232,7 +17846,7 @@ snapshots: ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.6.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 @@ -18275,8 +17889,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} msw@2.4.4(typescript@5.6.3): @@ -18518,7 +18130,7 @@ snapshots: '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.6 - axios: 1.7.5 + axios: 1.7.7(debug@4.3.7) chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -18885,7 +18497,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.25.7 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19185,7 +18797,7 @@ snapshots: react-docgen@5.4.3: dependencies: '@babel/core': 7.26.0 - '@babel/generator': 7.25.7 + '@babel/generator': 7.26.2 '@babel/runtime': 7.26.0 ast-types: 0.14.2 commander: 2.20.3 @@ -19791,7 +19403,7 @@ snapshots: socket.io-parser@4.2.4: dependencies: '@socket.io/component-emitter': 3.1.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -19800,7 +19412,7 @@ snapshots: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) engine.io: 6.5.4 socket.io-adapter: 2.5.2 socket.io-parser: 4.2.4 @@ -19812,7 +19424,7 @@ snapshots: socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -19904,7 +19516,7 @@ snapshots: streamroller@3.1.5: dependencies: date-format: 4.0.14 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -20196,8 +19808,6 @@ snapshots: tmp@0.2.3: {} - to-fast-properties@2.0.0: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -20269,7 +19879,7 @@ snapshots: tuf-js@2.2.0: dependencies: '@tufjs/models': 2.0.0 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) make-fetch-happen: 13.0.0 transitivePeerDependencies: - supports-color @@ -20526,7 +20136,7 @@ snapshots: vite-node@2.1.3(@types/node@20.17.6)(terser@5.27.0): dependencies: cac: 6.7.14 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) pathe: 1.1.2 vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) transitivePeerDependencies: @@ -20559,7 +20169,7 @@ snapshots: '@vitest/spy': 2.1.3 '@vitest/utils': 2.1.3 chai: 5.1.1 - debug: 4.3.6(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) magic-string: 0.30.11 pathe: 1.1.2 std-env: 3.7.0 From 121bde42b43ba846590ba739ea368c60bd4bcec7 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 5 Nov 2024 15:57:13 +0100 Subject: [PATCH 107/253] fix skipping new tests --- .../x-data-grid/src/tests/rows.DataGrid.test.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/x-data-grid/src/tests/rows.DataGrid.test.tsx b/packages/x-data-grid/src/tests/rows.DataGrid.test.tsx index 4f57aee0833d8..4b15936896b03 100644 --- a/packages/x-data-grid/src/tests/rows.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/rows.DataGrid.test.tsx @@ -964,10 +964,12 @@ describe(' - Rows', () => { }); }); - it('should consider the spacing when computing the content size', function test() { + it('should consider the spacing when computing the content size', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const spacingTop = 5; const spacingBottom = 10; @@ -985,10 +987,12 @@ describe(' - Rows', () => { expect(virtualScrollerContent).toHaveInlineStyle({ width: 'auto' }); }); - it('should update the content size when getRowSpacing is removed', function test() { + it('should update the content size when getRowSpacing is removed', function test(t = {}) { if (isJSDOM) { // Need layouting - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const spacingTop = 5; const spacingBottom = 10; From dd2621bef72941a12df50546e554ccff47990d59 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 5 Nov 2024 16:20:23 +0100 Subject: [PATCH 108/253] Revert user events for some date pickers --- .../DateCalendar/tests/DateCalendar.test.tsx | 149 +++++++++--------- 1 file changed, 72 insertions(+), 77 deletions(-) diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index a38ba557d0c4f..993e51ab21bda 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { expect } from 'chai'; import { spy } from 'sinon'; -import { fireEvent, screen } from '@mui/internal-test-utils'; +import { fireEvent, screen, waitFor } from '@mui/internal-test-utils'; import { DateCalendar } from '@mui/x-date-pickers/DateCalendar'; import { PickersDay } from '@mui/x-date-pickers/PickersDay'; import { createPickerRenderer, adapterToUse } from 'test/utils/pickers'; @@ -9,31 +9,28 @@ import { createPickerRenderer, adapterToUse } from 'test/utils/pickers'; const isJSDOM = /jsdom/.test(window.navigator.userAgent); describe('', () => { - const { render, clock } = createPickerRenderer({ - clock: 'fake', - clockConfig: new Date('2019-01-02'), - }); + const { render, clock } = createPickerRenderer({ clockConfig: new Date(2019, 0, 2) }); - it('switches between views uncontrolled', () => { + it('switches between views uncontrolled', async () => { const handleViewChange = spy(); - render( + const { user } = render( , ); - fireEvent.click(screen.getByLabelText(/switch to year view/i)); + await user.click(screen.getByLabelText(/switch to year view/i)); expect(handleViewChange.callCount).to.equal(1); expect(screen.queryByLabelText(/switch to year view/i)).to.equal(null); expect(screen.getByLabelText('year view is open, switch to calendar view')).toBeVisible(); }); - it('should allow month and view changing, but not selection when readOnly prop is passed', () => { + it('should allow month and view changing, but not selection when readOnly prop is passed', async () => { const onChangeMock = spy(); const onMonthChangeMock = spy(); - render( + const { user } = render( ', () => { />, ); - fireEvent.click(screen.getByTitle('Previous month')); + await user.click(screen.getByTitle('Previous month')); expect(onMonthChangeMock.callCount).to.equal(1); - fireEvent.click(screen.getByTitle('Next month')); + await user.click(screen.getByTitle('Next month')); expect(onMonthChangeMock.callCount).to.equal(2); - clock.runToLast(); + await waitFor(() => expect(screen.getAllByRole('rowgroup').length).to.equal(1)); - fireEvent.click(screen.getByRole('gridcell', { name: '5' })); + await user.click(screen.getByRole('gridcell', { name: '5' })); expect(onChangeMock.callCount).to.equal(0); - fireEvent.click(screen.getByText('January 2019')); + await user.click(screen.getByText('January 2019')); expect(screen.queryByLabelText('year view is open, switch to calendar view')).toBeVisible(); }); - it('should not allow interaction when disabled prop is passed', () => { + it('should not allow interaction when disabled prop is passed', async () => { const onChangeMock = spy(); const onMonthChangeMock = spy(); - render( + const { user } = render( ', () => { />, ); - fireEvent.click(screen.getByText('January 2019')); + await user.click(screen.getByText('January 2019')); expect(screen.queryByText('January 2019')).toBeVisible(); expect(screen.queryByLabelText('year view is open, switch to calendar view')).to.equal(null); - fireEvent.click(screen.getByTitle('Previous month')); + await user.setup({ pointerEventsCheck: 0 }).click(screen.getByTitle('Previous month')); expect(onMonthChangeMock.callCount).to.equal(0); - fireEvent.click(screen.getByTitle('Next month')); + await user.setup({ pointerEventsCheck: 0 }).click(screen.getByTitle('Next month')); expect(onMonthChangeMock.callCount).to.equal(0); - fireEvent.click(screen.getByRole('gridcell', { name: '5' })); + await user.setup({ pointerEventsCheck: 0 }).click(screen.getByRole('gridcell', { name: '5' })); expect(onChangeMock.callCount).to.equal(0); }); @@ -192,10 +189,10 @@ describe('', () => { ).to.have.text('1'); }); - it('should use `referenceDate` when no value defined', () => { + it('should use `referenceDate` when no value defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { // should make the reference day firstly focusable expect(screen.getByRole('gridcell', { name: '17' })).to.have.attribute('tabindex', '0'); - fireEvent.click(screen.getByRole('gridcell', { name: '2' })); + await user.click(screen.getByRole('gridcell', { name: '2' })); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2022, 3, 2, 12, 30)); }); - it('should not use `referenceDate` when a value is defined', () => { + it('should not use `referenceDate` when a value is defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { />, ); - fireEvent.click(screen.getByRole('gridcell', { name: '2' })); + await user.click(screen.getByRole('gridcell', { name: '2' })); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2019, 0, 2, 12, 20)); }); - it('should not use `referenceDate` when a defaultValue is defined', () => { + it('should not use `referenceDate` when a defaultValue is defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { />, ); - fireEvent.click(screen.getByRole('gridcell', { name: '2' })); + await user.click(screen.getByRole('gridcell', { name: '2' })); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2019, 0, 2, 12, 20)); }); - it('should keep the time of the currently provided date', () => { + it('should keep the time of the currently provided date', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { />, ); - fireEvent.click(screen.getByRole('gridcell', { name: '2' })); + await user.click(screen.getByRole('gridcell', { name: '2' })); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime( adapterToUse.date('2018-01-02T11:11:11.111'), @@ -300,10 +297,10 @@ describe('', () => { }); describe('view: month', () => { - it('should select the closest enabled date in the month if the current date is disabled', () => { + it('should select the closest enabled date in the month if the current date is disabled', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const april = screen.getByText('Apr', { selector: 'button' }); - fireEvent.click(april); + await user.click(april); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2019, 3, 6)); }); - it('should respect minDate when selecting closest enabled date', () => { + it('should respect minDate when selecting closest enabled date', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const april = screen.getByText('Apr', { selector: 'button' }); - fireEvent.click(april); + await user.click(april); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2019, 3, 7)); }); - it('should respect maxDate when selecting closest enabled date', () => { + it('should respect maxDate when selecting closest enabled date', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const april = screen.getByText('Apr', { selector: 'button' }); - fireEvent.click(april); + await user.click(april); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2019, 3, 22)); }); - it('should go to next view without changing the date when no date of the new month is enabled', () => { + it('should go to next view without changing the date when no date of the new month is enabled', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const april = screen.getByText('Apr', { selector: 'button' }); - fireEvent.click(april); - clock.runToLast(); + await user.click(april); expect(onChange.callCount).to.equal(0); expect(screen.getByTestId('calendar-month-and-year-text')).to.have.text('April 2019'); }); - it('should use `referenceDate` when no value defined', () => { + it('should use `referenceDate` when no value defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const april = screen.getByText('Apr', { selector: 'button' }); - fireEvent.click(april); + await user.click(april); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2018, 3, 1, 12, 30)); }); - it('should not use `referenceDate` when a value is defined', () => { + it('should not use `referenceDate` when a value is defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const april = screen.getByText('Apr', { selector: 'button' }); - fireEvent.click(april); + await user.click(april); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2019, 3, 1, 12, 20)); }); - it('should not use `referenceDate` when a defaultValue is defined', () => { + it('should not use `referenceDate` when a defaultValue is defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const april = screen.getByText('Apr', { selector: 'button' }); - fireEvent.click(april); + await user.click(april); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2019, 3, 1, 12, 20)); @@ -450,10 +446,10 @@ describe('', () => { expect(screen.getAllByTestId('year')).to.have.length(200); }); - it('should select the closest enabled date in the month if the current date is disabled', () => { + it('should select the closest enabled date in the month if the current date is disabled', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const year2022 = screen.getByText('2022', { selector: 'button' }); - fireEvent.click(year2022); + await user.click(year2022); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2022, 4, 1)); }); - it('should respect minDate when selecting closest enabled date', () => { + it('should respect minDate when selecting closest enabled date', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const year2017 = screen.getByText('2017', { selector: 'button' }); - fireEvent.click(year2017); + await user.click(year2017); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2017, 4, 12)); }); - it('should respect maxDate when selecting closest enabled date', () => { + it('should respect maxDate when selecting closest enabled date', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const year2022 = screen.getByText('2022', { selector: 'button' }); - fireEvent.click(year2022); + await user.click(year2022); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2022, 2, 31)); }); - it('should go to next view without changing the date when no date of the new year is enabled', () => { + it('should go to next view without changing the date when no date of the new year is enabled', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const year2022 = screen.getByText('2022', { selector: 'button' }); - fireEvent.click(year2022); - clock.runToLast(); + await user.click(year2022); expect(onChange.callCount).to.equal(0); expect(screen.getByTestId('calendar-month-and-year-text')).to.have.text('January 2022'); @@ -560,10 +555,10 @@ describe('', () => { expect(parentBoundingBox.bottom).not.to.lessThan(buttonBoundingBox.bottom); }); - it('should use `referenceDate` when no value defined', () => { + it('should use `referenceDate` when no value defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const year2022 = screen.getByText('2022', { selector: 'button' }); - fireEvent.click(year2022); + await user.click(year2022); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2022, 0, 1, 12, 30)); }); - it('should not use `referenceDate` when a value is defined', () => { + it('should not use `referenceDate` when a value is defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const year2022 = screen.getByText('2022', { selector: 'button' }); - fireEvent.click(year2022); + await user.click(year2022); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2022, 0, 1, 12, 20)); }); - it('should not use `referenceDate` when a defaultValue is defined', () => { + it('should not use `referenceDate` when a defaultValue is defined', async () => { const onChange = spy(); - render( + const { user } = render( ', () => { ); const year2022 = screen.getByText('2022', { selector: 'button' }); - fireEvent.click(year2022); + await user.click(year2022); expect(onChange.callCount).to.equal(1); expect(onChange.lastCall.firstArg).toEqualDateTime(new Date(2022, 0, 1, 12, 20)); From fd39e3227ebbc35cd9d0e0a856ef156e13cc4ac0 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 09:59:31 +0100 Subject: [PATCH 109/253] try to optimize threads --- .circleci/config.yml | 8 ++++++-- vitest.config.mts | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 326b6448fd4eb..45ba31c4f3d77 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -145,7 +145,9 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage + command: pnpm vitest --project "jsdom/*" --coverage --pool=threads + environment: + VITEST_MAX_THREADS: 2 - run: name: Check coverage generated command: | @@ -271,7 +273,9 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/*" + command: pnpm vitest --project "browser/*" --pool=threads + environment: + VITEST_MAX_THREADS: 2 test_types: <<: *default-job diff --git a/vitest.config.mts b/vitest.config.mts index f64b90b85fe4b..f6edc15e89f7c 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -57,5 +57,10 @@ export default defineConfig({ env: { MUI_VITEST: 'true', }, + poolOptions: { + threads: { + useAtomics: true, + }, + }, }, }); From a154440d093951934b45c41ace9c16f32af2b544 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 10:47:15 +0100 Subject: [PATCH 110/253] fix run --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 45ba31c4f3d77..981385b3c8fbc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -148,6 +148,7 @@ jobs: command: pnpm vitest --project "jsdom/*" --coverage --pool=threads environment: VITEST_MAX_THREADS: 2 + VITEST_MIN_THREADS: 1 - run: name: Check coverage generated command: | @@ -276,6 +277,7 @@ jobs: command: pnpm vitest --project "browser/*" --pool=threads environment: VITEST_MAX_THREADS: 2 + VITEST_MIN_THREADS: 1 test_types: <<: *default-job From 10523ece1ec53c12b8ca6550c101276802c0f212 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 11:06:53 +0100 Subject: [PATCH 111/253] simpler reporter --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 981385b3c8fbc..e5448bdfc2c47 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -145,7 +145,7 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage --pool=threads + command: pnpm vitest --project "jsdom/*" --coverage --pool=threads --reporter=dot environment: VITEST_MAX_THREADS: 2 VITEST_MIN_THREADS: 1 @@ -274,7 +274,7 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/*" --pool=threads + command: pnpm vitest --project "browser/*" --pool=threads --reporter=dot environment: VITEST_MAX_THREADS: 2 VITEST_MIN_THREADS: 1 From 96d1d12972a9b7bb9e4adea77e3521d5fdc48eef Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 11:19:47 +0100 Subject: [PATCH 112/253] reporters --- .circleci/config.yml | 4 ++-- vitest.config.mts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e5448bdfc2c47..981385b3c8fbc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -145,7 +145,7 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage --pool=threads --reporter=dot + command: pnpm vitest --project "jsdom/*" --coverage --pool=threads environment: VITEST_MAX_THREADS: 2 VITEST_MIN_THREADS: 1 @@ -274,7 +274,7 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/*" --pool=threads --reporter=dot + command: pnpm vitest --project "browser/*" --pool=threads environment: VITEST_MAX_THREADS: 2 VITEST_MIN_THREADS: 1 diff --git a/vitest.config.mts b/vitest.config.mts index f6edc15e89f7c..083e43cfa2427 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -51,6 +51,7 @@ export default defineConfig({ reportsDirectory: path.resolve(MONOREPO_ROOT, 'coverage'), include: ['packages/*/src/**/*.ts', 'packages/*/src/**/*.tsx'], }, + reporters: ['dot'], sequence: { hooks: 'list', }, From d86d6cf10593b302f3588c707d508e5df43a1957 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 17:21:17 +0100 Subject: [PATCH 113/253] try not using image --- .circleci/config.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 981385b3c8fbc..6e2d7cea65c2e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,7 +80,7 @@ commands: pnpm --version - run: name: Install js dependencies - command: pnpm install + command: pnpm install --frozen-lockfile - run: name: Resolve React version @@ -145,10 +145,10 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage --pool=threads + command: pnpm vitest --project "jsdom/*" --coverage --pool=forks environment: - VITEST_MAX_THREADS: 2 - VITEST_MIN_THREADS: 1 + VITEST_MAX_FORKS: 2 + VITEST_MIN_FORKS: 1 - run: name: Check coverage generated command: | @@ -266,18 +266,19 @@ jobs: test_browser_vitest: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: browsers: true + - run: + name: Install Playwright Browsers + command: pnpm playwright install --with-deps - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/*" --pool=threads + command: pnpm vitest --project "browser/*" --pool=forks environment: - VITEST_MAX_THREADS: 2 - VITEST_MIN_THREADS: 1 + VITEST_MAX_FORKS: 2 + VITEST_MIN_FORKS: 1 test_types: <<: *default-job From 3bfdce8c1b233600c7022aa697e89c2d4cefa8da Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 17:38:32 +0100 Subject: [PATCH 114/253] remove "browser" tag --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6e2d7cea65c2e..d7bd41ff9f9dc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -268,8 +268,7 @@ jobs: <<: *default-job steps: - checkout - - install_js: - browsers: true + - install_js - run: name: Install Playwright Browsers command: pnpm playwright install --with-deps From 73b10fecac333a7ebbde59b02c6a0235ae04054f Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 18:30:29 +0100 Subject: [PATCH 115/253] try a single fork in browser mode --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d7bd41ff9f9dc..305eecf08dab9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -276,7 +276,7 @@ jobs: name: Tests real browsers (vitest) command: pnpm vitest --project "browser/*" --pool=forks environment: - VITEST_MAX_FORKS: 2 + VITEST_MAX_FORKS: 1 VITEST_MIN_FORKS: 1 test_types: From be83e6106d169d916a022e8ea3069180352f8d28 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 6 Nov 2024 19:44:43 +0100 Subject: [PATCH 116/253] threads --- .circleci/config.yml | 22 +++++++++++----------- vitest.config.mts | 1 - 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 305eecf08dab9..18c9ce688a1d6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,7 +80,7 @@ commands: pnpm --version - run: name: Install js dependencies - command: pnpm install --frozen-lockfile + command: pnpm install - run: name: Resolve React version @@ -145,10 +145,10 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage --pool=forks + command: pnpm vitest --project "jsdom/*" --coverage --pool=threads environment: - VITEST_MAX_FORKS: 2 - VITEST_MIN_FORKS: 1 + VITEST_MAX_THREADS: 3 + VITEST_MIN_THREADS: 2 - run: name: Check coverage generated command: | @@ -266,18 +266,18 @@ jobs: test_browser_vitest: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - - install_js - - run: - name: Install Playwright Browsers - command: pnpm playwright install --with-deps + - install_js: + browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/*" --pool=forks + command: pnpm vitest --project "browser/*" --pool=threads environment: - VITEST_MAX_FORKS: 1 - VITEST_MIN_FORKS: 1 + VITEST_MAX_THREADS: 3 + VITEST_MIN_THREADS: 2 test_types: <<: *default-job diff --git a/vitest.config.mts b/vitest.config.mts index 083e43cfa2427..f6edc15e89f7c 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -51,7 +51,6 @@ export default defineConfig({ reportsDirectory: path.resolve(MONOREPO_ROOT, 'coverage'), include: ['packages/*/src/**/*.ts', 'packages/*/src/**/*.tsx'], }, - reporters: ['dot'], sequence: { hooks: 'list', }, From 1ff3ea1084bbb4f698e21bbc28ff7097cc1ecab2 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 7 Nov 2024 07:16:25 +0100 Subject: [PATCH 117/253] try options --- .circleci/config.yml | 4 ++-- vitest.config.mts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 18c9ce688a1d6..a92270478305b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -147,7 +147,7 @@ jobs: name: Tests fake browser (vitest) command: pnpm vitest --project "jsdom/*" --coverage --pool=threads environment: - VITEST_MAX_THREADS: 3 + VITEST_MAX_THREADS: 5 VITEST_MIN_THREADS: 2 - run: name: Check coverage generated @@ -276,7 +276,7 @@ jobs: name: Tests real browsers (vitest) command: pnpm vitest --project "browser/*" --pool=threads environment: - VITEST_MAX_THREADS: 3 + VITEST_MAX_THREADS: 5 VITEST_MIN_THREADS: 2 test_types: diff --git a/vitest.config.mts b/vitest.config.mts index f6edc15e89f7c..71d766088e578 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -60,6 +60,7 @@ export default defineConfig({ poolOptions: { threads: { useAtomics: true, + singleThread: true, }, }, }, From 6a5056e5cc32900e6f40530074aedbcd89fe26d4 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 7 Nov 2024 08:29:49 +0100 Subject: [PATCH 118/253] run only one --- vitest.config.mts | 1 - 1 file changed, 1 deletion(-) diff --git a/vitest.config.mts b/vitest.config.mts index 71d766088e578..f6edc15e89f7c 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -60,7 +60,6 @@ export default defineConfig({ poolOptions: { threads: { useAtomics: true, - singleThread: true, }, }, }, From ee14aa5966ec58c1f31a42f7ff8d3fa4dae81e6b Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 7 Nov 2024 08:49:48 +0100 Subject: [PATCH 119/253] more threads --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a92270478305b..41c56cde5307e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -147,7 +147,7 @@ jobs: name: Tests fake browser (vitest) command: pnpm vitest --project "jsdom/*" --coverage --pool=threads environment: - VITEST_MAX_THREADS: 5 + VITEST_MAX_THREADS: 6 VITEST_MIN_THREADS: 2 - run: name: Check coverage generated @@ -274,10 +274,10 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/*" --pool=threads + command: pnpm vitest --project "browser/x-data-grid" --pool=threads environment: - VITEST_MAX_THREADS: 5 - VITEST_MIN_THREADS: 2 + VITEST_MAX_THREADS: 1 + VITEST_MIN_THREADS: 1 test_types: <<: *default-job From 9b4e396fce610c88b7e423823d3de7e7240840c5 Mon Sep 17 00:00:00 2001 From: Jose C Quintas Jr Date: Thu, 14 Nov 2024 13:12:12 +0100 Subject: [PATCH 120/253] Apply suggestions from code review Signed-off-by: Jose C Quintas Jr --- .../x-charts/src/ChartsTooltip/contentDisplayed.test.tsx | 1 + .../src/AdapterMomentHijri/AdapterMomentHijri.test.tsx | 1 + vitest.workspace.ts | 9 --------- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx index b268f3ed4d7c1..32e1907412c90 100644 --- a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx +++ b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx @@ -28,6 +28,7 @@ describe('ChartsTooltip', () => { const { render } = createRenderer(); beforeEach(() => { + // TODO: Remove beforeEach/afterEach after vitest becomes our main runner if (window?.document?.body?.style) { window.document.body.style.margin = '0'; } diff --git a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx index 52fa5b5a0ff82..1b2d09533d6db 100644 --- a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx @@ -23,6 +23,7 @@ describe('', () => { describe('Adapter localization', () => { it('Formatting', (t = {}) => { + // TODO: All Hijri tests are failing on vitest browser (2024-11) if (process.env.MUI_BROWSER === 'true') { // @ts-expect-error to support mocha and vitest t?.skip(); diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 98978463ebac8..870f272f92bb0 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -23,17 +23,8 @@ const jsdomOnlyPackages = [ const allPackages = [...packages, ...jsdomOnlyPackages]; -// Ideally we move the configuration to each package. -// Currently it doesn't work because vitest doesn't detect two different configurations in the same package. -// We could bypass this limitation by having a folder per configuration. Eg: `packages/x-charts/browser` & `packages/x-charts/jsdom`. - export default defineWorkspace([ ...allPackages.flatMap((name): WorkspaceProjectConfiguration[] => [ - // TODO: Decide on - // Manually changing the process.env in browser tests doesn't work. - // And alternative is to use `const {NODE_ENV} = process.env` in the code instead. - // x-license relies on `process.env.NODE_ENV` to determine the environment. - // x-internals has a weird chai import issue I couldn't fix ...(jsdomOnlyPackages.includes(name) ? [] : [ From 0bfd39617a75a752ff383e79e91ac732f33e2201 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 14 Nov 2024 20:33:35 +0100 Subject: [PATCH 121/253] code review --- .mocharc.js | 2 -- babel.config.js | 1 + test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx | 2 +- test/karma.tests.js | 2 +- test/package.json | 4 ++-- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.mocharc.js b/.mocharc.js index a2ad7cc82de6a..1e089bad2a56d 100644 --- a/.mocharc.js +++ b/.mocharc.js @@ -8,8 +8,6 @@ module.exports = { // Mocha seems to ignore .next anyway (maybe because dotfiles?). // We're leaving this to make sure. 'docs/.next/**', - 'packages/**/*.browser.test.{js,ts,tsx,jsx}', - 'packages/**/*.jsdom.test.{js,ts,tsx,jsx}', ], recursive: true, timeout: (process.env.CIRCLECI === 'true' ? 5 : 2) * 1000, // Circle CI has low-performance CPUs. diff --git a/babel.config.js b/babel.config.js index 30e2eb677ac9b..7c72351f33262 100644 --- a/babel.config.js +++ b/babel.config.js @@ -100,6 +100,7 @@ module.exports = function getBabelConfig(api) { if (process.env.NODE_ENV === 'test') { plugins.push(['@babel/plugin-transform-export-namespace-from']); + // TODO: Remove once vitest is our default runner // We replace `date-fns` imports with an aliased `date-fns@v4` version installed as `date-fns-v4` for tests. // The plugin is patched to only run on `AdapterDateFnsV3.ts`. // TODO: remove when we upgrade to date-fns v4 by default. diff --git a/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx b/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx index 9ba98b56fd17e..aabca41feb74f 100644 --- a/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx +++ b/test/e2e/fixtures/DatePicker/MomentJalaliDateCalendar.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { AdapterMomentJalaali } from '@mui/x-date-pickers/AdapterMomentJalaali'; import moment from 'moment-jalaali'; -import 'moment/dist/locale/fa'; +import 'moment/locale/fa'; import { DateCalendar } from '@mui/x-date-pickers/DateCalendar'; export default function MomentJalaliDateCalendar() { diff --git a/test/karma.tests.js b/test/karma.tests.js index 7d585bfb04af1..e041b5849b8cd 100644 --- a/test/karma.tests.js +++ b/test/karma.tests.js @@ -18,5 +18,5 @@ afterEach(function beforeEachHook() { }); }); -const packagesContext = require.context('../packages', true, /^((?!browser|jsdom).)*\.test\.tsx$/); +const packagesContext = require.context('../packages', true, /\.test\.tsx$/); packagesContext.keys().forEach(packagesContext); diff --git a/test/package.json b/test/package.json index 9703daa0011d1..d212de622c4b8 100644 --- a/test/package.json +++ b/test/package.json @@ -18,10 +18,10 @@ "@mui/x-date-pickers": "workspace:*", "@mui/x-date-pickers-pro": "workspace:*", "@mui/x-license": "workspace:*", - "@react-spring/web": "^9.7.5", - "@types/karma": "^6.3.9", "@playwright/test": "^1.44.1", + "@react-spring/web": "^9.7.5", "@types/chai": "^4.3.20", + "@types/karma": "^6.3.9", "@types/moment-jalaali": "^0.7.9", "@types/prop-types": "^15.7.13", "@types/react": "^18.3.12", From 478816351a9bb16918a1fb45b71646687c077896 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 14 Nov 2024 20:38:51 +0100 Subject: [PATCH 122/253] use bigger class executor --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 41c56cde5307e..56055b0e337cc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -268,6 +268,7 @@ jobs: <<: *default-job docker: - image: mcr.microsoft.com/playwright:v1.44.1-focal + resource_class: medium+ steps: - checkout - install_js: From ff510c2e29334ecf52d85dd70aed17b3a589a866 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 14 Nov 2024 20:42:21 +0100 Subject: [PATCH 123/253] dedupe --- pnpm-lock.yaml | 369 ++++++++----------------------------------------- 1 file changed, 56 insertions(+), 313 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 79df3558cecf1..defaba70bb45b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -175,10 +175,10 @@ importers: version: 4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/browser': specifier: ^2.1.3 - version: 2.1.3(@vitest/spy@2.1.3)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) + version: 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) '@vitest/coverage-v8': specifier: ^2.1.3 - version: 2.1.3(@vitest/browser@2.1.3)(vitest@2.1.3) + version: 2.1.3(@vitest/browser@2.1.4)(vitest@2.1.3) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -403,10 +403,10 @@ importers: version: 0.12.5 vitest: specifier: 2.1.3 - version: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.3)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.3))(terser@5.27.0) + version: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) webpack: specifier: ^5.96.1 - version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -710,7 +710,7 @@ importers: version: 4.2.6 '@types/webpack-bundle-analyzer': specifier: ^4.7.0 - version: 4.7.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + version: 4.7.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) gm: specifier: ^1.25.0 version: 1.25.0 @@ -1340,7 +1340,7 @@ importers: version: 3.0.0 moment-jalaali: specifier: ^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0 - version: 0.10.1 + version: 0.10.4 prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -2425,9 +2425,6 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@bundled-es-modules/cookie@2.0.0': - resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} - '@bundled-es-modules/cookie@2.0.1': resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} @@ -3015,10 +3012,6 @@ packages: cpu: [x64] os: [win32] - '@inquirer/confirm@3.2.0': - resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} - engines: {node: '>=18'} - '@inquirer/confirm@5.0.2': resolution: {integrity: sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==} engines: {node: '>=18'} @@ -3029,22 +3022,10 @@ packages: resolution: {integrity: sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==} engines: {node: '>=18'} - '@inquirer/core@9.1.0': - resolution: {integrity: sha512-RZVfH//2ytTjmaBIzeKT1zefcQZzuruwkpTwwbe/i2jTl4o9M+iML5ChULzz6iw1Ok8iUBBsRCjY2IEbD8Ft4w==} - engines: {node: '>=18'} - - '@inquirer/figures@1.0.5': - resolution: {integrity: sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==} - engines: {node: '>=18'} - '@inquirer/figures@1.0.8': resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} engines: {node: '>=18'} - '@inquirer/type@1.5.3': - resolution: {integrity: sha512-xUQ14WQGR/HK5ei+2CvgcwoH9fQ4PgPGmVFSN0pc1+fVyDL3MREhyAY7nxEErSu6CkllBM3D7e3e+kOvtu+eIg==} - engines: {node: '>=18'} - '@inquirer/type@3.0.1': resolution: {integrity: sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==} engines: {node: '>=18'} @@ -3095,10 +3076,6 @@ packages: resolution: {integrity: sha512-DPnl5lPX4v49eVxEbJnAizrpMdMTBz1qykZrAbBul9rfgk531v8oAt+Pm6O/rpAleRombNM7FJb5rYGzBJatOQ==} engines: {node: '>=18.0.0'} - '@mswjs/interceptors@0.35.0': - resolution: {integrity: sha512-f5cHyIvm4m4g1I5x9EH1etGx0puaU0OaX2szqGRVBVgUC6aMASlOI5hbpe7tJ9l4/VWjCUu5OMraCazLZGI24A==} - engines: {node: '>=18'} - '@mswjs/interceptors@0.36.10': resolution: {integrity: sha512-GXrJgakgJW3DWKueebkvtYgGKkxA7s0u5B0P5syJM5rvQUnrpLPigvci8Hukl7yEM+sU06l+er2Fgvx/gmiRgg==} engines: {node: '>=18'} @@ -3906,9 +3883,6 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@sinonjs/commons@2.0.0': - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} - '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} @@ -3918,15 +3892,9 @@ packages: '@sinonjs/fake-timers@13.0.5': resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} - '@sinonjs/samsam@8.0.0': - resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} - '@sinonjs/samsam@8.0.2': resolution: {integrity: sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==} - '@sinonjs/text-encoding@0.7.2': - resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} - '@sinonjs/text-encoding@0.7.3': resolution: {integrity: sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==} @@ -4247,9 +4215,6 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/mute-stream@0.0.4': - resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - '@types/node@20.17.6': resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} @@ -4286,9 +4251,6 @@ packages: '@types/react@18.3.12': resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} - '@types/react@18.3.4': - resolution: {integrity: sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==} - '@types/requestidlecallback@0.3.7': resolution: {integrity: sha512-5/EwNH3H/+M2zxATq9UidyD7rCq3WhK5Te/XhdhqP270QoGInVkoNBj6kK2Ah5slkZewkX8XJb7WDaYhmJu+eg==} @@ -4328,9 +4290,6 @@ packages: '@types/webpack-bundle-analyzer@4.7.0': resolution: {integrity: sha512-c5i2ThslSNSG8W891BRvOd/RoCjI2zwph8maD22b1adtSns20j+0azDDMCK06DiVrzTgnwiDl5Ntmu1YRJw8Sg==} - '@types/wrap-ansi@3.0.0': - resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} - '@types/ws@8.5.13': resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} @@ -4439,21 +4398,6 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 - '@vitest/browser@2.1.3': - resolution: {integrity: sha512-PQ2kLLc9q8ukJutuuYsynHSr31E78/dtYEvPy4jCHLht1LmITqXTVTqu7THWdZ1kXNGrWwtdMqtt3z2mvSKdIg==} - peerDependencies: - playwright: 1.44.1 - safaridriver: '*' - vitest: 2.1.3 - webdriverio: '*' - peerDependenciesMeta: - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - '@vitest/browser@2.1.4': resolution: {integrity: sha512-89SrvShW6kWzmEYtBj5k1gBq88emoC2qrngw5hE1vNpRFteQ5/1URbKIVww391rIALTpzhhCt5yJt5tjLPZxYw==} peerDependencies: @@ -4654,11 +4598,6 @@ packages: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -4668,11 +4607,6 @@ packages: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -5491,10 +5425,6 @@ packages: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - cookie@0.7.1: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} @@ -7302,9 +7232,6 @@ packages: engines: {node: '>=10'} hasBin: true - jalaali-js@1.2.6: - resolution: {integrity: sha512-io974va+Qyu+UfuVX3UIAgJlxLhAMx9Y8VMfh+IG00Js7hXQo1qNQuwSiSa0xxco0SVgx5HWNkaiCcV+aZ8WPw==} - jalaali-js@1.2.7: resolution: {integrity: sha512-gE+YHWSbygYAoJa+Xg8LWxGILqFOxZSBQQw39ghel01fVFUxV7bjL0x1JFsHcLQ3uPjvn81HQMa+kxwyPWnxGQ==} @@ -8078,9 +8005,6 @@ packages: moment-hijri@3.0.0: resolution: {integrity: sha512-UcBcbHDA8ToVcKjY+vBEa/hI3GZYraueavWUSLY2TdrHDHhx+wUpRw96rssAqsbT4xo/TMimwQVBP4KhJ3EN5A==} - moment-jalaali@0.10.1: - resolution: {integrity: sha512-/iwLtt3onvI6wFydUSTj10nFeNkD9sZ0fSY1gmqC2dwt1yGYJun6agI7E7SiBYi8uzGlt3P4KuPYCMLiv43E+g==} - moment-jalaali@0.10.4: resolution: {integrity: sha512-/eD0HeyvATznb5iE0G1BHjKRZAFEpJ9ZNUkcHwXhNgt1WJJVVzHD7+uDmqzZWVFLdbGme2gvIXKb3ezDYOXcZA==} @@ -8107,16 +8031,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.4.4: - resolution: {integrity: sha512-iuM0qGs4YmgYCLH+xqb07w2e/e4fYmsx3+WHVlIOUA34TW1sw+wRpNmOlXnLDkw/T7233Jnm6t+aNf4v2E3e2Q==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - typescript: '>= 4.8.x' - peerDependenciesMeta: - typescript: - optional: true - msw@2.6.4: resolution: {integrity: sha512-Pm4LmWQeytDsNCR+A7gt39XAdtH6zQb6jnIKRig0FlvYOn8eksn3s1nXxUfz5KYUjbckof7Z4p2ewzgffPoCbg==} engines: {node: '>=18'} @@ -8188,9 +8102,6 @@ packages: sass: optional: true - nise@6.0.0: - resolution: {integrity: sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg==} - nise@6.1.1: resolution: {integrity: sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==} @@ -8657,9 +8568,6 @@ packages: path-to-regexp@3.3.0: resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} - path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -10274,16 +10182,6 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - webpack@5.95.0: - resolution: {integrity: sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - webpack@5.96.1: resolution: {integrity: sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==} engines: {node: '>=10.13.0'} @@ -11521,10 +11419,6 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bundled-es-modules/cookie@2.0.0': - dependencies: - cookie: 0.5.0 - '@bundled-es-modules/cookie@2.0.1': dependencies: cookie: 0.7.2 @@ -11998,11 +11892,6 @@ snapshots: '@img/sharp-win32-x64@0.33.5': optional: true - '@inquirer/confirm@3.2.0': - dependencies: - '@inquirer/core': 9.1.0 - '@inquirer/type': 1.5.3 - '@inquirer/confirm@5.0.2(@types/node@20.17.6)': dependencies: '@inquirer/core': 10.1.0(@types/node@20.17.6) @@ -12023,30 +11912,8 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@inquirer/core@9.1.0': - dependencies: - '@inquirer/figures': 1.0.5 - '@inquirer/type': 1.5.3 - '@types/mute-stream': 0.0.4 - '@types/node': 20.17.6 - '@types/wrap-ansi': 3.0.0 - ansi-escapes: 4.3.2 - cli-spinners: 2.9.2 - cli-width: 4.1.0 - mute-stream: 1.0.0 - signal-exit: 4.1.0 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 - - '@inquirer/figures@1.0.5': {} - '@inquirer/figures@1.0.8': {} - '@inquirer/type@1.5.3': - dependencies: - mute-stream: 1.0.0 - '@inquirer/type@3.0.1(@types/node@20.17.6)': dependencies: '@types/node': 20.17.6 @@ -12181,15 +12048,6 @@ snapshots: - supports-color - typescript - '@mswjs/interceptors@0.35.0': - dependencies: - '@open-draft/deferred-promise': 2.2.0 - '@open-draft/logger': 0.3.0 - '@open-draft/until': 2.1.0 - is-node-process: 1.2.0 - outvariant: 1.4.3 - strict-event-emitter: 0.5.1 - '@mswjs/interceptors@0.36.10': dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -13134,10 +12992,6 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@sinonjs/commons@2.0.0': - dependencies: - type-detect: 4.0.8 - '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 @@ -13150,20 +13004,12 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/samsam@8.0.0': - dependencies: - '@sinonjs/commons': 2.0.0 - lodash.get: 4.4.2 - type-detect: 4.1.0 - '@sinonjs/samsam@8.0.2': dependencies: '@sinonjs/commons': 3.0.1 lodash.get: 4.4.2 type-detect: 4.1.0 - '@sinonjs/text-encoding@0.7.2': {} - '@sinonjs/text-encoding@0.7.3': {} '@slack/bolt@4.1.0': @@ -13427,7 +13273,7 @@ snapshots: '@types/eslint@8.56.12': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 '@types/estree@1.0.5': {} @@ -13517,10 +13363,6 @@ snapshots: '@types/ms@0.7.34': {} - '@types/mute-stream@0.0.4': - dependencies: - '@types/node': 20.17.6 - '@types/node@20.17.6': dependencies: undici-types: 6.19.8 @@ -13542,7 +13384,7 @@ snapshots: '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 - '@types/react': 18.3.4 + '@types/react': 18.3.12 '@types/react-router': 5.1.20 '@types/react-router@5.1.20': @@ -13556,18 +13398,13 @@ snapshots: '@types/react-transition-group@4.4.11': dependencies: - '@types/react': 18.3.4 + '@types/react': 18.3.12 '@types/react@18.3.12': dependencies: '@types/prop-types': 15.7.13 csstype: 3.1.3 - '@types/react@18.3.4': - dependencies: - '@types/prop-types': 15.7.13 - csstype: 3.1.3 - '@types/requestidlecallback@0.3.7': {} '@types/retry@0.12.0': {} @@ -13601,19 +13438,17 @@ snapshots: '@types/unist@3.0.3': {} - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4)': + '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))': dependencies: '@types/node': 20.17.6 tapable: 2.2.1 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack-cli - '@types/wrap-ansi@3.0.0': {} - '@types/ws@8.5.13': dependencies: '@types/node': 20.17.6 @@ -13766,22 +13601,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.1.3(@vitest/spy@2.1.3)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3)': + '@vitest/browser@2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(msw@2.4.4(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) - '@vitest/utils': 2.1.3 + '@vitest/mocker': 2.1.4(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + '@vitest/utils': 2.1.4 magic-string: 0.30.12 - msw: 2.4.4(typescript@5.6.3) - sirv: 2.0.4 + msw: 2.6.4(@types/node@20.17.6)(typescript@5.6.3) + sirv: 3.0.0 tinyrainbow: 1.2.0 - vitest: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.3)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.3))(terser@5.27.0) + vitest: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) ws: 8.18.0 optionalDependencies: playwright: 1.44.1 transitivePeerDependencies: - - '@vitest/spy' + - '@types/node' - bufferutil - typescript - utf-8-validate @@ -13808,7 +13643,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@2.1.3(@vitest/browser@2.1.3)(vitest@2.1.3)': + '@vitest/coverage-v8@2.1.3(@vitest/browser@2.1.4)(vitest@2.1.3)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -13822,9 +13657,9 @@ snapshots: std-env: 3.7.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.3)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.3))(terser@5.27.0) + vitest: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) optionalDependencies: - '@vitest/browser': 2.1.3(@vitest/spy@2.1.3)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) + '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) transitivePeerDependencies: - supports-color @@ -13842,13 +13677,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(msw@2.4.4(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': + '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': dependencies: '@vitest/spy': 2.1.3 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - msw: 2.4.4(typescript@5.6.3) + msw: 2.6.4(@types/node@20.17.6)(typescript@5.6.3) vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) '@vitest/mocker@2.1.4(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': @@ -13997,19 +13832,19 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.96.1)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.96.1)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.96.1)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) '@xtuc/ieee754@1.2.0': {} @@ -14050,18 +13885,12 @@ snapshots: mime-types: 3.0.0 negotiator: 1.0.0 - acorn-import-attributes@1.9.5(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.12.1 - - acorn-jsx@5.3.2(acorn@8.12.1): - dependencies: - acorn: 8.12.1 + acorn: 8.14.0 acorn-walk@8.3.2: {} - acorn@8.12.1: {} - acorn@8.14.0: {} add-stream@1.0.0: {} @@ -14375,7 +14204,7 @@ snapshots: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) babel-plugin-istanbul@7.0.0: dependencies: @@ -14883,13 +14712,13 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 compression-webpack-plugin@11.1.0(webpack@5.96.1): dependencies: schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) compression@1.7.4: dependencies: @@ -15008,8 +14837,6 @@ snapshots: cookie@0.4.2: {} - cookie@0.5.0: {} - cookie@0.7.1: {} cookie@0.7.2: {} @@ -15742,7 +15569,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) transitivePeerDependencies: - supports-color @@ -15959,14 +15786,14 @@ snapshots: espree@10.1.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 4.0.0 espree@9.6.1: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esprima@2.7.3: {} @@ -15997,7 +15824,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -16716,7 +16543,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) htmlparser2@6.1.0: dependencies: @@ -17152,8 +16979,6 @@ snapshots: filelist: 1.0.4 minimatch: 3.1.2 - jalaali-js@1.2.6: {} - jalaali-js@1.2.7: {} jest-diff@29.7.0: @@ -17421,7 +17246,7 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 9.0.4 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-merge: 4.2.2 karma@6.4.4: @@ -18203,13 +18028,6 @@ snapshots: dependencies: moment: 2.30.1 - moment-jalaali@0.10.1: - dependencies: - jalaali-js: 1.2.6 - moment: 2.30.1 - moment-timezone: 0.5.46 - rimraf: 3.0.2 - moment-jalaali@0.10.4: dependencies: jalaali-js: 1.2.7 @@ -18232,28 +18050,6 @@ snapshots: ms@2.1.3: {} - msw@2.4.4(typescript@5.6.3): - dependencies: - '@bundled-es-modules/cookie': 2.0.0 - '@bundled-es-modules/statuses': 1.0.1 - '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 3.2.0 - '@mswjs/interceptors': 0.35.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.5 - chalk: 4.1.2 - graphql: 16.9.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 - path-to-regexp: 6.2.1 - strict-event-emitter: 0.5.1 - type-fest: 4.26.1 - yargs: 17.7.2 - optionalDependencies: - typescript: 5.6.3 - msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 @@ -18343,14 +18139,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - nise@6.0.0: - dependencies: - '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 11.2.2 - '@sinonjs/text-encoding': 0.7.2 - just-extend: 6.2.0 - path-to-regexp: 6.2.1 - nise@6.1.1: dependencies: '@sinonjs/commons': 3.0.1 @@ -18935,8 +18723,6 @@ snapshots: path-to-regexp@3.3.0: {} - path-to-regexp@6.2.1: {} - path-to-regexp@6.3.0: {} path-to-regexp@8.2.0: {} @@ -19751,9 +19537,9 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 - '@sinonjs/samsam': 8.0.0 + '@sinonjs/samsam': 8.0.2 diff: 5.2.0 - nise: 6.0.0 + nise: 6.1.1 supports-color: 7.2.0 sinon@19.0.2: @@ -19921,7 +19707,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) string-width@4.2.3: dependencies: @@ -20116,17 +19902,6 @@ snapshots: temp-dir@1.0.0: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack@5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4)): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.27.0 - webpack: 5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) - optionalDependencies: - '@swc/core': 1.7.35(@swc/helpers@0.5.5) - terser-webpack-plugin@5.3.10(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack@5.96.1): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -20134,14 +19909,14 @@ snapshots: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) optionalDependencies: '@swc/core': 1.7.35(@swc/helpers@0.5.5) terser@5.27.0: dependencies: '@jridgewell/source-map': 0.3.5 - acorn: 8.12.1 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -20579,10 +20354,10 @@ snapshots: fsevents: 2.3.3 terser: 5.27.0 - vitest@2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.3)(jsdom@24.1.3)(msw@2.4.4(typescript@5.6.3))(terser@5.27.0): + vitest@2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0): dependencies: '@vitest/expect': 2.1.3 - '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(msw@2.4.4(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/pretty-format': 2.1.4 '@vitest/runner': 2.1.3 '@vitest/snapshot': 2.1.3 @@ -20602,7 +20377,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.17.6 - '@vitest/browser': 2.1.3(@vitest/spy@2.1.3)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) + '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) jsdom: 24.1.3 transitivePeerDependencies: - less @@ -20675,7 +20450,7 @@ snapshots: webpack-bundle-analyzer@4.10.2: dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.12.1 + acorn: 8.14.0 acorn-walk: 8.3.2 commander: 7.2.0 debounce: 1.2.1 @@ -20693,9 +20468,9 @@ snapshots: webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.96.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.96.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.96.1) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -20704,7 +20479,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20721,39 +20496,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4): - dependencies: - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) - browserslist: 4.24.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack@5.95.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4)) - watchpack: 2.4.1 - webpack-sources: 3.2.3 - optionalDependencies: - webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4): + webpack@5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 From e5859c43faa129aea771e07f7db42ae21fd07990 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 14 Nov 2024 20:55:03 +0100 Subject: [PATCH 124/253] fix issues --- .circleci/config.yml | 4 ++-- packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx | 2 +- test/utils/mochaHooks.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 56055b0e337cc..b5c15ec26286c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -145,7 +145,7 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage --pool=threads + command: pnpm vitest --project "jsdom/*" --coverage environment: VITEST_MAX_THREADS: 6 VITEST_MIN_THREADS: 2 @@ -275,7 +275,7 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/x-data-grid" --pool=threads + command: pnpm vitest --project "browser/*" environment: VITEST_MAX_THREADS: 1 VITEST_MIN_THREADS: 1 diff --git a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx index 32e1907412c90..06eed9d872926 100644 --- a/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx +++ b/packages/x-charts/src/ChartsTooltip/contentDisplayed.test.tsx @@ -28,7 +28,7 @@ describe('ChartsTooltip', () => { const { render } = createRenderer(); beforeEach(() => { - // TODO: Remove beforeEach/afterEach after vitest becomes our main runner + // TODO: Remove beforeEach/afterEach after vitest becomes our main runner if (window?.document?.body?.style) { window.document.body.style.margin = '0'; } diff --git a/test/utils/mochaHooks.js b/test/utils/mochaHooks.js index 28300ac5086a9..85b5d1d6ddcfb 100644 --- a/test/utils/mochaHooks.js +++ b/test/utils/mochaHooks.js @@ -41,7 +41,7 @@ export function createXMochaHooks(coreMochaHooks = {}) { } // So we can mock files without having to have a global override in vitest -// eslint-disable-next-line no-undef +// This shows an error locally, but pnpm eslint:ci doesn't flag it as an error... globalThis.vi = { mock: () => {}, }; From 10d594defbcb191e79adada123625efb6fe02785 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 14 Nov 2024 21:16:19 +0100 Subject: [PATCH 125/253] revert thread usage --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b5c15ec26286c..56055b0e337cc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -145,7 +145,7 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage + command: pnpm vitest --project "jsdom/*" --coverage --pool=threads environment: VITEST_MAX_THREADS: 6 VITEST_MIN_THREADS: 2 @@ -275,7 +275,7 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/*" + command: pnpm vitest --project "browser/x-data-grid" --pool=threads environment: VITEST_MAX_THREADS: 1 VITEST_MIN_THREADS: 1 From ed4e45c2b1c951058140f9a1c7b667d5ee9b0975 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Thu, 14 Nov 2024 21:56:02 +0100 Subject: [PATCH 126/253] update vitest and dedupe --- package.json | 6 +- pnpm-lock.yaml | 209 +++++-------------------------------------------- renovate.json | 4 + 3 files changed, 25 insertions(+), 194 deletions(-) diff --git a/package.json b/package.json index bc3a38ea213a6..3f9a01105df1e 100644 --- a/package.json +++ b/package.json @@ -120,8 +120,8 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^4.3.2", - "@vitest/browser": "^2.1.3", - "@vitest/coverage-v8": "^2.1.3", + "@vitest/browser": "^2.1.4", + "@vitest/coverage-v8": "^2.1.4", "autoprefixer": "^10.4.20", "axe-core": "4.10.2", "babel-loader": "^9.2.1", @@ -196,7 +196,7 @@ "typescript": "^5.6.3", "unist-util-visit": "^5.0.0", "util": "^0.12.5", - "vitest": "2.1.3", + "vitest": "2.1.4", "webpack": "^5.96.1", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index defaba70bb45b..055d6c7f93f34 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -174,11 +174,11 @@ importers: specifier: ^4.3.2 version: 4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/browser': - specifier: ^2.1.3 - version: 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) + specifier: ^2.1.4 + version: 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) '@vitest/coverage-v8': - specifier: ^2.1.3 - version: 2.1.3(@vitest/browser@2.1.4)(vitest@2.1.3) + specifier: ^2.1.4 + version: 2.1.5(@vitest/browser@2.1.4)(vitest@2.1.4) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -402,8 +402,8 @@ importers: specifier: ^0.12.5 version: 0.12.5 vitest: - specifier: 2.1.3 - version: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + specifier: 2.1.4 + version: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) webpack: specifier: ^5.96.1 version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) @@ -4413,33 +4413,18 @@ packages: webdriverio: optional: true - '@vitest/coverage-v8@2.1.3': - resolution: {integrity: sha512-2OJ3c7UPoFSmBZwqD2VEkUw6A/tzPF0LmW0ZZhhB8PFxuc+9IBG/FaSM+RLEenc7ljzFvGN+G0nGQoZnh7sy2A==} + '@vitest/coverage-v8@2.1.5': + resolution: {integrity: sha512-/RoopB7XGW7UEkUndRXF87A9CwkoZAJW01pj8/3pgmDVsjMH2IKy6H1A38po9tmUlwhSyYs0az82rbKd9Yaynw==} peerDependencies: - '@vitest/browser': 2.1.3 - vitest: 2.1.3 + '@vitest/browser': 2.1.5 + vitest: 2.1.5 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@2.1.3': - resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} - '@vitest/expect@2.1.4': resolution: {integrity: sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==} - '@vitest/mocker@2.1.3': - resolution: {integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==} - peerDependencies: - '@vitest/spy': 2.1.3 - msw: ^2.3.5 - vite: ^5.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - '@vitest/mocker@2.1.4': resolution: {integrity: sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==} peerDependencies: @@ -4451,27 +4436,15 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.3': - resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} - '@vitest/pretty-format@2.1.4': resolution: {integrity: sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==} - '@vitest/runner@2.1.3': - resolution: {integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==} - '@vitest/runner@2.1.4': resolution: {integrity: sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==} - '@vitest/snapshot@2.1.3': - resolution: {integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==} - '@vitest/snapshot@2.1.4': resolution: {integrity: sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==} - '@vitest/spy@2.1.3': - resolution: {integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==} - '@vitest/spy@2.1.4': resolution: {integrity: sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==} @@ -4480,9 +4453,6 @@ packages: peerDependencies: vitest: 2.1.4 - '@vitest/utils@2.1.3': - resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} - '@vitest/utils@2.1.4': resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==} @@ -9415,8 +9385,8 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} stream-browserify@3.0.0: resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} @@ -10036,11 +10006,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@2.1.3: - resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - vite-node@2.1.4: resolution: {integrity: sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -10074,31 +10039,6 @@ packages: terser: optional: true - vitest@2.1.3: - resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^20.17.6 - '@vitest/browser': 2.1.3 - '@vitest/ui': 2.1.3 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vitest@2.1.4: resolution: {integrity: sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -13601,27 +13541,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3)': - dependencies: - '@testing-library/dom': 10.4.0 - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.4(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) - '@vitest/utils': 2.1.4 - magic-string: 0.30.12 - msw: 2.6.4(@types/node@20.17.6)(typescript@5.6.3) - sirv: 3.0.0 - tinyrainbow: 1.2.0 - vitest: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) - ws: 8.18.0 - optionalDependencies: - playwright: 1.44.1 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - typescript - - utf-8-validate - - vite - '@vitest/browser@2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4)': dependencies: '@testing-library/dom': 10.4.0 @@ -13643,7 +13562,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@2.1.3(@vitest/browser@2.1.4)(vitest@2.1.3)': + '@vitest/coverage-v8@2.1.5(@vitest/browser@2.1.4)(vitest@2.1.4)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -13654,22 +13573,15 @@ snapshots: istanbul-reports: 3.1.7 magic-string: 0.30.12 magicast: 0.3.5 - std-env: 3.7.0 + std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) optionalDependencies: - '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) + '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.3': - dependencies: - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 - chai: 5.1.2 - tinyrainbow: 1.2.0 - '@vitest/expect@2.1.4': dependencies: '@vitest/spy': 2.1.4 @@ -13677,15 +13589,6 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': - dependencies: - '@vitest/spy': 2.1.3 - estree-walker: 3.0.3 - magic-string: 0.30.12 - optionalDependencies: - msw: 2.6.4(@types/node@20.17.6)(typescript@5.6.3) - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - '@vitest/mocker@2.1.4(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': dependencies: '@vitest/spy': 2.1.4 @@ -13695,40 +13598,21 @@ snapshots: msw: 2.6.4(@types/node@20.17.6)(typescript@5.6.3) vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - '@vitest/pretty-format@2.1.3': - dependencies: - tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.1.4': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.3': - dependencies: - '@vitest/utils': 2.1.3 - pathe: 1.1.2 - '@vitest/runner@2.1.4': dependencies: '@vitest/utils': 2.1.4 pathe: 1.1.2 - '@vitest/snapshot@2.1.3': - dependencies: - '@vitest/pretty-format': 2.1.3 - magic-string: 0.30.12 - pathe: 1.1.2 - '@vitest/snapshot@2.1.4': dependencies: '@vitest/pretty-format': 2.1.4 magic-string: 0.30.12 pathe: 1.1.2 - '@vitest/spy@2.1.3': - dependencies: - tinyspy: 3.0.2 - '@vitest/spy@2.1.4': dependencies: tinyspy: 3.0.2 @@ -13744,12 +13628,6 @@ snapshots: tinyrainbow: 1.2.0 vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) - '@vitest/utils@2.1.3': - dependencies: - '@vitest/pretty-format': 2.1.3 - loupe: 3.1.2 - tinyrainbow: 1.2.0 - '@vitest/utils@2.1.4': dependencies: '@vitest/pretty-format': 2.1.4 @@ -19684,7 +19562,7 @@ snapshots: statuses@2.0.1: {} - std-env@3.7.0: {} + std-env@3.8.0: {} stream-browserify@3.0.0: dependencies: @@ -20312,22 +20190,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.3(@types/node@20.17.6)(terser@5.27.0): - dependencies: - cac: 6.7.14 - debug: 4.3.7(supports-color@8.1.1) - pathe: 1.1.2 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vite-node@2.1.4(@types/node@20.17.6)(terser@5.27.0): dependencies: cac: 6.7.14 @@ -20354,41 +20216,6 @@ snapshots: fsevents: 2.3.3 terser: 5.27.0 - vitest@2.1.3(@types/node@20.17.6)(@vitest/browser@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0): - dependencies: - '@vitest/expect': 2.1.3 - '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) - '@vitest/pretty-format': 2.1.4 - '@vitest/runner': 2.1.3 - '@vitest/snapshot': 2.1.3 - '@vitest/spy': 2.1.3 - '@vitest/utils': 2.1.3 - chai: 5.1.2 - debug: 4.3.7(supports-color@8.1.1) - magic-string: 0.30.12 - pathe: 1.1.2 - std-env: 3.7.0 - tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.1 - tinyrainbow: 1.2.0 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - vite-node: 2.1.3(@types/node@20.17.6)(terser@5.27.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 20.17.6 - '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.3) - jsdom: 24.1.3 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - stylus - - sugarss - - supports-color - - terser - vitest@2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0): dependencies: '@vitest/expect': 2.1.4 @@ -20403,7 +20230,7 @@ snapshots: expect-type: 1.1.0 magic-string: 0.30.12 pathe: 1.1.2 - std-env: 3.7.0 + std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 tinypool: 1.0.1 diff --git a/renovate.json b/renovate.json index ad51a3c124a6e..64edb1c8c32b2 100644 --- a/renovate.json +++ b/renovate.json @@ -87,6 +87,10 @@ "matchPackageNames": ["node", "cimg/node"], "enabled": false }, + { + "groupName": "Vitest", + "matchPackageNames": ["vitest", "@vitest/**"] + }, { "groupName": "MUI Core", "matchPackageNames": [ From 8143ff09faeeb7fa014d6044388f1d5992bbfa94 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 15:31:28 +0100 Subject: [PATCH 127/253] update renovate --- renovate.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 64edb1c8c32b2..a4b1f51aee343 100644 --- a/renovate.json +++ b/renovate.json @@ -89,7 +89,7 @@ }, { "groupName": "Vitest", - "matchPackageNames": ["vitest", "@vitest/**"] + "matchPackageNames": ["vitest", "@vitest/**", "vitest-*"] }, { "groupName": "MUI Core", From 6145ec0f4a32e339d2529d63210e84bfebeae234 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 15:45:42 +0100 Subject: [PATCH 128/253] update configs and test --- .../src/tests/columns.DataGridPro.test.tsx | 10 ++-- .../src/tests/filtering.DataGridPro.test.tsx | 4 +- .../src/tests/slots.DataGrid.test.tsx | 2 +- .../AdapterMomentHijri.test.tsx | 6 ++- .../DateCalendar/tests/DateCalendar.test.tsx | 4 +- test/setupVitest.ts | 53 ++++--------------- .../describeHijriAdapter/testFormat.ts | 6 ++- vitest.config.mts | 7 +-- vitest.workspace.ts | 16 +++--- 9 files changed, 41 insertions(+), 67 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 0213aacba4caf..6fa3bd4d97429 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -165,7 +165,7 @@ describe(' - Columns', () => { fireEvent.doubleClick(separator); await microtasks(); expect(onColumnWidthChange.callCount).to.be.at.least(2); - const expectedWidth = process.env.MUI_BROWSER === 'true' ? 63.71875 : 114; + const expectedWidth = process.env.VITEST === 'true' ? 63.71875 : 114; expect(onColumnWidthChange.args.map((arg) => arg[0].width)).to.deep.equal([ 120, expectedWidth, @@ -544,7 +544,7 @@ describe(' - Columns', () => { render(); await apiRef.current.autosizeColumns(); await microtasks(); - if (process.env.MUI_BROWSER === 'true') { + if (process.env.VITEST === 'true') { expect(getWidths()).to.deep.equal([155, 177]); } else { expect(getWidths()).to.deep.equal([211, 233]); @@ -558,7 +558,7 @@ describe(' - Columns', () => { )[1]; fireEvent.doubleClick(separator); await microtasks(); - if (process.env.MUI_BROWSER === 'true') { + if (process.env.VITEST === 'true') { expect(getWidths()).to.deep.equal([100, 177]); } else { expect(getWidths()).to.deep.equal([100, 233]); @@ -569,7 +569,7 @@ describe(' - Columns', () => { render(); await microtasks(); /* first effect after render */ await microtasks(); /* async autosize operation */ - if (process.env.MUI_BROWSER === 'true') { + if (process.env.VITEST === 'true') { expect(getWidths()).to.deep.equal([155, 177]); } else { expect(getWidths()).to.deep.equal([211, 233]); @@ -591,7 +591,7 @@ describe(' - Columns', () => { it('.includeHeaders works', async () => { await autosize( { includeHeaders: true }, - process.env.MUI_BROWSER === 'true' ? [155, 177] : [211, 233], + process.env.VITEST === 'true' ? [155, 177] : [211, 233], ); }); diff --git a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx index 9704267dcf3c6..ed017374f6c23 100644 --- a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx @@ -501,7 +501,7 @@ describe(' - Filter', () => { screen.queryAllByRole('combobox', { name: 'Logic operator', hidden: true })[ // https://github.com/testing-library/dom-testing-library/issues/846 // This error doesn't happen in vitest - isJSDOM && process.env.MUI_JSDOM !== 'true' ? 1 : 0 + isJSDOM && process.env.VITEST !== 'true' ? 1 : 0 ], ); fireEvent.change(input!, { target: { value: 'or' } }); @@ -1196,7 +1196,7 @@ describe(' - Filter', () => { const select = screen.getAllByRole('combobox', { name: 'Logic operator' })[ // For JSDom, the first hidden combo is also found which we are not interested in // This error doesn't happen in vitest - isJSDOM && process.env.MUI_JSDOM !== 'true' ? 1 : 0 + isJSDOM && process.env.VITEST !== 'true' ? 1 : 0 ]; expect(select).not.to.have.class('Mui-disabled'); }); diff --git a/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx b/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx index 89cea8707dca3..d9a2a9c4b2618 100644 --- a/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx +++ b/packages/x-data-grid/src/tests/slots.DataGrid.test.tsx @@ -117,7 +117,7 @@ describe(' - Slots', () => { let button; // I can see the button in the debug, but it's not found by the test... - if (process.env.MUI_JSDOM) { + if (process.env.VITEST) { button = screen.getByTestId('FilterAltIcon'); } else { button = screen.getByRole('button', { name: /show filters/i }); diff --git a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx index 1b2d09533d6db..f4b4eef0349f0 100644 --- a/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx +++ b/packages/x-date-pickers/src/AdapterMomentHijri/AdapterMomentHijri.test.tsx @@ -21,10 +21,12 @@ describe('', () => { }, }); + const isJsdom = typeof window !== 'undefined' && window.navigator.userAgent.includes('jsdom'); + describe('Adapter localization', () => { it('Formatting', (t = {}) => { // TODO: All Hijri tests are failing on vitest browser (2024-11) - if (process.env.MUI_BROWSER === 'true') { + if (process.env.VITEST === 'true' && !isJsdom) { // @ts-expect-error to support mocha and vitest t?.skip(); } @@ -87,7 +89,7 @@ describe('', () => { }); it('should have well formatted value', (t = {}) => { - if (process.env.MUI_BROWSER === 'true') { + if (process.env.VITEST === 'true' && !isJsdom) { // @ts-expect-error to support mocha and vitest t?.skip(); } diff --git a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx index 993e51ab21bda..57f1242573ae6 100644 --- a/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx +++ b/packages/x-date-pickers/src/DateCalendar/tests/DateCalendar.test.tsx @@ -129,7 +129,7 @@ describe('', () => { describe('with fake timers', () => { // TODO: remove when migrated to vitest - if (process.env.MUI_VITEST !== 'true') { + if (process.env.VITEST !== 'true') { clock.withFakeTimers(); } @@ -144,7 +144,7 @@ describe('', () => { ); fireEvent.click(screen.getByRole('radio', { name: '2020' })); - if (process.env.MUI_VITEST !== 'true') { + if (process.env.VITEST !== 'true') { // Finish the transition to the day view clock.runToLast(); } else { diff --git a/test/setupVitest.ts b/test/setupVitest.ts index 3df2109ece642..dda6d0585c67a 100644 --- a/test/setupVitest.ts +++ b/test/setupVitest.ts @@ -1,18 +1,16 @@ -import { beforeAll, afterAll, vi } from 'vitest'; -import 'test/utils/addChaiAssertions'; -import 'test/utils/setupPickers'; -import 'test/utils/licenseRelease'; -import { generateTestLicenseKey, setupTestLicenseKey } from 'test/utils/testLicense'; - -// @ts-ignore -globalThis.before = beforeAll; -// @ts-ignore -globalThis.after = afterAll; +import { beforeAll, vi, it } from 'vitest'; +import './utils/addChaiAssertions'; +import './utils/setupPickers'; +import './utils/licenseRelease'; +import { generateTestLicenseKey, setupTestLicenseKey } from './utils/testLicense'; +import '@mui/internal-test-utils/setupVitest'; // @ts-ignore globalThis.vi = vi; -const isVitestJsdom = process.env.MUI_JSDOM === 'true'; +// We override @mui/internal-test-utils/setupVitest `it` as it causes problems for us. +// @ts-ignore +globalThis.it = it; let licenseKey: string = ''; @@ -23,36 +21,3 @@ beforeAll(() => { beforeEach(() => { setupTestLicenseKey(licenseKey); }); - -// Only necessary when not in browser mode. -if (isVitestJsdom) { - class Touch { - instance: any; - - constructor(instance: any) { - this.instance = instance; - } - - get identifier() { - return this.instance.identifier; - } - - get pageX() { - return this.instance.pageX; - } - - get pageY() { - return this.instance.pageY; - } - - get clientX() { - return this.instance.clientX; - } - - get clientY() { - return this.instance.clientY; - } - } - // @ts-expect-error - globalThis.window.Touch = Touch; -} diff --git a/test/utils/pickers/describeHijriAdapter/testFormat.ts b/test/utils/pickers/describeHijriAdapter/testFormat.ts index a3b55113dd796..8506652d90482 100644 --- a/test/utils/pickers/describeHijriAdapter/testFormat.ts +++ b/test/utils/pickers/describeHijriAdapter/testFormat.ts @@ -1,9 +1,11 @@ import { expect } from 'chai'; import { DescribeHijriAdapterTestSuite } from './describeHijriAdapter.types'; +const isJsdom = typeof window !== 'undefined' && window.navigator.userAgent.includes('jsdom'); + export const testFormat: DescribeHijriAdapterTestSuite = ({ adapter }) => { - it('should format the seconds without leading zeroes for format "s"', (t = {}) => { - if (process.env.MUI_BROWSER === 'true') { + it('should format the seconds without leading zeroes for format "s"', (t) => { + if (process.env.VITEST === 'true' && !isJsdom) { // @ts-expect-error to support mocha and vitest t?.skip(); } diff --git a/vitest.config.mts b/vitest.config.mts index f6edc15e89f7c..5362b7bbb44b4 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -4,6 +4,10 @@ import { defineConfig } from 'vitest/config'; const MONOREPO_ROOT = path.resolve(__dirname, './'); export default defineConfig({ + define: { + 'process.env.NODE_ENV': '"test"', + 'process.env.VITEST': '"true"', + }, resolve: { alias: [ ...[ @@ -54,9 +58,6 @@ export default defineConfig({ sequence: { hooks: 'list', }, - env: { - MUI_VITEST: 'true', - }, poolOptions: { threads: { useAtomics: true, diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 870f272f92bb0..169db1958dc1c 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -31,13 +31,20 @@ export default defineWorkspace([ { extends: './vitest.config.mts', plugins: [react()], + optimizeDeps: { + include: [ + 'date-fns-jalali-v3/**', + 'moment/locale/**', + 'date-fns/**', + 'dayjs/**', + 'date-fns-v4/**', + 'date-fns-jalali/**', + ], + }, test: { include: [`packages/${name}/src/**/*.test.?(c|m)[jt]s?(x)`], exclude: [`packages/${name}/src/**/*.jsdom.test.?(c|m)[jt]s?(x)`], name: `browser/${name}`, - env: { - MUI_BROWSER: 'true', - }, browser: { enabled: true, name: 'chromium', @@ -64,9 +71,6 @@ export default defineWorkspace([ exclude: [`packages/${name}/src/**/*.browser.test.?(c|m)[jt]s?(x)`], name: `jsdom/${name}`, environment: 'jsdom', - env: { - MUI_JSDOM: 'true', - }, }, }, ]), From 6137a65fdc19aa3e0a928a712b322d7fa1d8a459 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 17:06:06 +0100 Subject: [PATCH 129/253] stop using core setupVitest --- package.json | 8 +- pnpm-lock.yaml | 175 ++++++++++++++++++++++++-------------------- test/setupVitest.ts | 72 +++++++++++++++--- 3 files changed, 161 insertions(+), 94 deletions(-) diff --git a/package.json b/package.json index 3f9a01105df1e..16d66692e5176 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "release:tag": "node scripts/releaseTag.mjs", "validate": "concurrently \"pnpm prettier && pnpm eslint\" \"pnpm proptypes\" \"pnpm docs:typescript:formatted\" \"pnpm docs:api\"", "clean:node_modules": "rimraf --glob \"**/node_modules\"", - "vitest": "cross-env TZ=UTC vitest" + "vitest": "cross-env TZ=UTC IGNORE_ACT_WARNINGS=true vitest" }, "devDependencies": { "@actions/core": "^1.11.1", @@ -102,6 +102,7 @@ "@octokit/plugin-retry": "^7.1.2", "@octokit/rest": "^21.0.2", "@playwright/test": "^1.44.1", + "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", "@types/babel__traverse": "^7.20.6", @@ -197,6 +198,7 @@ "unist-util-visit": "^5.0.0", "util": "^0.12.5", "vitest": "2.1.4", + "vitest-fail-on-console": "^0.7.1", "webpack": "^5.96.1", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", @@ -205,9 +207,7 @@ "resolutions": { "react-is": "^18.3.1", "@types/node": "^20.17.6", - "@playwright/test": "1.44.1", - "playwright": "1.44.1", - "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils" + "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils" }, "packageManager": "pnpm@9.12.3", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 055d6c7f93f34..8126d8977f478 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,9 +7,7 @@ settings: overrides: react-is: ^18.3.1 '@types/node': ^20.17.6 - '@playwright/test': 1.44.1 - playwright: 1.44.1 - '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils + '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils patchedDependencies: babel-plugin-replace-imports@1.0.2: @@ -96,8 +94,8 @@ importers: specifier: ^1.0.20 version: 1.0.20 '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -117,8 +115,11 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: 1.44.1 + specifier: ^1.44.1 version: 1.44.1 + '@testing-library/dom': + specifier: ^10.4.0 + version: 10.4.0 '@testing-library/react': specifier: ^16.0.1 version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -175,7 +176,7 @@ importers: version: 4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/browser': specifier: ^2.1.4 - version: 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) + version: 2.1.4(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) '@vitest/coverage-v8': specifier: ^2.1.4 version: 2.1.5(@vitest/browser@2.1.4)(vitest@2.1.4) @@ -404,9 +405,12 @@ importers: vitest: specifier: 2.1.4 version: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vitest-fail-on-console: + specifier: ^0.7.1 + version: 0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) webpack: specifier: ^5.96.1 - version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -786,8 +790,8 @@ importers: version: 18.3.1(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1033,8 +1037,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/joy': specifier: ^5.0.0-beta.48 version: 5.0.0-beta.48(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1145,8 +1149,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1207,8 +1211,8 @@ importers: version: 5.1.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1260,8 +1264,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1355,8 +1359,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1402,8 +1406,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1422,8 +1426,8 @@ importers: version: 18.3.1 devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -1466,8 +1470,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1525,8 +1529,8 @@ importers: version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@mui/internal-test-utils': - specifier: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils - version: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils + version: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: ^5.16.7 version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1580,7 +1584,7 @@ importers: specifier: workspace:* version: link:../packages/x-license/build '@playwright/test': - specifier: 1.44.1 + specifier: ^1.44.1 version: 1.44.1 '@react-spring/web': specifier: ^9.7.5 @@ -1668,7 +1672,7 @@ importers: version: 3.7.1(@swc/helpers@0.5.5)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/browser': specifier: 2.1.4 - version: 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) + version: 2.1.4(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) '@vitest/ui': specifier: 2.1.4 version: 2.1.4(vitest@2.1.4) @@ -3136,9 +3140,9 @@ packages: '@mui/internal-scripts@1.0.27': resolution: {integrity: sha512-stqXxLEcb1purnwXPrWKy7gd+SEQkzDAo3PZyMvUYRzMN+pmstB8Kh5PtmIHeB6yXVFnsqTTn+Bf4bVmJ5FnLA==} - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils': - resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils} - version: 1.0.16 + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils': + resolution: {tarball: https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils} + version: 1.0.20 peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 @@ -3886,9 +3890,6 @@ packages: '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@11.2.2': - resolution: {integrity: sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==} - '@sinonjs/fake-timers@13.0.5': resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} @@ -4401,7 +4402,7 @@ packages: '@vitest/browser@2.1.4': resolution: {integrity: sha512-89SrvShW6kWzmEYtBj5k1gBq88emoC2qrngw5hE1vNpRFteQ5/1URbKIVww391rIALTpzhhCt5yJt5tjLPZxYw==} peerDependencies: - playwright: 1.44.1 + playwright: '*' safaridriver: '*' vitest: 2.1.4 webdriverio: '*' @@ -8060,7 +8061,7 @@ packages: hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': 1.44.1 + '@playwright/test': ^1.41.2 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 @@ -8626,11 +8627,21 @@ packages: engines: {node: '>=16'} hasBin: true + playwright-core@1.48.2: + resolution: {integrity: sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==} + engines: {node: '>=18'} + hasBin: true + playwright@1.44.1: resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} engines: {node: '>=16'} hasBin: true + playwright@1.48.2: + resolution: {integrity: sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==} + engines: {node: '>=18'} + hasBin: true + possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -9263,9 +9274,6 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - sinon@18.0.1: - resolution: {integrity: sha512-a2N2TDY1uGviajJ6r4D1CyRAkzE9NNVlYOV1wX5xQDuAk0ONgzgRl0EjCQuRCPxOwp13ghsMwt9Gdldujs39qw==} - sinon@19.0.2: resolution: {integrity: sha512-euuToqM+PjO4UgXeLETsfQiuoyPXlqFezr6YZDFwHR3t4qaX0fZUe1MfPMznTL5f8BWrVS89KduLdMUsxFCO6g==} @@ -10039,6 +10047,12 @@ packages: terser: optional: true + vitest-fail-on-console@0.7.1: + resolution: {integrity: sha512-/PjuonFu7CwUVrKaiQPIGXOtiEv2/Gz3o8MbLmovX9TGDxoRCctRC8CA9zJMRUd6AvwGu/V5a3znObTmlPNTgw==} + peerDependencies: + vite: '>=4.5.2' + vitest: '>=0.26.2' + vitest@2.1.4: resolution: {integrity: sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -12072,7 +12086,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/92c23999/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/internal-test-utils@https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils(@babel/core@7.26.0)(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) @@ -12091,11 +12105,11 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.8.2 - playwright: 1.44.1 + playwright: 1.48.2 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - sinon: 18.0.1 + sinon: 19.0.2 transitivePeerDependencies: - '@babel/core' - '@types/react' @@ -12936,10 +12950,6 @@ snapshots: dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@11.2.2': - dependencies: - '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers@13.0.5': dependencies: '@sinonjs/commons': 3.0.1 @@ -13382,7 +13392,7 @@ snapshots: dependencies: '@types/node': 20.17.6 tapable: 2.2.1 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13541,7 +13551,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4)': + '@vitest/browser@2.1.4(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) @@ -13554,7 +13564,7 @@ snapshots: vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) ws: 8.18.0 optionalDependencies: - playwright: 1.44.1 + playwright: 1.48.2 transitivePeerDependencies: - '@types/node' - bufferutil @@ -13578,7 +13588,7 @@ snapshots: tinyrainbow: 1.2.0 vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) optionalDependencies: - '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) + '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) transitivePeerDependencies: - supports-color @@ -13710,19 +13720,19 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) '@xtuc/ieee754@1.2.0': {} @@ -14082,7 +14092,7 @@ snapshots: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) babel-plugin-istanbul@7.0.0: dependencies: @@ -14596,7 +14606,7 @@ snapshots: dependencies: schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) compression@1.7.4: dependencies: @@ -15447,7 +15457,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color @@ -16421,7 +16431,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) htmlparser2@6.1.0: dependencies: @@ -17124,7 +17134,7 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 9.0.4 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-merge: 4.2.2 karma@6.4.4: @@ -18657,12 +18667,20 @@ snapshots: playwright-core@1.44.1: {} + playwright-core@1.48.2: {} + playwright@1.44.1: dependencies: playwright-core: 1.44.1 optionalDependencies: fsevents: 2.3.2 + playwright@1.48.2: + dependencies: + playwright-core: 1.48.2 + optionalDependencies: + fsevents: 2.3.2 + possible-typed-array-names@1.0.0: {} postcss-selector-parser@6.1.0: @@ -19411,15 +19429,6 @@ snapshots: dependencies: is-arrayish: 0.3.2 - sinon@18.0.1: - dependencies: - '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 11.2.2 - '@sinonjs/samsam': 8.0.2 - diff: 5.2.0 - nise: 6.1.1 - supports-color: 7.2.0 - sinon@19.0.2: dependencies: '@sinonjs/commons': 3.0.1 @@ -19585,7 +19594,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) string-width@4.2.3: dependencies: @@ -19787,7 +19796,7 @@ snapshots: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) optionalDependencies: '@swc/core': 1.7.35(@swc/helpers@0.5.5) @@ -20216,6 +20225,12 @@ snapshots: fsevents: 2.3.3 terser: 5.27.0 + vitest-fail-on-console@0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4): + dependencies: + chalk: 5.3.0 + vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) + vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vitest@2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.4)(@vitest/ui@2.1.4)(jsdom@24.1.3)(msw@2.6.4(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0): dependencies: '@vitest/expect': 2.1.4 @@ -20240,7 +20255,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.17.6 - '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) + '@vitest/browser': 2.1.4(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) '@vitest/ui': 2.1.4(vitest@2.1.4) jsdom: 24.1.3 transitivePeerDependencies: @@ -20295,9 +20310,9 @@ snapshots: webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.96.1) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.96.1) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.96.1) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -20306,7 +20321,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20323,7 +20338,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)): + webpack@5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 diff --git a/test/setupVitest.ts b/test/setupVitest.ts index dda6d0585c67a..9f439fda298de 100644 --- a/test/setupVitest.ts +++ b/test/setupVitest.ts @@ -1,17 +1,15 @@ -import { beforeAll, vi, it } from 'vitest'; -import './utils/addChaiAssertions'; -import './utils/setupPickers'; -import './utils/licenseRelease'; -import { generateTestLicenseKey, setupTestLicenseKey } from './utils/testLicense'; -import '@mui/internal-test-utils/setupVitest'; +import { beforeAll, vi, afterAll } from 'vitest'; +import 'test/utils/addChaiAssertions'; +import 'test/utils/setupPickers'; +import 'test/utils/licenseRelease'; +import { generateTestLicenseKey, setupTestLicenseKey } from 'test/utils/testLicense'; +import * as testingLibrary from '@testing-library/dom'; +// Core's setupVitest is causing issues with the test setup +// import '@mui/internal-test-utils/setupVitest'; // @ts-ignore globalThis.vi = vi; -// We override @mui/internal-test-utils/setupVitest `it` as it causes problems for us. -// @ts-ignore -globalThis.it = it; - let licenseKey: string = ''; beforeAll(() => { @@ -21,3 +19,57 @@ beforeAll(() => { beforeEach(() => { setupTestLicenseKey(licenseKey); }); + +// checking if an element is hidden is quite expensive +// this is only done in CI as a fail safe. It can still explicitly be checked +// in the test files which helps documenting what is part of the DOM but hidden +// from assistive technology +const defaultHidden = !process.env.CI; + +testingLibrary.configure({ + // JSDOM logs errors otherwise on `getComputedStyle(element, pseudoElement)` calls. + computedStyleSupportsPseudoElements: false, + defaultHidden, +}); + +if (!globalThis.before) { + (globalThis as any).before = beforeAll; +} +if (!globalThis.after) { + (globalThis as any).after = afterAll; +} + +const isJsdom = typeof window !== 'undefined' && window.navigator.userAgent.includes('jsdom'); + +// Only necessary when not in browser mode. +if (isJsdom) { + class Touch { + instance: any; + + constructor(instance: any) { + this.instance = instance; + } + + get identifier() { + return this.instance.identifier; + } + + get pageX() { + return this.instance.pageX; + } + + get pageY() { + return this.instance.pageY; + } + + get clientX() { + return this.instance.clientX; + } + + get clientY() { + return this.instance.clientY; + } + } + // @ts-expect-error + globalThis.window.Touch = Touch; +} From 25019415e204ecbebe10ace9cedc67f4191a34f4 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 17:12:00 +0100 Subject: [PATCH 130/253] try limiting mem size --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 56055b0e337cc..574d366475686 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -275,10 +275,10 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: pnpm vitest --project "browser/x-data-grid" --pool=threads + command: NODE_OPTIONS=--max-old-space-size=1536 pnpm vitest --project "browser/x-data-grid" --pool=threads environment: - VITEST_MAX_THREADS: 1 - VITEST_MIN_THREADS: 1 + VITEST_MAX_THREADS: 3 + VITEST_MIN_THREADS: 2 test_types: <<: *default-job From 0daad6b7e1d49115b67c8ff0639bea765eea6a13 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 17:17:55 +0100 Subject: [PATCH 131/253] dedupe --- pnpm-lock.yaml | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8126d8977f478..5bdac6232c096 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -410,7 +410,7 @@ importers: version: 0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) webpack: specifier: ^5.96.1 - version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -13392,7 +13392,7 @@ snapshots: dependencies: '@types/node': 20.17.6 tapable: 2.2.1 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13720,19 +13720,19 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.96.1)': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.96.1)': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.96.1)': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) '@xtuc/ieee754@1.2.0': {} @@ -14092,7 +14092,7 @@ snapshots: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) babel-plugin-istanbul@7.0.0: dependencies: @@ -14606,7 +14606,7 @@ snapshots: dependencies: schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) compression@1.7.4: dependencies: @@ -15457,7 +15457,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) transitivePeerDependencies: - supports-color @@ -16431,7 +16431,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) htmlparser2@6.1.0: dependencies: @@ -17134,7 +17134,7 @@ snapshots: dependencies: glob: 7.2.3 minimatch: 9.0.4 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-merge: 4.2.2 karma@6.4.4: @@ -19594,7 +19594,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) string-width@4.2.3: dependencies: @@ -19796,7 +19796,7 @@ snapshots: schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) optionalDependencies: '@swc/core': 1.7.35(@swc/helpers@0.5.5) @@ -20310,9 +20310,9 @@ snapshots: webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.96.1) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.96.1) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.96.1) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -20321,7 +20321,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4) + webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20338,7 +20338,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4): + webpack@5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 From 399898f60bf626a4f0d35efd4f71ce10717ca0b8 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 17:24:03 +0100 Subject: [PATCH 132/253] upgrade playwright --- .circleci/config.yml | 10 ++++---- package.json | 4 ++- pnpm-lock.yaml | 60 ++++++++++++++++---------------------------- test/package.json | 2 +- 4 files changed, 31 insertions(+), 45 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 574d366475686..62c24c1011372 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -251,7 +251,7 @@ jobs: test_browser: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.44.2-focal steps: - checkout - install_js: @@ -267,7 +267,7 @@ jobs: test_browser_vitest: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.44.2-focal resource_class: medium+ steps: - checkout @@ -299,7 +299,7 @@ jobs: test_e2e: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.44.2-focal steps: - checkout - install_js: @@ -310,7 +310,7 @@ jobs: test_e2e_website: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.44.2-focal steps: - checkout - install_js: @@ -323,7 +323,7 @@ jobs: test_regressions: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.44.2-focal steps: - checkout - install_js: diff --git a/package.json b/package.json index 16d66692e5176..b6c10b629c8a8 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "@next/eslint-plugin-next": "15.0.3", "@octokit/plugin-retry": "^7.1.2", "@octokit/rest": "^21.0.2", - "@playwright/test": "^1.44.1", + "@playwright/test": "^1.44.2", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", @@ -207,6 +207,8 @@ "resolutions": { "react-is": "^18.3.1", "@types/node": "^20.17.6", + "@playwright/test": "^1.44.2", + "playwright": "^1.44.2", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils" }, "packageManager": "pnpm@9.12.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da93b563a1ad3..fd528759774c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,8 @@ settings: overrides: react-is: ^18.3.1 '@types/node': ^20.17.6 + '@playwright/test': ^1.44.2 + playwright: ^1.44.2 '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils patchedDependencies: @@ -115,8 +117,8 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.44.1 - version: 1.44.1 + specifier: ^1.44.2 + version: 1.48.2 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -449,7 +451,7 @@ importers: version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/docs': specifier: 6.1.7 - version: 6.1.7(jd23wyl5ec6tn4c5zv7d3fvige) + version: 6.1.7(lkeltncpexqtrgzcyvckuvj23i) '@mui/icons-material': specifier: ^5.16.7 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) @@ -464,7 +466,7 @@ importers: version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: ^5.16.6 - version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@mui/styles': specifier: ^5.16.7 version: 5.16.7(@types/react@18.3.12)(react@18.3.1) @@ -596,7 +598,7 @@ importers: version: 0.5.46 next: specifier: ^14.2.17 - version: 14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -1602,8 +1604,8 @@ importers: specifier: workspace:* version: link:../packages/x-license/build '@playwright/test': - specifier: ^1.44.1 - version: 1.44.1 + specifier: ^1.44.2 + version: 1.48.2 '@react-spring/web': specifier: ^9.7.5 version: 9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -3742,9 +3744,9 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.44.1': - resolution: {integrity: sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==} - engines: {node: '>=16'} + '@playwright/test@1.48.2': + resolution: {integrity: sha512-54w1xCWfXuax7dz4W2M9uw0gDyh+ti/0K/MxcCUxChFh37kkdxPdfZDw5QBbuPUJHr1CiHJ1hXgSs+GgeQc5Zw==} + engines: {node: '>=18'} hasBin: true '@polka/url@1.0.0-next.24': @@ -4423,7 +4425,7 @@ packages: '@vitest/browser@2.1.4': resolution: {integrity: sha512-89SrvShW6kWzmEYtBj5k1gBq88emoC2qrngw5hE1vNpRFteQ5/1URbKIVww391rIALTpzhhCt5yJt5tjLPZxYw==} peerDependencies: - playwright: '*' + playwright: ^1.44.2 safaridriver: '*' vitest: 2.1.4 webdriverio: '*' @@ -8082,7 +8084,7 @@ packages: hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 + '@playwright/test': ^1.44.2 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 @@ -8643,21 +8645,11 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.44.1: - resolution: {integrity: sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==} - engines: {node: '>=16'} - hasBin: true - playwright-core@1.48.2: resolution: {integrity: sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==} engines: {node: '>=18'} hasBin: true - playwright@1.44.1: - resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} - engines: {node: '>=16'} - hasBin: true - playwright@1.48.2: resolution: {integrity: sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==} engines: {node: '>=18'} @@ -12053,7 +12045,7 @@ snapshots: '@mui/core-downloads-tracker@5.16.7': {} - '@mui/docs@6.1.7(jd23wyl5ec6tn4c5zv7d3fvige)': + '@mui/docs@6.1.7(lkeltncpexqtrgzcyvckuvj23i)': dependencies: '@babel/runtime': 7.26.0 '@mui/base': 5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12065,7 +12057,7 @@ snapshots: clipboard-copy: 4.0.1 clsx: 2.1.1 csstype: 3.1.3 - next: 14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -12179,11 +12171,11 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 - '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next: 14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@emotion/cache': 11.13.1 @@ -12842,9 +12834,9 @@ snapshots: '@pkgr/core@0.1.1': {} - '@playwright/test@1.44.1': + '@playwright/test@1.48.2': dependencies: - playwright: 1.44.1 + playwright: 1.48.2 '@polka/url@1.0.0-next.24': {} @@ -18028,7 +18020,7 @@ snapshots: nested-error-stacks@2.1.1: {} - next@14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.17(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.17 '@swc/helpers': 0.5.5 @@ -18050,7 +18042,7 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.17 '@next/swc-win32-x64-msvc': 14.2.17 '@opentelemetry/api': 1.8.0 - '@playwright/test': 1.44.1 + '@playwright/test': 1.48.2 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -18693,16 +18685,8 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.44.1: {} - playwright-core@1.48.2: {} - playwright@1.44.1: - dependencies: - playwright-core: 1.44.1 - optionalDependencies: - fsevents: 2.3.2 - playwright@1.48.2: dependencies: playwright-core: 1.48.2 diff --git a/test/package.json b/test/package.json index d212de622c4b8..7976bfc1034d4 100644 --- a/test/package.json +++ b/test/package.json @@ -18,7 +18,7 @@ "@mui/x-date-pickers": "workspace:*", "@mui/x-date-pickers-pro": "workspace:*", "@mui/x-license": "workspace:*", - "@playwright/test": "^1.44.1", + "@playwright/test": "^1.44.2", "@react-spring/web": "^9.7.5", "@types/chai": "^4.3.20", "@types/karma": "^6.3.9", From ff30d9938622e6c53c40de072bb8d726836e64df Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 17:31:56 +0100 Subject: [PATCH 133/253] revert images... --- .circleci/config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 62c24c1011372..574d366475686 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -251,7 +251,7 @@ jobs: test_browser: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.2-focal + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -267,7 +267,7 @@ jobs: test_browser_vitest: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.2-focal + - image: mcr.microsoft.com/playwright:v1.44.1-focal resource_class: medium+ steps: - checkout @@ -299,7 +299,7 @@ jobs: test_e2e: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.2-focal + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -310,7 +310,7 @@ jobs: test_e2e_website: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.2-focal + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -323,7 +323,7 @@ jobs: test_regressions: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.2-focal + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: From 9af685b869c1b0f571076d569c0ca6442dc71cbb Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 17:42:52 +0100 Subject: [PATCH 134/253] try not using static playwirhgt image --- .circleci/config.yml | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 574d366475686..ccbaefb6c1e34 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,20 +58,10 @@ commands: description: 'Set to true if you intend to any browser (for example with playwright).' steps: - - when: - condition: << parameters.browsers >> - steps: - - run: - name: Install pnpm package manager - command: corepack enable - - when: - condition: - not: << parameters.browsers >> - steps: - - run: - name: Install pnpm package manager - # See https://stackoverflow.com/a/73411601 - command: corepack enable --install-directory ~/bin + - run: + name: Install pnpm package manager + # See https://stackoverflow.com/a/73411601 + command: corepack enable --install-directory ~/bin - run: name: View install environment @@ -80,7 +70,14 @@ commands: pnpm --version - run: name: Install js dependencies - command: pnpm install + command: pnpm install --frozen-lockfile + + - when: + condition: << parameters.browsers >> + steps: + - run: + name: Install browsers + command: pnpm playwright install --with-deps - run: name: Resolve React version @@ -250,8 +247,6 @@ jobs: test_browser: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -266,8 +261,6 @@ jobs: test_browser_vitest: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal resource_class: medium+ steps: - checkout @@ -298,8 +291,6 @@ jobs: NODE_OPTIONS: --max-old-space-size=3584 test_e2e: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -309,8 +300,6 @@ jobs: command: pnpm test:e2e test_e2e_website: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -322,8 +311,6 @@ jobs: PLAYWRIGHT_TEST_BASE_URL: << parameters.e2e-base-url >> test_regressions: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: From 2750a5861d7a4d6d816e30e8403ca5fd6c0f197a Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 18:14:30 +0100 Subject: [PATCH 135/253] Revert "try not using static playwirhgt image" This reverts commit 9af685b869c1b0f571076d569c0ca6442dc71cbb. --- .circleci/config.yml | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ccbaefb6c1e34..574d366475686 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,10 +58,20 @@ commands: description: 'Set to true if you intend to any browser (for example with playwright).' steps: - - run: - name: Install pnpm package manager - # See https://stackoverflow.com/a/73411601 - command: corepack enable --install-directory ~/bin + - when: + condition: << parameters.browsers >> + steps: + - run: + name: Install pnpm package manager + command: corepack enable + - when: + condition: + not: << parameters.browsers >> + steps: + - run: + name: Install pnpm package manager + # See https://stackoverflow.com/a/73411601 + command: corepack enable --install-directory ~/bin - run: name: View install environment @@ -70,14 +80,7 @@ commands: pnpm --version - run: name: Install js dependencies - command: pnpm install --frozen-lockfile - - - when: - condition: << parameters.browsers >> - steps: - - run: - name: Install browsers - command: pnpm playwright install --with-deps + command: pnpm install - run: name: Resolve React version @@ -247,6 +250,8 @@ jobs: test_browser: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -261,6 +266,8 @@ jobs: test_browser_vitest: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal resource_class: medium+ steps: - checkout @@ -291,6 +298,8 @@ jobs: NODE_OPTIONS: --max-old-space-size=3584 test_e2e: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -300,6 +309,8 @@ jobs: command: pnpm test:e2e test_e2e_website: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -311,6 +322,8 @@ jobs: PLAYWRIGHT_TEST_BASE_URL: << parameters.e2e-base-url >> test_regressions: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: From 9d49f6d765e4b1f5bbd9aa850e638c92f76fc3c7 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 18:15:15 +0100 Subject: [PATCH 136/253] downgrade playwright --- package.json | 6 +++--- pnpm-lock.yaml | 12 ++++++------ test/package.json | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index b6c10b629c8a8..005b6f3a18745 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "@next/eslint-plugin-next": "15.0.3", "@octokit/plugin-retry": "^7.1.2", "@octokit/rest": "^21.0.2", - "@playwright/test": "^1.44.2", + "@playwright/test": "^1.44.1", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", @@ -207,8 +207,8 @@ "resolutions": { "react-is": "^18.3.1", "@types/node": "^20.17.6", - "@playwright/test": "^1.44.2", - "playwright": "^1.44.2", + "@playwright/test": "^1.44.1", + "playwright": "^1.44.1", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils" }, "packageManager": "pnpm@9.12.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fd528759774c9..2b7062b72bc00 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: overrides: react-is: ^18.3.1 '@types/node': ^20.17.6 - '@playwright/test': ^1.44.2 - playwright: ^1.44.2 + '@playwright/test': ^1.44.1 + playwright: ^1.44.1 '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils patchedDependencies: @@ -117,7 +117,7 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.44.2 + specifier: ^1.44.1 version: 1.48.2 '@testing-library/dom': specifier: ^10.4.0 @@ -1604,7 +1604,7 @@ importers: specifier: workspace:* version: link:../packages/x-license/build '@playwright/test': - specifier: ^1.44.2 + specifier: ^1.44.1 version: 1.48.2 '@react-spring/web': specifier: ^9.7.5 @@ -4425,7 +4425,7 @@ packages: '@vitest/browser@2.1.4': resolution: {integrity: sha512-89SrvShW6kWzmEYtBj5k1gBq88emoC2qrngw5hE1vNpRFteQ5/1URbKIVww391rIALTpzhhCt5yJt5tjLPZxYw==} peerDependencies: - playwright: ^1.44.2 + playwright: ^1.44.1 safaridriver: '*' vitest: 2.1.4 webdriverio: '*' @@ -8084,7 +8084,7 @@ packages: hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.44.2 + '@playwright/test': ^1.44.1 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 diff --git a/test/package.json b/test/package.json index 7976bfc1034d4..d212de622c4b8 100644 --- a/test/package.json +++ b/test/package.json @@ -18,7 +18,7 @@ "@mui/x-date-pickers": "workspace:*", "@mui/x-date-pickers-pro": "workspace:*", "@mui/x-license": "workspace:*", - "@playwright/test": "^1.44.2", + "@playwright/test": "^1.44.1", "@react-spring/web": "^9.7.5", "@types/chai": "^4.3.20", "@types/karma": "^6.3.9", From bc93279f6c9ad2beae1f1618fffa29f865a0cd0b Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 18:18:25 +0100 Subject: [PATCH 137/253] fix new test cases --- .../useTreeViewItems.test.tsx | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx b/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx index 64d2779568c8c..b99431851b310 100644 --- a/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx +++ b/packages/x-tree-view/src/internals/plugins/useTreeViewItems/useTreeViewItems.test.tsx @@ -233,9 +233,11 @@ describeTreeView< }); describe('Memoization (Rich Tree View only)', () => { - it('should not re-render any children when the Tree View re-renders (flat tree)', function test() { + it('should not re-render any children when the Tree View re-renders (flat tree)', function test(t = {}) { if (!treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const spyLabel = spy((props) => ); @@ -252,9 +254,11 @@ describeTreeView< expect(renders).to.deep.equal([]); }); - it('should not re-render every children when updating the state on an item (flat tree)', function test() { + it('should not re-render every children when updating the state on an item (flat tree)', function test(t = {}) { if (!treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const spyLabel = spy((props) => ); @@ -275,9 +279,11 @@ describeTreeView< expect(renders).to.deep.equal(['0', '0', '1', '1']); }); - it('should not re-render any children when the Tree View re-renders (nested tree)', function test() { + it('should not re-render any children when the Tree View re-renders (nested tree)', function test(t = {}) { if (!treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const spyLabel = spy((props) => ); @@ -297,9 +303,11 @@ describeTreeView< expect(renders).to.deep.equal([]); }); - it('should not re-render every children when updating the state on an item (nested tree)', function test() { + it('should not re-render every children when updating the state on an item (nested tree)', function test(t = {}) { if (!treeViewComponentName.startsWith('RichTreeView')) { - this.skip(); + // @ts-expect-error to support mocha and vitest + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + this?.skip?.() || t?.skip(); } const spyLabel = spy((props) => ); From b8d1d31a852d23ce6e36ca1676ecb9911b18ed80 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 18:24:40 +0100 Subject: [PATCH 138/253] Revert "Revert "try not using static playwirhgt image"" This reverts commit 2750a5861d7a4d6d816e30e8403ca5fd6c0f197a. --- .circleci/config.yml | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 574d366475686..ccbaefb6c1e34 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,20 +58,10 @@ commands: description: 'Set to true if you intend to any browser (for example with playwright).' steps: - - when: - condition: << parameters.browsers >> - steps: - - run: - name: Install pnpm package manager - command: corepack enable - - when: - condition: - not: << parameters.browsers >> - steps: - - run: - name: Install pnpm package manager - # See https://stackoverflow.com/a/73411601 - command: corepack enable --install-directory ~/bin + - run: + name: Install pnpm package manager + # See https://stackoverflow.com/a/73411601 + command: corepack enable --install-directory ~/bin - run: name: View install environment @@ -80,7 +70,14 @@ commands: pnpm --version - run: name: Install js dependencies - command: pnpm install + command: pnpm install --frozen-lockfile + + - when: + condition: << parameters.browsers >> + steps: + - run: + name: Install browsers + command: pnpm playwright install --with-deps - run: name: Resolve React version @@ -250,8 +247,6 @@ jobs: test_browser: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -266,8 +261,6 @@ jobs: test_browser_vitest: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal resource_class: medium+ steps: - checkout @@ -298,8 +291,6 @@ jobs: NODE_OPTIONS: --max-old-space-size=3584 test_e2e: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -309,8 +300,6 @@ jobs: command: pnpm test:e2e test_e2e_website: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -322,8 +311,6 @@ jobs: PLAYWRIGHT_TEST_BASE_URL: << parameters.e2e-base-url >> test_regressions: <<: *default-job - docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: From d3a6684cc80234d07c35d70e8d6c32873747fd34 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Fri, 15 Nov 2024 18:33:16 +0100 Subject: [PATCH 139/253] run all browser --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ccbaefb6c1e34..3ac871923cac2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -268,7 +268,7 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: NODE_OPTIONS=--max-old-space-size=1536 pnpm vitest --project "browser/x-data-grid" --pool=threads + command: NODE_OPTIONS=--max-old-space-size=1536 pnpm vitest --project "browser/*" --pool=threads environment: VITEST_MAX_THREADS: 3 VITEST_MIN_THREADS: 2 From de5877b38b29b6255327cf6493b9dce846364cb6 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 14:54:48 +0100 Subject: [PATCH 140/253] Revert "Revert "Revert "try not using static playwirhgt image""" This reverts commit b8d1d31a852d23ce6e36ca1676ecb9911b18ed80. --- .circleci/config.yml | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3ac871923cac2..075176450e40f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -58,10 +58,20 @@ commands: description: 'Set to true if you intend to any browser (for example with playwright).' steps: - - run: - name: Install pnpm package manager - # See https://stackoverflow.com/a/73411601 - command: corepack enable --install-directory ~/bin + - when: + condition: << parameters.browsers >> + steps: + - run: + name: Install pnpm package manager + command: corepack enable + - when: + condition: + not: << parameters.browsers >> + steps: + - run: + name: Install pnpm package manager + # See https://stackoverflow.com/a/73411601 + command: corepack enable --install-directory ~/bin - run: name: View install environment @@ -70,14 +80,7 @@ commands: pnpm --version - run: name: Install js dependencies - command: pnpm install --frozen-lockfile - - - when: - condition: << parameters.browsers >> - steps: - - run: - name: Install browsers - command: pnpm playwright install --with-deps + command: pnpm install - run: name: Resolve React version @@ -247,6 +250,8 @@ jobs: test_browser: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -261,6 +266,8 @@ jobs: test_browser_vitest: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal resource_class: medium+ steps: - checkout @@ -291,6 +298,8 @@ jobs: NODE_OPTIONS: --max-old-space-size=3584 test_e2e: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -300,6 +309,8 @@ jobs: command: pnpm test:e2e test_e2e_website: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -311,6 +322,8 @@ jobs: PLAYWRIGHT_TEST_BASE_URL: << parameters.e2e-base-url >> test_regressions: <<: *default-job + docker: + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: From 20d745c435f9499cfa6a31ebe705e2830c66428d Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 15:13:55 +0100 Subject: [PATCH 141/253] use latest versions --- .circleci/config.yml | 10 +- package.json | 12 +- pnpm-lock.yaml | 263 ++++++++----------------------------------- test/package.json | 2 +- 4 files changed, 57 insertions(+), 230 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 075176450e40f..6f17cc0f090b6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -251,7 +251,7 @@ jobs: test_browser: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.49.0-focal steps: - checkout - install_js: @@ -267,7 +267,7 @@ jobs: test_browser_vitest: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.49.0-focal resource_class: medium+ steps: - checkout @@ -299,7 +299,7 @@ jobs: test_e2e: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.49.0-focal steps: - checkout - install_js: @@ -310,7 +310,7 @@ jobs: test_e2e_website: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.49.0-focal steps: - checkout - install_js: @@ -323,7 +323,7 @@ jobs: test_regressions: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.44.1-focal + - image: mcr.microsoft.com/playwright:v1.49.0-focal steps: - checkout - install_js: diff --git a/package.json b/package.json index 68efabb5ccc0a..31de23772e0c7 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "@next/eslint-plugin-next": "15.0.3", "@octokit/plugin-retry": "^7.1.2", "@octokit/rest": "^21.0.2", - "@playwright/test": "^1.44.1", + "@playwright/test": "^1.49.0", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", @@ -121,8 +121,8 @@ "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^4.3.2", - "@vitest/browser": "^2.1.4", - "@vitest/coverage-v8": "^2.1.4", + "@vitest/browser": "^2.1.5", + "@vitest/coverage-v8": "^2.1.5", "autoprefixer": "^10.4.20", "axe-core": "4.10.2", "babel-loader": "^9.2.1", @@ -197,7 +197,7 @@ "typescript": "^5.6.3", "unist-util-visit": "^5.0.0", "util": "^0.12.5", - "vitest": "2.1.4", + "vitest": "2.1.5", "vitest-fail-on-console": "^0.7.1", "webpack": "^5.96.1", "webpack-bundle-analyzer": "^4.10.2", @@ -207,8 +207,8 @@ "resolutions": { "react-is": "^18.3.1", "@types/node": "^20.17.6", - "@playwright/test": "^1.44.1", - "playwright": "^1.44.1", + "@playwright/test": "^1.49.0", + "playwright": "^1.49.0", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils" }, "packageManager": "pnpm@9.13.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a715d4c131f7f..bfd29a54884d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: overrides: react-is: ^18.3.1 '@types/node': ^20.17.6 - '@playwright/test': ^1.44.1 - playwright: ^1.44.1 + '@playwright/test': ^1.49.0 + playwright: ^1.49.0 '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils patchedDependencies: @@ -117,8 +117,8 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.44.1 - version: 1.48.2 + specifier: ^1.49.0 + version: 1.49.0 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -177,11 +177,11 @@ importers: specifier: ^4.3.2 version: 4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/browser': - specifier: ^2.1.4 - version: 2.1.5(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) + specifier: ^2.1.5 + version: 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) '@vitest/coverage-v8': - specifier: ^2.1.4 - version: 2.1.5(@vitest/browser@2.1.5)(vitest@2.1.4) + specifier: ^2.1.5 + version: 2.1.5(@vitest/browser@2.1.5)(vitest@2.1.5) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.49) @@ -405,11 +405,11 @@ importers: specifier: ^0.12.5 version: 0.12.5 vitest: - specifier: 2.1.4 - version: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + specifier: 2.1.5 + version: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) vitest-fail-on-console: specifier: ^0.7.1 - version: 0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) + version: 0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) webpack: specifier: ^5.96.1 version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) @@ -451,7 +451,7 @@ importers: version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/docs': specifier: 6.1.7 - version: 6.1.7(arrm37zfhrispnhjy2sobps5eu) + version: 6.1.7(lo7si22o2g7ctheuyy4cps3nhe) '@mui/icons-material': specifier: ^5.16.7 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) @@ -466,7 +466,7 @@ importers: version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: ^5.16.6 - version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@mui/styles': specifier: ^5.16.7 version: 5.16.7(@types/react@18.3.12)(react@18.3.1) @@ -598,7 +598,7 @@ importers: version: 0.5.46 next: specifier: ^14.2.18 - version: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -1613,8 +1613,8 @@ importers: specifier: workspace:* version: link:../packages/x-license/build '@playwright/test': - specifier: ^1.44.1 - version: 1.48.2 + specifier: ^1.49.0 + version: 1.49.0 '@react-spring/web': specifier: ^9.7.5 version: 9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1701,7 +1701,7 @@ importers: version: 3.7.1(@swc/helpers@0.5.5)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) '@vitest/browser': specifier: 2.1.5 - version: 2.1.5(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + version: 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) '@vitest/ui': specifier: 2.1.5 version: 2.1.5(vitest@2.1.5) @@ -3753,8 +3753,8 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.48.2': - resolution: {integrity: sha512-54w1xCWfXuax7dz4W2M9uw0gDyh+ti/0K/MxcCUxChFh37kkdxPdfZDw5QBbuPUJHr1CiHJ1hXgSs+GgeQc5Zw==} + '@playwright/test@1.49.0': + resolution: {integrity: sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==} engines: {node: '>=18'} hasBin: true @@ -4434,7 +4434,7 @@ packages: '@vitest/browser@2.1.5': resolution: {integrity: sha512-JrpnxvkrjlBrF7oXbK/YytWVYfJIzWYeDKppANlUaisBKwDso+yXlWocAJrANx8gUxyirF355Yx80S+SKQqayg==} peerDependencies: - playwright: ^1.44.1 + playwright: ^1.49.0 safaridriver: '*' vitest: 2.1.5 webdriverio: '*' @@ -4455,23 +4455,9 @@ packages: '@vitest/browser': optional: true - '@vitest/expect@2.1.4': - resolution: {integrity: sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==} - '@vitest/expect@2.1.5': resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==} - '@vitest/mocker@2.1.4': - resolution: {integrity: sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==} - peerDependencies: - msw: ^2.4.9 - vite: ^5.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - '@vitest/mocker@2.1.5': resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==} peerDependencies: @@ -4483,27 +4469,15 @@ packages: vite: optional: true - '@vitest/pretty-format@2.1.4': - resolution: {integrity: sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==} - '@vitest/pretty-format@2.1.5': resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==} - '@vitest/runner@2.1.4': - resolution: {integrity: sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==} - '@vitest/runner@2.1.5': resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==} - '@vitest/snapshot@2.1.4': - resolution: {integrity: sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==} - '@vitest/snapshot@2.1.5': resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==} - '@vitest/spy@2.1.4': - resolution: {integrity: sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==} - '@vitest/spy@2.1.5': resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==} @@ -4512,9 +4486,6 @@ packages: peerDependencies: vitest: 2.1.5 - '@vitest/utils@2.1.4': - resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==} - '@vitest/utils@2.1.5': resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} @@ -8122,7 +8093,7 @@ packages: hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.44.1 + '@playwright/test': ^1.49.0 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 @@ -8683,13 +8654,13 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.48.2: - resolution: {integrity: sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==} + playwright-core@1.49.0: + resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} engines: {node: '>=18'} hasBin: true - playwright@1.48.2: - resolution: {integrity: sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==} + playwright@1.49.0: + resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} engines: {node: '>=18'} hasBin: true @@ -10070,11 +10041,6 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@2.1.4: - resolution: {integrity: sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - vite-node@2.1.5: resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==} engines: {node: ^18.0.0 || >=20.0.0} @@ -10114,31 +10080,6 @@ packages: vite: '>=4.5.2' vitest: '>=0.26.2' - vitest@2.1.4: - resolution: {integrity: sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^20.17.6 - '@vitest/browser': 2.1.4 - '@vitest/ui': 2.1.4 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vitest@2.1.5: resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==} engines: {node: ^18.0.0 || >=20.0.0} @@ -12113,7 +12054,7 @@ snapshots: '@mui/core-downloads-tracker@5.16.7': {} - '@mui/docs@6.1.7(arrm37zfhrispnhjy2sobps5eu)': + '@mui/docs@6.1.7(lo7si22o2g7ctheuyy4cps3nhe)': dependencies: '@babel/runtime': 7.26.0 '@mui/base': 5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12125,7 +12066,7 @@ snapshots: clipboard-copy: 4.0.1 clsx: 2.1.1 csstype: 3.1.3 - next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -12191,7 +12132,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.8.2 - playwright: 1.48.2 + playwright: 1.49.0 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12239,11 +12180,11 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 - '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@emotion/cache': 11.13.1 @@ -12902,9 +12843,9 @@ snapshots: '@pkgr/core@0.1.1': {} - '@playwright/test@1.48.2': + '@playwright/test@1.49.0': dependencies: - playwright: 1.48.2 + playwright: 1.49.0 '@polka/url@1.0.0-next.24': {} @@ -13639,28 +13580,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/browser@2.1.5(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4)': - dependencies: - '@testing-library/dom': 10.4.0 - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) - '@vitest/utils': 2.1.5 - magic-string: 0.30.12 - msw: 2.6.5(@types/node@20.17.6)(typescript@5.6.3) - sirv: 3.0.0 - tinyrainbow: 1.2.0 - vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) - ws: 8.18.0 - optionalDependencies: - playwright: 1.48.2 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - typescript - - utf-8-validate - - vite - - '@vitest/browser@2.1.5(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5)': + '@vitest/browser@2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) @@ -13673,7 +13593,7 @@ snapshots: vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) ws: 8.18.0 optionalDependencies: - playwright: 1.48.2 + playwright: 1.49.0 transitivePeerDependencies: - '@types/node' - bufferutil @@ -13681,7 +13601,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@2.1.5(@vitest/browser@2.1.5)(vitest@2.1.4)': + '@vitest/coverage-v8@2.1.5(@vitest/browser@2.1.5)(vitest@2.1.5)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -13695,19 +13615,12 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) optionalDependencies: - '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) + '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) transitivePeerDependencies: - supports-color - '@vitest/expect@2.1.4': - dependencies: - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 - chai: 5.1.2 - tinyrainbow: 1.2.0 - '@vitest/expect@2.1.5': dependencies: '@vitest/spy': 2.1.5 @@ -13715,15 +13628,6 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': - dependencies: - '@vitest/spy': 2.1.4 - estree-walker: 3.0.3 - magic-string: 0.30.12 - optionalDependencies: - msw: 2.6.5(@types/node@20.17.6)(typescript@5.6.3) - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - '@vitest/mocker@2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': dependencies: '@vitest/spy': 2.1.5 @@ -13733,40 +13637,21 @@ snapshots: msw: 2.6.5(@types/node@20.17.6)(typescript@5.6.3) vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - '@vitest/pretty-format@2.1.4': - dependencies: - tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.1.5': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.1.4': - dependencies: - '@vitest/utils': 2.1.4 - pathe: 1.1.2 - '@vitest/runner@2.1.5': dependencies: '@vitest/utils': 2.1.5 pathe: 1.1.2 - '@vitest/snapshot@2.1.4': - dependencies: - '@vitest/pretty-format': 2.1.4 - magic-string: 0.30.12 - pathe: 1.1.2 - '@vitest/snapshot@2.1.5': dependencies: '@vitest/pretty-format': 2.1.5 magic-string: 0.30.12 pathe: 1.1.2 - '@vitest/spy@2.1.4': - dependencies: - tinyspy: 3.0.2 - '@vitest/spy@2.1.5': dependencies: tinyspy: 3.0.2 @@ -13782,12 +13667,6 @@ snapshots: tinyrainbow: 1.2.0 vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) - '@vitest/utils@2.1.4': - dependencies: - '@vitest/pretty-format': 2.1.4 - loupe: 3.1.2 - tinyrainbow: 1.2.0 - '@vitest/utils@2.1.5': dependencies: '@vitest/pretty-format': 2.1.5 @@ -18150,7 +18029,7 @@ snapshots: nested-error-stacks@2.1.1: {} - next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.18 '@swc/helpers': 0.5.5 @@ -18172,7 +18051,7 @@ snapshots: '@next/swc-win32-ia32-msvc': 14.2.18 '@next/swc-win32-x64-msvc': 14.2.18 '@opentelemetry/api': 1.8.0 - '@playwright/test': 1.48.2 + '@playwright/test': 1.49.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -18815,11 +18694,11 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.48.2: {} + playwright-core@1.49.0: {} - playwright@1.48.2: + playwright@1.49.0: dependencies: - playwright-core: 1.48.2 + playwright-core: 1.49.0 optionalDependencies: fsevents: 2.3.2 @@ -20345,22 +20224,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.4(@types/node@20.17.6)(terser@5.27.0): - dependencies: - cac: 6.7.14 - debug: 4.3.7(supports-color@8.1.1) - pathe: 1.1.2 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vite-node@2.1.5(@types/node@20.17.6)(terser@5.27.0): dependencies: cac: 6.7.14 @@ -20388,47 +20251,11 @@ snapshots: fsevents: 2.3.3 terser: 5.27.0 - vitest-fail-on-console@0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4): + vitest-fail-on-console@0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5): dependencies: chalk: 5.3.0 vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - vitest: 2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) - - vitest@2.1.4(@types/node@20.17.6)(@vitest/browser@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0): - dependencies: - '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) - '@vitest/pretty-format': 2.1.5 - '@vitest/runner': 2.1.4 - '@vitest/snapshot': 2.1.4 - '@vitest/spy': 2.1.4 - '@vitest/utils': 2.1.4 - chai: 5.1.2 - debug: 4.3.7(supports-color@8.1.1) - expect-type: 1.1.0 - magic-string: 0.30.12 - pathe: 1.1.2 - std-env: 3.8.0 - tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.1 - tinyrainbow: 1.2.0 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - vite-node: 2.1.4(@types/node@20.17.6)(terser@5.27.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 20.17.6 - '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.4) - jsdom: 24.1.3 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - stylus - - sugarss - - supports-color - - terser + vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) vitest@2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0): dependencies: @@ -20454,7 +20281,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.17.6 - '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.48.2)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) '@vitest/ui': 2.1.5(vitest@2.1.5) jsdom: 24.1.3 transitivePeerDependencies: diff --git a/test/package.json b/test/package.json index d212de622c4b8..2e7c7bb069bfa 100644 --- a/test/package.json +++ b/test/package.json @@ -18,7 +18,7 @@ "@mui/x-date-pickers": "workspace:*", "@mui/x-date-pickers-pro": "workspace:*", "@mui/x-license": "workspace:*", - "@playwright/test": "^1.44.1", + "@playwright/test": "^1.49.0", "@react-spring/web": "^9.7.5", "@types/chai": "^4.3.20", "@types/karma": "^6.3.9", From 8edef9d4c2d87d1cb5d70feb9f9314612f3c8dba Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 15:28:57 +0100 Subject: [PATCH 142/253] use noble images as focal are old --- .circleci/config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f17cc0f090b6..101d108622139 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -251,7 +251,7 @@ jobs: test_browser: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-focal + - image: mcr.microsoft.com/playwright:v1.49.0-noble steps: - checkout - install_js: @@ -267,7 +267,7 @@ jobs: test_browser_vitest: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-focal + - image: mcr.microsoft.com/playwright:v1.49.0-noble resource_class: medium+ steps: - checkout @@ -299,7 +299,7 @@ jobs: test_e2e: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-focal + - image: mcr.microsoft.com/playwright:v1.49.0-noble steps: - checkout - install_js: @@ -310,7 +310,7 @@ jobs: test_e2e_website: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-focal + - image: mcr.microsoft.com/playwright:v1.49.0-noble steps: - checkout - install_js: @@ -323,7 +323,7 @@ jobs: test_regressions: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-focal + - image: mcr.microsoft.com/playwright:v1.49.0-noble steps: - checkout - install_js: From 7e62e437bb9c98a5d6cb5d8c4755a5b4e4a66fc4 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 15:49:37 +0100 Subject: [PATCH 143/253] install ffmpeg --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 101d108622139..315dfc2c89817 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -328,6 +328,9 @@ jobs: - checkout - install_js: browsers: true + - run: + name: Install ffmpeg + command: sudo apt update && sudo apt install ffmpeg - run: name: Run visual regression tests command: xvfb-run pnpm test:regressions From efd2e3260775e48e7e8658a22833326ab7ab7e87 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 15:49:51 +0100 Subject: [PATCH 144/253] use forks instead of threads --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 315dfc2c89817..1ff92e814a4c0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -145,10 +145,10 @@ jobs: - install_js - run: name: Tests fake browser (vitest) - command: pnpm vitest --project "jsdom/*" --coverage --pool=threads + command: pnpm vitest --project "jsdom/*" --coverage environment: - VITEST_MAX_THREADS: 6 - VITEST_MIN_THREADS: 2 + VITEST_MAX_FORKS: 6 + VITEST_MIN_FORKS: 2 - run: name: Check coverage generated command: | @@ -275,10 +275,10 @@ jobs: browsers: true - run: name: Tests real browsers (vitest) - command: NODE_OPTIONS=--max-old-space-size=1536 pnpm vitest --project "browser/*" --pool=threads + command: NODE_OPTIONS=--max-old-space-size=1536 pnpm vitest --project "browser/*" environment: - VITEST_MAX_THREADS: 3 - VITEST_MIN_THREADS: 2 + VITEST_MAX_FORKS: 3 + VITEST_MIN_FORKS: 2 test_types: <<: *default-job From 149bf34ad7e8e9832fa551591e8a9c045ab2ffaf Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 16:21:53 +0100 Subject: [PATCH 145/253] remove sudo --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1ff92e814a4c0..1a61baa304cb5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -330,7 +330,7 @@ jobs: browsers: true - run: name: Install ffmpeg - command: sudo apt update && sudo apt install ffmpeg + command: apt update && apt install ffmpeg - run: name: Run visual regression tests command: xvfb-run pnpm test:regressions From 69c594cbc3f415755df719eba6bd95bb63b39e4e Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 16:31:31 +0100 Subject: [PATCH 146/253] auto accept --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1a61baa304cb5..d97bd863361c0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -330,7 +330,7 @@ jobs: browsers: true - run: name: Install ffmpeg - command: apt update && apt install ffmpeg + command: apt update && apt install ffmpeg -y - run: name: Run visual regression tests command: xvfb-run pnpm test:regressions From 441b4ec7776bccfadec4de8061911bd9b1282aac Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 22:09:29 +0100 Subject: [PATCH 147/253] set default timeout --- .github/workflows/vitest.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml index 79c97648642c4..2eb439628f376 100644 --- a/.github/workflows/vitest.yml +++ b/.github/workflows/vitest.yml @@ -16,6 +16,7 @@ jobs: vitest-jsdom: name: Vitest Tests (jsdom) runs-on: ubuntu-latest + timeout-minutes: 20 steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 @@ -34,6 +35,7 @@ jobs: vitest-browser: name: Vitest Tests (browser) runs-on: ubuntu-latest + timeout-minutes: 20 steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 From db141ec87fffc7f217e215fcfe314b1bf416da95 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 22:49:17 +0100 Subject: [PATCH 148/253] revert playwright bump --- .circleci/config.yml | 10 +++++----- package.json | 6 +++--- pnpm-lock.yaml | 12 ++++++------ test/package.json | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d97bd863361c0..0d72a77835c60 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -251,7 +251,7 @@ jobs: test_browser: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-noble + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -267,7 +267,7 @@ jobs: test_browser_vitest: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-noble + - image: mcr.microsoft.com/playwright:v1.44.1-focal resource_class: medium+ steps: - checkout @@ -299,7 +299,7 @@ jobs: test_e2e: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-noble + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -310,7 +310,7 @@ jobs: test_e2e_website: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-noble + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: @@ -323,7 +323,7 @@ jobs: test_regressions: <<: *default-job docker: - - image: mcr.microsoft.com/playwright:v1.49.0-noble + - image: mcr.microsoft.com/playwright:v1.44.1-focal steps: - checkout - install_js: diff --git a/package.json b/package.json index 31de23772e0c7..2290c94dfe4bc 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "@next/eslint-plugin-next": "15.0.3", "@octokit/plugin-retry": "^7.1.2", "@octokit/rest": "^21.0.2", - "@playwright/test": "^1.49.0", + "@playwright/test": "^1.44.1", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.0.1", "@types/babel__core": "^7.20.5", @@ -207,8 +207,8 @@ "resolutions": { "react-is": "^18.3.1", "@types/node": "^20.17.6", - "@playwright/test": "^1.49.0", - "playwright": "^1.49.0", + "@playwright/test": "^1.44.1", + "playwright": "^1.44.1", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils" }, "packageManager": "pnpm@9.13.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bfd29a54884d5..efc5f1b8ef8d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: overrides: react-is: ^18.3.1 '@types/node': ^20.17.6 - '@playwright/test': ^1.49.0 - playwright: ^1.49.0 + '@playwright/test': ^1.44.1 + playwright: ^1.44.1 '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils patchedDependencies: @@ -117,7 +117,7 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.49.0 + specifier: ^1.44.1 version: 1.49.0 '@testing-library/dom': specifier: ^10.4.0 @@ -1613,7 +1613,7 @@ importers: specifier: workspace:* version: link:../packages/x-license/build '@playwright/test': - specifier: ^1.49.0 + specifier: ^1.44.1 version: 1.49.0 '@react-spring/web': specifier: ^9.7.5 @@ -4434,7 +4434,7 @@ packages: '@vitest/browser@2.1.5': resolution: {integrity: sha512-JrpnxvkrjlBrF7oXbK/YytWVYfJIzWYeDKppANlUaisBKwDso+yXlWocAJrANx8gUxyirF355Yx80S+SKQqayg==} peerDependencies: - playwright: ^1.49.0 + playwright: ^1.44.1 safaridriver: '*' vitest: 2.1.5 webdriverio: '*' @@ -8093,7 +8093,7 @@ packages: hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.49.0 + '@playwright/test': ^1.44.1 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 diff --git a/test/package.json b/test/package.json index 2e7c7bb069bfa..d212de622c4b8 100644 --- a/test/package.json +++ b/test/package.json @@ -18,7 +18,7 @@ "@mui/x-date-pickers": "workspace:*", "@mui/x-date-pickers-pro": "workspace:*", "@mui/x-license": "workspace:*", - "@playwright/test": "^1.49.0", + "@playwright/test": "^1.44.1", "@react-spring/web": "^9.7.5", "@types/chai": "^4.3.20", "@types/karma": "^6.3.9", From 349812846301d0eb0d4e7e9bc829d1ada99bf295 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 23:16:24 +0100 Subject: [PATCH 149/253] force all playwright to be specific version --- package.json | 6 +- pnpm-lock.yaml | 3129 +++++++++++++++++++++++++----------------------- 2 files changed, 1608 insertions(+), 1527 deletions(-) diff --git a/package.json b/package.json index 2290c94dfe4bc..1a0666fd86e70 100644 --- a/package.json +++ b/package.json @@ -207,8 +207,10 @@ "resolutions": { "react-is": "^18.3.1", "@types/node": "^20.17.6", - "@playwright/test": "^1.44.1", - "playwright": "^1.44.1", + "@playwright/test": "1.44.1", + "playwright": "1.44.1", + "@vitest/browser>playwright": "1.44.1", + "@mui/internal-test-utils>playwright": "1.44.1", "@mui/internal-test-utils": "https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils" }, "packageManager": "pnpm@9.13.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index efc5f1b8ef8d2..f0876d0a7da29 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,10 @@ settings: overrides: react-is: ^18.3.1 '@types/node': ^20.17.6 - '@playwright/test': ^1.44.1 - playwright: ^1.44.1 + '@playwright/test': 1.44.1 + playwright: 1.44.1 + '@vitest/browser>playwright': 1.44.1 + '@mui/internal-test-utils>playwright': 1.44.1 '@mui/internal-test-utils': https://pkg.csb.dev/mui/material-ui/commit/c4437e0a/@mui/internal-test-utils patchedDependencies: @@ -117,8 +119,8 @@ importers: specifier: ^21.0.2 version: 21.0.2 '@playwright/test': - specifier: ^1.44.1 - version: 1.49.0 + specifier: 1.44.1 + version: 1.44.1 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -175,10 +177,10 @@ importers: version: 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@vitejs/plugin-react': specifier: ^4.3.2 - version: 4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) '@vitest/browser': specifier: ^2.1.5 - version: 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + version: 2.1.5(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5) '@vitest/coverage-v8': specifier: ^2.1.5 version: 2.1.5(@vitest/browser@2.1.5)(vitest@2.1.5) @@ -337,7 +339,7 @@ importers: version: 5.0.1(webpack@5.96.1) lerna: specifier: ^8.1.9 - version: 8.1.9(@swc/core@1.7.35(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13) + version: 8.1.9(@swc/core@1.9.2(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -391,7 +393,7 @@ importers: version: 3.1.0(webpack@5.96.1) terser-webpack-plugin: specifier: ^5.3.10 - version: 5.3.10(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack@5.96.1) + version: 5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack@5.96.1) tsx: specifier: ^4.19.2 version: 4.19.2 @@ -406,13 +408,13 @@ importers: version: 0.12.5 vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + version: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0) vitest-fail-on-console: specifier: ^0.7.1 - version: 0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + version: 0.7.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5) webpack: specifier: ^5.96.1 - version: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + version: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -436,7 +438,7 @@ importers: version: 7.26.0 '@docsearch/react': specifier: ^3.8.0 - version: 3.8.0(@algolia/client-search@5.12.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0) + version: 3.8.0(@algolia/client-search@5.15.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) '@emotion/cache': specifier: ^11.13.1 version: 11.13.1 @@ -451,7 +453,7 @@ importers: version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/docs': specifier: 6.1.7 - version: 6.1.7(lo7si22o2g7ctheuyy4cps3nhe) + version: 6.1.7(p7di5eu332gvy6ked2na4aezjm) '@mui/icons-material': specifier: ^5.16.7 version: 5.16.7(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) @@ -466,7 +468,7 @@ importers: version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: ^5.16.6 - version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@mui/styles': specifier: ^5.16.7 version: 5.16.7(@types/react@18.3.12)(react@18.3.1) @@ -508,7 +510,7 @@ importers: version: 9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/query-core': specifier: ^5.60.5 - version: 5.60.5 + version: 5.60.6 ast-types: specifier: ^0.14.2 version: 0.14.2 @@ -598,7 +600,7 @@ importers: version: 0.5.46 next: specifier: ^14.2.18 - version: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.18(@babel/core@7.26.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -628,10 +630,10 @@ importers: version: 18.3.1 react-router: specifier: ^6.27.0 - version: 6.27.0(react@18.3.1) + version: 6.28.0(react@18.3.1) react-router-dom: specifier: ^6.27.0 - version: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-runner: specifier: ^1.0.5 version: 1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -716,7 +718,7 @@ importers: version: 4.2.6 '@types/webpack-bundle-analyzer': specifier: ^4.7.0 - version: 4.7.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + version: 4.7.0(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) gm: specifier: ^1.25.0 version: 1.25.0 @@ -1061,7 +1063,7 @@ importers: version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@mui/types': specifier: ^7.2.15 - version: 7.2.15(@types/react@18.3.12) + version: 7.2.19(@types/react@18.3.12) '@types/prop-types': specifier: ^15.7.13 version: 15.7.13 @@ -1613,8 +1615,8 @@ importers: specifier: workspace:* version: link:../packages/x-license/build '@playwright/test': - specifier: ^1.44.1 - version: 1.49.0 + specifier: 1.44.1 + version: 1.44.1 '@react-spring/web': specifier: ^9.7.5 version: 9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1659,7 +1661,7 @@ importers: version: 18.3.1(react@18.3.1) react-router-dom: specifier: ^6.27.0 - version: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) semver: specifier: ^7.6.3 version: 7.6.3 @@ -1674,7 +1676,7 @@ importers: devDependencies: '@codspeed/vitest-plugin': specifier: ^3.1.1 - version: 3.1.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + version: 3.1.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5) '@emotion/react': specifier: ^11.13.3 version: 11.13.3(@types/react@18.3.12)(react@18.3.1) @@ -1695,13 +1697,13 @@ importers: version: 14.5.2(@testing-library/dom@10.4.0) '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) '@vitejs/plugin-react-swc': specifier: ^3.7.1 - version: 3.7.1(@swc/helpers@0.5.5)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + version: 3.7.1(@swc/helpers@0.5.5)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) '@vitest/browser': specifier: 2.1.5 - version: 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + version: 2.1.5(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5) '@vitest/ui': specifier: 2.1.5 version: 2.1.5(vitest@2.1.5) @@ -1716,14 +1718,10 @@ importers: version: 18.3.1(react@18.3.1) vitest: specifier: 2.1.5 - version: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + version: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0) packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - '@actions/core@1.11.1': resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} @@ -1733,14 +1731,14 @@ packages: '@actions/github@6.0.0': resolution: {integrity: sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==} - '@actions/http-client@2.2.1': - resolution: {integrity: sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==} + '@actions/http-client@2.2.3': + resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==} '@actions/io@1.1.3': resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} - '@adobe/css-tools@4.4.0': - resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} + '@adobe/css-tools@4.4.1': + resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} '@algolia/autocomplete-core@1.17.7': resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} @@ -1762,56 +1760,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.12.0': - resolution: {integrity: sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==} + '@algolia/client-abtesting@5.15.0': + resolution: {integrity: sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.12.0': - resolution: {integrity: sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==} + '@algolia/client-analytics@5.15.0': + resolution: {integrity: sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.12.0': - resolution: {integrity: sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==} + '@algolia/client-common@5.15.0': + resolution: {integrity: sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.12.0': - resolution: {integrity: sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==} + '@algolia/client-insights@5.15.0': + resolution: {integrity: sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.12.0': - resolution: {integrity: sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==} + '@algolia/client-personalization@5.15.0': + resolution: {integrity: sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.12.0': - resolution: {integrity: sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==} + '@algolia/client-query-suggestions@5.15.0': + resolution: {integrity: sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.12.0': - resolution: {integrity: sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==} + '@algolia/client-search@5.15.0': + resolution: {integrity: sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.12.0': - resolution: {integrity: sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==} + '@algolia/ingestion@1.15.0': + resolution: {integrity: sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.12.0': - resolution: {integrity: sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==} + '@algolia/monitoring@1.15.0': + resolution: {integrity: sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.12.0': - resolution: {integrity: sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==} + '@algolia/recommend@5.15.0': + resolution: {integrity: sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.12.0': - resolution: {integrity: sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==} + '@algolia/requester-browser-xhr@5.15.0': + resolution: {integrity: sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.12.0': - resolution: {integrity: sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==} + '@algolia/requester-fetch@5.15.0': + resolution: {integrity: sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.12.0': - resolution: {integrity: sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==} + '@algolia/requester-node-http@5.15.0': + resolution: {integrity: sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==} engines: {node: '>= 14.0.0'} '@ampproject/remapping@2.3.0': @@ -1877,8 +1875,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.2': - resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + '@babel/helper-define-polyfill-provider@0.6.3': + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -2004,8 +2002,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + '@babel/plugin-syntax-flow@7.26.0': + resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2136,8 +2134,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.24.7': - resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} + '@babel/plugin-transform-flow-strip-types@7.25.9': + resolution: {integrity: sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2292,14 +2290,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2406,8 +2404,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-flow@7.24.7': - resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} + '@babel/preset-flow@7.25.9': + resolution: {integrity: sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2504,8 +2502,14 @@ packages: search-insights: optional: true - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emnapi/core@1.3.1': + resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} '@emotion/babel-plugin@11.12.0': resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} @@ -2519,8 +2523,8 @@ packages: '@emotion/is-prop-valid@1.2.2': resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} - '@emotion/is-prop-valid@1.3.0': - resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} + '@emotion/is-prop-valid@1.3.1': + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} '@emotion/memoize@0.8.1': resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} @@ -2537,8 +2541,8 @@ packages: '@types/react': optional: true - '@emotion/serialize@1.3.1': - resolution: {integrity: sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==} + '@emotion/serialize@1.3.2': + resolution: {integrity: sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==} '@emotion/server@11.11.0': resolution: {integrity: sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA==} @@ -2572,8 +2576,8 @@ packages: peerDependencies: react: '>=16.8.0' - '@emotion/utils@1.4.0': - resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} + '@emotion/utils@1.4.1': + resolution: {integrity: sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==} '@emotion/weak-memoize@0.4.0': resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} @@ -2864,14 +2868,14 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': @@ -2892,20 +2896,20 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@floating-ui/core@1.6.0': - resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} - '@floating-ui/dom@1.6.1': - resolution: {integrity: sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ==} + '@floating-ui/dom@1.6.12': + resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} - '@floating-ui/react-dom@2.0.8': - resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.1': - resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} '@gitbeaker/core@38.12.1': resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} @@ -3088,16 +3092,16 @@ packages: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} '@jridgewell/set-array@1.2.1': resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.5': - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} @@ -3109,8 +3113,8 @@ packages: resolution: {integrity: sha512-DPnl5lPX4v49eVxEbJnAizrpMdMTBz1qykZrAbBul9rfgk531v8oAt+Pm6O/rpAleRombNM7FJb5rYGzBJatOQ==} engines: {node: '>=18.0.0'} - '@mswjs/interceptors@0.37.0': - resolution: {integrity: sha512-lDiHQMCBV9qz8c7+zxaNFQtWWaSogTYkqJ3Pg+FGYYC76nsfSxkMQ0df8fojyz16E+w4vp57NLjN2muNG7LugQ==} + '@mswjs/interceptors@0.37.1': + resolution: {integrity: sha512-SvE+tSpcX884RJrPCskXxoS965Ky/pYABDEhWW6oeSRhpUDLrS5nTvT5n1LLSDVDYvty4imVmXsy+3/ROVuknA==} engines: {node: '>=18'} '@mui/base@5.0.0-beta.40': @@ -3300,10 +3304,10 @@ packages: '@types/react': optional: true - '@mui/types@7.2.15': - resolution: {integrity: sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==} + '@mui/types@7.2.19': + resolution: {integrity: sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==} peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true @@ -3318,6 +3322,9 @@ packages: '@types/react': optional: true + '@napi-rs/wasm-runtime@0.2.4': + resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + '@netlify/functions@2.8.2': resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} engines: {node: '>=14.0.0'} @@ -3405,8 +3412,8 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@npmcli/agent@2.2.0': - resolution: {integrity: sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==} + '@npmcli/agent@2.2.2': + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} engines: {node: ^16.14.0 || >=18.0.0} '@npmcli/arborist@7.5.4': @@ -3418,8 +3425,8 @@ packages: resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/git@5.0.4': - resolution: {integrity: sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==} + '@npmcli/git@5.0.8': + resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} engines: {node: ^16.14.0 || >=18.0.0} '@npmcli/installed-package-contents@2.1.0': @@ -3447,8 +3454,8 @@ packages: resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} engines: {node: ^16.14.0 || >=18.0.0} - '@npmcli/promise-spawn@7.0.1': - resolution: {integrity: sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==} + '@npmcli/promise-spawn@7.0.2': + resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} engines: {node: ^16.14.0 || >=18.0.0} '@npmcli/query@3.1.0': @@ -3463,74 +3470,67 @@ packages: resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==} engines: {node: ^16.14.0 || >=18.0.0} - '@nrwl/devkit@17.3.0': - resolution: {integrity: sha512-3QUCvRisp0Iwwl7VEFQPQUU7wpqGEv9kJBNBtgmhe68ydusdNPk+d0npwkvH23BYPuswTI2MUJyLkdeiB58Ovw==} - - '@nrwl/tao@17.3.0': - resolution: {integrity: sha512-Bhz+MvAk8CjQtclpEOagGiKzgoziwe+35SlHtvFqzZClAuB8BAx+3ZDNJZcEpDRNfodKqodMUy2OEf6pbzw/LA==} - hasBin: true - - '@nx/devkit@17.3.0': - resolution: {integrity: sha512-KPUkEwkGYrg5hDqqXc7sdv4PNXHyWtGwzkBZA3p/RjPieKcQSsTcUwTxQ+taOE4v877n0HuC7hcuLueLSbYGiQ==} + '@nx/devkit@20.1.2': + resolution: {integrity: sha512-MTEWiEST7DhzZ2QmrixLnHfYVDZk7QN9omLL8m+5Etcn/3ZKa1aAo9Amd2MkUM+0MPoTKnxoGdw0fQUpAy21Mg==} peerDependencies: - nx: '>= 16 <= 18' + nx: '>= 19 <= 21' - '@nx/nx-darwin-arm64@17.3.0': - resolution: {integrity: sha512-NDR/HjahhNLx9Q4TjR5/W3IedSkdtK+kUZ09EceVeX33HNdeLjkFA26QtVVmGbhnogLcywAX0KELn7oGv2nO+A==} + '@nx/nx-darwin-arm64@20.1.2': + resolution: {integrity: sha512-PJ91TQhd28kitDBubKUOXMYvrtSDrG+rr8MsIe9cHo1CvU9smcGVBwuHBxniq0DXsyOX/5GL6ngq7hjN2nQ3XQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@17.3.0': - resolution: {integrity: sha512-3qxOZnHTPTUXAH8WGCtllAXE2jodStDNSkGVeEcDuIK4NO5tFfF4oVCLKKYcnqKsJOVNTS9B/aJG2bVGbaWYVQ==} + '@nx/nx-darwin-x64@20.1.2': + resolution: {integrity: sha512-1fopau7nxIhTF26vDTIzMxl15AtW4FvUSdy+r1mNRKrKyjjpqnlu00SQBW7JzGV0agDD1B/61yYei5Q2aMOt7Q==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@17.3.0': - resolution: {integrity: sha512-kVGK/wSbRRWqL3sAXlR5diI29kDisutUMaxs5dWxzRzY0U/+Kwon6ayLU1/HGwEykXFhCJE7r9vSqCrnn67dzg==} + '@nx/nx-freebsd-x64@20.1.2': + resolution: {integrity: sha512-55YgIp3v4zz7xMzJO93dtglbOTER2XdS6jrCt8GbKaWGFl5drRrBoNGONtiGNU7C3hLx1VsorbynCkJT18PjKQ==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@17.3.0': - resolution: {integrity: sha512-nb+jsh7zDkXjHEaAM5qmJR0X0wQ1yPbAYJuZSf8oZkllVYXcAofiAf21EqgKHq7vr4sZiCmlDaT16DheM3jyVA==} + '@nx/nx-linux-arm-gnueabihf@20.1.2': + resolution: {integrity: sha512-sMhNA8uAV43UYVEXEa8TZ8Fjpom4CGq1umTptEGOF4TTtdNn2AUBreg+0bVODM8MMSzRWGI1VbkZzHESnAPwqw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@17.3.0': - resolution: {integrity: sha512-9LkGk2paZn5Ehg/rya8GCISr+CgMz3MZ5PTOO/yEGk6cv6kQSmhZdjUi3wMOQidIqpolRK0MrhSL9DUz8Htl4A==} + '@nx/nx-linux-arm64-gnu@20.1.2': + resolution: {integrity: sha512-bsevarNHglaYLmIvPNQOdHrBnBgaW3EOUM0flwaXdWuZbL1bWx8GoVwHp9yJpZOAOfIF/Nhq5iTpaZB2nYFrAA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@17.3.0': - resolution: {integrity: sha512-bMykIGtziR90xLOCdzVDzaLgMXDvCf2Y7KpAj/EqJXpC0j9RmQdkm7VyO3//xN6rpcWjMcn1wgHQ1rPV65vETg==} + '@nx/nx-linux-arm64-musl@20.1.2': + resolution: {integrity: sha512-GFZTptkhZPL/iZ3tYDmspIcPEaXyy/L/o59gyp33GoFAAyDhiXIF7J1Lz81Xn8VKrX6TvEY8/9qSh86pb7qzDQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@17.3.0': - resolution: {integrity: sha512-Y3KbMhVcgvVvplyVlWzHaSKqGKqWLPTcuXnnNzuWSqLC9q+UdaDE/6+7SryHbJABM2juMHbo9JNp5LlKp3bkEg==} + '@nx/nx-linux-x64-gnu@20.1.2': + resolution: {integrity: sha512-yqEW/iglKT4d9lgfnwSNhmDzPxCkRhtdmZqOYpGDM0eZFwYwJF+WRGjW8xIqMj8PA1yrGItzXZOmyFjJqHAF2w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@17.3.0': - resolution: {integrity: sha512-QvAIZPqvrqI+s2Ddpkb0TE4yRJgXAlL8I+rIA8U+6y266rT5sVJZFPUWubkFWe/PSmqv3l4KqPcsvHTiIzldFA==} + '@nx/nx-linux-x64-musl@20.1.2': + resolution: {integrity: sha512-SP6PpWT4cQVrC4WJQdpfADrYJQzkbhgmcGleWbpr7II1HJgOsAcvoDwQGpPQX+3Wo+VBiNecvUAOzacMQkXPGw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@17.3.0': - resolution: {integrity: sha512-uoG3g0eZ9lYWZi4CpEVd04fIs+4lqpmU/FAaB3/K+Tfj9daSEIB6j57EX81ECDRB16k74VUdcI32qLAtD8KIMw==} + '@nx/nx-win32-arm64-msvc@20.1.2': + resolution: {integrity: sha512-JZQx9gr39LY3D7uleiXlpxUsavuOrOQNBocwKHkAMnykaT/e1VCxTnm/hk+2b4foWwfURTqoRiFEba70iiCdYg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@17.3.0': - resolution: {integrity: sha512-ekoejj7ZXMSNYrgQwd/7thCNTHbDRggsqPw5LlTa/jPonsQ4TAPzmLBJUF8hCKn43xXLXaFufK4V1OMxlP1Hfg==} + '@nx/nx-win32-x64-msvc@20.1.2': + resolution: {integrity: sha512-6GmT8iswDiCvJaCtW9DpWeAQmLS/kfAuRLYBisfzlONuLPaDdjhgVIxZBqqUSFfclwcVz+NhIOGvdr0aGFZCtQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3610,11 +3610,11 @@ packages: '@octokit/plugin-enterprise-rest@6.0.1': resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} - '@octokit/plugin-paginate-rest@11.3.1': - resolution: {integrity: sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==} + '@octokit/plugin-paginate-rest@11.3.5': + resolution: {integrity: sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '5' + '@octokit/core': '>=6' '@octokit/plugin-paginate-rest@2.21.3': resolution: {integrity: sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==} @@ -3650,11 +3650,11 @@ packages: peerDependencies: '@octokit/core': '5' - '@octokit/plugin-rest-endpoint-methods@13.2.2': - resolution: {integrity: sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==} + '@octokit/plugin-rest-endpoint-methods@13.2.6': + resolution: {integrity: sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': ^5 + '@octokit/core': '>=6' '@octokit/plugin-rest-endpoint-methods@5.16.2': resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} @@ -3684,8 +3684,8 @@ packages: resolution: {integrity: sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==} engines: {node: '>= 18'} - '@octokit/request-error@6.1.1': - resolution: {integrity: sha512-1mw1gqT3fR/WFvnoVpY/zUM2o/XkMs/2AszUUG9I69xn0JFLv6PGkPhNk5lbfvROs79wiS0bqiJNxfCZcRJJdg==} + '@octokit/request-error@6.1.5': + resolution: {integrity: sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==} engines: {node: '>= 18'} '@octokit/request@5.6.3': @@ -3699,8 +3699,8 @@ packages: resolution: {integrity: sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==} engines: {node: '>= 18'} - '@octokit/request@9.1.1': - resolution: {integrity: sha512-pyAguc0p+f+GbQho0uNetNQMmLG1e80WjkIaqqgUkihqUp0boRU6nKItXO4VWnr+nbZiLGEyy4TeKRwqaLvYgw==} + '@octokit/request@9.1.3': + resolution: {integrity: sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==} engines: {node: '>= 18'} '@octokit/rest@18.12.0': @@ -3723,8 +3723,8 @@ packages: '@octokit/types@12.6.0': resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - '@octokit/types@13.5.0': - resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} + '@octokit/types@13.6.1': + resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} '@octokit/types@6.41.0': resolution: {integrity: sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==} @@ -3741,10 +3741,6 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - '@opentelemetry/api@1.8.0': - resolution: {integrity: sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==} - engines: {node: '>=8.0.0'} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -3753,13 +3749,13 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.49.0': - resolution: {integrity: sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==} - engines: {node: '>=18'} + '@playwright/test@1.44.1': + resolution: {integrity: sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==} + engines: {node: '>=16'} hasBin: true - '@polka/url@1.0.0-next.24': - resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} @@ -3791,87 +3787,97 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@remix-run/router@1.20.0': - resolution: {integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==} + '@remix-run/router@1.21.0': + resolution: {integrity: sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==} engines: {node: '>=14.0.0'} - '@rollup/rollup-android-arm-eabi@4.18.1': - resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} + '@rollup/rollup-android-arm-eabi@4.27.3': + resolution: {integrity: sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.18.1': - resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} + '@rollup/rollup-android-arm64@4.27.3': + resolution: {integrity: sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.18.1': - resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} + '@rollup/rollup-darwin-arm64@4.27.3': + resolution: {integrity: sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.1': - resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} + '@rollup/rollup-darwin-x64@4.27.3': + resolution: {integrity: sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.18.1': - resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} + '@rollup/rollup-freebsd-arm64@4.27.3': + resolution: {integrity: sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.27.3': + resolution: {integrity: sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.27.3': + resolution: {integrity: sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.18.1': - resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} + '@rollup/rollup-linux-arm-musleabihf@4.27.3': + resolution: {integrity: sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.18.1': - resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} + '@rollup/rollup-linux-arm64-gnu@4.27.3': + resolution: {integrity: sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.18.1': - resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} + '@rollup/rollup-linux-arm64-musl@4.27.3': + resolution: {integrity: sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': - resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': + resolution: {integrity: sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.18.1': - resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} + '@rollup/rollup-linux-riscv64-gnu@4.27.3': + resolution: {integrity: sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.18.1': - resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} + '@rollup/rollup-linux-s390x-gnu@4.27.3': + resolution: {integrity: sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.18.1': - resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} + '@rollup/rollup-linux-x64-gnu@4.27.3': + resolution: {integrity: sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.18.1': - resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} + '@rollup/rollup-linux-x64-musl@4.27.3': + resolution: {integrity: sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.18.1': - resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} + '@rollup/rollup-win32-arm64-msvc@4.27.3': + resolution: {integrity: sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.1': - resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} + '@rollup/rollup-win32-ia32-msvc@4.27.3': + resolution: {integrity: sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.1': - resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} + '@rollup/rollup-win32-x64-msvc@4.27.3': + resolution: {integrity: sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==} cpu: [x64] os: [win32] @@ -3881,28 +3887,28 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@sigstore/bundle@2.1.1': - resolution: {integrity: sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==} + '@sigstore/bundle@2.3.2': + resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} engines: {node: ^16.14.0 || >=18.0.0} - '@sigstore/core@0.2.0': - resolution: {integrity: sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==} + '@sigstore/core@1.1.0': + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} engines: {node: ^16.14.0 || >=18.0.0} - '@sigstore/protobuf-specs@0.2.1': - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + '@sigstore/protobuf-specs@0.3.2': + resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==} + engines: {node: ^16.14.0 || >=18.0.0} - '@sigstore/sign@2.2.1': - resolution: {integrity: sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==} + '@sigstore/sign@2.3.2': + resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==} engines: {node: ^16.14.0 || >=18.0.0} - '@sigstore/tuf@2.3.0': - resolution: {integrity: sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==} + '@sigstore/tuf@2.3.4': + resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==} engines: {node: ^16.14.0 || >=18.0.0} - '@sigstore/verify@0.1.0': - resolution: {integrity: sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==} + '@sigstore/verify@1.2.1': + resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==} engines: {node: ^16.14.0 || >=18.0.0} '@sinclair/typebox@0.27.8': @@ -3944,79 +3950,79 @@ packages: resolution: {integrity: sha512-WSLBnGY9eE19jx6QLIP78oFpxNVU74soDIP0dupi35MFY6WfLBAikbuy4Y/rR4v9eJ7MNnd5/BdQNETgv32F8Q==} engines: {node: '>= 18', npm: '>= 8.6.0'} - '@slack/types@2.13.0': - resolution: {integrity: sha512-OAQVtKYIgBVNRmgIoiTjorGPTlgfcfstU3XYYCBA+czlB9aGcKb9MQc+6Jovi4gq3S98yP/GPBZsJSI/2mHKDQ==} + '@slack/types@2.14.0': + resolution: {integrity: sha512-n0EGm7ENQRxlXbgKSrQZL69grzg1gHLAVd+GlRVQJ1NSORo0FrApR7wql/gaKdu2n4TO83Sq/AmeUOqD60aXUA==} engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} '@slack/web-api@7.7.0': resolution: {integrity: sha512-DtRyjgQi0mObA2uC6H8nL2OhAISKDhvtOXgRjGRBnBhiaWb6df5vPmKHsOHjpweYALBMHtiqE5ajZFkDW/ag8Q==} engines: {node: '>= 18', npm: '>= 8.6.0'} - '@socket.io/component-emitter@3.1.0': - resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} - '@swc/core-darwin-arm64@1.7.35': - resolution: {integrity: sha512-BQSSozVxjxS+SVQz6e3GC/+OBWGIK3jfe52pWdANmycdjF3ch7lrCKTHTU7eHwyoJ96mofszPf5AsiVJF34Fwg==} + '@swc/core-darwin-arm64@1.9.2': + resolution: {integrity: sha512-nETmsCoY29krTF2PtspEgicb3tqw7Ci5sInTI03EU5zpqYbPjoPH99BVTjj0OsF53jP5MxwnLI5Hm21lUn1d6A==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.35': - resolution: {integrity: sha512-44TYdKN/EWtkU88foXR7IGki9JzhEJzaFOoPevfi9Xe7hjAD/x2+AJOWWqQNzDPMz9+QewLdUVLyR6s5okRgtg==} + '@swc/core-darwin-x64@1.9.2': + resolution: {integrity: sha512-9gD+bwBz8ZByjP6nZTXe/hzd0tySIAjpDHgkFiUrc+5zGF+rdTwhcNrzxNHJmy6mw+PW38jqII4uspFHUqqxuQ==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.35': - resolution: {integrity: sha512-ccfA5h3zxwioD+/z/AmYtkwtKz9m4rWTV7RoHq6Jfsb0cXHrd6tbcvgqRWXra1kASlE+cDWsMtEZygs9dJRtUQ==} + '@swc/core-linux-arm-gnueabihf@1.9.2': + resolution: {integrity: sha512-kYq8ief1Qrn+WmsTWAYo4r+Coul4dXN6cLFjiPZ29Cv5pyU+GFvSPAB4bEdMzwy99rCR0u2P10UExaeCjurjvg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.35': - resolution: {integrity: sha512-hx65Qz+G4iG/IVtxJKewC5SJdki8PAPFGl6gC/57Jb0+jA4BIoGLD/J3Q3rCPeoHfdqpkCYpahtyUq8CKx41Jg==} + '@swc/core-linux-arm64-gnu@1.9.2': + resolution: {integrity: sha512-n0W4XiXlmEIVqxt+rD3ZpkogsEWUk1jJ+i5bQNgB+1JuWh0fBE8c/blDgTQXa0GB5lTPVDZQussgdNOCnAZwiA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.35': - resolution: {integrity: sha512-kL6tQL9No7UEoEvDRuPxzPTpxrvbwYteNRbdChSSP74j13/55G2/2hLmult5yFFaWuyoyU/2lvzjRL/i8OLZxg==} + '@swc/core-linux-arm64-musl@1.9.2': + resolution: {integrity: sha512-8xzrOmsyCC1zrx2Wzx/h8dVsdewO1oMCwBTLc1gSJ/YllZYTb04pNm6NsVbzUX2tKddJVRgSJXV10j/NECLwpA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.35': - resolution: {integrity: sha512-Ke4rcLQSwCQ2LHdJX1FtnqmYNQ3IX6BddKlUtS7mcK13IHkQzZWp0Dcu6MgNA3twzb/dBpKX5GLy07XdGgfmyw==} + '@swc/core-linux-x64-gnu@1.9.2': + resolution: {integrity: sha512-kZrNz/PjRQKcchWF6W292jk3K44EoVu1ad5w+zbS4jekIAxsM8WwQ1kd+yjUlN9jFcF8XBat5NKIs9WphJCVXg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.35': - resolution: {integrity: sha512-T30tlLnz0kYyDFyO5RQF5EQ4ENjW9+b56hEGgFUYmfhFhGA4E4V67iEx7KIG4u0whdPG7oy3qjyyIeTb7nElEw==} + '@swc/core-linux-x64-musl@1.9.2': + resolution: {integrity: sha512-TTIpR4rjMkhX1lnFR+PSXpaL83TrQzp9znRdp2TzYrODlUd/R20zOwSo9vFLCyH6ZoD47bccY7QeGZDYT3nlRg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.35': - resolution: {integrity: sha512-CfM/k8mvtuMyX+okRhemfLt784PLS0KF7Q9djA8/Dtavk0L5Ghnq+XsGltO3d8B8+XZ7YOITsB14CrjehzeHsg==} + '@swc/core-win32-arm64-msvc@1.9.2': + resolution: {integrity: sha512-+Eg2d4icItKC0PMjZxH7cSYFLWk0aIp94LNmOw6tPq0e69ax6oh10upeq0D1fjWsKLmOJAWEvnXlayZcijEXDw==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.35': - resolution: {integrity: sha512-ATB3uuH8j/RmS64EXQZJSbo2WXfRNpTnQszHME/sGaexsuxeijrp3DTYSFAA3R2Bu6HbIIX6jempe1Au8I3j+A==} + '@swc/core-win32-ia32-msvc@1.9.2': + resolution: {integrity: sha512-nLWBi4vZDdM/LkiQmPCakof8Dh1/t5EM7eudue04V1lIcqx9YHVRS3KMwEaCoHLGg0c312Wm4YgrWQd9vwZ5zQ==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.35': - resolution: {integrity: sha512-iDGfQO1571NqWUXtLYDhwIELA/wadH42ioGn+J9R336nWx40YICzy9UQyslWRhqzhQ5kT+QXAW/MoCWc058N6Q==} + '@swc/core-win32-x64-msvc@1.9.2': + resolution: {integrity: sha512-ik/k+JjRJBFkXARukdU82tSVx0CbExFQoQ78qTO682esbYXzjdB5eLVkoUbwen299pnfr88Kn4kyIqFPTje8Xw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.35': - resolution: {integrity: sha512-3cUteCTbr2r5jqfgx0r091sfq5Mgh6F1SQh8XAOnSvtKzwv2bC31mvBHVAieD1uPa2kHJhLav20DQgXOhpEitw==} + '@swc/core@1.9.2': + resolution: {integrity: sha512-dYyEkO6mRYtZFpnOsnYzv9rY69fHAHoawYOjGOEcxk9WYtaJhowMdP/w6NcOKnz2G7GlZaenjkzkMa6ZeQeMsg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -4030,11 +4036,11 @@ packages: '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - '@swc/types@0.1.13': - resolution: {integrity: sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==} + '@swc/types@0.1.15': + resolution: {integrity: sha512-XKaZ+dzDIQ9Ot9o89oJQ/aluI17+VvUnIpYJTcZtvv1iYX6MzHh3Ik2CSR7MdPKpPwfZXHBeCingb2b4PoDVdw==} - '@tanstack/query-core@5.60.5': - resolution: {integrity: sha512-jiS1aC3XI3BJp83ZiTuDLerTmn9P3U95r6p+6/SNauLJaYxfIC4dMuWygwnBHIZxjn2zJqEpj3nysmPieoxfPQ==} + '@tanstack/query-core@5.60.6': + resolution: {integrity: sha512-tI+k0KyCo1EBJ54vxK1kY24LWj673ujTydCZmzEZKAew4NqZzTaVQJEuaG1qKj2M03kUHN46rchLRd+TxVq/zQ==} '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} @@ -4073,10 +4079,13 @@ packages: resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} - '@tufjs/models@2.0.0': - resolution: {integrity: sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==} + '@tufjs/models@2.0.1': + resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} engines: {node: ^16.14.0 || >=18.0.0} + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -4161,14 +4170,11 @@ packages: '@types/eslint@8.56.12': resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@4.17.42': - resolution: {integrity: sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==} + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -4224,9 +4230,6 @@ packages: '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/mime@3.0.4': - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} @@ -4257,8 +4260,8 @@ packages: '@types/prop-types@15.7.13': resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} - '@types/qs@6.9.11': - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + '@types/qs@6.9.17': + resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -4293,8 +4296,8 @@ packages: '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - '@types/serve-static@1.15.5': - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} '@types/sinon@17.0.3': resolution: {integrity: sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==} @@ -4434,7 +4437,7 @@ packages: '@vitest/browser@2.1.5': resolution: {integrity: sha512-JrpnxvkrjlBrF7oXbK/YytWVYfJIzWYeDKppANlUaisBKwDso+yXlWocAJrANx8gUxyirF355Yx80S+SKQqayg==} peerDependencies: - playwright: ^1.44.1 + playwright: 1.44.1 safaridriver: '*' vitest: 2.1.5 webdriverio: '*' @@ -4489,50 +4492,50 @@ packages: '@vitest/utils@2.1.5': resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==} - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} '@webpack-cli/configtest@2.1.1': resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} @@ -4568,15 +4571,15 @@ packages: '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - '@yarnpkg/parsers@3.0.0-rc.46': - resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} - engines: {node: '>=14.15.0'} + '@yarnpkg/parsers@3.0.2': + resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} + engines: {node: '>=18.12.0'} '@zeit/schemas@2.36.0': resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} - '@zkochan/js-yaml@0.0.6': - resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true JSONStream@1.3.5: @@ -4586,9 +4589,6 @@ packages: abbrev@1.0.9: resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4606,8 +4606,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} acorn@8.14.0: @@ -4622,8 +4622,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} aggregate-error@3.1.0: @@ -4658,8 +4658,11 @@ packages: ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - algoliasearch@5.12.0: - resolution: {integrity: sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + algoliasearch@5.15.0: + resolution: {integrity: sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==} engines: {node: '>= 14.0.0'} amdefine@1.0.1: @@ -4681,8 +4684,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@3.2.1: @@ -4797,8 +4800,8 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.reduce@1.0.6: - resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} + array.prototype.reduce@1.0.7: + resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} engines: {node: '>= 0.4'} array.prototype.tosorted@1.1.4: @@ -4845,8 +4848,8 @@ packages: async@1.5.2: resolution: {integrity: sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==} - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -4894,8 +4897,8 @@ packages: babel-plugin-optimize-clsx@2.6.2: resolution: {integrity: sha512-TxgyjdVb7trTAsg/J5ByqJdbBPTYR8yaWLGQGpSxwygw8IFST5gEc1J9QktCGCHCb+69t04DWg9KOE0y2hN30w==} - babel-plugin-polyfill-corejs2@0.4.10: - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + babel-plugin-polyfill-corejs2@0.4.12: + resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -4904,8 +4907,8 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.1: - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + babel-plugin-polyfill-regenerator@0.6.3: + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -4958,8 +4961,8 @@ packages: resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} binary@0.3.0: @@ -5002,8 +5005,8 @@ packages: browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - browserslist@4.24.0: - resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -5055,8 +5058,8 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - cacache@18.0.3: - resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} caching-transform@4.0.0: @@ -5093,8 +5096,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001667: - resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + caniuse-lite@1.0.30001680: + resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} chai-dom@1.12.0: resolution: {integrity: sha512-pLP8h6IBR8z1AdeQ+EMcJ7dXPdsax/1Q7gdGZjsnAmSBl3/gItQUYSCo32br1qOy4SlcBjvqId7ilAf3uJ2K1w==} @@ -5165,16 +5168,16 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} engines: {node: '>=8'} clean-css@5.3.3: @@ -5424,10 +5427,6 @@ packages: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} - cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - cookie@0.7.1: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} @@ -5436,15 +5435,15 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-js-compat@3.38.1: - resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} + core-js-compat@3.39.0: + resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} core-js@2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - core-js@3.35.1: - resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} + core-js@3.39.0: + resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -5496,8 +5495,8 @@ packages: cross-spawn@4.0.2: resolution: {integrity: sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} css-color-keywords@1.0.0: @@ -5525,12 +5524,12 @@ packages: engines: {node: '>=4'} hasBin: true - cssjanus@2.1.0: - resolution: {integrity: sha512-kAijbny3GmdOi9k+QT6DGIXqFvL96aksNlGr4Rhk9qXDZYWUojU4bRc3IHWxdaLNOqgEZHuXoe5Wl2l7dxLW5g==} + cssjanus@2.3.0: + resolution: {integrity: sha512-ZZXXn51SnxRxAZ6fdY7mBDPmA4OZd83q/J9Gdqz3YmE9TUq+9tZl+tdOnCi7PpNygI6PEkehj9rgifv5+W8a5A==} engines: {node: '>=10.0.0'} - cssstyle@4.0.1: - resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + cssstyle@4.1.0: + resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} engines: {node: '>=18'} csstype@3.1.3: @@ -5706,8 +5705,8 @@ packages: babel-plugin-macros: optional: true - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} deep-eql@5.0.2: @@ -5838,12 +5837,12 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} engines: {node: '>=12'} - dotenv@16.3.2: - resolution: {integrity: sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==} + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} duplexer2@0.1.4: @@ -5861,13 +5860,13 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.33: - resolution: {integrity: sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==} + electron-to-chromium@1.5.63: + resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -5893,12 +5892,12 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - engine.io-parser@5.2.1: - resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==} + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} - engine.io@6.5.4: - resolution: {integrity: sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==} + engine.io@6.6.2: + resolution: {integrity: sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==} engines: {node: '>=10.2.0'} enhanced-resolve@0.9.1: @@ -5913,8 +5912,9 @@ packages: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} - ent@2.2.0: - resolution: {integrity: sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==} + ent@2.2.1: + resolution: {integrity: sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==} + engines: {node: '>= 0.4'} entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -5932,14 +5932,19 @@ packages: engines: {node: '>=4'} hasBin: true + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} + engines: {node: '>=4'} + hasBin: true + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} engines: {node: '>= 0.4'} es-array-method-boxes-properly@1.0.0: @@ -5988,8 +5993,8 @@ packages: engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-html@1.0.3: @@ -6166,8 +6171,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@8.57.1: @@ -6176,8 +6181,8 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: @@ -6308,12 +6313,15 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.17.0: - resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fdir@6.4.2: resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} @@ -6357,8 +6365,8 @@ packages: resolution: {integrity: sha512-MX6Zo2adDViYh+GcxxB1dpO43eypOGUOL12rLCOTMQv/DfIbpSJUy4oQIIZhVZkH9e+bZWKMon0XHFEju16tkQ==} engines: {node: '>= 0.8'} - find-babel-config@2.1.1: - resolution: {integrity: sha512-5Ji+EAysHGe1OipH7GN4qDjok5Z1uw5KAwDCbicU/4wyTZY7CqOCzcWbG7J5ad9mazq67k89fXlbc1MuIfl9uA==} + find-babel-config@2.1.2: + resolution: {integrity: sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==} find-cache-dir@2.1.0: resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} @@ -6403,15 +6411,15 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - flow-parser@0.227.0: - resolution: {integrity: sha512-nOygtGKcX/siZK/lFzpfdHEfOkfGcTW7rNroR1Zsz6T/JxSahPALXVt5qVHq/fgvMJuv096BTKbgxN3PzVBaDA==} + flow-parser@0.253.0: + resolution: {integrity: sha512-EbxtzRIzp8dDSzTloPhsc6uOvrEFIyu08cqQzXBWLAgxK+i2d/5qOos9ryQHRmk+RyDDXfnz/7qteh3jnAlc4w==} engines: {node: '>=0.4.0'} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -6430,8 +6438,8 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} format-util@1.0.5: @@ -6455,6 +6463,9 @@ packages: fromentries@1.3.2: resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} @@ -6509,8 +6520,8 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gaxios@6.1.1: - resolution: {integrity: sha512-bw8smrX+XlAoo9o1JAksBwX+hi/RG15J+NTSxmNPIclKC3ZVK6C2afwY8OSdRvOK0+ZLecUJYtj2MmjOt3Dm0w==} + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} engines: {node: '>=14'} gcp-metadata@6.1.0: @@ -6565,8 +6576,8 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} git-config-path@1.0.1: resolution: {integrity: sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==} @@ -6664,12 +6675,12 @@ packages: resolution: {integrity: sha512-4kKdWXTtgQ4biIo7hZA396HT062nDVVHPjQcurNZ3o/voYN+o5FUC5kOwuORbpExp3XbTJ3SU7iRipiIhQtovw==} engines: {node: '>=14'} - google-auth-library@9.14.2: - resolution: {integrity: sha512-R+FRIfk1GBo3RdlRYWPdwk8nmtVUOn6+BkDomAC46KoU8kzXzE1HLmOasSCbWUByMMAGkknVF0G5kQ69Vj7dlA==} + google-auth-library@9.15.0: + resolution: {integrity: sha512-7ccSEJFDFO7exFbO6NRyC+xH8/mZ1GZGG2xxx9iHxZWcjUjJpjWxIMw3cofAKcueZ6DATiukmmprD7yavQHOyQ==} engines: {node: '>=14'} - googleapis-common@7.0.1: - resolution: {integrity: sha512-mgt5zsd7zj5t5QXvDanjWguMdHAcJmmDrF9RkInCecNsyV7S7YtGqm5v2IWONNID88osb7zmx5FtrAP12JfD0w==} + googleapis-common@7.2.0: + resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} engines: {node: '>=14.0.0'} gopd@1.0.1: @@ -6685,8 +6696,8 @@ packages: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - gtoken@7.0.1: - resolution: {integrity: sha512-KcFVtoP1CVFtQu0aSk3AyAt2og66PFhZAlkUOuWKwzMLoulHXG5W5wE5xAnHb+yl3/wEFoqGW7/cDGMU8igDZQ==} + gtoken@7.1.0: + resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} engines: {node: '>=14.0.0'} gzip-size@6.0.0: @@ -6848,8 +6859,8 @@ packages: resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} engines: {node: '>=4'} - hyphenate-style-name@1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + hyphenate-style-name@1.1.0: + resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -6866,12 +6877,12 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-walk@6.0.4: - resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + ignore-walk@6.0.5: + resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} immediate@3.0.6: @@ -6886,6 +6897,11 @@ packages: engines: {node: '>=8'} hasBin: true + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -6908,6 +6924,10 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + init-package-json@6.0.3: resolution: {integrity: sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==} engines: {node: ^16.14.0 || >=18.0.0} @@ -6932,8 +6952,9 @@ packages: resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} engines: {node: '>=10.13.0'} - ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} @@ -7029,8 +7050,9 @@ packages: is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} @@ -7089,8 +7111,9 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} @@ -7134,18 +7157,20 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-unicode-supported@2.0.0: - resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} - is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} @@ -7187,8 +7212,8 @@ packages: resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} engines: {node: '>=8'} - istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} istanbul-lib-processinfo@2.0.3: @@ -7230,8 +7255,8 @@ packages: resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} engines: {node: 20 || >=22} - jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true @@ -7261,6 +7286,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jscodeshift@17.1.1: resolution: {integrity: sha512-4vq5B1sD37aa9qed3zWq2XQPun5XjxebIv+Folr57lt8B4HLGDHEz1UG7pfcxzSaelzPbcY7yZSs033/S0i6wQ==} engines: {node: '>=16'} @@ -7450,8 +7478,8 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} @@ -7488,8 +7516,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + lines-and-columns@2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} linkify-it@5.0.0: @@ -7691,8 +7719,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + magic-string@0.30.13: + resolution: {integrity: sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -7713,8 +7741,8 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-fetch-happen@13.0.0: - resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} + make-fetch-happen@13.0.1: + resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} engines: {node: ^16.14.0 || >=18.0.0} map-obj@1.0.1: @@ -7758,14 +7786,14 @@ packages: engines: {node: '>= 18'} hasBin: true - mdast-util-from-markdown@2.0.1: - resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -7810,68 +7838,68 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + micromark-core-commonmark@2.0.2: + resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + micromark-util-subtokenize@2.0.3: + resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==} - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromark@4.0.1: + resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} @@ -7936,8 +7964,8 @@ packages: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} minimist-options@4.1.0: @@ -7951,8 +7979,8 @@ packages: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} - minipass-fetch@3.0.4: - resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} + minipass-fetch@3.0.5: + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} minipass-flush@1.0.5: @@ -8077,6 +8105,10 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} @@ -8093,7 +8125,7 @@ packages: hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.44.1 + '@playwright/test': 1.44.1 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 @@ -8139,12 +8171,12 @@ packages: encoding: optional: true - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-gyp@10.0.1: - resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} + node-gyp@10.2.0: + resolution: {integrity: sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true @@ -8186,8 +8218,8 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - npm-bundled@3.0.0: - resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + npm-bundled@3.0.1: + resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} npm-install-checks@6.3.0: @@ -8206,8 +8238,8 @@ packages: resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-pick-manifest@9.0.1: - resolution: {integrity: sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==} + npm-pick-manifest@9.1.0: + resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} engines: {node: ^16.14.0 || >=18.0.0} npm-registry-fetch@17.1.0: @@ -8228,14 +8260,14 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.12: - resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + nwsapi@2.2.13: + resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} - nx@17.3.0: - resolution: {integrity: sha512-CoY0qUrO8xErbA/v/bbfDGs+KaD9MCO7PReqmIeyrtDNwFl6vnb+U2MpBxCsRP+YH2Oa8hI8Lu+kcnPktx2v6A==} + nx@20.1.2: + resolution: {integrity: sha512-CvjmuQmI0RWLYZxRSIgQZmzsQv6dPp9oI0YZE3L1dagBPfTf5Cun65I0GLt7bdkDnVx2PGYkDbIoJSv2/V+83Q==} hasBin: true peerDependencies: - '@swc-node/register': ^1.6.7 + '@swc-node/register': ^1.8.0 '@swc/core': ^1.3.85 peerDependenciesMeta: '@swc-node/register': @@ -8256,8 +8288,9 @@ packages: resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} engines: {node: '>= 6'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} object-keys@0.4.0: resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} @@ -8278,8 +8311,8 @@ packages: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.getownpropertydescriptors@2.1.7: - resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} + object.getownpropertydescriptors@2.1.8: + resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} object.groupby@1.0.3: @@ -8327,8 +8360,8 @@ packages: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} ora@5.3.0: @@ -8486,13 +8519,13 @@ packages: resolution: {integrity: sha512-Js7ueMZOVSZ3tP8C7E3KZiHv6QQl7lnJ+OkbxoaFazzSa2KyEHqApfGbU3XboUgUnq4ZuUmskUpYKTNx01fm5A==} engines: {node: '>=6'} - parse-github-url@1.0.2: - resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} - engines: {node: '>=0.10.0'} + parse-github-url@1.0.3: + resolution: {integrity: sha512-tfalY5/4SqGaV/GIGzWyHnFjlpTPTNpENR9Ea2lLldSJ8EWXMsvacWucqY3m3I4YPtas15IxTLQVQ5NSYXPrww==} + engines: {node: '>= 0.10'} hasBin: true - parse-imports@2.1.1: - resolution: {integrity: sha512-TDT4HqzUiTMO1wJRwg/t/hYk8Wdp3iF/ToMIlAoVQfL1Xs/sTxq1dKWSMjMbQmIarfWKymOyly40+zmPHXMqCA==} + parse-imports@2.2.1: + resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==} engines: {node: '>= 18'} parse-json@4.0.0: @@ -8520,8 +8553,8 @@ packages: parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} @@ -8654,22 +8687,22 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} - playwright-core@1.49.0: - resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} - engines: {node: '>=18'} + playwright-core@1.44.1: + resolution: {integrity: sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==} + engines: {node: '>=16'} hasBin: true - playwright@1.49.0: - resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} - engines: {node: '>=18'} + playwright@1.44.1: + resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} + engines: {node: '>=16'} hasBin: true possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -8715,8 +8748,8 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-ms@9.0.0: - resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} engines: {node: '>=18'} pretty-quick@4.0.0: @@ -8734,10 +8767,6 @@ packages: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} - proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - proc-log@4.2.0: resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8745,8 +8774,8 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-on-spawn@1.0.0: - resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + process-on-spawn@1.1.0: + resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} engines: {node: '>=8'} process@0.11.10: @@ -8760,8 +8789,8 @@ packages: promise-all-reject-late@1.0.1: resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} - promise-call-limit@3.0.1: - resolution: {integrity: sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg==} + promise-call-limit@3.0.2: + resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -8775,8 +8804,8 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} - promzard@1.0.0: - resolution: {integrity: sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig==} + promzard@1.0.2: + resolution: {integrity: sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} prop-types@15.8.1: @@ -8795,13 +8824,16 @@ packages: pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + psl@1.10.0: + resolution: {integrity: sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==} punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -8814,6 +8846,10 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + qs@6.13.1: + resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} + engines: {node: '>=0.6'} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -8873,15 +8909,15 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - react-router-dom@6.27.0: - resolution: {integrity: sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==} + react-router-dom@6.28.0: + resolution: {integrity: sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - react-router@6.27.0: - resolution: {integrity: sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==} + react-router@6.28.0: + resolution: {integrity: sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' @@ -8932,10 +8968,6 @@ packages: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} - read@2.1.0: - resolution: {integrity: sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - read@3.0.1: resolution: {integrity: sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8977,8 +9009,8 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} regenerate-unicode-properties@10.2.0: @@ -8997,8 +9029,8 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} regexpu-core@6.1.1: @@ -9015,8 +9047,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.11.1: - resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==} + regjsparser@0.11.2: + resolution: {integrity: sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==} hasBin: true relateurl@0.2.7: @@ -9101,8 +9133,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rifm@0.12.1: resolution: {integrity: sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==} @@ -9132,8 +9164,8 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - rollup@4.18.1: - resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} + rollup@4.27.3: + resolution: {integrity: sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -9141,9 +9173,6 @@ packages: resolution: {integrity: sha512-dIM5zVoG8xhC6rnSN8uoAgFARwTE7BQs8YwHEvK0VCmfxQXMaOuA1uiR1IPwsW7JyK5iTt7Od/TC9StasS2NPQ==} engines: {node: '>= 0.10'} - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} @@ -9196,8 +9225,8 @@ packages: resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} - search-insights@2.13.0: - resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} + search-insights@2.17.3: + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} @@ -9207,11 +9236,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -9289,8 +9313,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sigstore@2.2.0: - resolution: {integrity: sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==} + sigstore@2.3.1: + resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} engines: {node: ^16.14.0 || >=18.0.0} simple-swizzle@0.2.2: @@ -9330,24 +9354,24 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - socket.io-adapter@2.5.2: - resolution: {integrity: sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==} + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} socket.io-parser@4.2.4: resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} engines: {node: '>=10.0.0'} - socket.io@4.7.4: - resolution: {integrity: sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==} + socket.io@4.8.1: + resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} engines: {node: '>=10.2.0'} - socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} engines: {node: '>= 14'} - socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} @@ -9379,8 +9403,8 @@ packages: spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - spdx-exceptions@2.4.0: - resolution: {integrity: sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} @@ -9388,8 +9412,8 @@ packages: spdx-expression-parse@4.0.0: resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} - spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} @@ -9400,6 +9424,9 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + ssri@10.0.6: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -9583,8 +9610,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.9.1: - resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} tapable@0.1.10: @@ -9623,8 +9650,8 @@ packages: uglify-js: optional: true - terser@5.27.0: - resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} engines: {node: '>=10'} hasBin: true @@ -9675,8 +9702,8 @@ packages: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} - tinypool@1.0.1: - resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: @@ -9736,8 +9763,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + ts-api-utils@1.4.0: + resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -9758,6 +9785,9 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsscmp@1.0.6: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} @@ -9773,8 +9803,8 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - tuf-js@2.2.0: - resolution: {integrity: sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==} + tuf-js@2.2.1: + resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} tunnel@0.0.6: @@ -9825,8 +9855,8 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.26.1: - resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + type-fest@4.27.0: + resolution: {integrity: sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==} engines: {node: '>=16'} type-is@1.6.18: @@ -9864,14 +9894,15 @@ packages: engines: {node: '>=14.17'} hasBin: true - ua-parser-js@0.7.37: - resolution: {integrity: sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==} + ua-parser-js@0.7.39: + resolution: {integrity: sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==} + hasBin: true uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true @@ -9885,16 +9916,16 @@ packages: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} unicode-property-aliases-ecmascript@2.1.0: @@ -9961,8 +9992,8 @@ packages: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -10016,8 +10047,8 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} v8flags@3.2.0: @@ -10046,8 +10077,8 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.3.4: - resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -10055,6 +10086,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -10067,6 +10099,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -10116,8 +10150,8 @@ packages: walk-up-path@3.0.1: resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} wcwidth@1.0.1: @@ -10191,12 +10225,13 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} - which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} @@ -10277,8 +10312,8 @@ packages: resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} engines: {node: '>=8'} - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -10289,12 +10324,12 @@ packages: utf-8-validate: optional: true - ws@8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: '>=5.0.2' peerDependenciesMeta: bufferutil: optional: true @@ -10383,24 +10418,24 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} yoctocolors-cjs@2.1.2: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} - yoctocolors@2.0.2: - resolution: {integrity: sha512-Ct97huExsu7cWeEjmrXlofevF8CvzUglJ4iGUet5B8xn1oumtAZBpHU4GzYuoE6PVqcZ5hghtBrSlhwHuR1Jmw==} + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} zip-stream@4.1.1: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} - zod-validation-error@3.3.0: - resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} + zod-validation-error@3.4.0: + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.18.0 @@ -10413,12 +10448,10 @@ packages: snapshots: - '@aashutoshrathi/word-wrap@1.2.6': {} - '@actions/core@1.11.1': dependencies: '@actions/exec': 1.1.1 - '@actions/http-client': 2.2.1 + '@actions/http-client': 2.2.3 '@actions/exec@1.1.1': dependencies: @@ -10426,124 +10459,124 @@ snapshots: '@actions/github@6.0.0': dependencies: - '@actions/http-client': 2.2.1 + '@actions/http-client': 2.2.3 '@octokit/core': 5.2.0 '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.2.0) '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.0) - '@actions/http-client@2.2.1': + '@actions/http-client@2.2.3': dependencies: tunnel: 0.0.6 undici: 5.28.4 '@actions/io@1.1.3': {} - '@adobe/css-tools@4.4.0': {} + '@adobe/css-tools@4.4.1': {} - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.13.0)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.13.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) - search-insights: 2.13.0 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) + search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) + '@algolia/client-search': 5.15.0 + algoliasearch: 5.15.0 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)': dependencies: - '@algolia/client-search': 5.12.0 - algoliasearch: 5.12.0 + '@algolia/client-search': 5.15.0 + algoliasearch: 5.15.0 - '@algolia/client-abtesting@5.12.0': + '@algolia/client-abtesting@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/client-analytics@5.12.0': + '@algolia/client-analytics@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/client-common@5.12.0': {} + '@algolia/client-common@5.15.0': {} - '@algolia/client-insights@5.12.0': + '@algolia/client-insights@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/client-personalization@5.12.0': + '@algolia/client-personalization@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/client-query-suggestions@5.12.0': + '@algolia/client-query-suggestions@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/client-search@5.12.0': + '@algolia/client-search@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/ingestion@1.12.0': + '@algolia/ingestion@1.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/monitoring@1.12.0': + '@algolia/monitoring@1.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/recommend@5.12.0': + '@algolia/recommend@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + '@algolia/client-common': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 - '@algolia/requester-browser-xhr@5.12.0': + '@algolia/requester-browser-xhr@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/client-common': 5.15.0 - '@algolia/requester-fetch@5.12.0': + '@algolia/requester-fetch@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/client-common': 5.15.0 - '@algolia/requester-node-http@5.12.0': + '@algolia/requester-node-http@5.15.0': dependencies: - '@algolia/client-common': 5.12.0 + '@algolia/client-common': 5.15.0 '@ampproject/remapping@2.3.0': dependencies: @@ -10637,7 +10670,7 @@ snapshots: dependencies: '@babel/compat-data': 7.26.2 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.0 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 @@ -10661,7 +10694,7 @@ snapshots: regexpu-core: 6.1.1 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.0)': + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 @@ -10757,7 +10790,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/register': 7.25.9(@babel/core@7.26.0) commander: 6.2.1 - core-js: 3.35.1 + core-js: 3.39.0 node-environment-flags: 1.0.6 regenerator-runtime: 0.14.1 v8flags: 3.2.0 @@ -10818,7 +10851,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 @@ -10956,11 +10989,11 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-transform-flow-strip-types@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': dependencies: @@ -11127,12 +11160,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 @@ -11176,9 +11209,9 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11312,20 +11345,20 @@ snapshots: '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.26.0) - core-js-compat: 3.38.1 + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) + core-js-compat: 3.39.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-flow@7.24.7(@babel/core@7.26.0)': + '@babel/preset-flow@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-flow-strip-types': 7.25.9(@babel/core@7.26.0) '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': dependencies: @@ -11417,16 +11450,16 @@ snapshots: dependencies: axios: 1.7.7(debug@4.3.7) find-up: 6.3.0 - form-data: 4.0.0 - node-gyp-build: 4.8.1 + form-data: 4.0.1 + node-gyp-build: 4.8.4 transitivePeerDependencies: - debug - '@codspeed/vitest-plugin@3.1.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5)': + '@codspeed/vitest-plugin@3.1.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5)': dependencies: '@codspeed/core': 3.1.1 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) + vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0) transitivePeerDependencies: - debug @@ -11436,24 +11469,32 @@ snapshots: '@docsearch/css@3.8.0': {} - '@docsearch/react@3.8.0(@algolia/client-search@5.12.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.13.0)': + '@docsearch/react@3.8.0(@algolia/client-search@5.15.0)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.12.0)(algoliasearch@5.12.0) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) '@docsearch/css': 3.8.0 - algoliasearch: 5.12.0 + algoliasearch: 5.15.0 optionalDependencies: '@types/react': 18.3.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - search-insights: 2.13.0 + search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - '@emnapi/runtime@1.2.0': + '@emnapi/core@1.3.1': dependencies: - tslib: 2.6.2 - optional: true + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.8.1 + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + + '@emnapi/wasi-threads@1.0.1': + dependencies: + tslib: 2.8.1 '@emotion/babel-plugin@11.12.0': dependencies: @@ -11461,7 +11502,7 @@ snapshots: '@babel/runtime': 7.26.0 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 - '@emotion/serialize': 1.3.1 + '@emotion/serialize': 1.3.2 babel-plugin-macros: 3.1.0 convert-source-map: 1.9.0 escape-string-regexp: 4.0.0 @@ -11475,7 +11516,7 @@ snapshots: dependencies: '@emotion/memoize': 0.9.0 '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.0 + '@emotion/utils': 1.4.1 '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 @@ -11485,7 +11526,7 @@ snapshots: dependencies: '@emotion/memoize': 0.8.1 - '@emotion/is-prop-valid@1.3.0': + '@emotion/is-prop-valid@1.3.1': dependencies: '@emotion/memoize': 0.9.0 @@ -11498,9 +11539,9 @@ snapshots: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.12.0 '@emotion/cache': 11.13.1 - '@emotion/serialize': 1.3.1 + '@emotion/serialize': 1.3.2 '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) - '@emotion/utils': 1.4.0 + '@emotion/utils': 1.4.1 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 react: 18.3.1 @@ -11509,17 +11550,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/serialize@1.3.1': + '@emotion/serialize@1.3.2': dependencies: '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/unitless': 0.10.0 - '@emotion/utils': 1.4.0 + '@emotion/utils': 1.4.1 csstype: 3.1.3 '@emotion/server@11.11.0': dependencies: - '@emotion/utils': 1.4.0 + '@emotion/utils': 1.4.1 html-tokenize: 2.0.1 multipipe: 1.0.2 through: 2.3.8 @@ -11530,11 +11571,11 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 '@emotion/babel-plugin': 11.12.0 - '@emotion/is-prop-valid': 1.3.0 + '@emotion/is-prop-valid': 1.3.1 '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) - '@emotion/serialize': 1.3.1 + '@emotion/serialize': 1.3.2 '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) - '@emotion/utils': 1.4.0 + '@emotion/utils': 1.4.1 react: 18.3.1 optionalDependencies: '@types/react': 18.3.12 @@ -11549,7 +11590,7 @@ snapshots: dependencies: react: 18.3.1 - '@emotion/utils@1.4.0': {} + '@emotion/utils@1.4.1': {} '@emotion/weak-memoize@0.4.0': {} @@ -11700,12 +11741,12 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/eslintrc@2.1.4': dependencies: @@ -11713,7 +11754,7 @@ snapshots: debug: 4.3.7(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -11744,32 +11785,32 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@floating-ui/core@1.6.0': + '@floating-ui/core@1.6.8': dependencies: - '@floating-ui/utils': 0.2.1 + '@floating-ui/utils': 0.2.8 - '@floating-ui/dom@1.6.1': + '@floating-ui/dom@1.6.12': dependencies: - '@floating-ui/core': 1.6.0 - '@floating-ui/utils': 0.2.1 + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 - '@floating-ui/react-dom@2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.6.1 + '@floating-ui/dom': 1.6.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.1': {} + '@floating-ui/utils@0.2.8': {} '@gitbeaker/core@38.12.1': dependencies: '@gitbeaker/requester-utils': 38.12.1 - qs: 6.13.0 + qs: 6.13.1 xcase: 2.0.1 '@gitbeaker/requester-utils@38.12.1': dependencies: - qs: 6.13.0 + qs: 6.13.1 xcase: 2.0.1 '@gitbeaker/rest@38.12.1': @@ -11779,7 +11820,7 @@ snapshots: '@googleapis/sheets@9.3.1(encoding@0.1.13)': dependencies: - googleapis-common: 7.0.1(encoding@0.1.13) + googleapis-common: 7.2.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color @@ -11864,7 +11905,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.2.0 + '@emnapi/runtime': 1.3.1 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -11930,11 +11971,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.1': {} + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.5': + '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 @@ -11943,15 +11984,15 @@ snapshots: '@jridgewell/trace-mapping@0.3.25': dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@lerna/create@8.1.9(@swc/core@1.7.35(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13)(typescript@5.6.3)': + '@lerna/create@8.1.9(@swc/core@1.9.2(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13)(typescript@5.6.3)': dependencies: '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 - '@nx/devkit': 17.3.0(nx@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5))) + '@nx/devkit': 20.1.2(nx@20.1.2(@swc/core@1.9.2(@swc/helpers@0.5.5))) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) aproba: 2.0.0 @@ -11990,7 +12031,7 @@ snapshots: npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-registry-fetch: 17.1.0 - nx: 17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)) + nx: 20.1.2(@swc/core@1.9.2(@swc/helpers@0.5.5)) p-map: 4.0.0 p-map-series: 2.1.0 p-queue: 6.6.2 @@ -12029,7 +12070,7 @@ snapshots: - supports-color - typescript - '@mswjs/interceptors@0.37.0': + '@mswjs/interceptors@0.37.1': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -12041,8 +12082,8 @@ snapshots: '@mui/base@5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@floating-ui/react-dom': 2.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.15(@types/react@18.3.12) + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) '@popperjs/core': 2.11.8 clsx: 2.1.1 @@ -12054,7 +12095,7 @@ snapshots: '@mui/core-downloads-tracker@5.16.7': {} - '@mui/docs@6.1.7(lo7si22o2g7ctheuyy4cps3nhe)': + '@mui/docs@6.1.7(p7di5eu332gvy6ked2na4aezjm)': dependencies: '@babel/runtime': 7.26.0 '@mui/base': 5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12066,7 +12107,7 @@ snapshots: clipboard-copy: 4.0.1 clsx: 2.1.1 csstype: 3.1.3 - next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.18(@babel/core@7.26.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -12132,7 +12173,7 @@ snapshots: jsdom: 24.1.3 lodash: 4.17.21 mocha: 10.8.2 - playwright: 1.49.0 + playwright: 1.44.1 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12152,7 +12193,7 @@ snapshots: '@mui/base': 5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/core-downloads-tracker': 5.16.7 '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) - '@mui/types': 7.2.15(@types/react@18.3.12) + '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) clsx: 2.1.1 prop-types: 15.8.1 @@ -12169,7 +12210,7 @@ snapshots: '@mui/base': 5.0.0-beta.40(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) - '@mui/types': 7.2.15(@types/react@18.3.12) + '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) clsx: 2.1.1 prop-types: 15.8.1 @@ -12180,11 +12221,11 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 - '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@mui/material-nextjs@5.16.6(@emotion/cache@11.13.1)(@emotion/server@11.11.0)(@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 '@mui/material': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next: 14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.18(@babel/core@7.26.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 optionalDependencies: '@emotion/cache': 11.13.1 @@ -12196,7 +12237,7 @@ snapshots: '@babel/runtime': 7.26.0 '@mui/core-downloads-tracker': 5.16.7 '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) - '@mui/types': 7.2.15(@types/react@18.3.12) + '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.11 @@ -12218,7 +12259,7 @@ snapshots: '@netlify/functions': 2.8.2 '@slack/bolt': 4.1.0 execa: 9.5.1 - google-auth-library: 9.14.2(encoding@0.1.13) + google-auth-library: 9.15.0(encoding@0.1.13) transitivePeerDependencies: - bufferutil - debug @@ -12251,7 +12292,7 @@ snapshots: '@babel/runtime': 7.26.0 '@emotion/hash': 0.9.2 '@mui/private-theming': 5.16.6(@types/react@18.3.12)(react@18.3.1) - '@mui/types': 7.2.15(@types/react@18.3.12) + '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) clsx: 2.1.1 csstype: 3.1.3 @@ -12274,7 +12315,7 @@ snapshots: '@babel/runtime': 7.26.0 '@mui/private-theming': 5.16.6(@types/react@18.3.12)(react@18.3.1) '@mui/styled-engine': 5.16.6(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(react@18.3.1) - '@mui/types': 7.2.15(@types/react@18.3.12) + '@mui/types': 7.2.19(@types/react@18.3.12) '@mui/utils': 5.16.6(@types/react@18.3.12)(react@18.3.1) clsx: 2.1.1 csstype: 3.1.3 @@ -12285,14 +12326,14 @@ snapshots: '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) '@types/react': 18.3.12 - '@mui/types@7.2.15(@types/react@18.3.12)': + '@mui/types@7.2.19(@types/react@18.3.12)': optionalDependencies: '@types/react': 18.3.12 '@mui/utils@5.16.6(@types/react@18.3.12)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 - '@mui/types': 7.2.15(@types/react@18.3.12) + '@mui/types': 7.2.19(@types/react@18.3.12) '@types/prop-types': 15.7.13 clsx: 2.1.1 prop-types: 15.8.1 @@ -12301,6 +12342,12 @@ snapshots: optionalDependencies: '@types/react': 18.3.12 + '@napi-rs/wasm-runtime@0.2.4': + dependencies: + '@emnapi/core': 1.3.1 + '@emnapi/runtime': 1.3.1 + '@tybys/wasm-util': 0.9.0 + '@netlify/functions@2.8.2': dependencies: '@netlify/serverless-functions-api': 1.26.1 @@ -12358,15 +12405,15 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.0 + fastq: 1.17.1 - '@npmcli/agent@2.2.0': + '@npmcli/agent@2.2.2': dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 10.4.3 - socks-proxy-agent: 8.0.2 + socks-proxy-agent: 8.0.4 transitivePeerDependencies: - supports-color @@ -12384,24 +12431,24 @@ snapshots: '@npmcli/redact': 2.0.1 '@npmcli/run-script': 8.1.0 bin-links: 4.0.4 - cacache: 18.0.3 + cacache: 18.0.4 common-ancestor-path: 1.0.1 hosted-git-info: 7.0.2 json-parse-even-better-errors: 3.0.2 json-stringify-nice: 1.1.4 lru-cache: 10.4.3 - minimatch: 9.0.4 + minimatch: 9.0.5 nopt: 7.2.1 npm-install-checks: 6.3.0 npm-package-arg: 11.0.2 - npm-pick-manifest: 9.0.1 + npm-pick-manifest: 9.1.0 npm-registry-fetch: 17.1.0 pacote: 18.0.6 parse-conflict-json: 3.0.1 proc-log: 4.2.0 proggy: 2.0.0 promise-all-reject-late: 1.0.1 - promise-call-limit: 3.0.1 + promise-call-limit: 3.0.2 read-package-json-fast: 3.0.2 semver: 7.6.3 ssri: 10.0.6 @@ -12415,12 +12462,13 @@ snapshots: dependencies: semver: 7.6.3 - '@npmcli/git@5.0.4': + '@npmcli/git@5.0.8': dependencies: - '@npmcli/promise-spawn': 7.0.1 + '@npmcli/promise-spawn': 7.0.2 + ini: 4.1.3 lru-cache: 10.4.3 - npm-pick-manifest: 9.0.1 - proc-log: 3.0.0 + npm-pick-manifest: 9.1.0 + proc-log: 4.2.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 semver: 7.6.3 @@ -12430,19 +12478,19 @@ snapshots: '@npmcli/installed-package-contents@2.1.0': dependencies: - npm-bundled: 3.0.0 + npm-bundled: 3.0.1 npm-normalize-package-bin: 3.0.1 '@npmcli/map-workspaces@3.0.6': dependencies: '@npmcli/name-from-folder': 2.0.0 glob: 10.4.5 - minimatch: 9.0.4 + minimatch: 9.0.5 read-package-json-fast: 3.0.2 '@npmcli/metavuln-calculator@7.1.1': dependencies: - cacache: 18.0.3 + cacache: 18.0.4 json-parse-even-better-errors: 3.0.2 pacote: 18.0.6 proc-log: 4.2.0 @@ -12457,7 +12505,7 @@ snapshots: '@npmcli/package-json@5.2.0': dependencies: - '@npmcli/git': 5.0.4 + '@npmcli/git': 5.0.8 glob: 10.4.5 hosted-git-info: 7.0.2 json-parse-even-better-errors: 3.0.2 @@ -12467,13 +12515,13 @@ snapshots: transitivePeerDependencies: - bluebird - '@npmcli/promise-spawn@7.0.1': + '@npmcli/promise-spawn@7.0.2': dependencies: which: 4.0.0 '@npmcli/query@3.1.0': dependencies: - postcss-selector-parser: 6.1.0 + postcss-selector-parser: 6.1.2 '@npmcli/redact@2.0.1': {} @@ -12481,69 +12529,54 @@ snapshots: dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/package-json': 5.2.0 - '@npmcli/promise-spawn': 7.0.1 - node-gyp: 10.0.1 + '@npmcli/promise-spawn': 7.0.2 + node-gyp: 10.2.0 proc-log: 4.2.0 which: 4.0.0 transitivePeerDependencies: - bluebird - supports-color - '@nrwl/devkit@17.3.0(nx@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)))': - dependencies: - '@nx/devkit': 17.3.0(nx@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5))) - transitivePeerDependencies: - - nx - - '@nrwl/tao@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5))': + '@nx/devkit@20.1.2(nx@20.1.2(@swc/core@1.9.2(@swc/helpers@0.5.5)))': dependencies: - nx: 17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)) - tslib: 2.6.2 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - - '@nx/devkit@17.3.0(nx@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)))': - dependencies: - '@nrwl/devkit': 17.3.0(nx@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5))) - ejs: 3.1.9 + ejs: 3.1.10 enquirer: 2.3.6 - ignore: 5.3.1 - nx: 17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)) - semver: 7.5.3 + ignore: 5.3.2 + minimatch: 9.0.3 + nx: 20.1.2(@swc/core@1.9.2(@swc/helpers@0.5.5)) + semver: 7.6.3 tmp: 0.2.3 - tslib: 2.6.2 + tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/nx-darwin-arm64@17.3.0': + '@nx/nx-darwin-arm64@20.1.2': optional: true - '@nx/nx-darwin-x64@17.3.0': + '@nx/nx-darwin-x64@20.1.2': optional: true - '@nx/nx-freebsd-x64@17.3.0': + '@nx/nx-freebsd-x64@20.1.2': optional: true - '@nx/nx-linux-arm-gnueabihf@17.3.0': + '@nx/nx-linux-arm-gnueabihf@20.1.2': optional: true - '@nx/nx-linux-arm64-gnu@17.3.0': + '@nx/nx-linux-arm64-gnu@20.1.2': optional: true - '@nx/nx-linux-arm64-musl@17.3.0': + '@nx/nx-linux-arm64-musl@20.1.2': optional: true - '@nx/nx-linux-x64-gnu@17.3.0': + '@nx/nx-linux-x64-gnu@20.1.2': optional: true - '@nx/nx-linux-x64-musl@17.3.0': + '@nx/nx-linux-x64-musl@20.1.2': optional: true - '@nx/nx-win32-arm64-msvc@17.3.0': + '@nx/nx-win32-arm64-msvc@20.1.2': optional: true - '@nx/nx-win32-x64-msvc@17.3.0': + '@nx/nx-win32-x64-msvc@20.1.2': optional: true '@octokit/auth-token@2.5.0': @@ -12586,7 +12619,7 @@ snapshots: '@octokit/graphql': 7.1.0 '@octokit/request': 8.4.0 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 @@ -12594,15 +12627,15 @@ snapshots: dependencies: '@octokit/auth-token': 5.1.1 '@octokit/graphql': 8.1.1 - '@octokit/request': 9.1.1 - '@octokit/request-error': 6.1.1 - '@octokit/types': 13.5.0 + '@octokit/request': 9.1.3 + '@octokit/request-error': 6.1.5 + '@octokit/types': 13.6.1 before-after-hook: 3.0.2 universal-user-agent: 7.0.2 '@octokit/endpoint@10.1.1': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 7.0.2 '@octokit/endpoint@6.0.12': @@ -12619,7 +12652,7 @@ snapshots: '@octokit/endpoint@9.0.5': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 6.0.1 '@octokit/graphql@4.8.0(encoding@0.1.13)': @@ -12641,13 +12674,13 @@ snapshots: '@octokit/graphql@7.1.0': dependencies: '@octokit/request': 8.4.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 6.0.1 '@octokit/graphql@8.1.1': dependencies: - '@octokit/request': 9.1.1 - '@octokit/types': 13.5.0 + '@octokit/request': 9.1.3 + '@octokit/types': 13.6.1 universal-user-agent: 7.0.2 '@octokit/openapi-types@12.11.0': {} @@ -12660,10 +12693,10 @@ snapshots: '@octokit/plugin-enterprise-rest@6.0.1': {} - '@octokit/plugin-paginate-rest@11.3.1(@octokit/core@6.1.2)': + '@octokit/plugin-paginate-rest@11.3.5(@octokit/core@6.1.2)': dependencies: '@octokit/core': 6.1.2 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 '@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0(encoding@0.1.13))': dependencies: @@ -12698,10 +12731,10 @@ snapshots: '@octokit/core': 5.2.0 '@octokit/types': 12.6.0 - '@octokit/plugin-rest-endpoint-methods@13.2.2(@octokit/core@6.1.2)': + '@octokit/plugin-rest-endpoint-methods@13.2.6(@octokit/core@6.1.2)': dependencies: '@octokit/core': 6.1.2 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 '@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0(encoding@0.1.13))': dependencies: @@ -12717,8 +12750,8 @@ snapshots: '@octokit/plugin-retry@7.1.2(@octokit/core@4.2.4(encoding@0.1.13))': dependencies: '@octokit/core': 4.2.4(encoding@0.1.13) - '@octokit/request-error': 6.1.1 - '@octokit/types': 13.5.0 + '@octokit/request-error': 6.1.5 + '@octokit/types': 13.6.1 bottleneck: 2.19.5 '@octokit/request-error@2.1.0': @@ -12735,13 +12768,13 @@ snapshots: '@octokit/request-error@5.1.0': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 deprecation: 2.3.1 once: 1.4.0 - '@octokit/request-error@6.1.1': + '@octokit/request-error@6.1.5': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 '@octokit/request@5.6.3(encoding@0.1.13)': dependencies: @@ -12760,7 +12793,7 @@ snapshots: '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 is-plain-object: 5.0.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.6.7(encoding@0.1.13) universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -12769,14 +12802,14 @@ snapshots: dependencies: '@octokit/endpoint': 9.0.5 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 6.0.1 - '@octokit/request@9.1.1': + '@octokit/request@9.1.3': dependencies: '@octokit/endpoint': 10.1.1 - '@octokit/request-error': 6.1.1 - '@octokit/types': 13.5.0 + '@octokit/request-error': 6.1.5 + '@octokit/types': 13.6.1 universal-user-agent: 7.0.2 '@octokit/rest@18.12.0(encoding@0.1.13)': @@ -12800,9 +12833,9 @@ snapshots: '@octokit/rest@21.0.2': dependencies: '@octokit/core': 6.1.2 - '@octokit/plugin-paginate-rest': 11.3.1(@octokit/core@6.1.2) + '@octokit/plugin-paginate-rest': 11.3.5(@octokit/core@6.1.2) '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.2) - '@octokit/plugin-rest-endpoint-methods': 13.2.2(@octokit/core@6.1.2) + '@octokit/plugin-rest-endpoint-methods': 13.2.6(@octokit/core@6.1.2) '@octokit/tsconfig@1.0.2': {} @@ -12814,7 +12847,7 @@ snapshots: dependencies: '@octokit/openapi-types': 20.0.0 - '@octokit/types@13.5.0': + '@octokit/types@13.6.1': dependencies: '@octokit/openapi-types': 22.2.0 @@ -12835,19 +12868,16 @@ snapshots: '@open-draft/until@2.1.0': {} - '@opentelemetry/api@1.8.0': - optional: true - '@pkgjs/parseargs@0.11.0': optional: true '@pkgr/core@0.1.1': {} - '@playwright/test@1.49.0': + '@playwright/test@1.44.1': dependencies: - playwright: 1.49.0 + playwright: 1.44.1 - '@polka/url@1.0.0-next.24': {} + '@polka/url@1.0.0-next.28': {} '@popperjs/core@2.11.8': {} @@ -12883,89 +12913,97 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@remix-run/router@1.20.0': {} + '@remix-run/router@1.21.0': {} + + '@rollup/rollup-android-arm-eabi@4.27.3': + optional: true + + '@rollup/rollup-android-arm64@4.27.3': + optional: true - '@rollup/rollup-android-arm-eabi@4.18.1': + '@rollup/rollup-darwin-arm64@4.27.3': optional: true - '@rollup/rollup-android-arm64@4.18.1': + '@rollup/rollup-darwin-x64@4.27.3': optional: true - '@rollup/rollup-darwin-arm64@4.18.1': + '@rollup/rollup-freebsd-arm64@4.27.3': optional: true - '@rollup/rollup-darwin-x64@4.18.1': + '@rollup/rollup-freebsd-x64@4.27.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.1': + '@rollup/rollup-linux-arm-gnueabihf@4.27.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.1': + '@rollup/rollup-linux-arm-musleabihf@4.27.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.1': + '@rollup/rollup-linux-arm64-gnu@4.27.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.18.1': + '@rollup/rollup-linux-arm64-musl@4.27.3': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.1': + '@rollup/rollup-linux-riscv64-gnu@4.27.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.1': + '@rollup/rollup-linux-s390x-gnu@4.27.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.18.1': + '@rollup/rollup-linux-x64-gnu@4.27.3': optional: true - '@rollup/rollup-linux-x64-musl@4.18.1': + '@rollup/rollup-linux-x64-musl@4.27.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.1': + '@rollup/rollup-win32-arm64-msvc@4.27.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.1': + '@rollup/rollup-win32-ia32-msvc@4.27.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.18.1': + '@rollup/rollup-win32-x64-msvc@4.27.3': optional: true '@rtsao/scc@1.1.0': {} '@sec-ant/readable-stream@0.4.1': {} - '@sigstore/bundle@2.1.1': + '@sigstore/bundle@2.3.2': dependencies: - '@sigstore/protobuf-specs': 0.2.1 + '@sigstore/protobuf-specs': 0.3.2 - '@sigstore/core@0.2.0': {} + '@sigstore/core@1.1.0': {} - '@sigstore/protobuf-specs@0.2.1': {} + '@sigstore/protobuf-specs@0.3.2': {} - '@sigstore/sign@2.2.1': + '@sigstore/sign@2.3.2': dependencies: - '@sigstore/bundle': 2.1.1 - '@sigstore/core': 0.2.0 - '@sigstore/protobuf-specs': 0.2.1 - make-fetch-happen: 13.0.0 + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + make-fetch-happen: 13.0.1 + proc-log: 4.2.0 + promise-retry: 2.0.1 transitivePeerDependencies: - supports-color - '@sigstore/tuf@2.3.0': + '@sigstore/tuf@2.3.4': dependencies: - '@sigstore/protobuf-specs': 0.2.1 - tuf-js: 2.2.0 + '@sigstore/protobuf-specs': 0.3.2 + tuf-js: 2.2.1 transitivePeerDependencies: - supports-color - '@sigstore/verify@0.1.0': + '@sigstore/verify@1.2.1': dependencies: - '@sigstore/bundle': 2.1.1 - '@sigstore/core': 0.2.0 - '@sigstore/protobuf-specs': 0.2.1 + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 '@sinclair/typebox@0.27.8': {} @@ -12994,7 +13032,7 @@ snapshots: '@slack/logger': 4.0.0 '@slack/oauth': 3.0.1 '@slack/socket-mode': 2.0.2 - '@slack/types': 2.13.0 + '@slack/types': 2.14.0 '@slack/web-api': 7.7.0 '@types/express': 4.17.21 axios: 1.7.7(debug@4.3.7) @@ -13036,17 +13074,17 @@ snapshots: - debug - utf-8-validate - '@slack/types@2.13.0': {} + '@slack/types@2.14.0': {} '@slack/web-api@7.7.0': dependencies: '@slack/logger': 4.0.0 - '@slack/types': 2.13.0 + '@slack/types': 2.14.0 '@types/node': 20.17.6 '@types/retry': 0.12.0 axios: 1.7.7(debug@4.3.7) eventemitter3: 5.0.1 - form-data: 4.0.0 + form-data: 4.0.1 is-electron: 2.2.2 is-stream: 2.0.1 p-queue: 6.6.2 @@ -13055,53 +13093,53 @@ snapshots: transitivePeerDependencies: - debug - '@socket.io/component-emitter@3.1.0': {} + '@socket.io/component-emitter@3.1.2': {} - '@swc/core-darwin-arm64@1.7.35': + '@swc/core-darwin-arm64@1.9.2': optional: true - '@swc/core-darwin-x64@1.7.35': + '@swc/core-darwin-x64@1.9.2': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.35': + '@swc/core-linux-arm-gnueabihf@1.9.2': optional: true - '@swc/core-linux-arm64-gnu@1.7.35': + '@swc/core-linux-arm64-gnu@1.9.2': optional: true - '@swc/core-linux-arm64-musl@1.7.35': + '@swc/core-linux-arm64-musl@1.9.2': optional: true - '@swc/core-linux-x64-gnu@1.7.35': + '@swc/core-linux-x64-gnu@1.9.2': optional: true - '@swc/core-linux-x64-musl@1.7.35': + '@swc/core-linux-x64-musl@1.9.2': optional: true - '@swc/core-win32-arm64-msvc@1.7.35': + '@swc/core-win32-arm64-msvc@1.9.2': optional: true - '@swc/core-win32-ia32-msvc@1.7.35': + '@swc/core-win32-ia32-msvc@1.9.2': optional: true - '@swc/core-win32-x64-msvc@1.7.35': + '@swc/core-win32-x64-msvc@1.9.2': optional: true - '@swc/core@1.7.35(@swc/helpers@0.5.5)': + '@swc/core@1.9.2(@swc/helpers@0.5.5)': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.13 + '@swc/types': 0.1.15 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.35 - '@swc/core-darwin-x64': 1.7.35 - '@swc/core-linux-arm-gnueabihf': 1.7.35 - '@swc/core-linux-arm64-gnu': 1.7.35 - '@swc/core-linux-arm64-musl': 1.7.35 - '@swc/core-linux-x64-gnu': 1.7.35 - '@swc/core-linux-x64-musl': 1.7.35 - '@swc/core-win32-arm64-msvc': 1.7.35 - '@swc/core-win32-ia32-msvc': 1.7.35 - '@swc/core-win32-x64-msvc': 1.7.35 + '@swc/core-darwin-arm64': 1.9.2 + '@swc/core-darwin-x64': 1.9.2 + '@swc/core-linux-arm-gnueabihf': 1.9.2 + '@swc/core-linux-arm64-gnu': 1.9.2 + '@swc/core-linux-arm64-musl': 1.9.2 + '@swc/core-linux-x64-gnu': 1.9.2 + '@swc/core-linux-x64-musl': 1.9.2 + '@swc/core-win32-arm64-msvc': 1.9.2 + '@swc/core-win32-ia32-msvc': 1.9.2 + '@swc/core-win32-x64-msvc': 1.9.2 '@swc/helpers': 0.5.5 '@swc/counter@0.1.3': {} @@ -13109,13 +13147,13 @@ snapshots: '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 - tslib: 2.6.2 + tslib: 2.8.1 - '@swc/types@0.1.13': + '@swc/types@0.1.15': dependencies: '@swc/counter': 0.1.3 - '@tanstack/query-core@5.60.5': {} + '@tanstack/query-core@5.60.6': {} '@testing-library/dom@10.4.0': dependencies: @@ -13130,7 +13168,7 @@ snapshots: '@testing-library/jest-dom@6.6.3': dependencies: - '@adobe/css-tools': 4.4.0 + '@adobe/css-tools': 4.4.1 aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 @@ -13156,10 +13194,14 @@ snapshots: '@tufjs/canonical-json@2.0.0': {} - '@tufjs/models@2.0.0': + '@tufjs/models@2.0.1': dependencies: '@tufjs/canonical-json': 2.0.0 - minimatch: 9.0.4 + minimatch: 9.0.5 + + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 '@types/aria-query@5.0.4': {} @@ -13253,23 +13295,21 @@ snapshots: '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 - '@types/estree@1.0.5': {} - '@types/estree@1.0.6': {} - '@types/express-serve-static-core@4.17.42': + '@types/express-serve-static-core@4.19.6': dependencies: '@types/node': 20.17.6 - '@types/qs': 6.9.11 + '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.42 - '@types/qs': 6.9.11 - '@types/serve-static': 1.15.5 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.17 + '@types/serve-static': 1.15.7 '@types/format-util@1.0.4': {} @@ -13322,8 +13362,6 @@ snapshots: '@types/mime@1.3.5': {} - '@types/mime@3.0.4': {} - '@types/minimatch@3.0.5': {} '@types/minimist@1.2.5': {} @@ -13350,7 +13388,7 @@ snapshots: '@types/prop-types@15.7.13': {} - '@types/qs@6.9.11': {} + '@types/qs@6.9.17': {} '@types/range-parser@1.2.7': {} @@ -13393,11 +13431,11 @@ snapshots: '@types/mime': 1.3.5 '@types/node': 20.17.6 - '@types/serve-static@1.15.5': + '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 '@types/node': 20.17.6 + '@types/send': 0.17.4 '@types/sinon@17.0.3': dependencies: @@ -13417,11 +13455,11 @@ snapshots: '@types/use-sync-external-store@0.0.6': {} - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))': + '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))': dependencies: '@types/node': 20.17.6 tapable: 2.2.1 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13440,7 +13478,7 @@ snapshots: '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) @@ -13448,9 +13486,9 @@ snapshots: '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.1 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -13485,7 +13523,7 @@ snapshots: '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.6.3) debug: 4.3.7(supports-color@8.1.1) eslint: 8.57.1 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -13516,9 +13554,9 @@ snapshots: debug: 4.3.7(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 + minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) + ts-api-utils: 1.4.0(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -13526,7 +13564,7 @@ snapshots: '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 @@ -13541,7 +13579,7 @@ snapshots: '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) @@ -13562,38 +13600,38 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react-swc@3.7.1(@swc/helpers@0.5.5)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': + '@vitejs/plugin-react-swc@3.7.1(@swc/helpers@0.5.5)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))': dependencies: - '@swc/core': 1.7.35(@swc/helpers@0.5.5) - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) + '@swc/core': 1.9.2(@swc/helpers@0.5.5) + vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.3.3(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': + '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))': dependencies: '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) + vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) transitivePeerDependencies: - supports-color - '@vitest/browser@2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5)': + '@vitest/browser@2.1.5(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/mocker': 2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + '@vitest/mocker': 2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) '@vitest/utils': 2.1.5 - magic-string: 0.30.12 + magic-string: 0.30.13 msw: 2.6.5(@types/node@20.17.6)(typescript@5.6.3) sirv: 3.0.0 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0) ws: 8.18.0 optionalDependencies: - playwright: 1.49.0 + playwright: 1.44.1 transitivePeerDependencies: - '@types/node' - bufferutil @@ -13610,14 +13648,14 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.12 + magic-string: 0.30.13 magicast: 0.3.5 std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0) optionalDependencies: - '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5) transitivePeerDependencies: - supports-color @@ -13628,14 +13666,14 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))': + '@vitest/mocker@2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))': dependencies: '@vitest/spy': 2.1.5 estree-walker: 3.0.3 - magic-string: 0.30.12 + magic-string: 0.30.13 optionalDependencies: msw: 2.6.5(@types/node@20.17.6)(typescript@5.6.3) - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) + vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) '@vitest/pretty-format@2.1.5': dependencies: @@ -13649,7 +13687,7 @@ snapshots: '@vitest/snapshot@2.1.5': dependencies: '@vitest/pretty-format': 2.1.5 - magic-string: 0.30.12 + magic-string: 0.30.13 pathe: 1.1.2 '@vitest/spy@2.1.5': @@ -13660,12 +13698,12 @@ snapshots: dependencies: '@vitest/utils': 2.1.5 fflate: 0.8.2 - flatted: 3.3.1 + flatted: 3.3.2 pathe: 1.1.2 sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0) '@vitest/utils@2.1.5': dependencies: @@ -13673,95 +13711,95 @@ snapshots: loupe: 3.1.2 tinyrainbow: 1.2.0 - '@webassemblyjs/ast@1.12.1': + '@webassemblyjs/ast@1.14.1': dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/helper-api-error@1.11.6': {} + '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-buffer@1.12.1': {} + '@webassemblyjs/helper-buffer@1.14.1': {} - '@webassemblyjs/helper-numbers@1.11.6': + '@webassemblyjs/helper-numbers@1.13.2': dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@webassemblyjs/helper-wasm-section@1.12.1': + '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/ieee754@1.11.6': + '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.6': + '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.6': {} + '@webassemblyjs/utf8@1.13.2': {} - '@webassemblyjs/wasm-edit@1.12.1': + '@webassemblyjs/wasm-edit@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 - '@webassemblyjs/wasm-gen@1.12.1': + '@webassemblyjs/wasm-gen@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-opt@1.12.1': + '@webassemblyjs/wasm-opt@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wasm-parser@1.12.1': + '@webassemblyjs/wasm-parser@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wast-printer@1.12.1': + '@webassemblyjs/wast-printer@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1)': dependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) '@xtuc/ieee754@1.2.0': {} @@ -13770,14 +13808,14 @@ snapshots: '@yarnpkg/lockfile@1.1.0': {} - '@yarnpkg/parsers@3.0.0-rc.46': + '@yarnpkg/parsers@3.0.2': dependencies: js-yaml: 3.14.1 - tslib: 2.6.2 + tslib: 2.8.1 '@zeit/schemas@2.36.0': {} - '@zkochan/js-yaml@0.0.6': + '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 @@ -13788,8 +13826,6 @@ snapshots: abbrev@1.0.9: {} - abbrev@1.1.1: {} - abbrev@2.0.0: {} accepts@1.3.8: @@ -13806,7 +13842,9 @@ snapshots: dependencies: acorn: 8.14.0 - acorn-walk@8.3.2: {} + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.0 acorn@8.14.0: {} @@ -13818,7 +13856,7 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.0: + agent-base@7.1.1: dependencies: debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: @@ -13834,17 +13872,17 @@ snapshots: clean-stack: 4.2.0 indent-string: 5.0.0 - ajv-formats@2.1.1(ajv@8.12.0): + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: - ajv: 8.12.0 + ajv: 8.17.1 ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.12.0): + ajv-keywords@5.1.0(ajv@8.17.1): dependencies: - ajv: 8.12.0 + ajv: 8.17.1 fast-deep-equal: 3.1.3 ajv@6.12.6: @@ -13861,21 +13899,28 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 - algoliasearch@5.12.0: - dependencies: - '@algolia/client-abtesting': 5.12.0 - '@algolia/client-analytics': 5.12.0 - '@algolia/client-common': 5.12.0 - '@algolia/client-insights': 5.12.0 - '@algolia/client-personalization': 5.12.0 - '@algolia/client-query-suggestions': 5.12.0 - '@algolia/client-search': 5.12.0 - '@algolia/ingestion': 1.12.0 - '@algolia/monitoring': 1.12.0 - '@algolia/recommend': 5.12.0 - '@algolia/requester-browser-xhr': 5.12.0 - '@algolia/requester-fetch': 5.12.0 - '@algolia/requester-node-http': 5.12.0 + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + algoliasearch@5.15.0: + dependencies: + '@algolia/client-abtesting': 5.15.0 + '@algolia/client-analytics': 5.15.0 + '@algolia/client-common': 5.15.0 + '@algolia/client-insights': 5.15.0 + '@algolia/client-personalization': 5.15.0 + '@algolia/client-query-suggestions': 5.15.0 + '@algolia/client-search': 5.15.0 + '@algolia/ingestion': 1.15.0 + '@algolia/monitoring': 1.15.0 + '@algolia/recommend': 5.15.0 + '@algolia/requester-browser-xhr': 5.15.0 + '@algolia/requester-fetch': 5.15.0 + '@algolia/requester-node-http': 5.15.0 amdefine@1.0.1: optional: true @@ -13892,7 +13937,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} + ansi-regex@6.1.0: {} ansi-styles@3.2.1: dependencies: @@ -13950,7 +13995,7 @@ snapshots: archiver@5.3.2: dependencies: archiver-utils: 2.1.0 - async: 3.2.5 + async: 3.2.6 buffer-crc32: 0.2.13 readable-stream: 3.6.2 readdir-glob: 1.1.3 @@ -13990,7 +14035,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 @@ -14005,7 +14050,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -14014,7 +14059,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 @@ -14023,29 +14068,31 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-shim-unscopables: 1.0.2 - array.prototype.reduce@1.0.6: + array.prototype.reduce@1.0.7: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-array-method-boxes-properly: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 is-string: 1.0.7 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 @@ -14054,7 +14101,7 @@ snapshots: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 @@ -14074,11 +14121,11 @@ snapshots: ast-types@0.14.2: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 ast-types@0.16.1: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 async-retry@1.2.3: dependencies: @@ -14086,14 +14133,14 @@ snapshots: async@1.5.2: {} - async@3.2.5: {} + async@3.2.6: {} asynckit@0.4.0: {} autoprefixer@10.4.20(postcss@8.4.49): dependencies: - browserslist: 4.24.0 - caniuse-lite: 1.0.30001667 + browserslist: 4.24.2 + caniuse-lite: 1.0.30001680 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -14108,8 +14155,8 @@ snapshots: axios@1.7.7(debug@4.3.7): dependencies: - follow-redirects: 1.15.6(debug@4.3.7) - form-data: 4.0.0 + follow-redirects: 1.15.9(debug@4.3.7) + form-data: 4.0.1 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -14121,14 +14168,14 @@ snapshots: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) babel-plugin-istanbul@7.0.0: dependencies: '@babel/helper-plugin-utils': 7.25.9 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 6.0.2 + istanbul-lib-instrument: 6.0.3 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color @@ -14141,7 +14188,7 @@ snapshots: babel-plugin-module-resolver@5.0.2: dependencies: - find-babel-config: 2.1.1 + find-babel-config: 2.1.2 glob: 9.3.5 pkg-up: 3.1.0 reselect: 4.1.8 @@ -14156,11 +14203,11 @@ snapshots: lodash: 4.17.21 object-hash: 2.2.0 - babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.26.0): + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): dependencies: '@babel/compat-data': 7.26.2 '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -14168,15 +14215,15 @@ snapshots: babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) - core-js-compat: 3.38.1 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + core-js-compat: 3.39.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.26.0): + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) transitivePeerDependencies: - supports-color @@ -14226,7 +14273,7 @@ snapshots: read-cmd-shim: 4.0.0 write-file-atomic: 5.0.1 - binary-extensions@2.2.0: {} + binary-extensions@2.3.0: {} binary@0.3.0: dependencies: @@ -14281,7 +14328,7 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.3.0 + chalk: 5.0.1 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -14303,12 +14350,12 @@ snapshots: browser-stdout@1.3.1: {} - browserslist@4.24.0: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001667 - electron-to-chromium: 1.5.33 + caniuse-lite: 1.0.30001680 + electron-to-chromium: 1.5.63 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.24.0) + update-browserslist-db: 1.1.1(browserslist@4.24.2) buffer-crc32@0.2.13: {} @@ -14348,13 +14395,13 @@ snapshots: istanbul-reports: 3.1.7 rimraf: 3.0.2 test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 + v8-to-istanbul: 9.3.0 yargs: 16.2.0 yargs-parser: 20.2.9 cac@6.7.14: {} - cacache@18.0.3: + cacache@18.0.4: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 @@ -14389,7 +14436,7 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 + tslib: 2.8.1 camelcase-keys@6.2.2: dependencies: @@ -14405,7 +14452,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001667: {} + caniuse-lite@1.0.30001680: {} chai-dom@1.12.0(chai@4.5.0): dependencies: @@ -14415,7 +14462,7 @@ snapshots: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 @@ -14488,11 +14535,11 @@ snapshots: chownr@2.0.0: {} - chrome-trace-event@1.0.3: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} - ci-info@4.0.0: {} + ci-info@4.1.0: {} clean-css@5.3.3: dependencies: @@ -14635,7 +14682,7 @@ snapshots: dependencies: schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) compression@1.7.4: dependencies: @@ -14752,19 +14799,17 @@ snapshots: cookie-signature@1.2.2: {} - cookie@0.4.2: {} - cookie@0.7.1: {} cookie@0.7.2: {} - core-js-compat@3.38.1: + core-js-compat@3.39.0: dependencies: - browserslist: 4.24.0 + browserslist: 4.24.2 core-js@2.6.12: {} - core-js@3.35.1: {} + core-js@3.39.0: {} core-util-is@1.0.3: {} @@ -14821,14 +14866,14 @@ snapshots: cross-env@7.0.3: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 cross-spawn@4.0.2: dependencies: lru-cache: 4.1.5 which: 1.3.1 - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -14861,11 +14906,11 @@ snapshots: cssesc@3.0.0: {} - cssjanus@2.1.0: {} + cssjanus@2.3.0: {} - cssstyle@4.0.1: + cssstyle@4.1.0: dependencies: - rrweb-cssom: 0.6.0 + rrweb-cssom: 0.7.1 csstype@3.1.3: {} @@ -14923,7 +14968,7 @@ snapshots: async-retry: 1.2.3 chalk: 2.4.2 commander: 2.20.3 - core-js: 3.35.1 + core-js: 3.39.0 debug: 4.3.7(supports-color@8.1.1) fast-json-patch: 3.1.1 get-stdin: 6.0.0 @@ -14947,7 +14992,7 @@ snapshots: p-limit: 2.3.0 parse-diff: 0.7.1 parse-git-config: 2.0.3 - parse-github-url: 1.0.2 + parse-github-url: 1.0.3 parse-link-header: 2.0.0 pinpoint: 1.1.0 prettyjson: 1.2.5 @@ -15045,7 +15090,7 @@ snapshots: optionalDependencies: babel-plugin-macros: 3.1.0 - deep-eql@4.1.3: + deep-eql@4.1.4: dependencies: type-detect: 4.1.0 @@ -15137,7 +15182,7 @@ snapshots: dom-serialize@2.2.1: dependencies: custom-event: 1.0.1 - ent: 2.2.0 + ent: 2.2.1 extend: 3.0.2 void-elements: 2.0.1 @@ -15162,15 +15207,17 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.8.1 dot-prop@5.3.0: dependencies: is-obj: 2.0.0 - dotenv-expand@10.0.0: {} + dotenv-expand@11.0.7: + dependencies: + dotenv: 16.4.5 - dotenv@16.3.2: {} + dotenv@16.4.5: {} duplexer2@0.1.4: dependencies: @@ -15186,11 +15233,11 @@ snapshots: ee-first@1.1.1: {} - ejs@3.1.9: + ejs@3.1.10: dependencies: - jake: 10.8.7 + jake: 10.9.2 - electron-to-chromium@1.5.33: {} + electron-to-chromium@1.5.63: {} emoji-regex@8.0.0: {} @@ -15211,20 +15258,20 @@ snapshots: dependencies: once: 1.4.0 - engine.io-parser@5.2.1: {} + engine.io-parser@5.2.3: {} - engine.io@6.5.4: + engine.io@6.6.2: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 '@types/node': 20.17.6 accepts: 1.3.8 base64id: 2.0.0 - cookie: 0.4.2 + cookie: 0.7.2 cors: 2.8.5 debug: 4.3.7(supports-color@8.1.1) - engine.io-parser: 5.2.1 - ws: 8.11.0 + engine.io-parser: 5.2.3 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - supports-color @@ -15245,7 +15292,9 @@ snapshots: dependencies: ansi-colors: 4.1.3 - ent@2.2.0: {} + ent@2.2.1: + dependencies: + punycode: 1.4.1 entities@2.2.0: {} @@ -15255,13 +15304,15 @@ snapshots: envinfo@7.13.0: {} + envinfo@7.14.0: {} + err-code@2.0.3: {} error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.3: + es-abstract@1.23.5: dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -15294,10 +15345,10 @@ snapshots: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 string.prototype.trim: 1.2.9 @@ -15322,7 +15373,7 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-set-tostringtag: 2.0.3 function-bind: 1.1.2 @@ -15413,7 +15464,7 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 - escalade@3.1.2: {} + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -15486,7 +15537,7 @@ snapshots: lodash: 4.17.21 resolve: 2.0.0-next.5 semver: 5.7.2 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) transitivePeerDependencies: - supports-color @@ -15546,12 +15597,12 @@ snapshots: debug: 4.3.7(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint: 8.57.1 - espree: 10.1.0 + espree: 10.3.0 esquery: 1.6.0 - parse-imports: 2.1.1 + parse-imports: 2.2.1 semver: 7.6.3 spdx-expression-parse: 4.0.0 - synckit: 0.9.1 + synckit: 0.9.2 transitivePeerDependencies: - supports-color @@ -15586,7 +15637,7 @@ snapshots: eslint: 8.57.1 prettier: 3.3.3 prettier-linter-helpers: 1.0.0 - synckit: 0.9.1 + synckit: 0.9.2 optionalDependencies: '@types/eslint': 8.56.12 eslint-config-prettier: 9.1.0(eslint@8.57.1) @@ -15599,7 +15650,7 @@ snapshots: eslint: 8.57.1 hermes-parser: 0.20.1 zod: 3.23.8 - zod-validation-error: 3.3.0(zod@3.23.8) + zod-validation-error: 3.4.0(zod@3.23.8) transitivePeerDependencies: - supports-color @@ -15656,12 +15707,12 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.0.0: {} + eslint-visitor-keys@4.2.0: {} eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 '@humanwhocodes/config-array': 0.13.0 @@ -15670,7 +15721,7 @@ snapshots: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -15685,7 +15736,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -15695,17 +15746,17 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color - espree@10.1.0: + espree@10.3.0: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.0.0 + eslint-visitor-keys: 4.2.0 espree@9.6.1: dependencies: @@ -15767,10 +15818,10 @@ snapshots: execa@5.0.0: dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 + cross-spawn: 7.0.6 + get-stream: 6.0.0 human-signals: 2.1.0 - is-stream: 2.0.1 + is-stream: 2.0.0 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 @@ -15779,7 +15830,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -15792,17 +15843,17 @@ snapshots: execa@9.5.1: dependencies: '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 figures: 6.1.0 get-stream: 9.0.1 human-signals: 8.0.0 is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 6.0.0 - pretty-ms: 9.0.0 + pretty-ms: 9.2.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 - yoctocolors: 2.0.2 + yoctocolors: 2.1.1 expand-tilde@2.0.2: dependencies: @@ -15892,9 +15943,11 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-uri@3.0.3: {} + fastest-levenshtein@1.0.16: {} - fastq@1.17.0: + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -15912,7 +15965,7 @@ snapshots: figures@6.1.0: dependencies: - is-unicode-supported: 2.0.0 + is-unicode-supported: 2.1.0 file-entry-cache@6.0.1: dependencies: @@ -15950,10 +16003,9 @@ snapshots: transitivePeerDependencies: - supports-color - find-babel-config@2.1.1: + find-babel-config@2.1.2: dependencies: json5: 2.2.3 - path-exists: 4.0.0 find-cache-dir@2.1.0: dependencies: @@ -15999,17 +16051,17 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 rimraf: 3.0.2 flat@5.0.2: {} - flatted@3.3.1: {} + flatted@3.3.2: {} - flow-parser@0.227.0: {} + flow-parser@0.253.0: {} - follow-redirects@1.15.6(debug@4.3.7): + follow-redirects@1.15.9(debug@4.3.7): optionalDependencies: debug: 4.3.7(supports-color@8.1.1) @@ -16019,15 +16071,15 @@ snapshots: foreground-child@2.0.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 3.0.7 foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.0: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -16045,6 +16097,10 @@ snapshots: fromentries@1.3.2: {} + front-matter@4.0.2: + dependencies: + js-yaml: 3.14.1 + fs-constants@1.0.0: {} fs-exists-sync@0.1.0: {} @@ -16092,24 +16148,25 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} - gaxios@6.1.1(encoding@0.1.13): + gaxios@6.7.1(encoding@0.1.13): dependencies: extend: 3.0.2 https-proxy-agent: 7.0.5 is-stream: 2.0.1 node-fetch: 2.7.0(encoding@0.1.13) + uuid: 9.0.1 transitivePeerDependencies: - encoding - supports-color gcp-metadata@6.1.0(encoding@0.1.13): dependencies: - gaxios: 6.1.1(encoding@0.1.13) + gaxios: 6.7.1(encoding@0.1.13) json-bigint: 1.0.0 transitivePeerDependencies: - encoding @@ -16157,7 +16214,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.5: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -16199,7 +16256,7 @@ snapshots: glob-gitignore@1.0.15: dependencies: glob: 7.2.3 - ignore: 5.3.1 + ignore: 5.3.2 lodash: 4.17.21 make-array: 1.0.5 util.inherits: 1.0.3 @@ -16218,7 +16275,7 @@ snapshots: dependencies: foreground-child: 3.3.0 jackspeak: 3.4.3 - minimatch: 9.0.4 + minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 @@ -16280,7 +16337,7 @@ snapshots: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -16288,7 +16345,7 @@ snapshots: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 4.0.0 @@ -16296,7 +16353,7 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -16310,24 +16367,24 @@ snapshots: transitivePeerDependencies: - supports-color - google-auth-library@9.14.2(encoding@0.1.13): + google-auth-library@9.15.0(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.1.1(encoding@0.1.13) + gaxios: 6.7.1(encoding@0.1.13) gcp-metadata: 6.1.0(encoding@0.1.13) - gtoken: 7.0.1(encoding@0.1.13) + gtoken: 7.1.0(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding - supports-color - googleapis-common@7.0.1(encoding@0.1.13): + googleapis-common@7.2.0(encoding@0.1.13): dependencies: extend: 3.0.2 - gaxios: 6.1.1(encoding@0.1.13) - google-auth-library: 9.14.2(encoding@0.1.13) - qs: 6.13.0 + gaxios: 6.7.1(encoding@0.1.13) + google-auth-library: 9.15.0(encoding@0.1.13) + qs: 6.13.1 url-template: 2.0.8 uuid: 9.0.1 transitivePeerDependencies: @@ -16344,9 +16401,9 @@ snapshots: graphql@16.9.0: {} - gtoken@7.0.1(encoding@0.1.13): + gtoken@7.1.0(encoding@0.1.13): dependencies: - gaxios: 6.1.1(encoding@0.1.13) + gaxios: 6.7.1(encoding@0.1.13) jws: 4.0.0 transitivePeerDependencies: - encoding @@ -16363,7 +16420,7 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.19.3 hard-rejection@2.1.0: {} @@ -16442,7 +16499,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.27.0 + terser: 5.36.0 html-tokenize@2.0.1: dependencies: @@ -16460,7 +16517,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) htmlparser2@6.1.0: dependencies: @@ -16489,7 +16546,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16497,7 +16554,7 @@ snapshots: http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.6(debug@4.3.7) + follow-redirects: 1.15.9(debug@4.3.7) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -16511,7 +16568,7 @@ snapshots: https-proxy-agent@7.0.5: dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -16522,7 +16579,7 @@ snapshots: hyperlinker@1.0.0: {} - hyphenate-style-name@1.0.4: {} + hyphenate-style-name@1.1.0: {} iconv-lite@0.4.24: dependencies: @@ -16538,11 +16595,11 @@ snapshots: ieee754@1.2.1: {} - ignore-walk@6.0.4: + ignore-walk@6.0.5: dependencies: - minimatch: 9.0.4 + minimatch: 9.0.5 - ignore@5.3.1: {} + ignore@5.3.2: {} immediate@3.0.6: {} @@ -16556,6 +16613,11 @@ snapshots: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -16571,11 +16633,13 @@ snapshots: ini@1.3.8: {} + ini@4.1.3: {} + init-package-json@6.0.3: dependencies: '@npmcli/package-json': 5.2.0 npm-package-arg: 11.0.2 - promzard: 1.0.0 + promzard: 1.0.2 read: 3.0.1 semver: 7.6.3 validate-npm-package-license: 3.0.4 @@ -16613,7 +16677,10 @@ snapshots: interpret@3.1.1: {} - ip@2.0.0: {} + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 ipaddr.js@1.9.1: {} @@ -16641,7 +16708,7 @@ snapshots: is-binary-path@2.1.0: dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 is-boolean-object@1.1.2: dependencies: @@ -16694,7 +16761,7 @@ snapshots: is-lambda@1.0.1: {} - is-map@2.0.2: {} + is-map@2.0.3: {} is-negative-zero@2.0.3: {} @@ -16733,7 +16800,7 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 - is-set@2.0.2: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.3: dependencies: @@ -16769,15 +16836,15 @@ snapshots: is-unicode-supported@0.1.0: {} - is-unicode-supported@2.0.0: {} + is-unicode-supported@2.1.0: {} - is-weakmap@2.0.1: {} + is-weakmap@2.0.2: {} is-weakref@1.0.2: dependencies: call-bind: 1.0.7 - is-weakset@2.0.2: + is-weakset@2.0.3: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -16808,7 +16875,7 @@ snapshots: dependencies: append-transform: 2.0.0 - istanbul-lib-instrument@6.0.2: + istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.26.0 '@babel/parser': 7.26.2 @@ -16821,7 +16888,7 @@ snapshots: istanbul-lib-processinfo@2.0.3: dependencies: archy: 1.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 istanbul-lib-coverage: 3.2.2 p-map: 3.0.0 rimraf: 3.0.2 @@ -16876,7 +16943,7 @@ snapshots: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 + reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 jackspeak@3.4.3: @@ -16889,10 +16956,10 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 - jake@10.8.7: + jake@10.9.2: dependencies: - async: 3.2.5 - chalk: 4.1.2 + async: 3.2.6 + chalk: 4.1.0 filelist: 1.0.4 minimatch: 3.1.2 @@ -16900,7 +16967,7 @@ snapshots: jest-diff@29.7.0: dependencies: - chalk: 4.1.2 + chalk: 4.1.0 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -16924,6 +16991,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsbn@1.1.0: {} + jscodeshift@17.1.1(@babel/preset-env@7.26.0(@babel/core@7.26.0)): dependencies: '@babel/core': 7.26.0 @@ -16933,10 +17002,10 @@ snapshots: '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/preset-flow': 7.24.7(@babel/core@7.26.0) + '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@babel/register': 7.25.9(@babel/core@7.26.0) - flow-parser: 0.227.0 + flow-parser: 0.253.0 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -16953,16 +17022,16 @@ snapshots: jsdom@24.1.3: dependencies: - cssstyle: 4.0.1 + cssstyle: 4.1.0 data-urls: 5.0.0 decimal.js: 10.4.3 - form-data: 4.0.0 + form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.12 - parse5: 7.1.2 + nwsapi: 2.2.13 + parse5: 7.2.1 rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -17043,7 +17112,7 @@ snapshots: jss-plugin-camel-case@10.10.0: dependencies: '@babel/runtime': 7.26.0 - hyphenate-style-name: 1.0.4 + hyphenate-style-name: 1.1.0 jss: 10.10.0 jss-plugin-default-unit@10.10.0: @@ -17162,8 +17231,8 @@ snapshots: karma-webpack@5.0.1(webpack@5.96.1): dependencies: glob: 7.2.3 - minimatch: 9.0.4 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + minimatch: 9.0.5 + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-merge: 4.2.2 karma@6.4.4: @@ -17187,10 +17256,10 @@ snapshots: qjobs: 1.2.0 range-parser: 1.2.1 rimraf: 3.0.2 - socket.io: 4.7.4 + socket.io: 4.8.1 source-map: 0.6.1 tmp: 0.2.3 - ua-parser-js: 0.7.37 + ua-parser-js: 0.7.39 yargs: 16.2.0 transitivePeerDependencies: - bufferutil @@ -17204,23 +17273,23 @@ snapshots: kind-of@6.0.3: {} - language-subtag-registry@0.3.22: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 lazystream@1.0.1: dependencies: readable-stream: 2.3.8 - lerna@8.1.9(@swc/core@1.7.35(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13): + lerna@8.1.9(@swc/core@1.9.2(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13): dependencies: - '@lerna/create': 8.1.9(@swc/core@1.7.35(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13)(typescript@5.6.3) + '@lerna/create': 8.1.9(@swc/core@1.9.2(@swc/helpers@0.5.5))(babel-plugin-macros@3.1.0)(encoding@0.1.13)(typescript@5.6.3) '@npmcli/arborist': 7.5.4 '@npmcli/package-json': 5.2.0 '@npmcli/run-script': 8.1.0 - '@nx/devkit': 17.3.0(nx@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5))) + '@nx/devkit': 20.1.2(nx@20.1.2(@swc/core@1.9.2(@swc/helpers@0.5.5))) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) aproba: 2.0.0 @@ -17265,7 +17334,7 @@ snapshots: npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-registry-fetch: 17.1.0 - nx: 17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)) + nx: 20.1.2(@swc/core@1.9.2(@swc/helpers@0.5.5)) p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 @@ -17325,13 +17394,13 @@ snapshots: libnpmpublish@9.0.9: dependencies: - ci-info: 4.0.0 + ci-info: 4.1.0 normalize-package-data: 6.0.2 npm-package-arg: 11.0.2 npm-registry-fetch: 17.1.0 proc-log: 4.2.0 semver: 7.6.3 - sigstore: 2.2.0 + sigstore: 2.3.1 ssri: 10.0.6 transitivePeerDependencies: - supports-color @@ -17342,7 +17411,7 @@ snapshots: lines-and-columns@1.2.4: {} - lines-and-columns@2.0.4: {} + lines-and-columns@2.0.3: {} linkify-it@5.0.0: dependencies: @@ -17475,8 +17544,8 @@ snapshots: dependencies: date-format: 4.0.14 debug: 4.3.7(supports-color@8.1.1) - flatted: 3.3.1 - rfdc: 1.3.1 + flatted: 3.3.2 + rfdc: 1.4.1 streamroller: 3.1.5 transitivePeerDependencies: - supports-color @@ -17495,7 +17564,7 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 lru-cache@10.4.3: {} @@ -17518,7 +17587,7 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.12: + magic-string@0.30.13: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -17543,17 +17612,18 @@ snapshots: dependencies: semver: 7.6.3 - make-fetch-happen@13.0.0: + make-fetch-happen@13.0.1: dependencies: - '@npmcli/agent': 2.2.0 - cacache: 18.0.3 + '@npmcli/agent': 2.2.2 + cacache: 18.0.4 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 minipass: 7.1.2 - minipass-fetch: 3.0.4 + minipass-fetch: 3.0.5 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 0.6.3 + negotiator: 0.6.4 + proc-log: 4.2.0 promise-retry: 2.0.1 ssri: 10.0.6 transitivePeerDependencies: @@ -17598,19 +17668,19 @@ snapshots: marked@14.1.4: {} - mdast-util-from-markdown@2.0.1: + mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.0.2 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-decode-string: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark: 4.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color @@ -17620,14 +17690,15 @@ snapshots: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - mdast-util-to-markdown@2.1.0: + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 mdast-util-to-string: 4.0.0 - micromark-util-decode-string: 2.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 unist-util-visit: 5.0.0 zwitch: 2.0.4 @@ -17673,136 +17744,136 @@ snapshots: methods@1.1.2: {} - micromark-core-commonmark@2.0.1: + micromark-core-commonmark@2.0.2: dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-destination@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-factory-label@2.0.0: + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 - micromark-factory-space@2.0.0: + micromark-factory-space@2.0.1: dependencies: - micromark-util-character: 2.1.0 - micromark-util-types: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.1 - micromark-factory-title@2.0.0: + micromark-factory-title@2.0.1: dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 - micromark-factory-whitespace@2.0.0: + micromark-factory-whitespace@2.0.1: dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 - micromark-util-character@2.1.0: + micromark-util-character@2.1.1: dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 - micromark-util-chunked@2.0.0: + micromark-util-chunked@2.0.1: dependencies: - micromark-util-symbol: 2.0.0 + micromark-util-symbol: 2.0.1 - micromark-util-classify-character@2.0.0: + micromark-util-classify-character@2.0.1: dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 - micromark-util-combine-extensions@2.0.0: + micromark-util-combine-extensions@2.0.1: dependencies: - micromark-util-chunked: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.1 - micromark-util-decode-numeric-character-reference@2.0.1: + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: - micromark-util-symbol: 2.0.0 + micromark-util-symbol: 2.0.1 - micromark-util-decode-string@2.0.0: + micromark-util-decode-string@2.0.1: dependencies: decode-named-character-reference: 1.0.2 - micromark-util-character: 2.1.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-symbol: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 - micromark-util-encode@2.0.0: {} + micromark-util-encode@2.0.1: {} - micromark-util-html-tag-name@2.0.0: {} + micromark-util-html-tag-name@2.0.1: {} - micromark-util-normalize-identifier@2.0.0: + micromark-util-normalize-identifier@2.0.1: dependencies: - micromark-util-symbol: 2.0.0 + micromark-util-symbol: 2.0.1 - micromark-util-resolve-all@2.0.0: + micromark-util-resolve-all@2.0.1: dependencies: - micromark-util-types: 2.0.0 + micromark-util-types: 2.0.1 - micromark-util-sanitize-uri@2.0.0: + micromark-util-sanitize-uri@2.0.1: dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@2.0.1: + micromark-util-subtokenize@2.0.3: dependencies: devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 - micromark-util-symbol@2.0.0: {} + micromark-util-symbol@2.0.1: {} - micromark-util-types@2.0.0: {} + micromark-util-types@2.0.1: {} - micromark@4.0.0: + micromark@4.0.1: dependencies: '@types/debug': 4.1.12 debug: 4.3.7(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-encode: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 transitivePeerDependencies: - supports-color @@ -17859,7 +17930,7 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.4: + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -17875,7 +17946,7 @@ snapshots: dependencies: minipass: 7.1.2 - minipass-fetch@3.0.4: + minipass-fetch@3.0.5: dependencies: minipass: 7.1.2 minipass-sized: 1.0.3 @@ -17973,7 +18044,7 @@ snapshots: '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 '@inquirer/confirm': 5.0.2(@types/node@20.17.6) - '@mswjs/interceptors': 0.37.0 + '@mswjs/interceptors': 0.37.1 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 '@types/cookie': 0.6.0 @@ -17985,7 +18056,7 @@ snapshots: outvariant: 1.4.3 path-to-regexp: 6.3.0 strict-event-emitter: 0.5.1 - type-fest: 4.26.1 + type-fest: 4.27.0 yargs: 17.7.2 optionalDependencies: typescript: 5.6.3 @@ -17998,7 +18069,7 @@ snapshots: array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 - minimatch: 3.1.2 + minimatch: 3.0.5 multipipe@1.0.2: dependencies: @@ -18023,18 +18094,20 @@ snapshots: negotiator@0.6.3: {} + negotiator@0.6.4: {} + negotiator@1.0.0: {} neo-async@2.6.2: {} nested-error-stacks@2.1.1: {} - next@14.2.18(@babel/core@7.26.0)(@opentelemetry/api@1.8.0)(@playwright/test@1.49.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.44.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.18 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001667 + caniuse-lite: 1.0.30001680 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -18050,8 +18123,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.18 '@next/swc-win32-ia32-msvc': 14.2.18 '@next/swc-win32-x64-msvc': 14.2.18 - '@opentelemetry/api': 1.8.0 - '@playwright/test': 1.49.0 + '@playwright/test': 1.44.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -18067,7 +18139,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.8.1 node-cleanup@2.1.2: {} @@ -18077,7 +18149,7 @@ snapshots: node-environment-flags@1.0.6: dependencies: - object.getownpropertydescriptors: 2.1.7 + object.getownpropertydescriptors: 2.1.8 semver: 5.7.2 node-fetch@2.6.7(encoding@0.1.13): @@ -18092,17 +18164,17 @@ snapshots: optionalDependencies: encoding: 0.1.13 - node-gyp-build@4.8.1: {} + node-gyp-build@4.8.4: {} - node-gyp@10.0.1: + node-gyp@10.2.0: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 glob: 10.4.5 graceful-fs: 4.2.11 - make-fetch-happen: 13.0.0 + make-fetch-happen: 13.0.1 nopt: 7.2.1 - proc-log: 3.0.0 + proc-log: 4.2.0 semver: 7.6.3 tar: 6.2.1 which: 4.0.0 @@ -18113,13 +18185,13 @@ snapshots: node-preload@0.2.1: dependencies: - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 node-releases@2.0.18: {} nopt@3.0.6: dependencies: - abbrev: 1.1.1 + abbrev: 1.0.9 nopt@7.2.1: dependencies: @@ -18149,7 +18221,7 @@ snapshots: normalize-range@0.1.2: {} - npm-bundled@3.0.0: + npm-bundled@3.0.1: dependencies: npm-normalize-package-bin: 3.0.1 @@ -18168,9 +18240,9 @@ snapshots: npm-packlist@8.0.2: dependencies: - ignore-walk: 6.0.4 + ignore-walk: 6.0.5 - npm-pick-manifest@9.0.1: + npm-pick-manifest@9.1.0: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 @@ -18181,9 +18253,9 @@ snapshots: dependencies: '@npmcli/redact': 2.0.1 jsonparse: 1.3.1 - make-fetch-happen: 13.0.0 + make-fetch-happen: 13.0.1 minipass: 7.1.2 - minipass-fetch: 3.0.4 + minipass-fetch: 3.0.5 minizlib: 2.1.2 npm-package-arg: 11.0.2 proc-log: 4.2.0 @@ -18205,56 +18277,54 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.12: {} + nwsapi@2.2.13: {} - nx@17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)): + nx@20.1.2(@swc/core@1.9.2(@swc/helpers@0.5.5)): dependencies: - '@nrwl/tao': 17.3.0(@swc/core@1.7.35(@swc/helpers@0.5.5)) + '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.46 - '@zkochan/js-yaml': 0.0.6 + '@yarnpkg/parsers': 3.0.2 + '@zkochan/js-yaml': 0.0.7 axios: 1.7.7(debug@4.3.7) - chalk: 4.1.2 + chalk: 4.1.0 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 - dotenv: 16.3.2 - dotenv-expand: 10.0.0 + dotenv: 16.4.5 + dotenv-expand: 11.0.7 enquirer: 2.3.6 figures: 3.2.0 flat: 5.0.2 - fs-extra: 11.2.0 - ignore: 5.3.1 + front-matter: 4.0.2 + ignore: 5.3.2 jest-diff: 29.7.0 - js-yaml: 4.1.0 jsonc-parser: 3.2.0 - lines-and-columns: 2.0.4 + lines-and-columns: 2.0.3 minimatch: 9.0.3 node-machine-id: 1.1.12 npm-run-path: 4.0.1 open: 8.4.2 ora: 5.3.0 - semver: 7.5.3 + semver: 7.6.3 string-width: 4.2.3 - strong-log-transformer: 2.1.0 tar-stream: 2.2.0 tmp: 0.2.3 tsconfig-paths: 4.2.0 - tslib: 2.6.2 + tslib: 2.8.1 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 17.3.0 - '@nx/nx-darwin-x64': 17.3.0 - '@nx/nx-freebsd-x64': 17.3.0 - '@nx/nx-linux-arm-gnueabihf': 17.3.0 - '@nx/nx-linux-arm64-gnu': 17.3.0 - '@nx/nx-linux-arm64-musl': 17.3.0 - '@nx/nx-linux-x64-gnu': 17.3.0 - '@nx/nx-linux-x64-musl': 17.3.0 - '@nx/nx-win32-arm64-msvc': 17.3.0 - '@nx/nx-win32-x64-msvc': 17.3.0 - '@swc/core': 1.7.35(@swc/helpers@0.5.5) + '@nx/nx-darwin-arm64': 20.1.2 + '@nx/nx-darwin-x64': 20.1.2 + '@nx/nx-freebsd-x64': 20.1.2 + '@nx/nx-linux-arm-gnueabihf': 20.1.2 + '@nx/nx-linux-arm64-gnu': 20.1.2 + '@nx/nx-linux-arm64-musl': 20.1.2 + '@nx/nx-linux-x64-gnu': 20.1.2 + '@nx/nx-linux-x64-musl': 20.1.2 + '@nx/nx-win32-arm64-msvc': 20.1.2 + '@nx/nx-win32-x64-msvc': 20.1.2 + '@swc/core': 1.9.2(@swc/helpers@0.5.5) transitivePeerDependencies: - debug @@ -18272,7 +18342,7 @@ snapshots: glob: 7.2.3 istanbul-lib-coverage: 3.2.2 istanbul-lib-hook: 3.0.0 - istanbul-lib-instrument: 6.0.2 + istanbul-lib-instrument: 6.0.3 istanbul-lib-processinfo: 2.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 @@ -18280,7 +18350,7 @@ snapshots: make-dir: 3.1.0 node-preload: 0.2.1 p-map: 3.0.0 - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 resolve-from: 5.0.0 rimraf: 3.0.2 signal-exit: 3.0.7 @@ -18294,7 +18364,7 @@ snapshots: object-hash@2.2.0: {} - object-inspect@1.13.1: {} + object-inspect@1.13.3: {} object-keys@0.4.0: {} @@ -18317,22 +18387,24 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 - object.getownpropertydescriptors@2.1.7: + object.getownpropertydescriptors@2.1.8: dependencies: - array.prototype.reduce: 1.0.6 + array.prototype.reduce: 1.0.7 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + gopd: 1.0.1 safe-array-concat: 1.1.2 object.groupby@1.0.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 object.values@1.2.0: dependencies: @@ -18381,21 +18453,21 @@ snapshots: type-check: 0.3.2 word-wrap: 1.2.5 - optionator@0.9.3: + optionator@0.9.4: dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.2 + chalk: 4.1.0 cli-cursor: 3.1.0 - cli-spinners: 2.9.2 + cli-spinners: 2.6.1 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -18443,7 +18515,7 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 p-locate@2.0.0: dependencies: @@ -18520,21 +18592,21 @@ snapshots: pacote@18.0.6: dependencies: - '@npmcli/git': 5.0.4 + '@npmcli/git': 5.0.8 '@npmcli/installed-package-contents': 2.1.0 '@npmcli/package-json': 5.2.0 - '@npmcli/promise-spawn': 7.0.1 + '@npmcli/promise-spawn': 7.0.2 '@npmcli/run-script': 8.1.0 - cacache: 18.0.3 + cacache: 18.0.4 fs-minipass: 3.0.3 minipass: 7.1.2 npm-package-arg: 11.0.2 npm-packlist: 8.0.2 - npm-pick-manifest: 9.0.1 + npm-pick-manifest: 9.1.0 npm-registry-fetch: 17.1.0 proc-log: 4.2.0 promise-retry: 2.0.1 - sigstore: 2.2.0 + sigstore: 2.3.1 ssri: 10.0.6 tar: 6.2.1 transitivePeerDependencies: @@ -18546,7 +18618,7 @@ snapshots: param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.8.1 parent-module@1.0.1: dependencies: @@ -18566,9 +18638,9 @@ snapshots: git-config-path: 1.0.1 ini: 1.3.8 - parse-github-url@1.0.2: {} + parse-github-url@1.0.3: {} - parse-imports@2.1.1: + parse-imports@2.2.1: dependencies: es-module-lexer: 1.5.4 slashes: 3.0.12 @@ -18601,7 +18673,7 @@ snapshots: dependencies: parse-path: 7.0.0 - parse5@7.1.2: + parse5@7.2.1: dependencies: entities: 4.5.0 @@ -18610,7 +18682,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.8.1 path-exists@3.0.0: {} @@ -18694,17 +18766,17 @@ snapshots: dependencies: find-up: 3.0.0 - playwright-core@1.49.0: {} + playwright-core@1.44.1: {} - playwright@1.49.0: + playwright@1.44.1: dependencies: - playwright-core: 1.49.0 + playwright-core: 1.44.1 optionalDependencies: fsevents: 2.3.2 possible-typed-array-names@1.0.0: {} - postcss-selector-parser@6.1.0: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -18756,7 +18828,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-ms@9.0.0: + pretty-ms@9.2.0: dependencies: parse-ms: 4.0.0 @@ -18764,12 +18836,12 @@ snapshots: dependencies: execa: 5.1.1 find-up: 5.0.0 - ignore: 5.3.1 + ignore: 5.3.2 mri: 1.2.0 picocolors: 1.1.1 picomatch: 3.0.1 prettier: 3.3.3 - tslib: 2.6.2 + tslib: 2.8.1 prettyjson@1.2.5: dependencies: @@ -18778,13 +18850,11 @@ snapshots: prismjs@1.29.0: {} - proc-log@3.0.0: {} - proc-log@4.2.0: {} process-nextick-args@2.0.1: {} - process-on-spawn@1.0.0: + process-on-spawn@1.1.0: dependencies: fromentries: 1.3.2 @@ -18794,7 +18864,7 @@ snapshots: promise-all-reject-late@1.0.1: {} - promise-call-limit@3.0.1: {} + promise-call-limit@3.0.2: {} promise-inflight@1.0.1: {} @@ -18803,9 +18873,9 @@ snapshots: err-code: 2.0.3 retry: 0.12.0 - promzard@1.0.0: + promzard@1.0.2: dependencies: - read: 2.1.0 + read: 3.0.1 prop-types@15.8.1: dependencies: @@ -18824,10 +18894,14 @@ snapshots: pseudomap@1.0.2: {} - psl@1.9.0: {} + psl@1.10.0: + dependencies: + punycode: 2.3.1 punycode.js@2.3.1: {} + punycode@1.4.1: {} + punycode@2.3.1: {} qjobs@1.2.0: {} @@ -18836,6 +18910,10 @@ snapshots: dependencies: side-channel: 1.0.6 + qs@6.13.1: + dependencies: + side-channel: 1.0.6 + querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -18902,16 +18980,16 @@ snapshots: react-refresh@0.14.2: {} - react-router-dom@6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-router-dom@6.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/router': 1.20.0 + '@remix-run/router': 1.21.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router: 6.27.0(react@18.3.1) + react-router: 6.28.0(react@18.3.1) - react-router@6.27.0(react@18.3.1): + react-router@6.28.0(react@18.3.1): dependencies: - '@remix-run/router': 1.20.0 + '@remix-run/router': 1.21.0 react: 18.3.1 react-runner@1.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -18969,10 +19047,6 @@ snapshots: parse-json: 5.2.0 type-fest: 0.6.0 - read@2.1.0: - dependencies: - mute-stream: 1.0.0 - read@3.0.1: dependencies: mute-stream: 1.0.0 @@ -19015,7 +19089,7 @@ snapshots: ast-types: 0.14.2 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.6.2 + tslib: 2.8.1 recast@0.23.9: dependencies: @@ -19023,7 +19097,7 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.6.2 + tslib: 2.8.1 rechoir@0.8.0: dependencies: @@ -19034,14 +19108,15 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - reflect.getprototypeof@1.0.4: + reflect.getprototypeof@1.0.6: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 + es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.4 - which-builtin-type: 1.1.3 + which-builtin-type: 1.1.4 regenerate-unicode-properties@10.2.0: dependencies: @@ -19057,7 +19132,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 - regexp.prototype.flags@1.5.2: + regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -19069,9 +19144,9 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.0 regjsgen: 0.8.0 - regjsparser: 0.11.1 + regjsparser: 0.11.2 unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 + unicode-match-property-value-ecmascript: 2.2.0 registry-auth-token@3.3.2: dependencies: @@ -19084,7 +19159,7 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.11.1: + regjsparser@0.11.2: dependencies: jsesc: 3.0.2 @@ -19097,8 +19172,8 @@ snapshots: remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 - micromark-util-types: 2.0.0 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.1 unified: 11.0.5 transitivePeerDependencies: - supports-color @@ -19106,7 +19181,7 @@ snapshots: remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.0 + mdast-util-to-markdown: 2.1.2 unified: 11.0.5 remark@15.0.1: @@ -19173,7 +19248,7 @@ snapshots: reusify@1.0.4: {} - rfdc@1.3.1: {} + rfdc@1.4.1: {} rifm@0.12.1(react@18.3.1): dependencies: @@ -19198,26 +19273,28 @@ snapshots: robust-predicates@3.0.2: {} - rollup@4.18.1: + rollup@4.27.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.1 - '@rollup/rollup-android-arm64': 4.18.1 - '@rollup/rollup-darwin-arm64': 4.18.1 - '@rollup/rollup-darwin-x64': 4.18.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 - '@rollup/rollup-linux-arm-musleabihf': 4.18.1 - '@rollup/rollup-linux-arm64-gnu': 4.18.1 - '@rollup/rollup-linux-arm64-musl': 4.18.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 - '@rollup/rollup-linux-riscv64-gnu': 4.18.1 - '@rollup/rollup-linux-s390x-gnu': 4.18.1 - '@rollup/rollup-linux-x64-gnu': 4.18.1 - '@rollup/rollup-linux-x64-musl': 4.18.1 - '@rollup/rollup-win32-arm64-msvc': 4.18.1 - '@rollup/rollup-win32-ia32-msvc': 4.18.1 - '@rollup/rollup-win32-x64-msvc': 4.18.1 + '@rollup/rollup-android-arm-eabi': 4.27.3 + '@rollup/rollup-android-arm64': 4.27.3 + '@rollup/rollup-darwin-arm64': 4.27.3 + '@rollup/rollup-darwin-x64': 4.27.3 + '@rollup/rollup-freebsd-arm64': 4.27.3 + '@rollup/rollup-freebsd-x64': 4.27.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.27.3 + '@rollup/rollup-linux-arm-musleabihf': 4.27.3 + '@rollup/rollup-linux-arm64-gnu': 4.27.3 + '@rollup/rollup-linux-arm64-musl': 4.27.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.27.3 + '@rollup/rollup-linux-riscv64-gnu': 4.27.3 + '@rollup/rollup-linux-s390x-gnu': 4.27.3 + '@rollup/rollup-linux-x64-gnu': 4.27.3 + '@rollup/rollup-linux-x64-musl': 4.27.3 + '@rollup/rollup-win32-arm64-msvc': 4.27.3 + '@rollup/rollup-win32-ia32-msvc': 4.27.3 + '@rollup/rollup-win32-x64-msvc': 4.27.3 fsevents: 2.3.3 router@2.0.0: @@ -19230,8 +19307,6 @@ snapshots: setprototypeof: 1.2.0 utils-merge: 1.0.1 - rrweb-cssom@0.6.0: {} - rrweb-cssom@0.7.1: {} rtl-css-js@1.16.1: @@ -19246,7 +19321,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 safe-array-concat@1.1.2: dependencies: @@ -19288,25 +19363,21 @@ snapshots: schema-utils@4.2.0: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) - ajv-keywords: 5.1.0(ajv@8.12.0) + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) - search-insights@2.13.0: {} + search-insights@2.17.3: {} semver@5.7.2: {} semver@6.3.1: {} - semver@7.5.3: - dependencies: - lru-cache: 6.0.0 - semver@7.6.3: {} send@1.1.0: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.6 destroy: 1.2.0 encodeurl: 2.0.0 escape-html: 1.0.3 @@ -19427,7 +19498,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.3 siginfo@2.0.0: {} @@ -19435,14 +19506,14 @@ snapshots: signal-exit@4.1.0: {} - sigstore@2.2.0: + sigstore@2.3.1: dependencies: - '@sigstore/bundle': 2.1.1 - '@sigstore/core': 0.2.0 - '@sigstore/protobuf-specs': 0.2.1 - '@sigstore/sign': 2.2.1 - '@sigstore/tuf': 2.3.0 - '@sigstore/verify': 0.1.0 + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/sign': 2.3.2 + '@sigstore/tuf': 2.3.4 + '@sigstore/verify': 1.2.1 transitivePeerDependencies: - supports-color @@ -19461,13 +19532,13 @@ snapshots: sirv@2.0.4: dependencies: - '@polka/url': 1.0.0-next.24 + '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 totalist: 3.0.1 sirv@3.0.0: dependencies: - '@polka/url': 1.0.0-next.24 + '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 totalist: 3.0.1 @@ -19483,45 +19554,47 @@ snapshots: smart-buffer@4.2.0: {} - socket.io-adapter@2.5.2: + socket.io-adapter@2.5.5: dependencies: - ws: 8.11.0 + debug: 4.3.7(supports-color@8.1.1) + ws: 8.17.1 transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate socket.io-parser@4.2.4: dependencies: - '@socket.io/component-emitter': 3.1.0 + '@socket.io/component-emitter': 3.1.2 debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color - socket.io@4.7.4: + socket.io@4.8.1: dependencies: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 debug: 4.3.7(supports-color@8.1.1) - engine.io: 6.5.4 - socket.io-adapter: 2.5.2 + engine.io: 6.6.2 + socket.io-adapter: 2.5.5 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - socks-proxy-agent@8.0.2: + socks-proxy-agent@8.0.4: dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.7(supports-color@8.1.1) - socks: 2.7.1 + socks: 2.8.3 transitivePeerDependencies: - supports-color - socks@2.7.1: + socks@2.8.3: dependencies: - ip: 2.0.0 + ip-address: 9.0.5 smart-buffer: 4.2.0 sort-keys@2.0.0: @@ -19556,21 +19629,21 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 + spdx-license-ids: 3.0.20 - spdx-exceptions@2.4.0: {} + spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: - spdx-exceptions: 2.4.0 - spdx-license-ids: 3.0.16 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 spdx-expression-parse@4.0.0: dependencies: - spdx-exceptions: 2.4.0 - spdx-license-ids: 3.0.16 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.16: {} + spdx-license-ids@3.0.20: {} split2@3.2.2: dependencies: @@ -19582,6 +19655,8 @@ snapshots: sprintf-js@1.0.3: {} + sprintf-js@1.1.3: {} + ssri@10.0.6: dependencies: minipass: 7.1.2 @@ -19615,7 +19690,7 @@ snapshots: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) string-width@4.2.3: dependencies: @@ -19633,33 +19708,33 @@ snapshots: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-errors: 1.3.0 es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 gopd: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 set-function-name: 2.0.2 side-channel: 1.0.6 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 string.prototype.trim@1.2.9: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.5 es-object-atoms: 1.0.0 string.prototype.trimend@1.0.8: @@ -19690,7 +19765,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom@3.0.0: {} @@ -19738,7 +19813,7 @@ snapshots: stylis-plugin-rtl@2.1.1(stylis@4.3.4): dependencies: - cssjanus: 2.1.0 + cssjanus: 2.3.0 stylis: 4.3.4 stylis@4.2.0: {} @@ -19782,10 +19857,10 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.9.1: + synckit@0.9.2: dependencies: '@pkgr/core': 0.1.1 - tslib: 2.6.2 + tslib: 2.8.1 tapable@0.1.10: {} @@ -19810,20 +19885,20 @@ snapshots: temp-dir@1.0.0: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack@5.96.1): + terser-webpack-plugin@5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack@5.96.1): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.27.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + terser: 5.36.0 + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) optionalDependencies: - '@swc/core': 1.7.35(@swc/helpers@0.5.5) + '@swc/core': 1.9.2(@swc/helpers@0.5.5) - terser@5.27.0: + terser@5.36.0: dependencies: - '@jridgewell/source-map': 0.3.5 + '@jridgewell/source-map': 0.3.6 acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -19838,7 +19913,7 @@ snapshots: dependencies: '@istanbuljs/schema': 0.1.3 glob: 10.4.5 - minimatch: 9.0.4 + minimatch: 9.0.5 text-extensions@1.9.0: {} @@ -19877,7 +19952,7 @@ snapshots: fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.1: {} + tinypool@1.0.2: {} tinyrainbow@1.2.0: {} @@ -19899,7 +19974,7 @@ snapshots: tough-cookie@4.1.4: dependencies: - psl: 1.9.0 + psl: 1.10.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 @@ -19920,7 +19995,7 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.6.3): + ts-api-utils@1.4.0(typescript@5.6.3): dependencies: typescript: 5.6.3 @@ -19943,6 +20018,8 @@ snapshots: tslib@2.6.2: {} + tslib@2.8.1: {} + tsscmp@1.0.6: {} tsutils@3.21.0(typescript@5.6.3): @@ -19953,15 +20030,15 @@ snapshots: tsx@4.19.2: dependencies: esbuild: 0.23.1 - get-tsconfig: 4.7.5 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 - tuf-js@2.2.0: + tuf-js@2.2.1: dependencies: - '@tufjs/models': 2.0.0 + '@tufjs/models': 2.0.1 debug: 4.3.7(supports-color@8.1.1) - make-fetch-happen: 13.0.0 + make-fetch-happen: 13.0.1 transitivePeerDependencies: - supports-color @@ -19993,7 +20070,7 @@ snapshots: type-fest@2.19.0: {} - type-fest@4.26.1: {} + type-fest@4.27.0: {} type-is@1.6.18: dependencies: @@ -20046,11 +20123,11 @@ snapshots: typescript@5.6.3: {} - ua-parser-js@0.7.37: {} + ua-parser-js@0.7.39: {} uc.micro@2.1.0: {} - uglify-js@3.17.4: + uglify-js@3.19.3: optional: true unbox-primitive@1.0.2: @@ -20066,14 +20143,14 @@ snapshots: dependencies: '@fastify/busboy': 2.1.1 - unicode-canonical-property-names-ecmascript@2.0.0: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-canonical-property-names-ecmascript: 2.0.1 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.1.0: {} + unicode-match-property-value-ecmascript@2.2.0: {} unicode-property-aliases-ecmascript@2.1.0: {} @@ -20145,10 +20222,10 @@ snapshots: upath@2.0.1: {} - update-browserslist-db@1.1.0(browserslist@4.24.0): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.24.0 - escalade: 3.1.2 + browserslist: 4.24.2 + escalade: 3.2.0 picocolors: 1.1.1 update-check@1.5.4: @@ -20195,7 +20272,7 @@ snapshots: uuid@9.0.1: {} - v8-to-istanbul@9.2.0: + v8-to-istanbul@9.3.0: dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 @@ -20224,43 +20301,44 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.1.5(@types/node@20.17.6)(terser@5.27.0): + vite-node@2.1.5(@types/node@20.17.6)(terser@5.36.0): dependencies: cac: 6.7.14 debug: 4.3.7(supports-color@8.1.1) es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) + vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - vite@5.3.4(@types/node@20.17.6)(terser@5.27.0): + vite@5.4.11(@types/node@20.17.6)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.18.1 + rollup: 4.27.3 optionalDependencies: '@types/node': 20.17.6 fsevents: 2.3.3 - terser: 5.27.0 + terser: 5.36.0 - vitest-fail-on-console@0.7.1(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5): + vitest-fail-on-console@0.7.1(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5): dependencies: chalk: 5.3.0 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0) + vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) + vitest: 2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0) - vitest@2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.27.0): + vitest@2.1.5(@types/node@20.17.6)(@vitest/browser@2.1.5)(@vitest/ui@2.1.5)(jsdom@24.1.3)(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(terser@5.36.0): dependencies: '@vitest/expect': 2.1.5 - '@vitest/mocker': 2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0)) + '@vitest/mocker': 2.1.5(msw@2.6.5(@types/node@20.17.6)(typescript@5.6.3))(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0)) '@vitest/pretty-format': 2.1.5 '@vitest/runner': 2.1.5 '@vitest/snapshot': 2.1.5 @@ -20269,19 +20347,19 @@ snapshots: chai: 5.1.2 debug: 4.3.7(supports-color@8.1.1) expect-type: 1.1.0 - magic-string: 0.30.12 + magic-string: 0.30.13 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 - tinypool: 1.0.1 + tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.3.4(@types/node@20.17.6)(terser@5.27.0) - vite-node: 2.1.5(@types/node@20.17.6)(terser@5.27.0) + vite: 5.4.11(@types/node@20.17.6)(terser@5.36.0) + vite-node: 2.1.5(@types/node@20.17.6)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.17.6 - '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.49.0)(typescript@5.6.3)(vite@5.3.4(@types/node@20.17.6)(terser@5.27.0))(vitest@2.1.5) + '@vitest/browser': 2.1.5(@types/node@20.17.6)(playwright@1.44.1)(typescript@5.6.3)(vite@5.4.11(@types/node@20.17.6)(terser@5.36.0))(vitest@2.1.5) '@vitest/ui': 2.1.5(vitest@2.1.5) jsdom: 24.1.3 transitivePeerDependencies: @@ -20289,6 +20367,7 @@ snapshots: - lightningcss - msw - sass + - sass-embedded - stylus - sugarss - supports-color @@ -20302,7 +20381,7 @@ snapshots: walk-up-path@3.0.1: {} - watchpack@2.4.1: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -20319,7 +20398,7 @@ snapshots: dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.14.0 - acorn-walk: 8.3.2 + acorn-walk: 8.3.4 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 @@ -20328,7 +20407,7 @@ snapshots: opener: 1.5.2 picocolors: 1.1.1 sirv: 2.0.4 - ws: 7.5.9 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -20341,13 +20420,13 @@ snapshots: '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1))(webpack@5.96.1) colorette: 2.0.20 commander: 10.0.1 - cross-spawn: 7.0.3 - envinfo: 7.13.0 + cross-spawn: 7.0.6 + envinfo: 7.14.0 fastest-levenshtein: 1.0.16 - import-local: 3.1.0 + import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) + webpack: 5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20364,16 +20443,16 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.96.1(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)): + webpack@5.96.1(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1)): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 - browserslist: 4.24.0 - chrome-trace-event: 1.0.3 + browserslist: 4.24.2 + chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 es-module-lexer: 1.5.4 eslint-scope: 5.1.1 @@ -20386,8 +20465,8 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.35(@swc/helpers@0.5.5))(webpack@5.96.1) - watchpack: 2.4.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.9.2(@swc/helpers@0.5.5))(webpack@5.96.1) + watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1) @@ -20420,7 +20499,7 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 @@ -20432,15 +20511,15 @@ snapshots: is-weakref: 1.0.2 isarray: 2.0.5 which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 + which-collection: 1.0.2 which-typed-array: 1.1.15 - which-collection@1.0.1: + which-collection@1.0.2: dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 which-module@2.0.1: {} @@ -20538,9 +20617,9 @@ snapshots: type-fest: 0.4.1 write-json-file: 3.2.0 - ws@7.5.9: {} + ws@7.5.10: {} - ws@8.11.0: {} + ws@8.17.1: {} ws@8.18.0: {} @@ -20601,7 +20680,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -20611,7 +20690,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -20620,11 +20699,11 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} + yocto-queue@1.1.1: {} yoctocolors-cjs@2.1.2: {} - yoctocolors@2.0.2: {} + yoctocolors@2.1.1: {} zip-stream@4.1.1: dependencies: @@ -20632,7 +20711,7 @@ snapshots: compress-commons: 4.1.2 readable-stream: 3.6.2 - zod-validation-error@3.3.0(zod@3.23.8): + zod-validation-error@3.4.0(zod@3.23.8): dependencies: zod: 3.23.8 From 9d8828ab4721c073dd1fa70ba71508990da88957 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Tue, 19 Nov 2024 23:51:56 +0100 Subject: [PATCH 150/253] fix local tests --- .../x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 6fa3bd4d97429..765f6a1aab25f 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -165,7 +165,7 @@ describe(' - Columns', () => { fireEvent.doubleClick(separator); await microtasks(); expect(onColumnWidthChange.callCount).to.be.at.least(2); - const expectedWidth = process.env.VITEST === 'true' ? 63.71875 : 114; + const expectedWidth = process.env.VITEST === 'true' ? 63.7109375 : 114; expect(onColumnWidthChange.args.map((arg) => arg[0].width)).to.deep.equal([ 120, expectedWidth, @@ -604,7 +604,7 @@ describe(' - Columns', () => { }); it('.expand works', async () => { - await autosize({ expand: true }, [134, 148]); + await autosize({ expand: true }, [142, 155]); }); }); }); From f411f01c7daa69a9ba9ec7b5196b5af78f490e3e Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 00:12:44 +0100 Subject: [PATCH 151/253] Revert "fix local tests" This reverts commit 9d8828ab4721c073dd1fa70ba71508990da88957. --- .../x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 765f6a1aab25f..6fa3bd4d97429 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -165,7 +165,7 @@ describe(' - Columns', () => { fireEvent.doubleClick(separator); await microtasks(); expect(onColumnWidthChange.callCount).to.be.at.least(2); - const expectedWidth = process.env.VITEST === 'true' ? 63.7109375 : 114; + const expectedWidth = process.env.VITEST === 'true' ? 63.71875 : 114; expect(onColumnWidthChange.args.map((arg) => arg[0].width)).to.deep.equal([ 120, expectedWidth, @@ -604,7 +604,7 @@ describe(' - Columns', () => { }); it('.expand works', async () => { - await autosize({ expand: true }, [142, 155]); + await autosize({ expand: true }, [134, 148]); }); }); }); From ebc3172facd182d578f64bf91b72a9186b3a9651 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 00:25:06 +0100 Subject: [PATCH 152/253] use fake clock --- .../tests/describes.MultiInputTimeRangeField.test.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/x-date-pickers-pro/src/MultiInputTimeRangeField/tests/describes.MultiInputTimeRangeField.test.tsx b/packages/x-date-pickers-pro/src/MultiInputTimeRangeField/tests/describes.MultiInputTimeRangeField.test.tsx index 2f9958ab7b04d..8c69e3e46554d 100644 --- a/packages/x-date-pickers-pro/src/MultiInputTimeRangeField/tests/describes.MultiInputTimeRangeField.test.tsx +++ b/packages/x-date-pickers-pro/src/MultiInputTimeRangeField/tests/describes.MultiInputTimeRangeField.test.tsx @@ -9,7 +9,11 @@ import { import { describeConformance } from 'test/utils/describeConformance'; describe('', () => { - const { render, clock } = createPickerRenderer({ clock: 'fake' }); + const { render, clock } = createPickerRenderer({ + clock: 'fake', + clockConfig: new Date(2018, 0, 10), + clockOptions: { toFake: ['Date'] }, + }); describeConformance(, () => ({ classes: {} as any, From c9ad767182821033eef88246cb92dd7e8b356062 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 00:52:14 +0100 Subject: [PATCH 153/253] add warning --- packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx index 6fa3bd4d97429..ca799d451da9a 100644 --- a/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/columns.DataGridPro.test.tsx @@ -165,6 +165,7 @@ describe(' - Columns', () => { fireEvent.doubleClick(separator); await microtasks(); expect(onColumnWidthChange.callCount).to.be.at.least(2); + // These values are tuned to Ubuntu/Chromium and might be flaky in other environments const expectedWidth = process.env.VITEST === 'true' ? 63.71875 : 114; expect(onColumnWidthChange.args.map((arg) => arg[0].width)).to.deep.equal([ 120, @@ -604,6 +605,7 @@ describe(' - Columns', () => { }); it('.expand works', async () => { + // These values are tuned to Ubuntu/Chromium and might be flaky in other environments await autosize({ expand: true }, [134, 148]); }); }); From 58681e03a867911db383de85eb09c877959df326 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 00:58:33 +0100 Subject: [PATCH 154/253] dedupe --- pnpm-lock.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0876d0a7da29..a44a1cc0aa9e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12793,7 +12793,7 @@ snapshots: '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 is-plain-object: 5.0.0 - node-fetch: 2.6.7(encoding@0.1.13) + node-fetch: 2.7.0(encoding@0.1.13) universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -14328,7 +14328,7 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.0.1 + chalk: 5.3.0 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -15819,9 +15819,9 @@ snapshots: execa@5.0.0: dependencies: cross-spawn: 7.0.6 - get-stream: 6.0.0 + get-stream: 6.0.1 human-signals: 2.1.0 - is-stream: 2.0.0 + is-stream: 2.0.1 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 @@ -16959,7 +16959,7 @@ snapshots: jake@10.9.2: dependencies: async: 3.2.6 - chalk: 4.1.0 + chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 @@ -16967,7 +16967,7 @@ snapshots: jest-diff@29.7.0: dependencies: - chalk: 4.1.0 + chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -18069,7 +18069,7 @@ snapshots: array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 - minimatch: 3.0.5 + minimatch: 3.1.2 multipipe@1.0.2: dependencies: @@ -18286,7 +18286,7 @@ snapshots: '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 axios: 1.7.7(debug@4.3.7) - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 @@ -18465,9 +18465,9 @@ snapshots: ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.0 + chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -19377,7 +19377,7 @@ snapshots: send@1.1.0: dependencies: - debug: 4.3.6 + debug: 4.3.7(supports-color@8.1.1) destroy: 1.2.0 encodeurl: 2.0.0 escape-html: 1.0.3 From 4f9cc563fb88fe8abbec7c3b9427f5e988e73e16 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 11:45:07 +0100 Subject: [PATCH 155/253] fix issues --- test/regressions/index.js | 7 ++++++- test/utils/pickers/describeHijriAdapter/testFormat.ts | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/test/regressions/index.js b/test/regressions/index.js index b90a0786551f0..48e83001911ea 100644 --- a/test/regressions/index.js +++ b/test/regressions/index.js @@ -142,7 +142,12 @@ function App() { } return ( - + {tests.map((test) => { const path = computePath(test); diff --git a/test/utils/pickers/describeHijriAdapter/testFormat.ts b/test/utils/pickers/describeHijriAdapter/testFormat.ts index 8506652d90482..861b9b3a89281 100644 --- a/test/utils/pickers/describeHijriAdapter/testFormat.ts +++ b/test/utils/pickers/describeHijriAdapter/testFormat.ts @@ -4,7 +4,7 @@ import { DescribeHijriAdapterTestSuite } from './describeHijriAdapter.types'; const isJsdom = typeof window !== 'undefined' && window.navigator.userAgent.includes('jsdom'); export const testFormat: DescribeHijriAdapterTestSuite = ({ adapter }) => { - it('should format the seconds without leading zeroes for format "s"', (t) => { + it('should format the seconds without leading zeroes for format "s"', (t = {}) => { if (process.env.VITEST === 'true' && !isJsdom) { // @ts-expect-error to support mocha and vitest t?.skip(); From e040b42b04fa02ce68c0054f37f1be576a4403fe Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 12:24:30 +0100 Subject: [PATCH 156/253] use more native behaviours --- test/regressions/index.test.ts | 41 ++++++++++++++++------------------ 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/test/regressions/index.test.ts b/test/regressions/index.test.ts index 4525f30c908e3..7e67b0bde9303 100644 --- a/test/regressions/index.test.ts +++ b/test/regressions/index.test.ts @@ -2,7 +2,7 @@ import * as fse from 'fs-extra'; import { expect } from 'chai'; import * as path from 'path'; import * as childProcess from 'child_process'; -import { chromium } from '@playwright/test'; +import { chromium, Page } from '@playwright/test'; import materialPackageJson from '@mui/material/package.json'; function sleep(timeoutMS: number | undefined) { @@ -16,6 +16,19 @@ const isMaterialUIv6 = materialPackageJson.version.startsWith('6.'); // Tests that need a longer timeout. const timeSensitiveSuites = ['ColumnAutosizingAsync', 'DensitySelectorGrid']; +async function navigateToTest(page: Page, testIndex: number) { + const css = `#tests li:nth-of-type(${testIndex}) a`; + try { + await page.locator(css).click(); + } catch (error) { + // When one demo crashes, the page becomes empty and there are no links to demos, + // so navigation to the next demo throws an error. + // Reloading the page fixes this. + await page.reload(); + await page.locator(css).click(); + } +} + const isConsoleWarningIgnored = (msg?: string) => { if ( msg && @@ -86,16 +99,6 @@ async function main() { // prepare screenshots await fse.emptyDir(screenshotDir); - function navigateToTest(testIndex: number) { - // Use client-side routing which is much faster than full page navigation via page.goto(). - // Could become an issue with test isolation. - // If tests are flaky due to global pollution switch to page.goto(route); - // puppeteers built-in click() times out - return page.$eval(`#tests li:nth-of-type(${testIndex}) a`, (link) => { - (link as HTMLAnchorElement).click(); - }); - } - describe('visual regressions', () => { after(async () => { await browser.close(); @@ -124,13 +127,13 @@ async function main() { } try { - await navigateToTest(index + 1); + await navigateToTest(page, index); } catch (error) { // When one demo crashes, the page becomes empty and there are no links to demos, // so navigation to the next demo throws an error. // Reloading the page fixes this. await page.reload(); - await navigateToTest(index + 1); + await navigateToTest(page, index); } // Move cursor offscreen to not trigger unwanted hover effects. await page.mouse.move(0, 0); @@ -192,9 +195,7 @@ async function main() { await fse.ensureDir(path.dirname(screenshotPath)); const testcaseIndex = routes.indexOf(route); - await page.$eval(`#tests li:nth-of-type(${testcaseIndex + 1}) a`, (link) => { - (link as HTMLAnchorElement).click(); - }); + await navigateToTest(page, testcaseIndex); const testcase = await page.waitForSelector( '[data-testid="testcase"]:not([aria-busy="true"])', @@ -222,14 +223,10 @@ async function main() { await fse.ensureDir(path.dirname(screenshotPath)); const testcaseIndex = routes.indexOf(route); - await page.$eval(`#tests li:nth-of-type(${testcaseIndex + 1}) a`, (link) => { - (link as HTMLAnchorElement).click(); - }); + await navigateToTest(page, testcaseIndex); // Click the export button in the toolbar. - await page.$eval(`button[aria-label="Export"]`, (exportButton) => { - (exportButton as HTMLAnchorElement).click(); - }); + await page.getByAltText('Export').click(); // Click the print export option from the export menu in the toolbar. await page.$eval(`li[role="menuitem"]:last-child`, (printButton) => { From 25fafe2221c7d4e14c34f472187f0a781b5c9085 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 12:55:11 +0100 Subject: [PATCH 157/253] improve regression logic --- test/regressions/index.test.ts | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/test/regressions/index.test.ts b/test/regressions/index.test.ts index 7e67b0bde9303..b296de8166369 100644 --- a/test/regressions/index.test.ts +++ b/test/regressions/index.test.ts @@ -19,13 +19,13 @@ const timeSensitiveSuites = ['ColumnAutosizingAsync', 'DensitySelectorGrid']; async function navigateToTest(page: Page, testIndex: number) { const css = `#tests li:nth-of-type(${testIndex}) a`; try { - await page.locator(css).click(); + await page.locator(css).dispatchEvent('click'); } catch (error) { // When one demo crashes, the page becomes empty and there are no links to demos, // so navigation to the next demo throws an error. // Reloading the page fixes this. await page.reload(); - await page.locator(css).click(); + await page.locator(css).dispatchEvent('click'); } } @@ -126,15 +126,8 @@ async function main() { this.timeout(6000); } - try { - await navigateToTest(page, index); - } catch (error) { - // When one demo crashes, the page becomes empty and there are no links to demos, - // so navigation to the next demo throws an error. - // Reloading the page fixes this. - await page.reload(); - await navigateToTest(page, index); - } + await navigateToTest(page, index); + // Move cursor offscreen to not trigger unwanted hover effects. await page.mouse.move(0, 0); @@ -226,7 +219,7 @@ async function main() { await navigateToTest(page, testcaseIndex); // Click the export button in the toolbar. - await page.getByAltText('Export').click(); + await page.getByLabel('Export').click({ force: true }); // Click the print export option from the export menu in the toolbar. await page.$eval(`li[role="menuitem"]:last-child`, (printButton) => { @@ -248,7 +241,7 @@ async function main() { if (code === 0) { resolve(); } else { - reject(code); + reject(new Error(`ffmpeg exited with code ${code}`)); } }); }); @@ -285,5 +278,5 @@ main().catch((error) => { // error during setup. // Throwing lets mocha hang. console.error(error); - process.exit(1); + process.exitCode = 1; }); From 825d24fb275cabb097529533f2d51c528da04805 Mon Sep 17 00:00:00 2001 From: Jose Quintas Date: Wed, 20 Nov 2024 14:34:56 +0100 Subject: [PATCH 158/253] add base route --- test/regressions/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/regressions/index.js b/test/regressions/index.js index 48e83001911ea..70d671bb659b2 100644 --- a/test/regressions/index.js +++ b/test/regressions/index.js @@ -174,6 +174,7 @@ function App() { /> ); })} + Home
} /> } />