diff --git a/package.json b/package.json index dc3f3d53..53f65e6d 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,7 @@ "react-ga": "^3.3.1", "react-joyride": "^2.9.3", "react-redux": "^9.2.0", - "react-router": "^6.27.0", - "react-router-dom": "^6.27.0", + "react-router": "^7.11.0", "react-scripts": "5.0.1", "react-simple-code-editor": "^0.14.1", "react-simple-tree-menu": "^1.1.18", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3bd16cd0..efc6dd4f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,11 +60,8 @@ importers: specifier: ^9.2.0 version: 9.2.0(@types/react@18.2.79)(react@18.3.1)(redux@4.2.1) react-router: - specifier: ^6.27.0 - version: 6.27.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) + specifier: ^7.11.0 + version: 7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-scripts: specifier: 5.0.1 version: 5.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.24.7))(@types/babel__core@7.20.5)(eslint@8.26.0)(react@18.3.1)(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1) @@ -1582,10 +1579,6 @@ packages: webpack-plugin-serve: optional: true - '@remix-run/router@1.20.0': - resolution: {integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==} - engines: {node: '>=14.0.0'} - '@rollup/plugin-babel@5.3.1': resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -3010,6 +3003,10 @@ packages: resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} @@ -6406,18 +6403,15 @@ packages: resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==} engines: {node: '>=0.10.0'} - react-router-dom@6.27.0: - resolution: {integrity: sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==} - 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==} - engines: {node: '>=14.0.0'} + react-router@7.11.0: + resolution: {integrity: sha512-uI4JkMmjbWCZc01WVP2cH7ZfSzH91JAZUDd7/nIprDgWxBV1TkkmLToFh7EbMTcMak8URFRa2YoBL/W8GWnCTQ==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true react-scripts@5.0.1: resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==} @@ -6805,6 +6799,9 @@ packages: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + set-function-length@1.2.0: resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} engines: {node: '>= 0.4'} @@ -9534,8 +9531,6 @@ snapshots: webpack-dev-server: 4.11.1(webpack@5.104.1) webpack-hot-middleware: 2.26.1 - '@remix-run/router@1.20.0': {} - '@rollup/plugin-babel@5.3.1(@babel/core@7.24.7)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: '@babel/core': 7.24.7 @@ -11211,6 +11206,8 @@ snapshots: cookie@1.0.2: {} + cookie@1.1.1: {} + core-js-compat@3.37.1: dependencies: browserslist: 4.28.1 @@ -15229,17 +15226,13 @@ snapshots: react-refresh@0.11.0: {} - react-router-dom@6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-router@7.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/router': 1.20.0 + cookie: 1.1.1 react: 18.3.1 + set-cookie-parser: 2.7.2 + optionalDependencies: react-dom: 18.3.1(react@18.3.1) - react-router: 6.27.0(react@18.3.1) - - react-router@6.27.0(react@18.3.1): - dependencies: - '@remix-run/router': 1.20.0 - react: 18.3.1 react-scripts@5.0.1(@babel/plugin-syntax-flow@7.23.3(@babel/core@7.24.7))(@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.24.7))(@types/babel__core@7.20.5)(eslint@8.26.0)(react@18.3.1)(type-fest@4.41.0)(typescript@5.9.3)(webpack-hot-middleware@2.26.1): dependencies: @@ -15754,6 +15747,8 @@ snapshots: transitivePeerDependencies: - supports-color + set-cookie-parser@2.7.2: {} + set-function-length@1.2.0: dependencies: define-data-property: 1.1.1 diff --git a/src/App.js b/src/App.js index 48465b90..2733a6fe 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,5 @@ import React from 'react'; -import {Route, Routes} from 'react-router-dom'; +import {Route, Routes} from 'react-router'; import Home from './Home'; /** A container for all routes in the app (currently only one) */ diff --git a/src/EditorContainer.js b/src/EditorContainer.js index 887f2b02..a378be54 100644 --- a/src/EditorContainer.js +++ b/src/EditorContainer.js @@ -1,7 +1,7 @@ // @flow import React from 'react'; import {useDispatch, useSelector} from 'react-redux'; -import {useNavigate} from 'react-router-dom'; +import {useNavigate} from 'react-router'; import fromEntries from 'fromentries'; import SqlEditor from './SqlEditor'; import {exprFromSql} from './modules/relexp'; diff --git a/src/index.js b/src/index.js index d063ceee..25295cc4 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,7 @@ // @flow import './wydr'; -import {BrowserRouter} from 'react-router-dom'; +import {BrowserRouter} from 'react-router'; import {Provider} from 'react-redux'; import React from 'react'; import {createRoot} from 'react-dom/client'; diff --git a/src/setupTests.js b/src/setupTests.js index 08ddc6af..213ef0e8 100644 --- a/src/setupTests.js +++ b/src/setupTests.js @@ -1,5 +1,7 @@ import '@testing-library/jest-dom'; +import {TextEncoder, TextDecoder} from 'util'; + if (window.document) { window.document.createRange = () => ({ setStart: () => {}, @@ -27,3 +29,7 @@ if (window.document) { jest.mock('uuid', () => ({ v4: () => '00000000-0000-0000-0000-000000000000', })); + +// Make available for react-router +global.TextEncoder = TextEncoder; +global.TextDecoder = TextDecoder;