diff --git a/packages/react-client/src/forks/ReactFlightClientConfig.dom-node-webstreams.js b/packages/react-client/src/forks/ReactFlightClientConfig.dom-node-webstreams.js new file mode 100644 index 0000000000000..eb9ad28d46fa3 --- /dev/null +++ b/packages/react-client/src/forks/ReactFlightClientConfig.dom-node-webstreams.js @@ -0,0 +1,18 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +export {default as rendererVersion} from 'shared/ReactVersion'; +export const rendererPackageName = 'react-server-dom-webpack'; + +export * from 'react-client/src/ReactFlightClientStreamConfigWeb'; +export * from 'react-client/src/ReactClientConsoleConfigServer'; +export * from 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode'; +export * from 'react-server-dom-webpack/src/client/ReactFlightClientConfigTargetWebpackServer'; +export * from 'react-dom-bindings/src/shared/ReactFlightClientConfigDOM'; +export const usedWithSSR = true; diff --git a/packages/react-server-dom-webpack/npm/client.node.unbundled.js b/packages/react-server-dom-webpack/npm/client.node.unbundled.js index 5ec0f2cb36236..7883ee9125c1d 100644 --- a/packages/react-server-dom-webpack/npm/client.node.unbundled.js +++ b/packages/react-server-dom-webpack/npm/client.node.unbundled.js @@ -1,7 +1,28 @@ 'use strict'; +var n, w; if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/react-server-dom-webpack-client.node.unbundled.production.js'); + n = require('./cjs/react-server-dom-webpack-client.node.unbundled.production.js'); + w = require('./cjs/react-server-dom-webpack-client.node-webstreams.unbundled.production.js'); } else { - module.exports = require('./cjs/react-server-dom-webpack-client.node.unbundled.development.js'); + n = require('./cjs/react-server-dom-webpack-client.node.unbundled.development.js'); + w = require('./cjs/react-server-dom-webpack-client.node-webstreams.unbundled.development.js'); } + +exports.registerServerReference = function (r, i, e) { + return w.registerServerReference(n.registerServerReference(r, i, e), i, e); +}; +exports.createServerReference = function (i, c, e, d, f) { + return w.registerServerReference( + n.createServerReference(i, c, e, d, f), + i, + e + ); +}; + +exports.createFromNodeStream = n.createFromNodeStream; +exports.createFromFetch = w.createFromFetch; +exports.createFromReadableStream = w.createFromReadableStream; + +exports.createTemporaryReferenceSet = w.createTemporaryReferenceSet; +exports.encodeReply = w.encodeReply; diff --git a/packages/react-server-dom-webpack/npm/server.node.unbundled.js b/packages/react-server-dom-webpack/npm/server.node.unbundled.js index 333b6b0d3122e..2d215c45d5fe0 100644 --- a/packages/react-server-dom-webpack/npm/server.node.unbundled.js +++ b/packages/react-server-dom-webpack/npm/server.node.unbundled.js @@ -1,10 +1,12 @@ 'use strict'; -var s; +var s, w; if (process.env.NODE_ENV === 'production') { s = require('./cjs/react-server-dom-webpack-server.node.unbundled.production.js'); + w = require('./cjs/react-server-dom-webpack-server.node-webstreams.unbundled.production.js'); } else { s = require('./cjs/react-server-dom-webpack-server.node.unbundled.development.js'); + w = require('./cjs/react-server-dom-webpack-server.node-webstreams.unbundled.development.js'); } exports.renderToPipeableStream = s.renderToPipeableStream; @@ -16,3 +18,6 @@ exports.registerServerReference = s.registerServerReference; exports.registerClientReference = s.registerClientReference; exports.createClientModuleProxy = s.createClientModuleProxy; exports.createTemporaryReferenceSet = s.createTemporaryReferenceSet; + +exports.renderToReadableStream = w.renderToReadableStream; +exports.decodeReplyFromAsyncIterable = w.decodeReplyFromAsyncIterable; diff --git a/packages/react-server-dom-webpack/src/client/react-flight-dom-client.browser.js b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.browser.js new file mode 100644 index 0000000000000..a3f15d0116cfe --- /dev/null +++ b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.browser.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +export * from './ReactFlightDOMClientBrowser'; diff --git a/packages/react-server-dom-webpack/src/client/react-flight-dom-client.edge.js b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.edge.js new file mode 100644 index 0000000000000..14a8876953b2c --- /dev/null +++ b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.edge.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +export * from './ReactFlightDOMClientEdge'; diff --git a/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled.js b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled.js new file mode 100644 index 0000000000000..14a8876953b2c --- /dev/null +++ b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +export * from './ReactFlightDOMClientEdge'; diff --git a/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node.js b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node.js new file mode 100644 index 0000000000000..8eb9daa35b6f5 --- /dev/null +++ b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +export * from './ReactFlightDOMClientNode'; diff --git a/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled.js b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled.js new file mode 100644 index 0000000000000..8eb9daa35b6f5 --- /dev/null +++ b/packages/react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled.js @@ -0,0 +1,10 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +export * from './ReactFlightDOMClientNode'; diff --git a/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled.js b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled.js new file mode 100644 index 0000000000000..9198f9913ed37 --- /dev/null +++ b/packages/react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled.js @@ -0,0 +1,21 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +export { + renderToReadableStream, + prerender as unstable_prerender, + decodeReply, + decodeReplyFromAsyncIterable, + decodeAction, + decodeFormState, + registerServerReference, + registerClientReference, + createClientModuleProxy, + createTemporaryReferenceSet, +} from './ReactFlightDOMServerEdge'; diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index 73a29cc8600a6..6bb622c62baa5 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -484,6 +484,18 @@ const bundles = [ wrapWithModuleBoundaries: false, externals: ['react', 'util', 'crypto', 'async_hooks', 'react-dom'], }, + { + bundleTypes: [NODE_DEV, NODE_PROD], + moduleType: RENDERER, + entry: + 'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled', + name: 'react-server-dom-webpack-server.node-webstreams.unbundled', + condition: 'react-server', + global: 'ReactServerDOMServer', + minifyWithProdErrorCodes: false, + wrapWithModuleBoundaries: false, + externals: ['react', 'util', 'crypto', 'async_hooks', 'react-dom'], + }, { bundleTypes: [NODE_DEV, NODE_PROD], moduleType: RENDERER, @@ -500,7 +512,9 @@ const bundles = [ { bundleTypes: [NODE_DEV, NODE_PROD], moduleType: RENDERER, - entry: 'react-server-dom-webpack/client.browser', + entry: + 'react-server-dom-webpack/src/client/react-flight-dom-client.browser', + name: 'react-server-dom-webpack-client.browser', global: 'ReactServerDOMClient', minifyWithProdErrorCodes: false, wrapWithModuleBoundaries: false, @@ -509,7 +523,8 @@ const bundles = [ { bundleTypes: [NODE_DEV, NODE_PROD], moduleType: RENDERER, - entry: 'react-server-dom-webpack/client.node', + entry: 'react-server-dom-webpack/src/client/react-flight-dom-client.node', + name: 'react-server-dom-webpack-client.node', global: 'ReactServerDOMClient', minifyWithProdErrorCodes: false, wrapWithModuleBoundaries: false, @@ -518,7 +533,20 @@ const bundles = [ { bundleTypes: [NODE_DEV, NODE_PROD], moduleType: RENDERER, - entry: 'react-server-dom-webpack/client.node.unbundled', + entry: + 'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled', + name: 'react-server-dom-webpack-client.node.unbundled', + global: 'ReactServerDOMClient', + minifyWithProdErrorCodes: false, + wrapWithModuleBoundaries: false, + externals: ['react', 'react-dom', 'util', 'crypto'], + }, + { + bundleTypes: [NODE_DEV, NODE_PROD], + moduleType: RENDERER, + entry: + 'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled', + name: 'react-server-dom-webpack-client.node-webstreams.unbundled', global: 'ReactServerDOMClient', minifyWithProdErrorCodes: false, wrapWithModuleBoundaries: false, @@ -527,7 +555,8 @@ const bundles = [ { bundleTypes: [NODE_DEV, NODE_PROD], moduleType: RENDERER, - entry: 'react-server-dom-webpack/client.edge', + entry: 'react-server-dom-webpack/src/client/react-flight-dom-client.edge', + name: 'react-server-dom-webpack-client.edge', global: 'ReactServerDOMClient', minifyWithProdErrorCodes: false, wrapWithModuleBoundaries: false, diff --git a/scripts/shared/inlinedHostConfigs.js b/scripts/shared/inlinedHostConfigs.js index cb065afbdc46b..24db4fe0ea142 100644 --- a/scripts/shared/inlinedHostConfigs.js +++ b/scripts/shared/inlinedHostConfigs.js @@ -17,7 +17,7 @@ module.exports = [ 'react-dom/src/server/react-dom-server.browser.js', 'react-dom/static.browser', 'react-dom/unstable_server-external-runtime', - 'react-server-dom-webpack/client.browser', + 'react-server-dom-webpack/src/client/react-flight-dom-client.browser', 'react-server-dom-webpack/src/server/react-flight-dom-server.browser', ], paths: [ @@ -43,6 +43,7 @@ module.exports = [ 'react-server-dom-webpack/src/client/ReactFlightDOMClientBrowser.js', // react-server-dom-webpack/client.browser 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js', 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackBrowser.js', + 'react-server-dom-webpack/src/client/react-flight-dom-client.browser', 'react-server-dom-webpack/src/server/react-flight-dom-server.browser', 'react-server-dom-webpack/src/server/ReactFlightDOMServerBrowser.js', // react-server-dom-webpack/src/server/react-flight-dom-server.browser 'react-devtools', @@ -62,7 +63,7 @@ module.exports = [ 'react-dom/src/server/react-dom-server.node.js', 'react-dom/test-utils', 'react-dom/unstable_server-external-runtime', - 'react-server-dom-webpack/client.node.unbundled', + 'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled', 'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled', ], paths: [ @@ -90,6 +91,7 @@ module.exports = [ 'react-server-dom-webpack/static.node.unbundled', 'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-webpack/client.node 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode.js', + 'react-server-dom-webpack/src/client/react-flight-dom-client.node.unbundled', 'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled', 'react-server-dom-webpack/src/server/ReactFlightDOMServerNode.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node 'react-devtools', @@ -104,7 +106,11 @@ module.exports = [ }, { shortName: 'dom-node-webstreams', - entryPoints: ['react-dom/src/server/react-dom-server.node-webstreams.js'], + entryPoints: [ + 'react-dom/src/server/react-dom-server.node-webstreams.js', + 'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled', + 'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled', + ], paths: [ 'react-dom', 'react-dom/src/ReactDOMReactServer.js', @@ -130,7 +136,8 @@ module.exports = [ 'react-server-dom-webpack/static.node.unbundled', 'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.node 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerNode.js', - 'react-server-dom-webpack/src/server/react-flight-dom-server.node.unbundled', + 'react-server-dom-webpack/src/client/react-flight-dom-client.node-webstreams.unbundled', + 'react-server-dom-webpack/src/server/react-flight-dom-server.node-webstreams.unbundled', 'react-server-dom-webpack/src/server/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node 'shared/ReactDOMSharedInternals', 'react-server/src/ReactFlightServerConfigDebugNode.js', @@ -141,7 +148,7 @@ module.exports = [ { shortName: 'dom-node-webpack', entryPoints: [ - 'react-server-dom-webpack/client.node', + 'react-server-dom-webpack/src/client/react-flight-dom-client.node', 'react-server-dom-webpack/src/server/react-flight-dom-server.node', ], paths: [ @@ -165,8 +172,10 @@ module.exports = [ 'react-server-dom-webpack/server.node', 'react-server-dom-webpack/static', 'react-server-dom-webpack/static.node', + 'react-server-dom-webpack/src/client/ReactFlightDOMClientNode.js', // react-server-dom-turbopack/client.node 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js', 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackServer.js', + 'react-server-dom-webpack/src/client/react-flight-dom-client.node', 'react-server-dom-webpack/src/server/react-flight-dom-server.node', 'react-server-dom-webpack/src/server/ReactFlightDOMServerNode.js', // react-server-dom-webpack/src/server/react-flight-dom-server.node 'react-server-dom-webpack/node-register', @@ -390,7 +399,7 @@ module.exports = [ entryPoints: [ 'react-dom/src/server/react-dom-server.edge.js', 'react-dom/static.edge', - 'react-server-dom-webpack/client.edge', + 'react-server-dom-webpack/src/client/react-flight-dom-client.edge', 'react-server-dom-webpack/src/server/react-flight-dom-server.edge', ], paths: [ @@ -415,6 +424,7 @@ module.exports = [ 'react-server-dom-webpack/src/client/ReactFlightDOMClientEdge.js', // react-server-dom-webpack/client.edge 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpack.js', 'react-server-dom-webpack/src/client/ReactFlightClientConfigBundlerWebpackServer.js', + 'react-server-dom-webpack/src/client/react-flight-dom-client.edge', 'react-server-dom-webpack/src/server/react-flight-dom-server.edge', 'react-server-dom-webpack/src/server/ReactFlightDOMServerEdge.js', // react-server-dom-webpack/src/server/react-flight-dom-server.edge 'react-devtools',