diff --git a/package.json b/package.json index bbda89f88..ead40919c 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "@react-three/test-renderer": "8.2.1", "@svgr/webpack": "5.5.0", "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^13.2.0", + "@testing-library/react": "^14.3.1", "@testing-library/user-event": "^12.1.10", "@typescript-eslint/eslint-plugin": "^4.5.0", "@typescript-eslint/parser": "^4.5.0", diff --git a/src/components/DownloadButton/DownloadButton.test.js b/src/components/DownloadButton/DownloadButton.test.js index 1d8a5a655..d61421015 100644 --- a/src/components/DownloadButton/DownloadButton.test.js +++ b/src/components/DownloadButton/DownloadButton.test.js @@ -7,6 +7,8 @@ import FileSaver from "file-saver"; import JSZip from "jszip"; import JSZipUtils from "jszip-utils"; +import "../../consoleMock"; + jest.mock("file-saver"); jest.mock("jszip"); jest.mock("jszip-utils", () => ({ diff --git a/src/components/Editor/EditorInput/EditorInput.test.js b/src/components/Editor/EditorInput/EditorInput.test.js index 84b2426aa..94a77f428 100644 --- a/src/components/Editor/EditorInput/EditorInput.test.js +++ b/src/components/Editor/EditorInput/EditorInput.test.js @@ -11,6 +11,8 @@ import { import { matchMedia, setMedia } from "mock-match-media"; import { MOBILE_BREAKPOINT } from "../../../utils/mediaQueryBreakpoints"; +import "../../../consoleMock"; + window.HTMLElement.prototype.scrollIntoView = jest.fn(); let mockMediaQuery = (query) => { diff --git a/src/components/Editor/NewComponentButton/NewComponentButton.test.js b/src/components/Editor/NewComponentButton/NewComponentButton.test.js index 514261be6..ac59fba6f 100644 --- a/src/components/Editor/NewComponentButton/NewComponentButton.test.js +++ b/src/components/Editor/NewComponentButton/NewComponentButton.test.js @@ -2,6 +2,7 @@ import React from "react"; import { fireEvent, render, screen } from "@testing-library/react"; import { Provider } from "react-redux"; import configureStore from "redux-mock-store"; +import "../../../consoleMock"; import NewComponentButton from "./NewComponentButton"; import { showNewFileModal } from "../../../redux/EditorSlice"; diff --git a/src/components/Editor/Project/Project.test.js b/src/components/Editor/Project/Project.test.js index 3d2b7e82a..f09f087d0 100644 --- a/src/components/Editor/Project/Project.test.js +++ b/src/components/Editor/Project/Project.test.js @@ -7,6 +7,8 @@ import Project from "./Project"; import { showSavedMessage } from "../../../utils/Notifications"; import { MemoryRouter } from "react-router-dom"; +import "../../../consoleMock"; + window.HTMLElement.prototype.scrollIntoView = jest.fn(); jest.mock("react-router-dom", () => ({ diff --git a/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.js b/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.js index 98fac8be5..facded60a 100644 --- a/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.js +++ b/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.js @@ -7,6 +7,7 @@ import { codeRunHandled, triggerCodeRun } from "../../../../redux/EditorSlice"; import { MemoryRouter } from "react-router-dom"; import { matchMedia, setMedia } from "mock-match-media"; import { MOBILE_BREAKPOINT } from "../../../../utils/mediaQueryBreakpoints"; +import "../../../../consoleMock"; let mockMediaQuery = (query) => { return matchMedia(query).matches; diff --git a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.js b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.js index bea6c9264..46ee42b9d 100644 --- a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.js +++ b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.js @@ -9,6 +9,7 @@ import { import PyodideRunner from "./PyodideRunner"; import { Provider } from "react-redux"; import PyodideWorker, { postMessage } from "./PyodideWorker.mock.js"; +import "../../../../../consoleMock" import { resetState, diff --git a/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.js b/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.js index bcb314570..12e061336 100644 --- a/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.js +++ b/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.js @@ -5,6 +5,8 @@ import { Provider } from "react-redux"; import VisualOutputPane from "./VisualOutputPane.jsx"; import Highcharts from "highcharts"; +import "../../../../../consoleMock"; + jest.mock("highcharts"); const renderPaneWithVisuals = (visuals) => { diff --git a/src/components/Editor/Runners/PythonRunner/PythonRunner.test.js b/src/components/Editor/Runners/PythonRunner/PythonRunner.test.js index b92f9cf3f..7ff08f78c 100644 --- a/src/components/Editor/Runners/PythonRunner/PythonRunner.test.js +++ b/src/components/Editor/Runners/PythonRunner/PythonRunner.test.js @@ -1,6 +1,6 @@ import { render, within } from "@testing-library/react"; import { Provider } from "react-redux"; -import { act } from "react-dom/test-utils"; +import { act } from "react"; import PythonRunner from "./PythonRunner"; import { triggerCodeRun, @@ -8,6 +8,7 @@ import { setSenseHatAlwaysEnabled, } from "../../../../redux/EditorSlice"; import store from "../../../../app/store"; +import "../../../../consoleMock"; const initialState = { editor: { diff --git a/src/components/Menus/ContextMenu/ContextMenu.test.js b/src/components/Menus/ContextMenu/ContextMenu.test.js index f14830fe2..43f567acf 100644 --- a/src/components/Menus/ContextMenu/ContextMenu.test.js +++ b/src/components/Menus/ContextMenu/ContextMenu.test.js @@ -3,6 +3,8 @@ import { fireEvent, render, screen } from "@testing-library/react"; import { axe, toHaveNoViolations } from "jest-axe"; import ContextMenu from "./ContextMenu"; +import "../../../consoleMock"; + expect.extend(toHaveNoViolations); const action1 = jest.fn(); diff --git a/src/components/Menus/Sidebar/DownloadPanel/DownloadPanel.test.js b/src/components/Menus/Sidebar/DownloadPanel/DownloadPanel.test.js index c5fb0852e..ee9693d77 100644 --- a/src/components/Menus/Sidebar/DownloadPanel/DownloadPanel.test.js +++ b/src/components/Menus/Sidebar/DownloadPanel/DownloadPanel.test.js @@ -5,6 +5,8 @@ import { MemoryRouter } from "react-router"; import configureStore from "redux-mock-store"; import FileSaver from "file-saver"; +import "../../../../consoleMock"; + jest.mock("file-saver"); jest.mock("jszip"); jest.mock("jszip-utils", () => ({ diff --git a/src/components/Menus/Sidebar/FilePanel/FilePanel.test.js b/src/components/Menus/Sidebar/FilePanel/FilePanel.test.js index 79ee794d7..62e5b1e61 100644 --- a/src/components/Menus/Sidebar/FilePanel/FilePanel.test.js +++ b/src/components/Menus/Sidebar/FilePanel/FilePanel.test.js @@ -6,6 +6,8 @@ import configureStore from "redux-mock-store"; import FilePanel from "./FilePanel"; import { openFile, setFocussedFileIndex } from "../../../../redux/EditorSlice"; +import "../../../../consoleMock"; + const createMockStore = function ({ components, openFiles = [[]], readOnly }) { const mockStore = configureStore([]); return mockStore({ diff --git a/src/components/Menus/Sidebar/ProjectsPanel/ProjectsPanel.test.js b/src/components/Menus/Sidebar/ProjectsPanel/ProjectsPanel.test.js index f759e4e3b..f68334cec 100644 --- a/src/components/Menus/Sidebar/ProjectsPanel/ProjectsPanel.test.js +++ b/src/components/Menus/Sidebar/ProjectsPanel/ProjectsPanel.test.js @@ -6,6 +6,8 @@ import { MemoryRouter } from "react-router-dom"; import ProjectsPanel from "./ProjectsPanel"; +import "../../../../consoleMock"; + document.dispatchEvent = jest.fn(); const initialState = { diff --git a/src/components/Menus/Sidebar/Sidebar.test.js b/src/components/Menus/Sidebar/Sidebar.test.js index 6852ba038..60bb93d73 100644 --- a/src/components/Menus/Sidebar/Sidebar.test.js +++ b/src/components/Menus/Sidebar/Sidebar.test.js @@ -4,6 +4,8 @@ import Sidebar from "./Sidebar"; import configureStore from "redux-mock-store"; import { Provider } from "react-redux"; +import "../../../consoleMock"; + let images = [ { url: "path/to/image1", diff --git a/src/components/Menus/Sidebar/SidebarBar.test.js b/src/components/Menus/Sidebar/SidebarBar.test.js index 1d0b52051..23f3b1640 100644 --- a/src/components/Menus/Sidebar/SidebarBar.test.js +++ b/src/components/Menus/Sidebar/SidebarBar.test.js @@ -4,6 +4,8 @@ import configureStore from "redux-mock-store"; import { Provider } from "react-redux"; import SidebarBar from "./SidebarBar"; +import "../../../consoleMock" + const toggleOption = jest.fn(); const mockStore = configureStore([]); diff --git a/src/components/Mobile/MobileProject/MobileProject.test.js b/src/components/Mobile/MobileProject/MobileProject.test.js index 7893a8ecf..ac2d600d8 100644 --- a/src/components/Mobile/MobileProject/MobileProject.test.js +++ b/src/components/Mobile/MobileProject/MobileProject.test.js @@ -5,6 +5,8 @@ import configureStore from "redux-mock-store"; import MobileProject from "./MobileProject"; import { showSidebar } from "../../../redux/EditorSlice"; +import "../../../consoleMock"; + window.HTMLElement.prototype.scrollIntoView = jest.fn(); const middlewares = []; diff --git a/src/components/Modals/AccessDeniedWithAuthModal.test.js b/src/components/Modals/AccessDeniedWithAuthModal.test.js index b4deeedfe..035d39302 100644 --- a/src/components/Modals/AccessDeniedWithAuthModal.test.js +++ b/src/components/Modals/AccessDeniedWithAuthModal.test.js @@ -6,6 +6,8 @@ import AccessDeniedWithAuthModal from "./AccessDeniedWithAuthModal"; import { syncProject } from "../../redux/EditorSlice"; import { defaultPythonProject } from "../../utils/defaultProjects"; +import "../../consoleMock" + jest.mock("../../redux/EditorSlice", () => ({ ...jest.requireActual("../../redux/EditorSlice"), syncProject: jest.fn((_) => jest.fn()), diff --git a/src/components/Modals/ErrorModal.test.js b/src/components/Modals/ErrorModal.test.js index e9a9ac0fa..c1bfd0988 100644 --- a/src/components/Modals/ErrorModal.test.js +++ b/src/components/Modals/ErrorModal.test.js @@ -5,6 +5,8 @@ import configureStore from "redux-mock-store"; import ErrorModal from "./ErrorModal"; import { closeErrorModal, setError } from "../../redux/EditorSlice"; +import "../../consoleMock" + const middlewares = []; const mockStore = configureStore(middlewares); diff --git a/src/components/Modals/GeneralModal.test.js b/src/components/Modals/GeneralModal.test.js index 8bad7a18c..672aaff1a 100644 --- a/src/components/Modals/GeneralModal.test.js +++ b/src/components/Modals/GeneralModal.test.js @@ -2,6 +2,8 @@ import { fireEvent, render, screen } from "@testing-library/react"; import React from "react"; import GeneralModal from "./GeneralModal"; +import "../../consoleMock"; + const defaultCallback = jest.fn(); const closeModal = jest.fn(); diff --git a/src/components/Modals/InputModal.test.js b/src/components/Modals/InputModal.test.js index b41c18c4d..5e106dfc7 100644 --- a/src/components/Modals/InputModal.test.js +++ b/src/components/Modals/InputModal.test.js @@ -15,20 +15,21 @@ beforeEach(() => { }, }; const store = mockStore(initialState); + const app = document.createElement("div"); + app.setAttribute("id", "app"); + document.body.appendChild(app); render( -
- -
+ ,
, ); inputBox = screen.getByLabelText(/input/); diff --git a/src/components/Modals/NewFileModal.test.js b/src/components/Modals/NewFileModal.test.js index 8b0035fbf..7478906c8 100644 --- a/src/components/Modals/NewFileModal.test.js +++ b/src/components/Modals/NewFileModal.test.js @@ -3,6 +3,8 @@ import { fireEvent, render, screen } from "@testing-library/react"; import { Provider } from "react-redux"; import configureStore from "redux-mock-store"; +import "../../consoleMock" + import NewFileModal from "./NewFileModal"; import { addProjectComponent, diff --git a/src/components/Modals/NotFoundModal.test.js b/src/components/Modals/NotFoundModal.test.js index e610785cf..f0dbfe1e9 100644 --- a/src/components/Modals/NotFoundModal.test.js +++ b/src/components/Modals/NotFoundModal.test.js @@ -6,6 +6,8 @@ import NotFoundModal from "./NotFoundModal"; import { closeNotFoundModal, syncProject } from "../../redux/EditorSlice"; import { defaultPythonProject } from "../../utils/defaultProjects"; +import "../../consoleMock" + jest.mock("../../redux/EditorSlice", () => ({ ...jest.requireActual("../../redux/EditorSlice"), syncProject: jest.fn((_) => jest.fn()), diff --git a/src/components/Modals/RenameFileModal.test.js b/src/components/Modals/RenameFileModal.test.js index 112f9b16a..b09e10922 100644 --- a/src/components/Modals/RenameFileModal.test.js +++ b/src/components/Modals/RenameFileModal.test.js @@ -3,6 +3,8 @@ import { fireEvent, render, screen } from "@testing-library/react"; import { Provider } from "react-redux"; import configureStore from "redux-mock-store"; +import "../../consoleMock"; + import RenameFileModal from "./RenameFileModal"; import { setNameError, diff --git a/src/components/Modals/RenameProjectModal.test.js b/src/components/Modals/RenameProjectModal.test.js index 86bc364c3..85018029e 100644 --- a/src/components/Modals/RenameProjectModal.test.js +++ b/src/components/Modals/RenameProjectModal.test.js @@ -3,6 +3,7 @@ import { fireEvent, render, screen, waitFor } from "@testing-library/react"; import { Provider } from "react-redux"; import configureStore from "redux-mock-store"; import { MockedProvider } from "@apollo/client/testing"; +import "../../consoleMock" import { RenameProjectModal, diff --git a/src/components/ProjectBar/ProjectBar.test.js b/src/components/ProjectBar/ProjectBar.test.js index cbfd6e720..df34c0008 100644 --- a/src/components/ProjectBar/ProjectBar.test.js +++ b/src/components/ProjectBar/ProjectBar.test.js @@ -5,6 +5,8 @@ import configureStore from "redux-mock-store"; import { MemoryRouter } from "react-router-dom"; import ProjectBar from "./ProjectBar"; +import "../../consoleMock"; + jest.mock("axios"); jest.mock("react-router-dom", () => ({ diff --git a/src/components/ProjectName/ProjectName.test.js b/src/components/ProjectName/ProjectName.test.js index fa002ba07..c001d8ba5 100644 --- a/src/components/ProjectName/ProjectName.test.js +++ b/src/components/ProjectName/ProjectName.test.js @@ -7,6 +7,8 @@ import userEvent from "@testing-library/user-event"; import ProjectName from "./ProjectName"; import { updateProjectName } from "../../redux/EditorSlice"; +import "../../consoleMock"; + const project = { identifier: "hello-world-project", name: "Hello world", diff --git a/src/components/SaveButton/SaveButton.test.js b/src/components/SaveButton/SaveButton.test.js index 146720e0d..8c5ccbf15 100644 --- a/src/components/SaveButton/SaveButton.test.js +++ b/src/components/SaveButton/SaveButton.test.js @@ -4,6 +4,7 @@ import { Provider } from "react-redux"; import configureStore from "redux-mock-store"; import { triggerSave } from "../../redux/EditorSlice"; import SaveButton from "./SaveButton"; +import "../../consoleMock" const logInHandler = jest.fn(); diff --git a/src/components/WebComponentProject/WebComponentProject.test.js b/src/components/WebComponentProject/WebComponentProject.test.js index 4a303121b..ae9e3c38b 100644 --- a/src/components/WebComponentProject/WebComponentProject.test.js +++ b/src/components/WebComponentProject/WebComponentProject.test.js @@ -3,6 +3,7 @@ import { act, render, screen } from "@testing-library/react"; import { Provider } from "react-redux"; import configureStore from "redux-mock-store"; import WebComponentProject from "./WebComponentProject"; +import "../../consoleMock"; const codeChangedHandler = jest.fn(); const runStartedHandler = jest.fn(); diff --git a/src/consoleMock.js b/src/consoleMock.js new file mode 100644 index 000000000..c9b2018fd --- /dev/null +++ b/src/consoleMock.js @@ -0,0 +1,36 @@ +const originalError = console.error; +const originalWarn = console.warn; + +window.console.warn = (msg) => { + if (msg.includes("DEPRECATED: icons as React elements will not be supported in future releases") || + msg.includes("PyodideWorker is not initialized") || + msg.includes("changing the droppableId")) { + return; + } + + originalWarn(msg); +} + +window.console.error = (error) => { + let msg; + if (typeof(error) === "object") { + msg = error.message; + } else { + msg = error; + } + + if (msg.includes("inside a test was not wrapped in act(...)") || + msg.includes("Warning: Invalid value for prop") || + msg.includes("getClientRects is not a function") || + msg.includes("An error occurred! For more details, see the full error text at") || + msg.includes("Warning: react-modal: App element is not defined") || + msg.includes("Support for defaultProps will be removed from function components") || + msg.includes("A component is changing a controlled input to be uncontrolled") || + msg.includes("Unsupported origin: unsupported") || + msg.includes("Consider adding an error boundary to your tree") || + msg.includes("Each child in a list should have a unique")) { + return; + } + + originalError(error); +} diff --git a/src/containers/WebComponentLoader.test.js b/src/containers/WebComponentLoader.test.js index 34c5bac4f..0df653170 100644 --- a/src/containers/WebComponentLoader.test.js +++ b/src/containers/WebComponentLoader.test.js @@ -16,6 +16,8 @@ import { useProjectPersistence } from "../hooks/useProjectPersistence"; import localStorageUserMiddleware from "../redux/middlewares/localStorageUserMiddleware"; import { Cookies, CookiesProvider } from "react-cookie"; +import "../consoleMock"; + jest.mock("../hooks/useProject", () => ({ useProject: jest.fn(), })); diff --git a/src/utils/ResizableWithHandle.test.js b/src/utils/ResizableWithHandle.test.js index 79f6b76bf..38ffa0415 100644 --- a/src/utils/ResizableWithHandle.test.js +++ b/src/utils/ResizableWithHandle.test.js @@ -3,18 +3,18 @@ import { render, screen } from "@testing-library/react"; import ResizableWithHandle from "./ResizableWithHandle"; test("renders a horizontal handle", () => { - render(); + render(
); expect(screen.getByTestId("horizontalHandle")).toBeTruthy(); }); test("renders a vertical handle", () => { - render(); + render(
); expect(screen.getByTestId("verticalHandle")).toBeTruthy(); }); test("it does not add an incorrect class to the handle", () => { const { container } = render( - , +
, ); expect( container.getElementsByClassName("resizable-with-handle__handle--right") @@ -24,7 +24,7 @@ test("it does not add an incorrect class to the handle", () => { test("it adds the expected class to the handle", () => { const { container } = render( - , +
, ); expect( container.getElementsByClassName("resizable-with-handle__handle--bottom") diff --git a/yarn.lock b/yarn.lock index ab941ab3b..83585cfec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -113,7 +113,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.7, @babel/code-frame@npm:^7.5.5": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.7, @babel/code-frame@npm:^7.5.5": version: 7.25.7 resolution: "@babel/code-frame@npm:7.25.7" dependencies: @@ -123,6 +123,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.10.4": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" + dependencies: + "@babel/helper-validator-identifier": ^7.25.9 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: db13f5c42d54b76c1480916485e6900748bbcb0014a8aca87f50a091f70ff4e0d0a6db63cade75eb41fcc3d2b6ba0a7f89e343def4f96f00269b41b8ab8dd7b8 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8": version: 7.25.8 resolution: "@babel/compat-data@npm:7.25.8" @@ -352,6 +363,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 5b85918cb1a92a7f3f508ea02699e8d2422fe17ea8e82acd445006c0ef7520fbf48e3dbcdaf7b0a1d571fc3a2715a29719e5226636cb6042e15fe6ed2a590944 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-validator-option@npm:7.25.7" @@ -2753,7 +2771,7 @@ __metadata: "@svgr/webpack": 5.5.0 "@szhsin/react-menu": ^3.2.0 "@testing-library/jest-dom": ^5.16.5 - "@testing-library/react": ^13.2.0 + "@testing-library/react": ^14.3.1 "@testing-library/user-event": ^12.1.10 "@typescript-eslint/eslint-plugin": ^4.5.0 "@typescript-eslint/parser": ^4.5.0 @@ -3494,9 +3512,9 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^8.5.0": - version: 8.20.1 - resolution: "@testing-library/dom@npm:8.20.1" +"@testing-library/dom@npm:^9.0.0": + version: 9.3.4 + resolution: "@testing-library/dom@npm:9.3.4" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 @@ -3506,7 +3524,7 @@ __metadata: dom-accessibility-api: ^0.5.9 lz-string: ^1.5.0 pretty-format: ^27.0.2 - checksum: 06fc8dc67849aadb726cbbad0e7546afdf8923bd39acb64c576d706249bd7d0d05f08e08a31913fb621162e3b9c2bd0dce15964437f030f9fa4476326fdd3007 + checksum: dfd6fb0d6c7b4dd716ba3c47309bc9541b4a55772cb61758b4f396b3785efe2dbc75dc63423545c039078c7ffcc5e4b8c67c2db1b6af4799580466036f70026f languageName: node linkType: hard @@ -3527,17 +3545,17 @@ __metadata: languageName: node linkType: hard -"@testing-library/react@npm:^13.2.0": - version: 13.4.0 - resolution: "@testing-library/react@npm:13.4.0" +"@testing-library/react@npm:^14.3.1": + version: 14.3.1 + resolution: "@testing-library/react@npm:14.3.1" dependencies: "@babel/runtime": ^7.12.5 - "@testing-library/dom": ^8.5.0 + "@testing-library/dom": ^9.0.0 "@types/react-dom": ^18.0.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 51ec548c1fdb1271089a5c63e0908f0166f2c7fcd9cacd3108ebbe0ce64cb4351812d885892020dc37608418cfb15698514856502b3cab0e5cc58d6cc1bd4a3e + checksum: b057d4c9db5a523acfc24d7bc4665a924ab8d6f252c7f51eecf7dd30f1239413e1134925fd5cc9cbdef80496af64c04e6719b2081f89fe05ba87e8c6305bcc16 languageName: node linkType: hard @@ -3936,11 +3954,11 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.0.0": - version: 18.3.1 - resolution: "@types/react-dom@npm:18.3.1" - dependencies: - "@types/react": "*" - checksum: ad28ecce3915d30dc76adc2a1373fda1745ba429cea290e16c6628df9a05fd80b6403c8e87d78b45e6c60e51df7a67add389ab62b90070fbfdc9bda8307d9953 + version: 18.3.5 + resolution: "@types/react-dom@npm:18.3.5" + peerDependencies: + "@types/react": ^18.0.0 + checksum: 95c757684f71e761515c5a11299e5feec550c72bb52975487f360e6f0d359b26454c26eaf2ce45dd22748205aa9b2c2fe0abe7005ebcbd233a7615283ac39a7d languageName: node linkType: hard