From 733e45f3a9a89e75f65cd5920f45acf190e57e84 Mon Sep 17 00:00:00 2001 From: dwelle <5153846+dwelle@users.noreply.github.com> Date: Sun, 20 Apr 2025 21:53:17 +0200 Subject: [PATCH] test: visual regression tests POC --- .gitignore | 8 +- .../excalidraw-arrows-one-chromium-win32.png | Bin 0 -> 46022 bytes .../excalidraw-arrows-two-chromium-win32.png | Bin 0 -> 60222 bytes package.json | 5 +- playwright-ct.config.ts | 50 +++ playwright/arrows.spec.tsx | 41 ++ playwright/fixtures/arrows-one.json | 101 +++++ playwright/fixtures/arrows-two.json | 204 ++++++++++ playwright/index.html | 21 + playwright/index.tsx | 2 + yarn.lock | 372 +++++++++++++++++- 11 files changed, 795 insertions(+), 9 deletions(-) create mode 100644 __snapshots__/arrows.spec.tsx-snapshots/excalidraw-arrows-one-chromium-win32.png create mode 100644 __snapshots__/arrows.spec.tsx-snapshots/excalidraw-arrows-two-chromium-win32.png create mode 100644 playwright-ct.config.ts create mode 100644 playwright/arrows.spec.tsx create mode 100644 playwright/fixtures/arrows-one.json create mode 100644 playwright/fixtures/arrows-two.json create mode 100644 playwright/index.html create mode 100644 playwright/index.tsx diff --git a/.gitignore b/.gitignore index 6f9407fad0..c3607461e1 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,10 @@ packages/excalidraw/types coverage dev-dist html -meta*.json \ No newline at end of file +meta*.json + +# Playwright +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/__snapshots__/arrows.spec.tsx-snapshots/excalidraw-arrows-one-chromium-win32.png b/__snapshots__/arrows.spec.tsx-snapshots/excalidraw-arrows-one-chromium-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..0c13648b51bef807de8eb5a618289e942d2549b6 GIT binary patch literal 46022 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 literal 0 HcmV?d00001 diff --git a/__snapshots__/arrows.spec.tsx-snapshots/excalidraw-arrows-two-chromium-win32.png b/__snapshots__/arrows.spec.tsx-snapshots/excalidraw-arrows-two-chromium-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4026d452efb1a55053dd6a89d286707f6f2196 GIT binary patch literal 60222 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 o^gk46 { + test.setTimeout(15000); + + await page.setViewportSize({ width: 4080, height: 1920 }); + + const component = await mount( + , + ); + + // await expect(component).toContainClass("excalidraw-container"); + await expect(component).toHaveScreenshot("excalidraw-arrows-one.png"); + + // await component.unmount(); + + await component.update( + , + ); + + await expect(component).toHaveScreenshot("excalidraw-arrows-two.png"); +}); diff --git a/playwright/fixtures/arrows-one.json b/playwright/fixtures/arrows-one.json new file mode 100644 index 0000000000..d04d37e913 --- /dev/null +++ b/playwright/fixtures/arrows-one.json @@ -0,0 +1,101 @@ +[ + { + "id": "BVwXzIedYWBL09Y2nX0KF", + "type": "rectangle", + "x": 174.04421378335792, + "y": 81.3412567234991, + "width": 154.91157243328416, + "height": 129.3174865530018, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a0", + "roundness": { "type": 3 }, + "seed": 992438773, + "version": 329, + "versionNonce": 440377595, + "isDeleted": false, + "boundElements": [{ "id": "iNGJMoRFEGfpE_7rpHFXx", "type": "arrow" }], + "updated": 1745151365372, + "link": null, + "locked": false + }, + { + "id": "3lo_9L23HMj6peiZEQRgP", + "type": "rectangle", + "x": 487.0442137833579, + "y": 261.3412567234991, + "width": 154.91157243328416, + "height": 129.3174865530018, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1", + "roundness": { "type": 3 }, + "seed": 2129683285, + "version": 346, + "versionNonce": 744611387, + "isDeleted": false, + "boundElements": [{ "id": "iNGJMoRFEGfpE_7rpHFXx", "type": "arrow" }], + "updated": 1745151365372, + "link": null, + "locked": false + }, + { + "id": "iNGJMoRFEGfpE_7rpHFXx", + "type": "arrow", + "x": 333.9557862166439, + "y": 152.5, + "width": 148.08842756671586, + "height": 173.40000000000146, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": null, + "seed": 1175662773, + "version": 764, + "versionNonce": 1518717819, + "isDeleted": false, + "boundElements": [], + "updated": 1745151365372, + "link": null, + "locked": false, + "points": [ + [0, 0], + [74.04421378335613, 0], + [74.04421378335613, 173.40000000000146], + [148.08842756671586, 173.40000000000146] + ], + "lastCommittedPoint": null, + "startBinding": { "elementId": "BVwXzIedYWBL09Y2nX0KF", "focus": 0.1005277812500645, "gap": 5.000000000001819, "fixedPoint": [1.032276478260881, 0.550263890625] }, + "endBinding": { "elementId": "3lo_9L23HMj6peiZEQRgP", "focus": -1.0645529565217953, "gap": 5, "fixedPoint": [-0.032276478260857715, 0.49922670937501124] }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": true, + "fixedSegments": null, + "startIsSpecial": null, + "endIsSpecial": null + } +] diff --git a/playwright/fixtures/arrows-two.json b/playwright/fixtures/arrows-two.json new file mode 100644 index 0000000000..e73d266cca --- /dev/null +++ b/playwright/fixtures/arrows-two.json @@ -0,0 +1,204 @@ +[ + { + "id": "Xo3RjhcpXLa6DjcVtxDri", + "type": "rectangle", + "x": 1179, + "y": 331, + "width": 267, + "height": 191, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1", + "roundness": { "type": 3 }, + "seed": 1028156557, + "version": 111, + "versionNonce": 109424813, + "isDeleted": false, + "boundElements": [{ "id": "fhkE_Fih_UwkTM3HfUuzX", "type": "arrow" }], + "updated": 1745178013738, + "link": null, + "locked": false + }, + { + "id": "ZHDr1basWXINseejrrZK2", + "type": "rectangle", + "x": 719, + "y": 426, + "width": 267, + "height": 191, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1V", + "roundness": { "type": 3 }, + "seed": 291993955, + "version": 416, + "versionNonce": 1111758499, + "isDeleted": false, + "boundElements": [{ "id": "za2uzUxA2YIdiiQtExAJR", "type": "arrow" }], + "updated": 1745178023824, + "link": null, + "locked": false + }, + { + "id": "46Ld6Tjxfx_5ZYjCHK1LS", + "type": "rectangle", + "x": 1173.195405, + "y": 584, + "width": 267, + "height": 191, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": { "type": 3 }, + "seed": 798366339, + "version": 278, + "versionNonce": 1382857891, + "isDeleted": false, + "boundElements": [{ "id": "fhkE_Fih_UwkTM3HfUuzX", "type": "arrow" }], + "updated": 1745178013738, + "link": null, + "locked": false + }, + { + "id": "GxtNRM9YzQG_jtmvjVIIF", + "type": "rectangle", + "x": 588.1954049999999, + "y": 508, + "width": 267, + "height": 191, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2V", + "roundness": { "type": 3 }, + "seed": 905019981, + "version": 372, + "versionNonce": 1009977827, + "isDeleted": false, + "boundElements": [{ "id": "za2uzUxA2YIdiiQtExAJR", "type": "arrow" }], + "updated": 1745178023824, + "link": null, + "locked": false + }, + { + "id": "fhkE_Fih_UwkTM3HfUuzX", + "type": "arrow", + "x": 1451, + "y": 426.4, + "width": 352.80459500000006, + "height": 253, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a3", + "roundness": null, + "seed": 921924867, + "version": 622, + "versionNonce": 1699025677, + "isDeleted": false, + "boundElements": null, + "updated": 1745178013738, + "link": null, + "locked": false, + "points": [ + [0, 0], + [35, 0], + [35, 126.60000000000002], + [-317.80459500000006, 126.60000000000002], + [-317.80459500000006, 253], + [-282.80459500000006, 253] + ], + "lastCommittedPoint": null, + "startBinding": { "elementId": "Xo3RjhcpXLa6DjcVtxDri", "focus": -0.0010471204188477784, "gap": 5, "fixedPoint": [1.0187265917602997, 0.4994764397905758] }, + "endBinding": { "elementId": "46Ld6Tjxfx_5ZYjCHK1LS", "focus": -1.0374531835205993, "gap": 5, "fixedPoint": [-0.018726591760299626, 0.4994764397905758] }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": true, + "fixedSegments": null, + "startIsSpecial": null, + "endIsSpecial": null + }, + { + "id": "za2uzUxA2YIdiiQtExAJR", + "type": "arrow", + "x": 991, + "y": 521.4, + "width": 477.80459500000006, + "height": 218.39999999999998, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a4", + "roundness": null, + "seed": 2107135235, + "version": 1330, + "versionNonce": 49163555, + "isDeleted": false, + "boundElements": null, + "updated": 1745178023824, + "link": null, + "locked": false, + "points": [ + [0, 0], + [35, 0], + [35, -136.39999999999998], + [-442.80459500000006, -136.39999999999998], + [-442.80459500000006, 82], + [-407.80459500000006, 82] + ], + "lastCommittedPoint": null, + "startBinding": { "elementId": "ZHDr1basWXINseejrrZK2", "focus": -0.0010471204188477784, "gap": 5, "fixedPoint": [1.0187265917602997, 0.4994764397905758] }, + "endBinding": { "elementId": "GxtNRM9YzQG_jtmvjVIIF", "focus": -1.0374531835205993, "gap": 5, "fixedPoint": [-0.018726591760299626, 0.4994764397905758] }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": true, + "fixedSegments": null, + "startIsSpecial": null, + "endIsSpecial": null + } +] diff --git a/playwright/index.html b/playwright/index.html new file mode 100644 index 0000000000..46a3cf5074 --- /dev/null +++ b/playwright/index.html @@ -0,0 +1,21 @@ + + + + + + Testing Page + + + +
+ + + diff --git a/playwright/index.tsx b/playwright/index.tsx new file mode 100644 index 0000000000..feb3ce170e --- /dev/null +++ b/playwright/index.tsx @@ -0,0 +1,2 @@ +// Import styles, initialize component theme here. +import "../packages/excalidraw/dist/prod/index.css"; diff --git a/yarn.lock b/yarn.lock index 366a3f99fc..9871fe2918 100644 --- a/yarn.lock +++ b/yarn.lock @@ -66,6 +66,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@^7.26.10": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-module-transforms" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/eslint-parser@^7.16.3": version "7.26.8" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.26.8.tgz#55c4f4aae4970ae127f7a12369182ed6250e6f09" @@ -75,6 +96,17 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" +"@babel/generator@^7.26.10", "@babel/generator@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== + dependencies: + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + "@babel/generator@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.9.tgz#75a9482ad3d0cc7188a537aa4910bc59db67cbca" @@ -224,6 +256,14 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== + dependencies: + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/helpers@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.9.tgz#28f3fb45252fc88ef2dc547c8a911c255fc9fef6" @@ -242,6 +282,13 @@ js-tokens "^4.0.0" picocolors "^1.0.0" +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.26.10", "@babel/parser@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== + dependencies: + "@babel/types" "^7.27.0" + "@babel/parser@^7.25.4", "@babel/parser@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.9.tgz#d9e78bee6dc80f9efd8f2349dcfbbcdace280fd5" @@ -750,14 +797,14 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.25.9" -"@babel/plugin-transform-react-jsx-self@^7.18.6": +"@babel/plugin-transform-react-jsx-self@^7.18.6", "@babel/plugin-transform-react-jsx-self@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz#c0b6cae9c1b73967f7f9eb2fca9536ba2fad2858" integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-react-jsx-source@^7.19.6": +"@babel/plugin-transform-react-jsx-source@^7.19.6", "@babel/plugin-transform-react-jsx-source@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz#4c6b8daa520b5f155b5fb55547d7c9fa91417503" integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg== @@ -1019,6 +1066,15 @@ "@babel/parser" "^7.26.9" "@babel/types" "^7.26.9" +"@babel/template@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" + "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.26.9": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.9.tgz#4398f2394ba66d05d988b2ad13c219a2c857461a" @@ -1032,6 +1088,27 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== + dependencies: + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.26.10", "@babel/types@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@babel/types@^7.21.3", "@babel/types@^7.25.4", "@babel/types@^7.25.9", "@babel/types@^7.26.9", "@babel/types@^7.4.4": version "7.26.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.9.tgz#08b43dec79ee8e682c2ac631c010bdcac54a21ce" @@ -2162,6 +2239,23 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@playwright/experimental-ct-core@1.52.0": + version "1.52.0" + resolved "https://registry.yarnpkg.com/@playwright/experimental-ct-core/-/experimental-ct-core-1.52.0.tgz#3fa18bc7952deaf141ad2a2c1cdfcff1de6c7192" + integrity sha512-DiDEammXxt8OIFDfoNitoOZyHFJAu6aYi0abmHl0IZgOQHxccP6UX50aTEnSTTUWCfwUWB0Vd8TKJ6w122WJEw== + dependencies: + playwright "1.52.0" + playwright-core "1.52.0" + vite "^6.2.6" + +"@playwright/experimental-ct-react@1.52.0": + version "1.52.0" + resolved "https://registry.yarnpkg.com/@playwright/experimental-ct-react/-/experimental-ct-react-1.52.0.tgz#a32db6d38f9c3d8769957b94d6d6e6c8171628e0" + integrity sha512-r9gREinfeCAgnMp2Kpr6MnXSnKE06HlM0qWkortrtOHhD1xdGAT+mBBBP0YvPN2f169wGNIRuSOxp05MFZ+XaQ== + dependencies: + "@playwright/experimental-ct-core" "1.52.0" + "@vitejs/plugin-react" "^4.2.1" + "@polka/url@^1.0.0-next.24": version "1.0.0-next.28" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" @@ -2495,96 +2589,196 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz#661a45a4709c70e59e596ec78daa9cb8b8d27604" integrity sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA== +"@rollup/rollup-android-arm-eabi@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz#d964ee8ce4d18acf9358f96adc408689b6e27fe3" + integrity sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg== + "@rollup/rollup-android-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz#128fe8dd510d880cf98b4cb6c7add326815a0c4b" integrity sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg== +"@rollup/rollup-android-arm64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz#9b5e130ecc32a5fc1e96c09ff371743ee71a62d3" + integrity sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w== + "@rollup/rollup-darwin-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz#363467bc49fd0b1e17075798ac8e9ad1e1e29535" integrity sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ== +"@rollup/rollup-darwin-arm64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz#ef439182c739b20b3c4398cfc03e3c1249ac8903" + integrity sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ== + "@rollup/rollup-darwin-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz#c2fe3d85fffe47f0ed0f076b3563ada22c8af19c" integrity sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q== +"@rollup/rollup-darwin-x64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz#d7380c1531ab0420ca3be16f17018ef72dd3d504" + integrity sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA== + "@rollup/rollup-freebsd-arm64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz#d95bd8f6eaaf829781144fc8bd2d5d71d9f6a9f5" integrity sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw== +"@rollup/rollup-freebsd-arm64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz#cbcbd7248823c6b430ce543c59906dd3c6df0936" + integrity sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg== + "@rollup/rollup-freebsd-x64@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz#c3576c6011656e4966ded29f051edec636b44564" integrity sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g== +"@rollup/rollup-freebsd-x64@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz#96bf6ff875bab5219c3472c95fa6eb992586a93b" + integrity sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw== + "@rollup/rollup-linux-arm-gnueabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz#48c87d0dee4f8dc9591a416717f91b4a89d77e3d" integrity sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg== +"@rollup/rollup-linux-arm-gnueabihf@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz#d80cd62ce6d40f8e611008d8dbf03b5e6bbf009c" + integrity sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA== + "@rollup/rollup-linux-arm-musleabihf@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz#f4c4e7c03a7767f2e5aa9d0c5cfbf5c0f59f2d41" integrity sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA== +"@rollup/rollup-linux-arm-musleabihf@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz#75440cfc1e8d0f87a239b4c31dfeaf4719b656b7" + integrity sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg== + "@rollup/rollup-linux-arm64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz#1015c9d07a99005025d13b8622b7600029d0b52f" integrity sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw== +"@rollup/rollup-linux-arm64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz#ac527485ecbb619247fb08253ec8c551a0712e7c" + integrity sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg== + "@rollup/rollup-linux-arm64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz#8f895eb5577748fc75af21beae32439626e0a14c" integrity sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A== +"@rollup/rollup-linux-arm64-musl@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz#74d2b5cb11cf714cd7d1682e7c8b39140e908552" + integrity sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ== + "@rollup/rollup-linux-loongarch64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz#c9cd5dbbdc6b3ca4dbeeb0337498cf31949004a0" integrity sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg== +"@rollup/rollup-linux-loongarch64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz#a0a310e51da0b5fea0e944b0abd4be899819aef6" + integrity sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg== + "@rollup/rollup-linux-powerpc64le-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz#7ebb5b4441faa17843a210f7d0583a20c93b40e4" integrity sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA== +"@rollup/rollup-linux-powerpc64le-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz#4077e2862b0ac9f61916d6b474d988171bd43b83" + integrity sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw== + "@rollup/rollup-linux-riscv64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz#10f5d7349fbd2fe78f9e36ecc90aab3154435c8d" integrity sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg== +"@rollup/rollup-linux-riscv64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz#5812a1a7a2f9581cbe12597307cc7ba3321cf2f3" + integrity sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA== + +"@rollup/rollup-linux-riscv64-musl@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz#973aaaf4adef4531375c36616de4e01647f90039" + integrity sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ== + "@rollup/rollup-linux-s390x-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz#196347d2fa20593ab09d0b7e2589fb69bdf742c6" integrity sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ== +"@rollup/rollup-linux-s390x-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz#9bad59e907ba5bfcf3e9dbd0247dfe583112f70b" + integrity sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw== + "@rollup/rollup-linux-x64-gnu@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz#7193cbd8d128212b8acda37e01b39d9e96259ef8" integrity sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A== +"@rollup/rollup-linux-x64-gnu@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz#68b045a720bd9b4d905f462b997590c2190a6de0" + integrity sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ== + "@rollup/rollup-linux-x64-musl@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz#29a6867278ca0420b891574cfab98ecad70c59d1" integrity sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA== +"@rollup/rollup-linux-x64-musl@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz#8e703e2c2ad19ba7b2cb3d8c3a4ad11d4ee3a282" + integrity sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw== + "@rollup/rollup-win32-arm64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz#89427dcac0c8e3a6d32b13a03a296a275d0de9a9" integrity sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q== +"@rollup/rollup-win32-arm64-msvc@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz#c5bee19fa670ff5da5f066be6a58b4568e9c650b" + integrity sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ== + "@rollup/rollup-win32-ia32-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz#ecb9711ba2b6d2bf6ee51265abe057ab90913deb" integrity sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w== +"@rollup/rollup-win32-ia32-msvc@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz#846e02c17044bd922f6f483a3b4d36aac6e2b921" + integrity sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA== + "@rollup/rollup-win32-x64-msvc@4.34.9": version "4.34.9" resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz#1973871850856ae72bc678aeb066ab952330e923" integrity sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw== +"@rollup/rollup-win32-x64-msvc@4.40.0": + version "4.40.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz#fd92d31a2931483c25677b9c6698106490cbbc76" + integrity sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ== + "@rtsao/scc@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" @@ -2834,6 +3028,39 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" + integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== + dependencies: + "@babel/types" "^7.20.7" + "@types/chai@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.0.tgz#23509ebc1fa32f1b4d50d6a66c4032d5b8eaabdc" @@ -2889,6 +3116,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/estree@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" + integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== + "@types/jest@27.4.0": version "27.4.0" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.0.tgz#037ab8b872067cae842a320841693080f9cb84ed" @@ -2945,6 +3177,13 @@ dependencies: undici-types "~6.20.0" +"@types/node@22.14.1": + version "22.14.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.14.1.tgz#53b54585cec81c21eee3697521e31312d6ca1e6f" + integrity sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw== + dependencies: + undici-types "~6.21.0" + "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "22.13.8" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.8.tgz#57e2450295b33a6518d6fd4f65f47236d3e41d8d" @@ -3127,6 +3366,17 @@ magic-string "^0.27.0" react-refresh "^0.14.0" +"@vitejs/plugin-react@^4.2.1": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz#d7d1e9c9616d7536b0953637edfee7c6cbe2fe0f" + integrity sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w== + dependencies: + "@babel/core" "^7.26.10" + "@babel/plugin-transform-react-jsx-self" "^7.25.9" + "@babel/plugin-transform-react-jsx-source" "^7.25.9" + "@types/babel__core" "^7.20.5" + react-refresh "^0.17.0" + "@vitest/coverage-v8@3.0.7": version "3.0.7" resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-3.0.7.tgz#44768ff9f6c541c5ea66ce8a3ed56a79a0e7f518" @@ -5647,6 +5897,11 @@ fdir@^6.4.3: resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== +fdir@^6.4.4: + version "6.4.4" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.4.tgz#1cfcf86f875a883e19a8fab53622cfe992e8d2f9" + integrity sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg== + fflate@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" @@ -5826,6 +6081,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -7838,6 +8098,20 @@ pkg-dir@4.2.0: dependencies: find-up "^4.0.0" +playwright-core@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.52.0.tgz#238f1f0c3edd4ebba0434ce3f4401900319a3dca" + integrity sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg== + +playwright@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.52.0.tgz#26cb9a63346651e1c54c8805acfd85683173d4bd" + integrity sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw== + dependencies: + playwright-core "1.52.0" + optionalDependencies: + fsevents "2.3.2" + png-chunk-text@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/png-chunk-text/-/png-chunk-text-1.0.0.tgz#1c6006d8e34ba471d38e1c9c54b3f53e1085e18f" @@ -8089,6 +8363,11 @@ react-refresh@^0.14.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== +react-refresh@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53" + integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ== + react-remove-scroll-bar@^2.3.7: version "2.3.8" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz#99c20f908ee467b385b68a3469b4a3e750012223" @@ -8354,6 +8633,35 @@ rollup@^4.2.0, rollup@^4.30.1: "@rollup/rollup-win32-x64-msvc" "4.34.9" fsevents "~2.3.2" +rollup@^4.34.9: + version "4.40.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.40.0.tgz#13742a615f423ccba457554f006873d5a4de1920" + integrity sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w== + dependencies: + "@types/estree" "1.0.7" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.40.0" + "@rollup/rollup-android-arm64" "4.40.0" + "@rollup/rollup-darwin-arm64" "4.40.0" + "@rollup/rollup-darwin-x64" "4.40.0" + "@rollup/rollup-freebsd-arm64" "4.40.0" + "@rollup/rollup-freebsd-x64" "4.40.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.40.0" + "@rollup/rollup-linux-arm-musleabihf" "4.40.0" + "@rollup/rollup-linux-arm64-gnu" "4.40.0" + "@rollup/rollup-linux-arm64-musl" "4.40.0" + "@rollup/rollup-linux-loongarch64-gnu" "4.40.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.40.0" + "@rollup/rollup-linux-riscv64-gnu" "4.40.0" + "@rollup/rollup-linux-riscv64-musl" "4.40.0" + "@rollup/rollup-linux-s390x-gnu" "4.40.0" + "@rollup/rollup-linux-x64-gnu" "4.40.0" + "@rollup/rollup-linux-x64-musl" "4.40.0" + "@rollup/rollup-win32-arm64-msvc" "4.40.0" + "@rollup/rollup-win32-ia32-msvc" "4.40.0" + "@rollup/rollup-win32-x64-msvc" "4.40.0" + fsevents "~2.3.2" + roughjs@4.6.4: version "4.6.4" resolved "https://registry.yarnpkg.com/roughjs/-/roughjs-4.6.4.tgz#b6f39b44645854a6e0a4a28b078368701eb7f939" @@ -8770,8 +9078,16 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8873,7 +9189,14 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1, strip-ansi@^7.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -9075,6 +9398,14 @@ tinyglobby@^0.2.10: fdir "^6.4.3" picomatch "^4.0.2" +tinyglobby@^0.2.12: + version "0.2.13" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.13.tgz#a0e46515ce6cbcd65331537e57484af5a7b2ff7e" + integrity sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw== + dependencies: + fdir "^6.4.4" + picomatch "^4.0.2" + tinypool@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.2.tgz#706193cc532f4c100f66aa00b01c42173d9051b2" @@ -9306,6 +9637,11 @@ undici-types@~6.20.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" @@ -9541,6 +9877,20 @@ vite@5.0.12: optionalDependencies: fsevents "~2.3.3" +vite@^6.2.6: + version "6.3.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-6.3.2.tgz#4c1bb01b1cea853686a191657bbc14272a038f0a" + integrity sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg== + dependencies: + esbuild "^0.25.0" + fdir "^6.4.3" + picomatch "^4.0.2" + postcss "^8.5.3" + rollup "^4.34.9" + tinyglobby "^0.2.12" + optionalDependencies: + fsevents "~2.3.3" + vitest-canvas-mock@0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/vitest-canvas-mock/-/vitest-canvas-mock-0.3.3.tgz#97e3b5f53003c5cbb9540204ff3122cd25be4dcd" @@ -10006,8 +10356,7 @@ workbox-window@7.3.0, workbox-window@^7.3.0: "@types/trusted-types" "^2.0.2" workbox-core "7.3.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -10025,6 +10374,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"