From a670fedaf3911933466ee72ea6ec71dc9ce531cd Mon Sep 17 00:00:00 2001 From: eps1lon Date: Fri, 30 Aug 2024 18:36:52 +0200 Subject: [PATCH] Use server.browser for now No plans to support React 19 in Pages router. --- examples/reproduction-template/package.json | 4 +- package.json | 12 +- packages/create-next-app/templates/index.ts | 2 +- packages/next/package.json | 4 +- .../shims/ReactDOMServerEdgeIfAvailable.d.ts | 1 - .../shims/ReactDOMServerEdgeIfAvailable.js | 18 - packages/next/src/build/webpack-config.ts | 4 +- packages/next/src/server/render.tsx | 7 +- packages/next/types/react-dom.d.ts | 4 + pnpm-lock.yaml | 333 ++++++++++-------- test/.stats-app/package.json | 4 +- .../app-dir/ssr-in-rsc/ssr-in-rsc.test.ts | 126 +++++-- .../first-time-setup-js/package.json | 4 +- .../first-time-setup-ts/package.json | 4 +- 14 files changed, 298 insertions(+), 229 deletions(-) delete mode 100644 packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.d.ts delete mode 100644 packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.js diff --git a/examples/reproduction-template/package.json b/examples/reproduction-template/package.json index e46540ae538d74..c8f51d82ac2fb4 100644 --- a/examples/reproduction-template/package.json +++ b/examples/reproduction-template/package.json @@ -7,8 +7,8 @@ }, "dependencies": { "next": "canary", - "react": "19.0.0-rc-7771d3a7-20240827", - "react-dom": "19.0.0-rc-7771d3a7-20240827" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { "@types/node": "20.12.12", diff --git a/package.json b/package.json index 667f1c41d2a7f4..e9b9c675c38393 100644 --- a/package.json +++ b/package.json @@ -206,10 +206,10 @@ "pretty-bytes": "5.3.0", "pretty-ms": "7.0.0", "random-seed": "0.3.0", - "react": "19.0.0-rc-7771d3a7-20240827", + "react": "18.3.1", "react-17": "npm:react@17.0.2", "react-builtin": "npm:react@19.0.0-rc-7771d3a7-20240827", - "react-dom": "19.0.0-rc-7771d3a7-20240827", + "react-dom": "18.3.1", "react-dom-17": "npm:react-dom@17.0.2", "react-dom-builtin": "npm:react-dom@19.0.0-rc-7771d3a7-20240827", "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-7771d3a7-20240827", @@ -269,10 +269,10 @@ "@babel/traverse": "7.22.5", "@types/react": "npm:types-react@19.0.0-rc.0", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.0", - "react": "19.0.0-rc-7771d3a7-20240827", - "react-dom": "19.0.0-rc-7771d3a7-20240827", - "react-is": "19.0.0-rc-7771d3a7-20240827", - "scheduler": "0.25.0-rc-7771d3a7-20240827" + "react": "18.3.1", + "react-dom": "18.3.1", + "react-is": "18.3.1", + "scheduler": "0.23.2" }, "patchedDependencies": { "webpack-sources@3.2.3": "patches/webpack-sources@3.2.3.patch" diff --git a/packages/create-next-app/templates/index.ts b/packages/create-next-app/templates/index.ts index ffbcd544c9b583..706277ed487f56 100644 --- a/packages/create-next-app/templates/index.ts +++ b/packages/create-next-app/templates/index.ts @@ -13,7 +13,7 @@ import { GetTemplateFileArgs, InstallTemplateArgs } from "./types"; // Do not rename or format. sync-react script relies on this line. // prettier-ignore -const nextjsReactPeerVersion = "19.0.0-rc-7771d3a7-20240827"; +const nextjsReactPeerVersion = "^18.2.0"; /** * Get the file path for a given file in a template, e.g. "next.config.js". diff --git a/packages/next/package.json b/packages/next/package.json index fc6f03d4623da6..24d0a08c0005fa 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -108,8 +108,8 @@ "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-7771d3a7-20240827", - "react-dom": "^18.2.0 || 19.0.0-rc-7771d3a7-20240827", + "react": "^18.2.0", + "react-dom": "^18.2.0", "sass": "^1.3.0" }, "peerDependenciesMeta": { diff --git a/packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.d.ts b/packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.d.ts deleted file mode 100644 index 4d4f000bdf487f..00000000000000 --- a/packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from 'react-dom/server.edge' diff --git a/packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.js b/packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.js deleted file mode 100644 index cbe329c9e4cb35..00000000000000 --- a/packages/next/src/build/shims/ReactDOMServerEdgeIfAvailable.js +++ /dev/null @@ -1,18 +0,0 @@ -let ReactDOMServer - -try { - ReactDOMServer = require('react-dom/server.edge') -} catch (error) { - if ( - // TODO: copilot suggestion. Does this code actually exist? - error.code !== 'MODULE_NOT_FOUND' && - // TODO: actually encountered that - error.code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED' - ) { - throw error - } - // TOOD: Ensure App Router does not bundle this - ReactDOMServer = require('react-dom/server.browser') -} - -module.exports = ReactDOMServer diff --git a/packages/next/src/build/webpack-config.ts b/packages/next/src/build/webpack-config.ts index 5c932f7f051221..619ed00bb69e2b 100644 --- a/packages/next/src/build/webpack-config.ts +++ b/packages/next/src/build/webpack-config.ts @@ -108,8 +108,8 @@ const NEXT_PROJECT_ROOT_DIST_CLIENT = path.join( 'client' ) -if (parseInt(React.version) < 18) { - throw new Error('Next.js requires react >= 18.2.0 to be installed.') +if (parseInt(React.version) !== 18) { + throw new Error('Next.js requires react@^18.2.0 to be installed.') } export const babelIncludeRegexes: RegExp[] = [ diff --git a/packages/next/src/server/render.tsx b/packages/next/src/server/render.tsx index ce6c46cd61cdc8..cd6bc2db0324ed 100644 --- a/packages/next/src/server/render.tsx +++ b/packages/next/src/server/render.tsx @@ -40,7 +40,7 @@ import type { Revalidate, SwrDelta } from './lib/revalidate' import type { COMPILER_NAMES } from '../shared/lib/constants' import React, { type JSX } from 'react' -import ReactDOMServerEdge from '../build/shims/ReactDOMServerEdgeIfAvailable' +import ReactDOMServerBrowser from 'react-dom/server.browser' import { StyleRegistry, createStyleRegistry } from 'styled-jsx' import { GSP_NO_RETURNED_VALUE, @@ -127,7 +127,8 @@ function noRouter() { } async function renderToString(element: React.ReactElement) { - const renderStream = await ReactDOMServerEdge.renderToReadableStream(element) + const renderStream = + await ReactDOMServerBrowser.renderToReadableStream(element) await renderStream.allReady return streamToString(renderStream) } @@ -1322,7 +1323,7 @@ export async function renderToHTMLImpl( ) => { const content = renderContent(EnhancedApp, EnhancedComponent) return await renderToInitialFizzStream({ - ReactDOMServer: ReactDOMServerEdge, + ReactDOMServer: ReactDOMServerBrowser, element: content, }) } diff --git a/packages/next/types/react-dom.d.ts b/packages/next/types/react-dom.d.ts index 9b811922e4d557..7c11484f3bb368 100644 --- a/packages/next/types/react-dom.d.ts +++ b/packages/next/types/react-dom.d.ts @@ -70,6 +70,10 @@ declare module 'react-dom/server.edge' { > } +declare module 'react-dom/server.browser' { + export * from 'react-dom/server.edge' +} + declare module 'react-dom/static.edge' { import type { JSX } from 'react' /** diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 029fbd94daf675..3f4796aa18940a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,10 +15,10 @@ overrides: '@babel/traverse': 7.22.5 '@types/react': npm:types-react@19.0.0-rc.0 '@types/react-dom': npm:types-react-dom@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 - react-is: 19.0.0-rc-7771d3a7-20240827 - scheduler: 0.25.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 + react-is: 18.3.1 + scheduler: 0.23.2 patchedDependencies: webpack-sources@3.2.3: @@ -64,7 +64,7 @@ importers: version: 11.11.0 '@emotion/react': specifier: 11.11.1 - version: 11.11.1(react@19.0.0-rc-7771d3a7-20240827)(types-react@19.0.0-rc.0) + version: 11.11.1(react@18.3.1)(types-react@19.0.0-rc.0) '@fullhuman/postcss-purgecss': specifier: 1.3.0 version: 1.3.0 @@ -73,7 +73,7 @@ importers: version: 2.2.1(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))) '@mdx-js/react': specifier: 2.2.1 - version: 2.2.1(react@19.0.0-rc-7771d3a7-20240827) + version: 2.2.1(react@18.3.1) '@next/bundle-analyzer': specifier: workspace:* version: link:packages/next-bundle-analyzer @@ -139,7 +139,7 @@ importers: version: 6.1.2(@jest/globals@29.7.0)(@types/jest@29.5.5)(jest@29.7.0(@types/node@20.12.3)(babel-plugin-macros@3.1.0)) '@testing-library/react': specifier: ^15.0.5 - version: 15.0.7(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827)(types-react@19.0.0-rc.0) + version: 15.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(types-react@19.0.0-rc.0) '@types/busboy': specifier: 1.5.3 version: 1.5.3 @@ -450,8 +450,8 @@ importers: specifier: 0.3.0 version: 0.3.0 react: - specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827 + specifier: 18.3.1 + version: 18.3.1 react-17: specifier: npm:react@17.0.2 version: react@17.0.2 @@ -459,17 +459,17 @@ importers: specifier: npm:react@19.0.0-rc-7771d3a7-20240827 version: react@19.0.0-rc-7771d3a7-20240827 react-dom: - specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) react-dom-17: specifier: npm:react-dom@17.0.2 - version: react-dom@17.0.2(react@19.0.0-rc-7771d3a7-20240827) + version: react-dom@17.0.2(react@18.3.1) react-dom-builtin: specifier: npm:react-dom@19.0.0-rc-7771d3a7-20240827 - version: react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + version: react-dom@19.0.0-rc-7771d3a7-20240827(react@18.3.1) react-dom-experimental-builtin: specifier: npm:react-dom@0.0.0-experimental-7771d3a7-20240827 - version: react-dom@0.0.0-experimental-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + version: react-dom@0.0.0-experimental-7771d3a7-20240827(react@18.3.1) react-experimental-builtin: specifier: npm:react@0.0.0-experimental-7771d3a7-20240827 version: react@0.0.0-experimental-7771d3a7-20240827 @@ -478,22 +478,22 @@ importers: version: react-is@19.0.0-rc-7771d3a7-20240827 react-server-dom-turbopack: specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827) + version: 19.0.0-rc-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-server-dom-turbopack-experimental: specifier: npm:react-server-dom-turbopack@0.0.0-experimental-7771d3a7-20240827 - version: react-server-dom-turbopack@0.0.0-experimental-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827) + version: react-server-dom-turbopack@0.0.0-experimental-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-server-dom-webpack: specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))) + version: 19.0.0-rc-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))) react-server-dom-webpack-experimental: specifier: npm:react-server-dom-webpack@0.0.0-experimental-7771d3a7-20240827 - version: react-server-dom-webpack@0.0.0-experimental-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))) + version: react-server-dom-webpack@0.0.0-experimental-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))) react-ssr-prepass: specifier: 1.0.8 - version: 1.0.8(react-is@19.0.0-rc-f90a6bcc-20240827)(react@19.0.0-rc-7771d3a7-20240827) + version: 1.0.8(react-is@19.0.0-rc-f90a6bcc-20240827)(react@18.3.1) react-virtualized: specifier: 9.22.3 - version: 9.22.3(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827) + version: 9.22.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) relay-compiler: specifier: 13.0.2 version: 13.0.2 @@ -535,16 +535,16 @@ importers: version: 6.0.0 styled-components: specifier: 6.0.0-rc.3 - version: 6.0.0-rc.3(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827) + version: 6.0.0-rc.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) styled-jsx: specifier: 5.1.6 - version: 5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-7771d3a7-20240827) + version: 5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@18.3.1) styled-jsx-plugin-postcss: specifier: 3.0.2 version: 3.0.2 swr: specifier: ^2.2.4 - version: 2.2.4(react@19.0.0-rc-7771d3a7-20240827) + version: 2.2.4(react@18.3.1) tailwindcss: specifier: 3.2.7 version: 3.2.7(postcss@8.4.31) @@ -857,7 +857,7 @@ importers: version: 0.5.12 babel-plugin-react-compiler: specifier: '*' - version: 0.0.0-experimental-e68eda9-20240829 + version: 0.0.0-experimental-4e0eccf-20240830 busboy: specifier: 1.6.0 version: 1.6.0 @@ -871,17 +871,17 @@ importers: specifier: 8.4.31 version: 8.4.31 react: - specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827 + specifier: 18.3.1 + version: 18.3.1 react-dom: - specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) sass: specifier: ^1.3.0 version: 1.77.8 styled-jsx: specifier: 5.1.6 - version: 5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-7771d3a7-20240827) + version: 5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@18.3.1) optionalDependencies: sharp: specifier: ^0.33.4 @@ -1462,7 +1462,7 @@ importers: version: 1.0.35 unistore: specifier: 3.4.1 - version: 3.4.1(react@19.0.0-rc-7771d3a7-20240827) + version: 3.4.1(react@18.3.1) util: specifier: 0.12.4 version: 0.12.4 @@ -1596,8 +1596,8 @@ importers: packages/third-parties: dependencies: react: - specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827 + specifier: 18.3.1 + version: 18.3.1 third-party-capital: specifier: 1.0.20 version: 1.0.20 @@ -1657,14 +1657,14 @@ importers: specifier: 29.5.0 version: 29.5.0 react: - specifier: 19.0.0-rc-7771d3a7-20240827 - version: 19.0.0-rc-7771d3a7-20240827 + specifier: 18.3.1 + version: 18.3.1 react-test-renderer: specifier: 18.2.0 - version: 18.2.0(react@19.0.0-rc-7771d3a7-20240827) + version: 18.2.0(react@18.3.1) styled-jsx: specifier: ^5.1.2 - version: 5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-7771d3a7-20240827) + version: 5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@18.3.1) turbopack/packages/devlow-bench: dependencies: @@ -3276,7 +3276,7 @@ packages: resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} peerDependencies: '@types/react': '*' - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -3293,7 +3293,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks@1.0.1': resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 '@emotion/utils@1.2.1': resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} @@ -3490,14 +3490,14 @@ packages: '@floating-ui/react-dom@2.1.0': resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 '@floating-ui/react@0.26.16': resolution: {integrity: sha512-HEf43zxZNAI/E781QIVpYSF3K2VH4TTYZpqecjdsFkjsaU1EbaWcM++kw0HXFffj7gDUcBFevX8s0rQGQpxkow==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 '@floating-ui/utils@0.2.2': resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} @@ -4145,13 +4145,13 @@ packages: resolution: {integrity: sha512-l9ypojKN3PjwO1CSLIsqxi7mA25+7w+xc71Q+JuCCREI0tuGwkZsKbIOpuTATIJOjPh8ycLiW7QxX1LYsRTq6w==} peerDependencies: '@mantine/hooks': 7.10.1 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 '@mantine/hooks@7.11.2': resolution: {integrity: sha512-jhyVe/sbDEG2U8rr2lMecUPgQxcfr5hh9HazqGfkS7ZRIMDO7uJ947yAcTMGGkp5Lxtt5TBFt1Cb6tiB2/1agg==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 '@mapbox/node-pre-gyp@1.0.5': resolution: {integrity: sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==} @@ -4168,7 +4168,7 @@ packages: '@mdx-js/react@2.2.1': resolution: {integrity: sha512-YdXcMcEnqZhzql98RNrqYo9cEhTTesBiCclEtoiQUbJwx87q9453GTapYU6kJ8ZZ2ek1Vp25SiAXEFy5O/eAPw==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 '@mswjs/cookies@1.1.0': resolution: {integrity: sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==} @@ -4851,8 +4851,8 @@ packages: engines: {node: '>=18'} peerDependencies: '@types/react': npm:types-react@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -5990,12 +5990,12 @@ packages: peerDependencies: '@babel/core': 7.22.5 + babel-plugin-react-compiler@0.0.0-experimental-4e0eccf-20240830: + resolution: {integrity: sha512-NrhscwyQweUgDfmWrNigyb6mJM22euUSoV2PHCZ7JPRN+vSpqbQuDS2JYfusCxueVMxG1Qaj2JFBAl9RPFeaLQ==} + babel-plugin-react-compiler@0.0.0-experimental-c23de8d-20240515: resolution: {integrity: sha512-0XN2gmpT55QtAz5n7d5g91y1AuO9tRhWBaLgCRyc4ExHrlr7+LfxW+YTb3mOwxngkkiggwM8HyYsaEK9MqhnlQ==} - babel-plugin-react-compiler@0.0.0-experimental-e68eda9-20240829: - resolution: {integrity: sha512-H7e+R9ze2Ftdbh4W7C1oUIdWSn4xQEcRQDM2vVG2LBA8qiyvnnSR5L6+e06/J3fYHjFEkgdL96FsdOM7TNW2AA==} - babel-plugin-transform-async-to-promises@0.8.15: resolution: {integrity: sha512-fDXP68ZqcinZO2WCiimCL9zhGjGXOnn3D33zvbh+yheZ/qOrNVVDDIBtAaM3Faz8TRvQzHiRKsu3hfrBAhEncQ==} @@ -10438,7 +10438,7 @@ packages: lucide-react@0.383.0: resolution: {integrity: sha512-13xlG0CQCJtzjSQYwwJ3WRqMHtRj3EXmLlorrARt7y+IHnxUCp3XyFNL1DfaGySWxHObDvnu1u1dV+0VMKHUSg==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} @@ -12677,22 +12677,30 @@ packages: react-dom@0.0.0-experimental-7771d3a7-20240827: resolution: {integrity: sha512-lgOBiTipHJIKgJyiaV/YhL28X0vdt30fuHQxiW73/3WSu/ePSO/hV8uSefpiPhqMTq4TUKKylOBHhcG1/fy3Jw==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 react-dom@17.0.2: resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: 18.3.1 react-dom@19.0.0-rc-7771d3a7-20240827: resolution: {integrity: sha512-EMgZJX6EEQEr+pso+9ySkrEMPv3N7zF2fbi0f6uB+X7r8E+O2GqPRcIHtFigMdW8uS0XCVFHAocMnIc4yPULYQ==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 react-dom@19.0.0-rc-f90a6bcc-20240827: resolution: {integrity: sha512-oUa/reDvGtjRcxi8u+GYHaDHanudaO28+G+Wvxm50CItW1xwIFN2Nn7foJxxDS9lFLGdRWZvjxldZEPAUSuXbg==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} react-is@19.0.0-rc-7771d3a7-20240827: resolution: {integrity: sha512-vy9RwFmrhsGQAJEbFQyTskRWXVm39Ax2Ikao51VX2GBXoV2XOQ17vdhyhltCOa+yuoNj0p3X2C90+bxG+w2u0Q==} @@ -12706,8 +12714,8 @@ packages: react-number-format@5.4.0: resolution: {integrity: sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 react-refresh@0.12.0: resolution: {integrity: sha512-suLIhrU2IHKL5JEKR/fAwJv7bbeq4kJ+pJopf77jHwuR+HmJS/HbrPIGsTBUVfw7tXPOmYv7UJ7PCaN49e8x4A==} @@ -12718,7 +12726,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': npm:types-react@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -12728,7 +12736,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': npm:types-react@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -12737,49 +12745,49 @@ packages: resolution: {integrity: sha512-5j6sur5W5Oj7XZfS8EjvwmnbvaW42HHPY00ur0/HCvUxZNEPsTg7Ri4y3WlP4ebZTKdubCU5hD/Nt5/GkxvnuQ==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 react-server-dom-turbopack@19.0.0-rc-7771d3a7-20240827: resolution: {integrity: sha512-KkipAuYaTTQivseV0DNwRS8K6o8K5YuohXlXS5NY9QPXAyyk/Q2LSFUayMrk9ICAmty+Fs5xVjN4UAIpi1gmOQ==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 react-server-dom-webpack@0.0.0-experimental-7771d3a7-20240827: resolution: {integrity: sha512-swlsAzmGKLEp+afolIWJo8jIwt0GLux2j4IQzqVRRw1j/1nn7aO6a5po/rveOMR6XT/ktsE307vre8rEBungxQ==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 webpack: 5.90.0 react-server-dom-webpack@19.0.0-rc-7771d3a7-20240827: resolution: {integrity: sha512-2r7481kcNjYtQ97f9fuVnT6YSPk4b6RCno+4UoBSKYDq1nCU/Ybj0b1O/68BqYGdpu5fYI0UVDrfI3ywWVuvbg==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 webpack: 5.90.0 react-shallow-renderer@16.15.0: resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 react-ssr-prepass@1.0.8: resolution: {integrity: sha512-O0gfRA1SaK+9ITKxqfnXsej2jF+OHGP/+GxD4unROQaM/0/UczGF9fuF+wTboxaQoKdIf4FvS3h/OigWh704VA==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-is: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-is: 18.3.1 react-style-singleton@2.2.1: resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: '@types/react': npm:types-react@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -12787,19 +12795,19 @@ packages: react-test-renderer@18.2.0: resolution: {integrity: sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 react-textarea-autosize@8.5.3: resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} engines: {node: '>=10'} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 react-virtualized@9.22.3: resolution: {integrity: sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 react@0.0.0-experimental-7771d3a7-20240827: resolution: {integrity: sha512-Jh40juQIRyTl4q5yH53JzVLCP5h5CcnDBgfcz8hYQTLvvKoxWFr5dR78mUIrc8IPInn8bcOconodGJaXYVqTSQ==} @@ -12809,6 +12817,10 @@ packages: resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} engines: {node: '>=0.10.0'} + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + react@19.0.0-rc-7771d3a7-20240827: resolution: {integrity: sha512-Xg6LoxgPpT4efYHzRB2gUUQCoNXu2df3sOBRgiUvzTVT1qQNOV611/w80JiOmnTWlIyCaUfSkNrMG8OUO/D+AA==} engines: {node: '>=0.10.0'} @@ -13339,6 +13351,9 @@ packages: scheduler@0.0.0-experimental-7771d3a7-20240827: resolution: {integrity: sha512-/5YtUIFqGx1aHcSLqT9VBmzJ1nX8XOYkooipvfwH4ZRYuGptkHypXx+FUO4caZoN0O29dI3yUBUk3msVp6wMyg==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.25.0-rc-7771d3a7-20240827: resolution: {integrity: sha512-n4nHmAoerbIOSrH24w0+fcdCUwQ4Npm7yXfsrn09FL01OWIaxpuo4P0rj3qPyLFgsJDbn18sWvLVB/e/KPnR+A==} @@ -13909,8 +13924,8 @@ packages: engines: {node: '>= 16'} peerDependencies: babel-plugin-styled-components: '>= 2' - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-dom: 18.3.1 peerDependenciesMeta: babel-plugin-styled-components: optional: true @@ -13924,7 +13939,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@babel/core': optional: true @@ -14001,7 +14016,7 @@ packages: swr@2.2.4: resolution: {integrity: sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 symbol-observable@1.0.1: resolution: {integrity: sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==} @@ -14745,7 +14760,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': npm:types-react@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -14753,13 +14768,13 @@ packages: use-composed-ref@1.3.0: resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 use-isomorphic-layout-effect@1.1.2: resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -14768,7 +14783,7 @@ packages: resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -14778,7 +14793,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': npm:types-react@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 peerDependenciesMeta: '@types/react': optional: true @@ -14786,7 +14801,7 @@ packages: use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} @@ -17174,17 +17189,17 @@ snapshots: '@emotion/memoize@0.8.1': {} - '@emotion/react@11.11.1(react@19.0.0-rc-7771d3a7-20240827)(types-react@19.0.0-rc.0)': + '@emotion/react@11.11.1(react@18.3.1)(types-react@19.0.0-rc.0)': dependencies: '@babel/runtime': 7.22.5 '@emotion/babel-plugin': 11.11.0 '@emotion/cache': 11.11.0 '@emotion/serialize': 1.1.2 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.0.0-rc-7771d3a7-20240827) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 hoist-non-react-statics: 3.3.2 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 optionalDependencies: '@types/react': types-react@19.0.0-rc.0 @@ -17200,9 +17215,9 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.0.0-rc-7771d3a7-20240827)': + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1)': dependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 '@emotion/utils@1.2.1': {} @@ -18564,11 +18579,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@2.2.1(react@19.0.0-rc-7771d3a7-20240827)': + '@mdx-js/react@2.2.1(react@18.3.1)': dependencies: '@types/mdx': 2.0.3 '@types/react': types-react@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 '@mdx-js/react@2.2.1(react@19.0.0-rc-f90a6bcc-20240827)': dependencies: @@ -19387,13 +19402,13 @@ snapshots: '@types/jest': 29.5.5 jest: 29.7.0(@types/node@20.12.3)(babel-plugin-macros@3.1.0) - '@testing-library/react@15.0.7(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827)(types-react@19.0.0-rc.0)': + '@testing-library/react@15.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(types-react@19.0.0-rc.0)': dependencies: '@babel/runtime': 7.22.5 '@testing-library/dom': 10.1.0 '@types/react-dom': types-react-dom@19.0.0-rc.0 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': types-react@19.0.0-rc.0 @@ -20726,7 +20741,7 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-react-compiler@0.0.0-experimental-c23de8d-20240515: + babel-plugin-react-compiler@0.0.0-experimental-4e0eccf-20240830: dependencies: '@babel/generator': 7.2.0 '@babel/types': 7.22.5 @@ -20736,7 +20751,7 @@ snapshots: zod: 3.23.8 zod-validation-error: 2.1.0(zod@3.23.8) - babel-plugin-react-compiler@0.0.0-experimental-e68eda9-20240829: + babel-plugin-react-compiler@0.0.0-experimental-c23de8d-20240515: dependencies: '@babel/generator': 7.2.0 '@babel/types': 7.22.5 @@ -24415,7 +24430,7 @@ snapshots: hoist-non-react-statics@3.3.2: dependencies: - react-is: 19.0.0-rc-7771d3a7-20240827 + react-is: 18.3.1 homedir-polyfill@1.0.3: dependencies: @@ -28854,25 +28869,25 @@ snapshots: '@jest/types': 24.9.0 ansi-regex: 4.1.0 ansi-styles: 3.2.1 - react-is: 19.0.0-rc-7771d3a7-20240827 + react-is: 18.3.1 pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 - react-is: 19.0.0-rc-7771d3a7-20240827 + react-is: 18.3.1 pretty-format@29.5.0: dependencies: '@jest/schemas': 29.4.3 ansi-styles: 5.2.0 - react-is: 19.0.0-rc-7771d3a7-20240827 + react-is: 18.3.1 pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 19.0.0-rc-7771d3a7-20240827 + react-is: 18.3.1 pretty-ms@7.0.0: dependencies: @@ -28929,7 +28944,7 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react-is: 19.0.0-rc-7771d3a7-20240827 + react-is: 18.3.1 property-information@5.6.0: dependencies: @@ -29101,27 +29116,35 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@0.0.0-experimental-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827): + react-dom@0.0.0-experimental-7771d3a7-20240827(react@18.3.1): dependencies: - react: 19.0.0-rc-7771d3a7-20240827 - scheduler: 0.25.0-rc-7771d3a7-20240827 + react: 18.3.1 + scheduler: 0.23.2 - react-dom@17.0.2(react@19.0.0-rc-7771d3a7-20240827): + react-dom@17.0.2(react@18.3.1): dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react: 19.0.0-rc-7771d3a7-20240827 - scheduler: 0.25.0-rc-7771d3a7-20240827 + react: 18.3.1 + scheduler: 0.23.2 - react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827): + react-dom@18.3.1(react@18.3.1): dependencies: - react: 19.0.0-rc-7771d3a7-20240827 - scheduler: 0.25.0-rc-7771d3a7-20240827 + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-dom@19.0.0-rc-7771d3a7-20240827(react@18.3.1): + dependencies: + react: 18.3.1 + scheduler: 0.23.2 react-dom@19.0.0-rc-f90a6bcc-20240827(react@19.0.0-rc-f90a6bcc-20240827): dependencies: react: 19.0.0-rc-f90a6bcc-20240827 - scheduler: 0.25.0-rc-7771d3a7-20240827 + scheduler: 0.23.2 + + react-is@18.3.1: {} react-is@19.0.0-rc-7771d3a7-20240827: {} @@ -29156,48 +29179,48 @@ snapshots: optionalDependencies: '@types/react': types-react@19.0.0-rc.0 - react-server-dom-turbopack@0.0.0-experimental-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827): + react-server-dom-turbopack@0.0.0-experimental-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-server-dom-turbopack@19.0.0-rc-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827): + react-server-dom-turbopack@19.0.0-rc-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - react-server-dom-webpack@0.0.0-experimental-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))): + react-server-dom-webpack@0.0.0-experimental-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) webpack: 5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12)) webpack-sources: 3.2.3(patch_hash=jbynf5dc46ambamq3wuyho6hkq) - react-server-dom-webpack@19.0.0-rc-7771d3a7-20240827(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))): + react-server-dom-webpack@19.0.0-rc-7771d3a7-20240827(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(webpack@5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) webpack: 5.90.0(@swc/core@1.6.13(@swc/helpers@0.5.12)) webpack-sources: 3.2.3(patch_hash=jbynf5dc46ambamq3wuyho6hkq) - react-shallow-renderer@16.15.0(react@19.0.0-rc-7771d3a7-20240827): + react-shallow-renderer@16.15.0(react@18.3.1): dependencies: object-assign: 4.1.1 - react: 19.0.0-rc-7771d3a7-20240827 - react-is: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-is: 18.3.1 - react-ssr-prepass@1.0.8(react-is@19.0.0-rc-f90a6bcc-20240827)(react@19.0.0-rc-7771d3a7-20240827): + react-ssr-prepass@1.0.8(react-is@19.0.0-rc-f90a6bcc-20240827)(react@18.3.1): dependencies: object-is: 1.0.2 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 react-is: 19.0.0-rc-f90a6bcc-20240827 react-style-singleton@2.2.1(react@19.0.0-rc-f90a6bcc-20240827)(types-react@19.0.0-rc.0): @@ -29209,12 +29232,12 @@ snapshots: optionalDependencies: '@types/react': types-react@19.0.0-rc.0 - react-test-renderer@18.2.0(react@19.0.0-rc-7771d3a7-20240827): + react-test-renderer@18.2.0(react@18.3.1): dependencies: - react: 19.0.0-rc-7771d3a7-20240827 - react-is: 19.0.0-rc-7771d3a7-20240827 - react-shallow-renderer: 16.15.0(react@19.0.0-rc-7771d3a7-20240827) - scheduler: 0.25.0-rc-7771d3a7-20240827 + react: 18.3.1 + react-is: 18.3.1 + react-shallow-renderer: 16.15.0(react@18.3.1) + scheduler: 0.23.2 react-textarea-autosize@8.5.3(react@19.0.0-rc-f90a6bcc-20240827)(types-react@19.0.0-rc.0): dependencies: @@ -29225,15 +29248,15 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-virtualized@9.22.3(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827): + react-virtualized@9.22.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.22.5 clsx: 1.1.1 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) react-lifecycles-compat: 3.0.4 react@0.0.0-experimental-7771d3a7-20240827: {} @@ -29243,6 +29266,10 @@ snapshots: loose-envify: 1.4.0 object-assign: 4.1.1 + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + react@19.0.0-rc-7771d3a7-20240827: {} react@19.0.0-rc-f90a6bcc-20240827: {} @@ -29935,6 +29962,10 @@ snapshots: scheduler@0.0.0-experimental-7771d3a7-20240827: {} + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + scheduler@0.25.0-rc-7771d3a7-20240827: {} schema-utils@2.7.1: @@ -30584,7 +30615,7 @@ snapshots: dependencies: inline-style-parser: 0.1.1 - styled-components@6.0.0-rc.3(react-dom@19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827))(react@19.0.0-rc-7771d3a7-20240827): + styled-components@6.0.0-rc.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/cli': 7.21.5(@babel/core@7.22.5) '@babel/core': 7.22.5 @@ -30599,8 +30630,8 @@ snapshots: '@emotion/unitless': 0.8.1 css-to-react-native: 3.2.0 postcss: 8.4.31 - react: 19.0.0-rc-7771d3a7-20240827 - react-dom: 19.0.0-rc-7771d3a7-20240827(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) shallowequal: 1.1.0 stylis: 4.2.0 tslib: 2.5.3 @@ -30612,10 +30643,10 @@ snapshots: postcss: 7.0.32 postcss-load-plugins: 2.3.0 - styled-jsx@5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-7771d3a7-20240827): + styled-jsx@5.1.6(@babel/core@7.22.5)(babel-plugin-macros@3.1.0)(react@18.3.1): dependencies: client-only: 0.0.1 - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 optionalDependencies: '@babel/core': 7.22.5 babel-plugin-macros: 3.1.0 @@ -30705,11 +30736,11 @@ snapshots: picocolors: 1.0.1 stable: 0.1.8 - swr@2.2.4(react@19.0.0-rc-7771d3a7-20240827): + swr@2.2.4(react@18.3.1): dependencies: client-only: 0.0.1 - react: 19.0.0-rc-7771d3a7-20240827 - use-sync-external-store: 1.2.0(react@19.0.0-rc-7771d3a7-20240827) + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) symbol-observable@1.0.1: {} @@ -31398,9 +31429,9 @@ snapshots: unist-util-is: 5.2.0 unist-util-visit-parents: 5.1.3 - unistore@3.4.1(react@19.0.0-rc-7771d3a7-20240827): + unistore@3.4.1(react@18.3.1): optionalDependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 universal-github-app-jwt@1.1.1: dependencies: @@ -31525,9 +31556,9 @@ snapshots: optionalDependencies: '@types/react': types-react@19.0.0-rc.0 - use-sync-external-store@1.2.0(react@19.0.0-rc-7771d3a7-20240827): + use-sync-external-store@1.2.0(react@18.3.1): dependencies: - react: 19.0.0-rc-7771d3a7-20240827 + react: 18.3.1 use@3.1.1: {} diff --git a/test/.stats-app/package.json b/test/.stats-app/package.json index 58cf2ed6c29fde..992116f073459f 100644 --- a/test/.stats-app/package.json +++ b/test/.stats-app/package.json @@ -4,8 +4,8 @@ "license": "MIT", "dependencies": { "next": "latest", - "react": "19.0.0-rc-7771d3a7-20240827", - "react-dom": "19.0.0-rc-7771d3a7-20240827" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "engines": { "node": ">=18.18.0" diff --git a/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts b/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts index 8b50b76c0c6920..e40b1b8ce164fc 100644 --- a/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts +++ b/test/development/app-dir/ssr-in-rsc/ssr-in-rsc.test.ts @@ -331,16 +331,29 @@ describe('react-dom/server in React Server environment', () => { source: await getRedboxSource(browser), } if (isTurbopack) { - expect(redbox).toMatchInlineSnapshot(` - { - "description": "Error: react-dom/server is not supported in React Server Components.", - "source": "app/exports/app-code/react-dom-server-node-explicit/page.js (0:0) @ - - 1 | import * as ReactDOMServerNode from 'react-dom/server.node' - 2 | // Fine to drop once React is on ESM - 3 | import ReactDOMServerNodeDefault from 'react-dom/server.node'", - } - `) + if (isReact18) { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')", + "source": "app/exports/app-code/react-dom-server-node-explicit/page.js (0:0) @ + + 1 | import * as ReactDOMServerNode from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerNodeDefault from 'react-dom/server.node'", + } + `) + } else { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "Error: react-dom/server is not supported in React Server Components.", + "source": "app/exports/app-code/react-dom-server-node-explicit/page.js (0:0) @ + + 1 | import * as ReactDOMServerNode from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerNodeDefault from 'react-dom/server.node'", + } + `) + } } else { if (isReact18) { expect(redbox).toMatchInlineSnapshot(` @@ -427,16 +440,29 @@ describe('react-dom/server in React Server environment', () => { source: await getRedboxSource(browser), } if (isTurbopack) { - expect(redbox).toMatchInlineSnapshot(` - { - "description": "Error: react-dom/server is not supported in React Server Components.", - "source": "internal-pkg/server.node.js (0:0) @ + if (isReact18) { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')", + "source": "app/exports/app-code/react-dom-server-node-explicit/page.js (0:0) @ + + 1 | import * as ReactDOMServerNode from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerNodeDefault from 'react-dom/server.node'", + } + `) + } else { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "Error: react-dom/server is not supported in React Server Components.", + "source": "internal-pkg/server.node.js (0:0) @ - 1 | import * as ReactDOMServerEdge from 'react-dom/server.node' - 2 | // Fine to drop once React is on ESM - 3 | import ReactDOMServerEdgeDefault from 'react-dom/server.node'", - } - `) + 1 | import * as ReactDOMServerEdge from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerEdgeDefault from 'react-dom/server.node'", + } + `) + } } else { if (isReact18) { expect(redbox).toMatchInlineSnapshot(` @@ -720,16 +746,29 @@ describe('react-dom/server in React Server environment', () => { source: await getRedboxSource(browser), } if (isTurbopack) { - expect(redbox).toMatchInlineSnapshot(` - { - "description": "Error: react-dom/server is not supported in React Server Components.", - "source": "internal-pkg/server.node.js (0:0) @ + if (isReact18) { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')", + "source": "app/exports/app-code/react-dom-server-node-explicit/page.js (0:0) @ + + 1 | import * as ReactDOMServerNode from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerNodeDefault from 'react-dom/server.node'", + } + `) + } else { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "Error: react-dom/server is not supported in React Server Components.", + "source": "internal-pkg/server.node.js (0:0) @ - 1 | import * as ReactDOMServerEdge from 'react-dom/server.node' - 2 | // Fine to drop once React is on ESM - 3 | import ReactDOMServerEdgeDefault from 'react-dom/server.node'", - } - `) + 1 | import * as ReactDOMServerEdge from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerEdgeDefault from 'react-dom/server.node'", + } + `) + } } else { if (isReact18) { expect(redbox).toMatchInlineSnapshot(` @@ -761,16 +800,29 @@ describe('react-dom/server in React Server environment', () => { } if (isTurbopack) { - expect(redbox).toMatchInlineSnapshot(` - { - "description": "Error: react-dom/server is not supported in React Server Components.", - "source": "internal-pkg/server.node.js (0:0) @ + if (isReact18) { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "TypeError: Cannot read properties of undefined (reading 'ReactCurrentDispatcher')", + "source": "app/exports/app-code/react-dom-server-node-explicit/page.js (0:0) @ + + 1 | import * as ReactDOMServerNode from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerNodeDefault from 'react-dom/server.node'", + } + `) + } else { + expect(redbox).toMatchInlineSnapshot(` + { + "description": "Error: react-dom/server is not supported in React Server Components.", + "source": "internal-pkg/server.node.js (0:0) @ - 1 | import * as ReactDOMServerEdge from 'react-dom/server.node' - 2 | // Fine to drop once React is on ESM - 3 | import ReactDOMServerEdgeDefault from 'react-dom/server.node'", - } - `) + 1 | import * as ReactDOMServerEdge from 'react-dom/server.node' + 2 | // Fine to drop once React is on ESM + 3 | import ReactDOMServerEdgeDefault from 'react-dom/server.node'", + } + `) + } } else { if (isReact18) { expect(redbox).toMatchInlineSnapshot(` diff --git a/test/e2e/next-test/first-time-setup-js/package.json b/test/e2e/next-test/first-time-setup-js/package.json index a135b40a27c11b..8e949d122db4b6 100644 --- a/test/e2e/next-test/first-time-setup-js/package.json +++ b/test/e2e/next-test/first-time-setup-js/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "next": "canary", - "react": "19.0.0-rc-7771d3a7-20240827", - "react-dom": "19.0.0-rc-7771d3a7-20240827" + "react": "^18.2.0", + "react-dom": "^18.2.0" } } diff --git a/test/e2e/next-test/first-time-setup-ts/package.json b/test/e2e/next-test/first-time-setup-ts/package.json index 107dfe0c5b5f70..d85d37ff59ee1d 100644 --- a/test/e2e/next-test/first-time-setup-ts/package.json +++ b/test/e2e/next-test/first-time-setup-ts/package.json @@ -8,8 +8,8 @@ }, "dependencies": { "next": "canary", - "react": "19.0.0-rc-7771d3a7-20240827", - "react-dom": "19.0.0-rc-7771d3a7-20240827" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { "@types/react": "^18",