diff --git a/.changeset/rude-flowers-drum.md b/.changeset/rude-flowers-drum.md new file mode 100644 index 000000000000..340819ed0b5a --- /dev/null +++ b/.changeset/rude-flowers-drum.md @@ -0,0 +1,9 @@ +--- +'@modern-js/plugin-garfish': patch +'@modern-js/runtime': patch +'@modern-js/runtime-utils': patch +'@modern-js/plugin-ssg': patch +--- + +chore: upgrade react-router and export all react-router APIs +chore: 升级 react-router 相关依赖,并导出所有 react-router API diff --git a/packages/cli/plugin-ssg/package.json b/packages/cli/plugin-ssg/package.json index dfd0c2ea00e7..952104ee1f58 100644 --- a/packages/cli/plugin-ssg/package.json +++ b/packages/cli/plugin-ssg/package.json @@ -91,7 +91,7 @@ "jest": "^29", "react": "^18", "react-dom": "^18", - "react-router-dom": "6.17.0", + "react-router-dom": "6.22.0", "typescript": "^5" }, "sideEffects": false, diff --git a/packages/runtime/plugin-garfish/package.json b/packages/runtime/plugin-garfish/package.json index f1c6eca6bc44..6e7a622da0d8 100644 --- a/packages/runtime/plugin-garfish/package.json +++ b/packages/runtime/plugin-garfish/package.json @@ -106,7 +106,7 @@ "jest-fetch-mock": "^3.0.3", "react": "^18", "react-dom": "^18", - "react-router-dom": "6.17.0", + "react-router-dom": "6.22.0", "typescript": "^5" }, "sideEffects": false, diff --git a/packages/runtime/plugin-runtime/src/router/runtime/index.ts b/packages/runtime/plugin-runtime/src/router/runtime/index.ts index 66e49cc69d0a..565d039a95e3 100644 --- a/packages/runtime/plugin-runtime/src/router/runtime/index.ts +++ b/packages/runtime/plugin-runtime/src/router/runtime/index.ts @@ -2,6 +2,8 @@ import { useRouteLoaderData as useRouteData } from '@modern-js/runtime-utils/rou import { routerPlugin } from './plugin'; import type { SingleRouteConfig, RouterConfig } from './types'; +export * from '@modern-js/runtime-utils/router'; + export type { SingleRouteConfig, RouterConfig }; export { renderRoutes } from './utils'; @@ -26,133 +28,3 @@ export { } from './routeModule'; export type { LoaderFunction, LoaderFunctionArgs } from './types'; - -// Note: Keep in sync with react-router-dom exports! -export type { - // below are react-router-dom exports - FormEncType, - FormMethod, - GetScrollRestorationKeyFunction, - ParamKeyValuePair, - SubmitOptions, - URLSearchParamsInit, - FetcherWithComponents, - BrowserRouterProps, - HashRouterProps, - HistoryRouterProps, - FormProps, - ScrollRestorationProps, - SubmitFunction, - - // below are react-router exports - ActionFunction, - ActionFunctionArgs, - AwaitProps, - unstable_Blocker, - unstable_BlockerFunction, - DataRouteMatch, - DataRouteObject, - Fetcher, - Hash, - IndexRouteObject, - IndexRouteProps, - JsonFunction, - LayoutRouteProps, - Location, - MemoryRouterProps, - NavigateFunction, - NavigateOptions, - NavigateProps, - Navigation, - Navigator, - NonIndexRouteObject, - OutletProps, - Params, - ParamParseKey, - Path, - PathMatch, - Pathname, - PathPattern, - PathRouteProps, - RedirectFunction, - RelativeRoutingType, - RouteMatch, - RouteObject, - RouteProps, - RouterProps, - RouterProviderProps, - RoutesProps, - Search, - ShouldRevalidateFunction, - To, -} from '@modern-js/runtime-utils/router'; - -// Note: Keep in sync with react-router-dom exports! -export { - // Routers - createBrowserRouter, - createHashRouter, - createMemoryRouter, - RouterProvider, - - // Router Components - BrowserRouter, - HashRouter, - MemoryRouter, - Router, - - // Components - Await, - Form, - Navigate, - Outlet, - Route, - Routes, - ScrollRestoration, - - // Hooks - useActionData, - useAsyncError, - useAsyncValue, - useBeforeUnload, - useFetcher, - useFetchers, - useFormAction, - useHref, - useInRouterContext, - useLinkClickHandler, - useLoaderData, - useLocation, - useMatch, - useMatches, - useNavigate, - useNavigation, - useNavigationType, - useOutlet, - useOutletContext, - useParams, - useResolvedPath, - useRevalidator, - useRouteError, - useRoutes, - useSearchParams, - useSubmit, - unstable_useViewTransitionState, - - // Utilities - createRoutesFromChildren, - createRoutesFromElements, - createSearchParams, - generatePath, - isRouteErrorResponse, - matchPath, - matchRoutes, - renderMatches, - resolvePath, - createPath, - unstable_useBlocker, - unstable_usePrompt, - defer, - json, - redirect, -} from '@modern-js/runtime-utils/router'; diff --git a/packages/toolkit/runtime-utils/package.json b/packages/toolkit/runtime-utils/package.json index 2177a3daf2f6..f7d99ceaf2aa 100644 --- a/packages/toolkit/runtime-utils/package.json +++ b/packages/toolkit/runtime-utils/package.json @@ -159,8 +159,8 @@ "@modern-js/utils": "workspace:*", "lru-cache": "^6.0.0", "serialize-javascript": "^6.0.0", - "react-router-dom": "6.17.0", - "@remix-run/router": "1.10.0", + "react-router-dom": "6.22.0", + "@remix-run/router": "1.15.0", "@swc/helpers": "0.5.3" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 229010196911..842ac9c5586c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -523,8 +523,8 @@ importers: specifier: ^18 version: 18.2.0(react@18.2.0) react-router-dom: - specifier: 6.17.0 - version: 6.17.0(react-dom@18.2.0)(react@18.2.0) + specifier: 6.22.0 + version: 6.22.0(react-dom@18.2.0)(react@18.2.0) typescript: specifier: ^5 version: 5.3.3 @@ -2870,8 +2870,8 @@ importers: specifier: ^18 version: 18.2.0(react@18.2.0) react-router-dom: - specifier: 6.17.0 - version: 6.17.0(react-dom@18.2.0)(react@18.2.0) + specifier: 6.22.0 + version: 6.22.0(react-dom@18.2.0)(react@18.2.0) typescript: specifier: ^5 version: 5.3.3 @@ -4614,8 +4614,8 @@ importers: specifier: workspace:* version: link:../utils '@remix-run/router': - specifier: 1.10.0 - version: 1.10.0 + specifier: 1.15.0 + version: 1.15.0 '@swc/helpers': specifier: 0.5.3 version: 0.5.3 @@ -4623,8 +4623,8 @@ importers: specifier: ^6.0.0 version: 6.0.0 react-router-dom: - specifier: 6.17.0 - version: 6.17.0(react-dom@18.2.0)(react@18.2.0) + specifier: 6.22.0 + version: 6.22.0(react-dom@18.2.0)(react@18.2.0) serialize-javascript: specifier: ^6.0.0 version: 6.0.1 @@ -5280,8 +5280,8 @@ importers: specifier: ^18 version: 18.2.0(react@18.2.0) react-router-dom: - specifier: 6.17.0 - version: 6.17.0(react-dom@18.2.0)(react@18.2.0) + specifier: 6.22.0 + version: 6.22.0(react-dom@18.2.0)(react@18.2.0) vue: specifier: ^3.3.4 version: 3.3.4 @@ -13336,8 +13336,8 @@ packages: stream-slice: 0.1.2 dev: false - /@remix-run/router@1.10.0: - resolution: {integrity: sha512-Lm+fYpMfZoEucJ7cMxgt4dYt8jLfbpwRCzAjm9UgSLOkmlqo9gupxt6YX3DY0Fk155NT9l17d/ydi+964uS9Lw==} + /@remix-run/router@1.15.0: + resolution: {integrity: sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ==} engines: {node: '>=14.0.0'} /@remix-run/router@1.3.2: @@ -14392,7 +14392,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-router-dom: 6.17.0(react-dom@18.2.0)(react@18.2.0) + react-router-dom: 6.22.0(react-dom@18.2.0)(react@18.2.0) dev: true /@rspress/shared@1.11.2: @@ -28523,17 +28523,17 @@ packages: tiny-warning: 1.0.3 dev: false - /react-router-dom@6.17.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-qWHkkbXQX+6li0COUUPKAUkxjNNqPJuiBd27dVwQGDNsuFBdMbrS6UZ0CLYc4CsbdLYTckn4oB4tGDuPZpPhaQ==} + /react-router-dom@6.22.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-z2w+M4tH5wlcLmH3BMMOMdrtrJ9T3oJJNsAlBJbwk+8Syxd5WFJ7J5dxMEW0/GEXD1BBis4uXRrNIz3mORr0ag==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.10.0 + '@remix-run/router': 1.15.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-router: 6.17.0(react@18.2.0) + react-router: 6.22.0(react@18.2.0) /react-router@5.3.4(react@18.2.0): resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} @@ -28552,13 +28552,13 @@ packages: tiny-warning: 1.0.3 dev: false - /react-router@6.17.0(react@18.2.0): - resolution: {integrity: sha512-YJR3OTJzi3zhqeJYADHANCGPUu9J+6fT5GLv82UWRGSxu6oJYCKVmxUcaBQuGm9udpWmPsvpme/CdHumqgsoaA==} + /react-router@6.22.0(react@18.2.0): + resolution: {integrity: sha512-q2yemJeg6gw/YixRlRnVx6IRJWZD6fonnfZhN1JIOhV2iJCPeRNSH3V1ISwHf+JWcESzLC3BOLD1T07tmO5dmg==} engines: {node: '>=14.0.0'} peerDependencies: react: '>=16.8' dependencies: - '@remix-run/router': 1.10.0 + '@remix-run/router': 1.15.0 react: 18.2.0 /react-side-effect@2.1.2(react@18.2.0): diff --git a/tests/e2e/builder/package.json b/tests/e2e/builder/package.json index 9703d9af1f36..adfe0ff5b05c 100644 --- a/tests/e2e/builder/package.json +++ b/tests/e2e/builder/package.json @@ -12,7 +12,7 @@ "lodash": "^4.17.21", "react": "^18", "react-dom": "^18", - "react-router-dom": "6.17.0", + "react-router-dom": "6.22.0", "vue": "^3.3.4" }, "devDependencies": {