diff --git a/package.json b/package.json index e47d77c2029c1..78df59a3e21ff 100644 --- a/package.json +++ b/package.json @@ -180,7 +180,7 @@ "eslint-plugin-jsdoc": "48.0.4", "eslint-plugin-mdx": "3.1.5", "eslint-plugin-react": "7.35.0", - "eslint-plugin-react-hooks": "0.0.0-experimental-6b70072c-20250909", + "eslint-plugin-react-hooks": "0.0.0-experimental-886b3d36-20250910", "eslint-v8": "npm:eslint@^8.57.0", "event-stream": "4.0.1", "execa": "2.0.3", @@ -240,16 +240,16 @@ "pretty-ms": "7.0.0", "random-seed": "0.3.0", "react": "19.0.0", - "react-builtin": "npm:react@19.2.0-canary-6b70072c-20250909", + "react-builtin": "npm:react@19.2.0-canary-886b3d36-20250910", "react-dom": "19.0.0", - "react-dom-builtin": "npm:react-dom@19.2.0-canary-6b70072c-20250909", - "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-6b70072c-20250909", - "react-experimental-builtin": "npm:react@0.0.0-experimental-6b70072c-20250909", - "react-is-builtin": "npm:react-is@19.2.0-canary-6b70072c-20250909", - "react-server-dom-turbopack": "19.2.0-canary-6b70072c-20250909", - "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-6b70072c-20250909", - "react-server-dom-webpack": "19.2.0-canary-6b70072c-20250909", - "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-6b70072c-20250909", + "react-dom-builtin": "npm:react-dom@19.2.0-canary-886b3d36-20250910", + "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-886b3d36-20250910", + "react-experimental-builtin": "npm:react@0.0.0-experimental-886b3d36-20250910", + "react-is-builtin": "npm:react-is@19.2.0-canary-886b3d36-20250910", + "react-server-dom-turbopack": "19.2.0-canary-886b3d36-20250910", + "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-886b3d36-20250910", + "react-server-dom-webpack": "19.2.0-canary-886b3d36-20250910", + "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-886b3d36-20250910", "react-ssr-prepass": "1.0.8", "react-virtualized": "9.22.3", "relay-compiler": "13.0.2", @@ -259,8 +259,8 @@ "resolve-from": "5.0.0", "sass": "1.54.0", "satori": "0.15.2", - "scheduler-builtin": "npm:scheduler@0.27.0-canary-6b70072c-20250909", - "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-6b70072c-20250909", + "scheduler-builtin": "npm:scheduler@0.27.0-canary-886b3d36-20250910", + "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-886b3d36-20250910", "seedrandom": "3.0.5", "semver": "7.3.7", "serve-handler": "6.1.6", @@ -304,10 +304,10 @@ "@types/react-dom": "19.1.7", "@types/retry": "0.12.0", "jest-snapshot": "30.0.0-alpha.6", - "react": "19.2.0-canary-6b70072c-20250909", - "react-dom": "19.2.0-canary-6b70072c-20250909", - "react-is": "19.2.0-canary-6b70072c-20250909", - "scheduler": "0.27.0-canary-6b70072c-20250909" + "react": "19.2.0-canary-886b3d36-20250910", + "react-dom": "19.2.0-canary-886b3d36-20250910", + "react-is": "19.2.0-canary-886b3d36-20250910", + "scheduler": "0.27.0-canary-886b3d36-20250910" }, "packageExtensions": { "eslint-plugin-react-hooks@0.0.0-experimental-6de32a5a-20250822": { diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js index 2a2a084586aef..cf6c3c4637e96 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.development.js @@ -24905,17 +24905,11 @@ "Skipping view transition because document visibility state has become hidden." === error.message || "Skipping view transition because viewport size changed." === + error.message || + "Transition was aborted because of invalid state" === error.message ) return null; - if ( - "Transition was aborted because of invalid state" === - error.message - ) - return Error( - "A ViewTransition could not start. See the console for more details.", - { cause: error } - ); } return error; } @@ -31562,11 +31556,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -31603,10 +31597,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909" + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -31753,7 +31747,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js index b4084485543ab..7f43254644bbf 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-client.production.js @@ -16642,7 +16642,8 @@ function customizeViewTransitionError(error, ignoreAbort) { "Skipping view transition because document visibility state has become hidden." === error.message || "Skipping view transition because viewport size changed." === - error.message + error.message || + "Transition was aborted because of invalid state" === error.message ) return null; } @@ -19366,14 +19367,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2204 = React.version; if ( - "19.2.0-experimental-6b70072c-20250909" !== + "19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion$jscomp$inline_2204 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2204, - "19.2.0-experimental-6b70072c-20250909" + "19.2.0-experimental-886b3d36-20250910" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19395,10 +19396,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2901 = { bundleType: 0, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909" + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2902 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -19505,4 +19506,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js index ee7b4fa8d8d45..a6578fa1b8f85 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.development.js @@ -24913,17 +24913,11 @@ "Skipping view transition because document visibility state has become hidden." === error.message || "Skipping view transition because viewport size changed." === + error.message || + "Transition was aborted because of invalid state" === error.message ) return null; - if ( - "Transition was aborted because of invalid state" === - error.message - ) - return Error( - "A ViewTransition could not start. See the console for more details.", - { cause: error } - ); } return error; } @@ -31614,11 +31608,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -31655,10 +31649,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909" + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -32135,7 +32129,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js index 3ae64c722fa3b..2c82345368506 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-profiling.profiling.js @@ -18359,7 +18359,8 @@ function customizeViewTransitionError(error, ignoreAbort) { "Skipping view transition because document visibility state has become hidden." === error.message || "Skipping view transition because viewport size changed." === - error.message + error.message || + "Transition was aborted because of invalid state" === error.message ) return null; } @@ -21100,14 +21101,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2437 = React.version; if ( - "19.2.0-experimental-6b70072c-20250909" !== + "19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion$jscomp$inline_2437 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2437, - "19.2.0-experimental-6b70072c-20250909" + "19.2.0-experimental-886b3d36-20250910" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -21129,10 +21130,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_3136 = { bundleType: 0, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909" + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_3137 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -21400,7 +21401,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js index 132e0b171b7cd..c8805bfa995cb 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.development.js @@ -10527,5 +10527,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js index 780430dfbe250..bf3938ee4c55b 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.browser.production.js @@ -7142,4 +7142,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js index 065a85adb1e0d..066ce1510b171 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.development.js @@ -10527,5 +10527,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js index 7895cb90fcc25..e2de11f4b286b 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server-legacy.node.production.js @@ -7245,4 +7245,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js index d1945beb4e2d2..4c2ecfa98df95 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.development.js @@ -9512,11 +9512,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11339,5 +11339,5 @@ startWork(request); }); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js index 2b3955149a405..9fb0b8968dba0 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.browser.production.js @@ -7805,12 +7805,12 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.2.0-experimental-6b70072c-20250909" + "19.2.0-experimental-886b3d36-20250910" ) ); } @@ -8065,4 +8065,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js index 691eba0fea880..4753bcf9305fb 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.bun.production.js @@ -7293,13 +7293,13 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } var isomorphicReactPackageVersion$jscomp$inline_869 = React.version; if ( - "19.2.0-experimental-6b70072c-20250909" !== + "19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion$jscomp$inline_869 ) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion$jscomp$inline_869 + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); exports.renderToReadableStream = function (children, options) { return new Promise(function (resolve, reject) { @@ -7390,4 +7390,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js index cfa160260a724..812a46cd02dd9 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.development.js @@ -9541,11 +9541,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11364,5 +11364,5 @@ startWork(request); }); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js index 022f94a53c781..b85d9bc6cc4f8 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.edge.production.js @@ -7923,11 +7923,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8181,4 +8181,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js index b64eeb0f16f9f..7df909e6e5625 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.development.js @@ -9402,11 +9402,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -11535,5 +11535,5 @@ } }; }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js index 878de53a27c73..3052455d6bace 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js @@ -7803,11 +7803,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8365,4 +8365,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js index 5cf9a1ca78a81..7e962b32a6f1c 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.development.js @@ -25128,17 +25128,11 @@ "Skipping view transition because document visibility state has become hidden." === error.message || "Skipping view transition because viewport size changed." === + error.message || + "Transition was aborted because of invalid state" === error.message ) return null; - if ( - "Transition was aborted because of invalid state" === - error.message - ) - return Error( - "A ViewTransition could not start. See the console for more details.", - { cause: error } - ); } return error; } @@ -31883,11 +31877,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-experimental-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -31924,10 +31918,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909" + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -32240,5 +32234,5 @@ } }; }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js index 8d757565936d4..27a66c0f9a5d3 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom-unstable_testing.production.js @@ -16914,7 +16914,8 @@ function customizeViewTransitionError(error, ignoreAbort) { "Skipping view transition because document visibility state has become hidden." === error.message || "Skipping view transition because viewport size changed." === - error.message + error.message || + "Transition was aborted because of invalid state" === error.message ) return null; } @@ -19682,14 +19683,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2233 = React.version; if ( - "19.2.0-experimental-6b70072c-20250909" !== + "19.2.0-experimental-886b3d36-20250910" !== isomorphicReactPackageVersion$jscomp$inline_2233 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2233, - "19.2.0-experimental-6b70072c-20250909" + "19.2.0-experimental-886b3d36-20250910" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19711,10 +19712,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2935 = { bundleType: 0, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909" + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2936 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -19972,4 +19973,4 @@ exports.observeVisibleRects = function ( } }; }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js index 2fa5a5ede1f9f..7763ba2d88aa2 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.development.js @@ -416,7 +416,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js index 816946c63a4fe..4b7f90fa7de2b 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.production.js @@ -207,4 +207,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js index 94eb649d3b125..d76faff68f70e 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.development.js @@ -336,5 +336,5 @@ })) : Internals.d.m(href)); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js index 328beee39ebe7..56678dd9b7dfd 100644 --- a/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js +++ b/packages/next/src/compiled/react-dom-experimental/cjs/react-dom.react-server.production.js @@ -149,4 +149,4 @@ exports.preloadModule = function (href, options) { }); } else Internals.d.m(href); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom-experimental/package.json b/packages/next/src/compiled/react-dom-experimental/package.json index 3e5bbe5ce9c37..a57d4d3ce02ff 100644 --- a/packages/next/src/compiled/react-dom-experimental/package.json +++ b/packages/next/src/compiled/react-dom-experimental/package.json @@ -72,10 +72,10 @@ "./package.json": "./package.json" }, "dependencies": { - "scheduler": "0.0.0-experimental-6b70072c-20250909" + "scheduler": "0.0.0-experimental-886b3d36-20250910" }, "peerDependencies": { - "react": "0.0.0-experimental-6b70072c-20250909" + "react": "0.0.0-experimental-886b3d36-20250910" }, "browser": { "./server.js": "./server.browser.js", diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js index 1e81d06deadb0..e96183af56ca9 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.development.js @@ -25577,11 +25577,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -25618,10 +25618,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-canary-6b70072c-20250909", + version: "19.2.0-canary-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-6b70072c-20250909" + reconcilerVersion: "19.2.0-canary-886b3d36-20250910" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -25759,7 +25759,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js index 2b6a4b66b51ba..23eaeaec22bd0 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-client.production.js @@ -15723,14 +15723,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_1838 = React.version; if ( - "19.2.0-canary-6b70072c-20250909" !== + "19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion$jscomp$inline_1838 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1838, - "19.2.0-canary-6b70072c-20250909" + "19.2.0-canary-886b3d36-20250910" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -15752,10 +15752,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2341 = { bundleType: 0, - version: "19.2.0-canary-6b70072c-20250909", + version: "19.2.0-canary-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-6b70072c-20250909" + reconcilerVersion: "19.2.0-canary-886b3d36-20250910" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2342 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -15853,4 +15853,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js index df528ac6b263a..46bb533e03596 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.development.js @@ -25629,11 +25629,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -25670,10 +25670,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-canary-6b70072c-20250909", + version: "19.2.0-canary-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-6b70072c-20250909" + reconcilerVersion: "19.2.0-canary-886b3d36-20250910" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -26141,7 +26141,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js index da08fefd3f85f..6767d1e5d9e99 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-profiling.profiling.js @@ -16422,14 +16422,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_1942 = React.version; if ( - "19.2.0-canary-6b70072c-20250909" !== + "19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion$jscomp$inline_1942 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1942, - "19.2.0-canary-6b70072c-20250909" + "19.2.0-canary-886b3d36-20250910" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -16451,10 +16451,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_1949 = { bundleType: 0, - version: "19.2.0-canary-6b70072c-20250909", + version: "19.2.0-canary-886b3d36-20250910", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-6b70072c-20250909", + reconcilerVersion: "19.2.0-canary-886b3d36-20250910", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$282 = 0; @@ -16727,7 +16727,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js index 0f27fd9e2e844..36bd3ee1320ff 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.development.js @@ -9742,5 +9742,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js index 19da4e3e2f712..7d3811e20c233 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.browser.production.js @@ -6491,4 +6491,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' ); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js index bda6080d38f7b..f89ca9678e0c1 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js @@ -9742,5 +9742,5 @@ 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js index 0d30181c87ccc..8e1e64683f7e1 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server-legacy.node.production.js @@ -6574,4 +6574,4 @@ exports.renderToString = function (children, options) { 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' ); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js index 686b6f2a5d900..3ae726ae5b3b4 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.development.js @@ -8485,11 +8485,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -10183,5 +10183,5 @@ startWork(request); }); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js index 312050c224a16..611dd0aeb828d 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.browser.production.js @@ -6875,12 +6875,12 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.2.0-canary-6b70072c-20250909" + "19.2.0-canary-886b3d36-20250910" ) ); } @@ -7027,4 +7027,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js index 3abf9d8baf589..737b2edb1ab87 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.bun.production.js @@ -6523,13 +6523,13 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } var isomorphicReactPackageVersion$jscomp$inline_816 = React.version; if ( - "19.2.0-canary-6b70072c-20250909" !== + "19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion$jscomp$inline_816 ) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion$jscomp$inline_816 + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); exports.renderToReadableStream = function (children, options) { return new Promise(function (resolve, reject) { @@ -6620,4 +6620,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js index 569c56be33f2a..8e14e449f551b 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.development.js @@ -8508,11 +8508,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -10202,5 +10202,5 @@ startWork(request); }); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js index f3bf6152d7c9a..3387bfc6ce02c 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.edge.production.js @@ -6973,11 +6973,11 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7123,4 +7123,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js index cf5db70fe676b..bbb7b268c8057 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.development.js @@ -8383,11 +8383,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -10262,5 +10262,5 @@ startWork(request); }); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js index a2183b8252b0b..8ae3b07ac7f65 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom-server.node.production.js @@ -6865,11 +6865,11 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-6b70072c-20250909" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-886b3d36-20250910" !== isomorphicReactPackageVersion) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion + - "\n - react-dom: 19.2.0-canary-6b70072c-20250909\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-886b3d36-20250910\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7207,4 +7207,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom.development.js index a02415582f287..378ed614c5139 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.development.js @@ -416,7 +416,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom.production.js index b951a04cd4287..5df869ccdce4a 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.production.js @@ -207,4 +207,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js index 235682302f0ad..c985008f1fc6e 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.development.js @@ -336,5 +336,5 @@ })) : Internals.d.m(href)); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js index d78421f40ada7..b0395ee2fa473 100644 --- a/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js +++ b/packages/next/src/compiled/react-dom/cjs/react-dom.react-server.production.js @@ -149,4 +149,4 @@ exports.preloadModule = function (href, options) { }); } else Internals.d.m(href); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-dom/package.json b/packages/next/src/compiled/react-dom/package.json index b71da4779abca..5344fd45d4e15 100644 --- a/packages/next/src/compiled/react-dom/package.json +++ b/packages/next/src/compiled/react-dom/package.json @@ -67,10 +67,10 @@ "./package.json": "./package.json" }, "dependencies": { - "scheduler": "0.27.0-canary-6b70072c-20250909" + "scheduler": "0.27.0-canary-886b3d36-20250910" }, "peerDependencies": { - "react": "19.2.0-canary-6b70072c-20250909" + "react": "19.2.0-canary-886b3d36-20250910" }, "browser": { "./server.js": "./server.browser.js", diff --git a/packages/next/src/compiled/react-experimental/cjs/react.development.js b/packages/next/src/compiled/react-experimental/cjs/react.development.js index 368eb37ea8fbd..696fc79ff3718 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.development.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.development.js @@ -1356,7 +1356,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react-experimental/cjs/react.production.js b/packages/next/src/compiled/react-experimental/cjs/react.production.js index 4fdad51147545..51c0bdfc7cb1b 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.production.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.production.js @@ -595,4 +595,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js b/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js index 0b01d906e0e7b..e49a6417ff1bc 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.react-server.development.js @@ -996,6 +996,7 @@ (ReactSharedInternals.T = prevTransition); } }; + exports.unstable_Activity = REACT_ACTIVITY_TYPE; exports.unstable_SuspenseList = REACT_SUSPENSE_LIST_TYPE; exports.unstable_ViewTransition = REACT_VIEW_TRANSITION_TYPE; exports.unstable_getCacheForType = function (resourceType) { @@ -1024,5 +1025,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.2.0-experimental-6b70072c-20250909"; + exports.version = "19.2.0-experimental-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js b/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js index ee8dd9a7a5bdb..3a1813d38f345 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.react-server.production.js @@ -562,4 +562,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.2.0-experimental-6b70072c-20250909"; +exports.version = "19.2.0-experimental-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react-is/package.json b/packages/next/src/compiled/react-is/package.json index 79bd8ec39501f..87ec0a4253c1f 100644 --- a/packages/next/src/compiled/react-is/package.json +++ b/packages/next/src/compiled/react-is/package.json @@ -1,6 +1,6 @@ { "name": "react-is", - "version": "19.2.0-canary-6b70072c-20250909", + "version": "19.2.0-canary-886b3d36-20250910", "description": "Brand checking of React Elements.", "main": "index.js", "sideEffects": false, diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js index 20648ca53547c..484eca0340091 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.development.js @@ -1664,7 +1664,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1682,7 +1683,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1888,37 +1890,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1954,7 +1969,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1986,6 +2002,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -2121,9 +2138,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -2163,12 +2186,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2200,7 +2225,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -2210,12 +2237,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2544,6 +2572,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2556,24 +2585,65 @@ replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); } - function resolveBuffer(response, id, buffer) { + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2589,6 +2659,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2599,52 +2670,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2653,68 +2734,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2724,7 +2812,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2822,7 +2910,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -3224,7 +3313,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -3235,7 +3325,7 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushComponentPerformance( response$jscomp$0, @@ -3768,50 +3858,151 @@ )); } } - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -3821,48 +4012,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -3870,8 +4061,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -3881,15 +4072,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = createErrorChunk(response, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -3901,19 +4097,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -3923,16 +4119,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -3949,31 +4145,37 @@ Error.bind(null, row.reason || "") ); tag = response._debugRootTask; - row = null != tag ? tag.run(row) : row(); - row.$$typeof = REACT_POSTPONE_TYPE; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + tag = null != tag ? tag.run(row) : row(); + tag.$$typeof = REACT_POSTPONE_TYPE; + row = response._chunks; + (chunk = row.get(id)) + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, tag)) + : ((response = createErrorChunk(response, tag)), + resolveChunkDebugInfo(streamState, response), + row.set(id, response)); break; default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -3982,11 +4184,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4044,6 +4247,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -4208,15 +4412,16 @@ if ( ((_ref = streamState), void 0 !== response$jscomp$0.weak.deref()) ) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; + incrementChunkDebugInfo(_ref, chunkLength); i < chunkLength; ) { @@ -4281,7 +4486,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = value.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, _ref, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -4302,11 +4507,11 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response$jscomp$0, stream), reader = stream.getReader(); reader.read().then(progress).catch(error); } - function startReadingFromStream(response, stream, onDone) { + function startReadingFromStream(response, stream, onDone, debugValue) { function progress(_ref2) { var value = _ref2.value; if (_ref2.done) return onDone(); @@ -4316,7 +4521,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -4425,6 +4630,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -4533,10 +4739,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909", + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910", getCurrentComponentInfo: function () { return currentOwnerInDEV; } @@ -4559,12 +4765,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -4585,9 +4792,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function ( diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.production.js index 3066182d5d134..4f1d52188bdc4 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.browser.production.js @@ -1213,7 +1213,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1238,22 +1239,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1470,7 +1470,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1516,13 +1516,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1577,17 +1574,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, createErrorChunk(response, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = createErrorChunk(response, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1609,26 +1608,28 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; case 80: - buffer = Error( + tag = Error( "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details." ); - buffer.$$typeof = REACT_POSTPONE_TYPE; - buffer.stack = "Error: " + buffer.message; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, buffer) - : tag.set(id, createErrorChunk(response, buffer)); + tag.$$typeof = REACT_POSTPONE_TYPE; + tag.stack = "Error: " + tag.message; + buffer = response._chunks; + (chunk = buffer.get(id)) + ? triggerErrorOnChunk(response, chunk, tag) + : ((response = createErrorChunk(response, tag)), + buffer.set(id, response)); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1747,7 +1748,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref2, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref2, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref2 = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js index 7ed20065929e5..cf72b1051bce2 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.development.js @@ -1820,7 +1820,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1838,7 +1839,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -2044,37 +2046,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -2110,7 +2125,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -2142,6 +2158,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -2283,9 +2300,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -2325,12 +2348,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2362,7 +2387,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -2372,12 +2399,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2706,6 +2734,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2718,15 +2747,45 @@ replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } - function resolveBuffer(response, id, buffer) { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { + _rowState: 0, + _rowID: 0, + _rowTag: 0, + _rowLength: 0, + _buffer: [] + }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2747,6 +2806,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2757,52 +2817,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2811,68 +2881,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2882,7 +2959,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2980,7 +3057,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -3382,7 +3460,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -3393,7 +3472,7 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushComponentPerformance( response$jscomp$0, @@ -3926,50 +4005,151 @@ )); } } - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -3981,43 +4161,43 @@ buffer = row += stringDecoder.decode(chunk); switch (tag) { case 73: - resolveModule(response, id, buffer); + resolveModule(response, id, buffer, streamState); break; case 72: id = buffer[0]; - buffer = buffer.slice(1); - response = JSON.parse(buffer, response._fromJSON); - buffer = ReactDOMSharedInternals.d; + streamState = buffer.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - buffer.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? buffer.C(response) - : buffer.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + buffer = response[1]; 3 === response.length - ? buffer.L(id, tag, response[2]) - : buffer.L(id, tag); + ? streamState.L(id, buffer, response[2]) + : streamState.L(id, buffer); break; case "m": "string" === typeof response - ? buffer.m(response) - : buffer.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? buffer.X(response) - : buffer.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? buffer.S(response) - : buffer.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -4025,8 +4205,8 @@ break; case "M": "string" === typeof response - ? buffer.M(response) - : buffer.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -4036,15 +4216,20 @@ stringDecoder = resolveErrorDev(response, buffer); stringDecoder.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, createErrorChunk(response, stringDecoder)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, stringDecoder)) + : ((response = createErrorChunk(response, stringDecoder)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +buffer - performance.timeOrigin; @@ -4056,19 +4241,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, buffer)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, buffer)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== buffer[0] || "$" !== buffer[1] || - ((buffer = buffer.slice(2, buffer.length - 1).split(":")), - (buffer = parseInt(buffer[0], 16)), - "pending" === getChunk(response, buffer).status && + ((streamState = buffer.slice(2, buffer.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -4078,16 +4263,16 @@ resolveConsoleEntry(response, buffer); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -4104,31 +4289,37 @@ Error.bind(null, buffer.reason || "") ); tag = response._debugRootTask; - buffer = null != tag ? tag.run(buffer) : buffer(); - buffer.$$typeof = REACT_POSTPONE_TYPE; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, buffer) - : tag.set(id, createErrorChunk(response, buffer)); + tag = null != tag ? tag.run(buffer) : buffer(); + tag.$$typeof = REACT_POSTPONE_TYPE; + buffer = response._chunks; + (chunk = buffer.get(id)) + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, tag)) + : ((response = createErrorChunk(response, tag)), + resolveChunkDebugInfo(streamState, response), + buffer.set(id, response)); break; default: if ("" === buffer) { if ( - ((buffer = response._chunks), - (tag = buffer.get(id)) || - buffer.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (buffer = streamState.get(id)) || + streamState.set(id, (buffer = createPendingChunk(response))), + "pending" === buffer.status || "blocked" === buffer.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, buffer), + (response = buffer), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, createResolvedModelChunk(response, buffer)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, buffer)) + : ((response = createResolvedModelChunk(response, buffer)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -4242,33 +4433,53 @@ : void 0 )._weakResponse; } - function startReadingFromStream(response$jscomp$0, stream, onDone) { + function startReadingFromStream( + response$jscomp$0, + stream, + onDone, + debugValue + ) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); _ref = streamState; if (void 0 !== response$jscomp$0.weak.deref()) { - for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; - i < chunkLength; - - ) { - var lastIdx = -1; + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length, + debugInfo = _ref._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end, + newByteLength = debugInfo.byteSize + chunkLength; + newByteLength > _ref._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((_ref._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: newByteLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (_ref._debugTargetChunkSize = newByteLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = newByteLength)); + for (; i < chunkLength; ) { + debugInfo = -1; switch (rowState) { case 0: - lastIdx = value[i++]; - 58 === lastIdx + debugInfo = value[i++]; + 58 === debugInfo ? (rowState = 1) : (rowID = (rowID << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 1: rowState = value[i]; @@ -4295,38 +4506,43 @@ : ((rowTag = 0), (rowState = 3)); continue; case 2: - lastIdx = value[i++]; - 44 === lastIdx + debugInfo = value[i++]; + 44 === debugInfo ? (rowState = 4) : (rowLength = (rowLength << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 3: - lastIdx = value.indexOf(10, i); + debugInfo = value.indexOf(10, i); break; case 4: - (lastIdx = i + rowLength), - lastIdx > value.length && (lastIdx = -1); + (debugInfo = i + rowLength), + debugInfo > value.length && (debugInfo = -1); } - var offset = value.byteOffset + i; - if (-1 < lastIdx) - (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), + endTime = value.byteOffset + i; + if (-1 < debugInfo) + (rowLength = new Uint8Array( + value.buffer, + endTime, + debugInfo - i + )), processFullBinaryRow( response, + _ref, rowID, rowTag, buffer, rowLength ), - (i = lastIdx), + (i = debugInfo), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), (buffer.length = 0); else { value = new Uint8Array( value.buffer, - offset, + endTime, value.byteLength - i ); buffer.push(value); @@ -4344,13 +4560,7 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = { - _rowState: 0, - _rowID: 0, - _rowTag: 0, - _rowLength: 0, - _buffer: [] - }, + var streamState = createStreamState(response$jscomp$0, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -4461,6 +4671,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -4575,12 +4786,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -4601,9 +4813,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.production.js index fda5f94586ed4..fb6cdb28048f4 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.edge.production.js @@ -1397,7 +1397,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1427,22 +1428,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1659,7 +1659,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1705,13 +1705,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1766,17 +1763,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, createErrorChunk(response, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = createErrorChunk(response, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1798,26 +1797,28 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; case 80: - buffer = Error( + tag = Error( "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details." ); - buffer.$$typeof = REACT_POSTPONE_TYPE; - buffer.stack = "Error: " + buffer.message; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, buffer) - : tag.set(id, createErrorChunk(response, buffer)); + tag.$$typeof = REACT_POSTPONE_TYPE; + tag.stack = "Error: " + tag.message; + buffer = response._chunks; + (chunk = buffer.get(id)) + ? triggerErrorOnChunk(response, chunk, tag) + : ((response = createErrorChunk(response, tag)), + buffer.set(id, response)); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1941,7 +1942,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js index 020c138275b9c..c5a155f3cd899 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.development.js @@ -1820,7 +1820,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1838,7 +1839,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -2044,37 +2046,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -2110,7 +2125,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -2142,6 +2158,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -2283,9 +2300,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -2325,12 +2348,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2362,7 +2387,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -2372,12 +2399,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2706,6 +2734,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2718,24 +2747,65 @@ replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); } - function resolveBuffer(response, id, buffer) { + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2756,6 +2826,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2766,52 +2837,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2820,68 +2901,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2891,7 +2979,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2989,7 +3077,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -3391,7 +3480,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -3402,7 +3492,7 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushComponentPerformance( response$jscomp$0, @@ -3935,50 +4025,151 @@ )); } } - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -3988,48 +4179,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -4037,8 +4228,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -4048,15 +4239,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = createErrorChunk(response, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -4068,19 +4264,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -4090,16 +4286,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -4116,31 +4312,37 @@ Error.bind(null, row.reason || "") ); tag = response._debugRootTask; - row = null != tag ? tag.run(row) : row(); - row.$$typeof = REACT_POSTPONE_TYPE; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + tag = null != tag ? tag.run(row) : row(); + tag.$$typeof = REACT_POSTPONE_TYPE; + row = response._chunks; + (chunk = row.get(id)) + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, tag)) + : ((response = createErrorChunk(response, tag)), + resolveChunkDebugInfo(streamState, response), + row.set(id, response)); break; default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -4149,11 +4351,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4211,6 +4414,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -4344,7 +4548,7 @@ : void 0 )._weakResponse; } - function startReadingFromStream$1(response, stream, onDone) { + function startReadingFromStream$1(response, stream, onDone, debugValue) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); @@ -4354,7 +4558,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -4364,19 +4568,20 @@ ); } function startReadingFromStream(response$jscomp$0, stream, onEnd) { - var streamState = createStreamState(); + var streamState = createStreamState(response$jscomp$0, stream); stream.on("data", function (chunk) { if ("string" === typeof chunk) { if (void 0 !== response$jscomp$0.weak.deref()) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = streamState._rowState, + rowID = streamState._rowID, + rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = streamState._rowState, - rowID = streamState._rowID, - rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4441,7 +4646,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -4571,6 +4776,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -4685,12 +4891,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, r.body, handleDone); + startReadingFromStream$1(response, r.body, handleDone, r); } else startReadingFromStream$1( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -4749,9 +4956,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, stream, handleDone); + startReadingFromStream$1(response, stream, handleDone, stream); } else - startReadingFromStream$1(response, stream, close.bind(null, response)); + startReadingFromStream$1( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.production.js index 2d91568d0e7c9..2809a3c7d2454 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-client.node.production.js @@ -1401,7 +1401,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1431,22 +1432,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1663,7 +1663,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1716,9 +1716,9 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } -function processFullStringRow(response, id, tag, row) { +function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: resolveModule(response, id, row); @@ -1739,8 +1739,10 @@ function processFullStringRow(response, id, tag, row) { break; case "L": id = response[0]; - tag = response[1]; - 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag); + streamState = response[1]; + 3 === response.length + ? row.L(id, streamState, response[2]) + : row.L(id, streamState); break; case "m": "string" === typeof response @@ -1768,20 +1770,22 @@ function processFullStringRow(response, id, tag, row) { } break; case 69: - tag = response._chunks; - var chunk = tag.get(id); + streamState = response._chunks; + tag = streamState.get(id); row = JSON.parse(row); var error = resolveErrorProd(); error.digest = row.digest; - chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + tag + ? triggerErrorOnChunk(response, tag, error) + : ((response = createErrorChunk(response, error)), + streamState.set(id, response)); break; case 84: response = response._chunks; - (tag = response.get(id)) && "pending" !== tag.status - ? tag.reason.enqueueValue(row) - : response.set(id, new ReactPromise("fulfilled", row, null)); + (streamState = response.get(id)) && "pending" !== streamState.status + ? streamState.reason.enqueueValue(row) + : ((row = new ReactPromise("fulfilled", row, null)), + response.set(id, row)); break; case 78: case 68: @@ -1803,26 +1807,28 @@ function processFullStringRow(response, id, tag, row) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === row ? '"$undefined"' : row); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === row ? '"$undefined"' : row); break; case 80: - row = Error( + streamState = Error( "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details." ); - row.$$typeof = REACT_POSTPONE_TYPE; - row.stack = "Error: " + row.message; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + streamState.$$typeof = REACT_POSTPONE_TYPE; + streamState.stack = "Error: " + streamState.message; + row = response._chunks; + (tag = row.get(id)) + ? triggerErrorOnChunk(response, tag, streamState) + : ((response = createErrorChunk(response, streamState)), + row.set(id, response)); break; default: - (tag = response._chunks), - (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, new ReactPromise("resolved_model", row, response)); + (streamState = response._chunks), + (tag = streamState.get(id)) + ? resolveModelChunk(response, tag, row) + : ((response = new ReactPromise("resolved_model", row, response)), + streamState.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -1886,7 +1892,14 @@ function processBinaryChunk(weakResponse, streamState, chunk) { var offset = chunk.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), - processFullBinaryRow(weakResponse, rowID, rowTag, buffer, rowLength), + processFullBinaryRow( + weakResponse, + streamState, + rowID, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), @@ -2053,7 +2066,7 @@ function startReadingFromStream(response, stream, onEnd) { "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json b/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json index 61e26971103aa..a34ad7a2fa5e2 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/package.json @@ -48,7 +48,7 @@ "neo-async": "^2.6.1" }, "peerDependencies": { - "react": "0.0.0-experimental-6b70072c-20250909", - "react-dom": "0.0.0-experimental-6b70072c-20250909" + "react": "0.0.0-experimental-886b3d36-20250910", + "react-dom": "0.0.0-experimental-886b3d36-20250910" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js index 4d05734fe888f..5d9f44508e458 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.development.js @@ -1195,7 +1195,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1213,7 +1214,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1419,37 +1421,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1485,7 +1500,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1517,6 +1533,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -1652,9 +1669,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -1691,12 +1714,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -1728,7 +1753,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -1738,12 +1765,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2063,6 +2091,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2074,24 +2103,65 @@ : debugChannelRegistry.register(this, debugChannel, this)); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; - } - function resolveBuffer(response, id, buffer) { + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2107,6 +2177,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2117,52 +2188,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2171,68 +2252,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2242,7 +2330,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2340,7 +2428,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -2720,7 +2809,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -2731,53 +2821,154 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushInitialRenderPerformance() {} - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -2787,48 +2978,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -2836,8 +3027,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -2847,15 +3038,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = new ReactPromise("rejected", null, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -2867,19 +3063,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -2889,16 +3085,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -2908,21 +3104,24 @@ default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -2931,11 +3130,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -2993,6 +3193,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -3157,15 +3358,16 @@ if ( ((_ref = streamState), void 0 !== response$jscomp$0.weak.deref()) ) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; + incrementChunkDebugInfo(_ref, chunkLength); i < chunkLength; ) { @@ -3230,7 +3432,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = value.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, _ref, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -3251,11 +3453,11 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response$jscomp$0, stream), reader = stream.getReader(); reader.read().then(progress).catch(error); } - function startReadingFromStream(response, stream, onDone) { + function startReadingFromStream(response, stream, onDone, debugValue) { function progress(_ref2) { var value = _ref2.value; if (_ref2.done) return onDone(); @@ -3265,7 +3467,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -3362,6 +3564,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -3470,10 +3673,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-canary-6b70072c-20250909", + version: "19.2.0-canary-886b3d36-20250910", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-6b70072c-20250909", + reconcilerVersion: "19.2.0-canary-886b3d36-20250910", getCurrentComponentInfo: function () { return currentOwnerInDEV; } @@ -3496,12 +3699,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -3522,9 +3726,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function ( diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js index 0c0dd6061fa50..d2e167d183853 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.browser.production.js @@ -1209,7 +1209,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1234,22 +1235,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1466,7 +1466,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1512,13 +1512,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1573,17 +1570,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, new ReactPromise("rejected", null, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = new ReactPromise("rejected", null, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1605,15 +1604,16 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1732,7 +1732,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref2, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref2, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref2 = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js index fefea1a33fd35..e6a6e49befd98 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.development.js @@ -1351,7 +1351,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1369,7 +1370,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1575,37 +1577,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1641,7 +1656,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1673,6 +1689,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -1814,9 +1831,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -1853,12 +1876,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -1890,7 +1915,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -1900,12 +1927,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2225,6 +2253,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2236,15 +2265,45 @@ : debugChannelRegistry.register(this, debugChannel, this)); this._fromJSON = createFromJSONCallback(this); } - function resolveBuffer(response, id, buffer) { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { + _rowState: 0, + _rowID: 0, + _rowTag: 0, + _rowLength: 0, + _buffer: [] + }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2265,6 +2324,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2275,52 +2335,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2329,68 +2399,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2400,7 +2477,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2498,7 +2575,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -2878,7 +2956,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -2889,53 +2968,154 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushInitialRenderPerformance() {} - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -2947,43 +3127,43 @@ buffer = row += stringDecoder.decode(chunk); switch (tag) { case 73: - resolveModule(response, id, buffer); + resolveModule(response, id, buffer, streamState); break; case 72: id = buffer[0]; - buffer = buffer.slice(1); - response = JSON.parse(buffer, response._fromJSON); - buffer = ReactDOMSharedInternals.d; + streamState = buffer.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - buffer.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? buffer.C(response) - : buffer.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + buffer = response[1]; 3 === response.length - ? buffer.L(id, tag, response[2]) - : buffer.L(id, tag); + ? streamState.L(id, buffer, response[2]) + : streamState.L(id, buffer); break; case "m": "string" === typeof response - ? buffer.m(response) - : buffer.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? buffer.X(response) - : buffer.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? buffer.S(response) - : buffer.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -2991,8 +3171,8 @@ break; case "M": "string" === typeof response - ? buffer.M(response) - : buffer.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -3002,15 +3182,20 @@ stringDecoder = resolveErrorDev(response, buffer); stringDecoder.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, new ReactPromise("rejected", null, stringDecoder)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, stringDecoder)) + : ((response = new ReactPromise("rejected", null, stringDecoder)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +buffer - performance.timeOrigin; @@ -3022,19 +3207,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, buffer)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, buffer)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== buffer[0] || "$" !== buffer[1] || - ((buffer = buffer.slice(2, buffer.length - 1).split(":")), - (buffer = parseInt(buffer[0], 16)), - "pending" === getChunk(response, buffer).status && + ((streamState = buffer.slice(2, buffer.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -3044,16 +3229,16 @@ resolveConsoleEntry(response, buffer); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -3063,21 +3248,24 @@ default: if ("" === buffer) { if ( - ((buffer = response._chunks), - (tag = buffer.get(id)) || - buffer.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (buffer = streamState.get(id)) || + streamState.set(id, (buffer = createPendingChunk(response))), + "pending" === buffer.status || "blocked" === buffer.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, buffer), + (response = buffer), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, createResolvedModelChunk(response, buffer)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, buffer)) + : ((response = createResolvedModelChunk(response, buffer)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -3191,33 +3379,53 @@ : void 0 )._weakResponse; } - function startReadingFromStream(response$jscomp$0, stream, onDone) { + function startReadingFromStream( + response$jscomp$0, + stream, + onDone, + debugValue + ) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); _ref = streamState; if (void 0 !== response$jscomp$0.weak.deref()) { - for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; - i < chunkLength; - - ) { - var lastIdx = -1; + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length, + debugInfo = _ref._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end, + newByteLength = debugInfo.byteSize + chunkLength; + newByteLength > _ref._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((_ref._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: newByteLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (_ref._debugTargetChunkSize = newByteLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = newByteLength)); + for (; i < chunkLength; ) { + debugInfo = -1; switch (rowState) { case 0: - lastIdx = value[i++]; - 58 === lastIdx + debugInfo = value[i++]; + 58 === debugInfo ? (rowState = 1) : (rowID = (rowID << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 1: rowState = value[i]; @@ -3244,38 +3452,43 @@ : ((rowTag = 0), (rowState = 3)); continue; case 2: - lastIdx = value[i++]; - 44 === lastIdx + debugInfo = value[i++]; + 44 === debugInfo ? (rowState = 4) : (rowLength = (rowLength << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 3: - lastIdx = value.indexOf(10, i); + debugInfo = value.indexOf(10, i); break; case 4: - (lastIdx = i + rowLength), - lastIdx > value.length && (lastIdx = -1); + (debugInfo = i + rowLength), + debugInfo > value.length && (debugInfo = -1); } - var offset = value.byteOffset + i; - if (-1 < lastIdx) - (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), + endTime = value.byteOffset + i; + if (-1 < debugInfo) + (rowLength = new Uint8Array( + value.buffer, + endTime, + debugInfo - i + )), processFullBinaryRow( response, + _ref, rowID, rowTag, buffer, rowLength ), - (i = lastIdx), + (i = debugInfo), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), (buffer.length = 0); else { value = new Uint8Array( value.buffer, - offset, + endTime, value.byteLength - i ); buffer.push(value); @@ -3293,13 +3506,7 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = { - _rowState: 0, - _rowID: 0, - _rowTag: 0, - _rowLength: 0, - _buffer: [] - }, + var streamState = createStreamState(response$jscomp$0, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -3398,6 +3605,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -3512,12 +3720,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -3538,9 +3747,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js index 0c2b9c488f09e..5be6304033f4a 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.edge.production.js @@ -1393,7 +1393,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1423,22 +1424,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1655,7 +1655,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1701,13 +1701,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1762,17 +1759,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, new ReactPromise("rejected", null, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = new ReactPromise("rejected", null, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1794,15 +1793,16 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1926,7 +1926,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js index b9150d487d15a..361ff2c373842 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.development.js @@ -1351,7 +1351,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1369,7 +1370,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1575,37 +1577,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1641,7 +1656,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1673,6 +1689,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -1814,9 +1831,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -1853,12 +1876,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -1890,7 +1915,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -1900,12 +1927,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2225,6 +2253,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2236,24 +2265,65 @@ : debugChannelRegistry.register(this, debugChannel, this)); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; - } - function resolveBuffer(response, id, buffer) { + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2274,6 +2344,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2284,52 +2355,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2338,68 +2419,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2409,7 +2497,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2507,7 +2595,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -2887,7 +2976,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -2898,53 +2988,154 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushInitialRenderPerformance() {} - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -2954,48 +3145,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -3003,8 +3194,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -3014,15 +3205,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = new ReactPromise("rejected", null, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -3034,19 +3230,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -3056,16 +3252,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -3075,21 +3271,24 @@ default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -3098,11 +3297,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -3160,6 +3360,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -3293,7 +3494,7 @@ : void 0 )._weakResponse; } - function startReadingFromStream$1(response, stream, onDone) { + function startReadingFromStream$1(response, stream, onDone, debugValue) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); @@ -3303,7 +3504,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -3313,19 +3514,20 @@ ); } function startReadingFromStream(response$jscomp$0, stream, onEnd) { - var streamState = createStreamState(); + var streamState = createStreamState(response$jscomp$0, stream); stream.on("data", function (chunk) { if ("string" === typeof chunk) { if (void 0 !== response$jscomp$0.weak.deref()) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = streamState._rowState, + rowID = streamState._rowID, + rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = streamState._rowState, - rowID = streamState._rowID, - rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -3390,7 +3592,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -3508,6 +3710,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -3622,12 +3825,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, r.body, handleDone); + startReadingFromStream$1(response, r.body, handleDone, r); } else startReadingFromStream$1( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -3686,9 +3890,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, stream, handleDone); + startReadingFromStream$1(response, stream, handleDone, stream); } else - startReadingFromStream$1(response, stream, close.bind(null, response)); + startReadingFromStream$1( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js index 2395cbc54bd9b..2f125d4639cbe 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js @@ -1397,7 +1397,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1427,22 +1428,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1659,7 +1659,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1712,9 +1712,9 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } -function processFullStringRow(response, id, tag, row) { +function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: resolveModule(response, id, row); @@ -1735,8 +1735,10 @@ function processFullStringRow(response, id, tag, row) { break; case "L": id = response[0]; - tag = response[1]; - 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag); + streamState = response[1]; + 3 === response.length + ? row.L(id, streamState, response[2]) + : row.L(id, streamState); break; case "m": "string" === typeof response @@ -1764,20 +1766,22 @@ function processFullStringRow(response, id, tag, row) { } break; case 69: - tag = response._chunks; - var chunk = tag.get(id); + streamState = response._chunks; + tag = streamState.get(id); row = JSON.parse(row); var error = resolveErrorProd(); error.digest = row.digest; - chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + tag + ? triggerErrorOnChunk(response, tag, error) + : ((response = new ReactPromise("rejected", null, error)), + streamState.set(id, response)); break; case 84: response = response._chunks; - (tag = response.get(id)) && "pending" !== tag.status - ? tag.reason.enqueueValue(row) - : response.set(id, new ReactPromise("fulfilled", row, null)); + (streamState = response.get(id)) && "pending" !== streamState.status + ? streamState.reason.enqueueValue(row) + : ((row = new ReactPromise("fulfilled", row, null)), + response.set(id, row)); break; case 78: case 68: @@ -1799,15 +1803,16 @@ function processFullStringRow(response, id, tag, row) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === row ? '"$undefined"' : row); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === row ? '"$undefined"' : row); break; default: - (tag = response._chunks), - (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, new ReactPromise("resolved_model", row, response)); + (streamState = response._chunks), + (tag = streamState.get(id)) + ? resolveModelChunk(response, tag, row) + : ((response = new ReactPromise("resolved_model", row, response)), + streamState.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -1871,7 +1876,14 @@ function processBinaryChunk(weakResponse, streamState, chunk) { var offset = chunk.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), - processFullBinaryRow(weakResponse, rowID, rowTag, buffer, rowLength), + processFullBinaryRow( + weakResponse, + streamState, + rowID, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), @@ -2038,7 +2050,7 @@ function startReadingFromStream(response, stream, onEnd) { "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; diff --git a/packages/next/src/compiled/react-server-dom-turbopack/package.json b/packages/next/src/compiled/react-server-dom-turbopack/package.json index 9e6d70fa58332..906b68bbf60e9 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/package.json +++ b/packages/next/src/compiled/react-server-dom-turbopack/package.json @@ -48,7 +48,7 @@ "neo-async": "^2.6.1" }, "peerDependencies": { - "react": "19.2.0-canary-6b70072c-20250909", - "react-dom": "19.2.0-canary-6b70072c-20250909" + "react": "19.2.0-canary-886b3d36-20250910", + "react-dom": "19.2.0-canary-886b3d36-20250910" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js index bee26523a8b59..f2862eefccca6 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.development.js @@ -1675,7 +1675,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1693,7 +1694,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1899,37 +1901,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1965,7 +1980,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1997,6 +2013,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -2132,9 +2149,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -2174,12 +2197,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2211,7 +2236,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -2221,12 +2248,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2555,6 +2583,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2567,24 +2596,65 @@ replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); } - function resolveBuffer(response, id, buffer) { + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2600,6 +2670,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2610,52 +2681,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2664,68 +2745,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2735,7 +2823,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2833,7 +2921,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -3235,7 +3324,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -3246,7 +3336,7 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushComponentPerformance( response$jscomp$0, @@ -3779,50 +3869,151 @@ )); } } - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -3832,48 +4023,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -3881,8 +4072,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -3892,15 +4083,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = createErrorChunk(response, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -3912,19 +4108,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -3934,16 +4130,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -3960,31 +4156,37 @@ Error.bind(null, row.reason || "") ); tag = response._debugRootTask; - row = null != tag ? tag.run(row) : row(); - row.$$typeof = REACT_POSTPONE_TYPE; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + tag = null != tag ? tag.run(row) : row(); + tag.$$typeof = REACT_POSTPONE_TYPE; + row = response._chunks; + (chunk = row.get(id)) + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, tag)) + : ((response = createErrorChunk(response, tag)), + resolveChunkDebugInfo(streamState, response), + row.set(id, response)); break; default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -3993,11 +4195,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4055,6 +4258,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -4219,15 +4423,16 @@ if ( ((_ref = streamState), void 0 !== response$jscomp$0.weak.deref()) ) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; + incrementChunkDebugInfo(_ref, chunkLength); i < chunkLength; ) { @@ -4292,7 +4497,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = value.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, _ref, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -4313,11 +4518,11 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response$jscomp$0, stream), reader = stream.getReader(); reader.read().then(progress).catch(error); } - function startReadingFromStream(response, stream, onDone) { + function startReadingFromStream(response, stream, onDone, debugValue) { function progress(_ref2) { var value = _ref2.value; if (_ref2.done) return onDone(); @@ -4327,7 +4532,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -4443,6 +4648,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -4551,10 +4757,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-experimental-6b70072c-20250909", + version: "19.2.0-experimental-886b3d36-20250910", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-6b70072c-20250909", + reconcilerVersion: "19.2.0-experimental-886b3d36-20250910", getCurrentComponentInfo: function () { return currentOwnerInDEV; } @@ -4577,12 +4783,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -4603,9 +4810,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function ( diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.production.js index c73a2ee89a7c0..c05e2db33e89f 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.browser.production.js @@ -1226,7 +1226,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1251,22 +1252,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1483,7 +1483,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1529,13 +1529,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1590,17 +1587,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, createErrorChunk(response, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = createErrorChunk(response, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1622,26 +1621,28 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; case 80: - buffer = Error( + tag = Error( "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details." ); - buffer.$$typeof = REACT_POSTPONE_TYPE; - buffer.stack = "Error: " + buffer.message; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, buffer) - : tag.set(id, createErrorChunk(response, buffer)); + tag.$$typeof = REACT_POSTPONE_TYPE; + tag.stack = "Error: " + tag.message; + buffer = response._chunks; + (chunk = buffer.get(id)) + ? triggerErrorOnChunk(response, chunk, tag) + : ((response = createErrorChunk(response, tag)), + buffer.set(id, response)); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1760,7 +1761,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref2, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref2, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref2 = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js index 8be4002024e26..c084a82376e17 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.development.js @@ -1825,7 +1825,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1843,7 +1844,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -2049,37 +2051,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -2115,7 +2130,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -2147,6 +2163,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -2288,9 +2305,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -2330,12 +2353,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2367,7 +2392,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -2377,12 +2404,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2711,6 +2739,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2723,15 +2752,45 @@ replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } - function resolveBuffer(response, id, buffer) { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { + _rowState: 0, + _rowID: 0, + _rowTag: 0, + _rowLength: 0, + _buffer: [] + }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2752,6 +2811,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2762,52 +2822,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2816,68 +2886,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2887,7 +2964,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2985,7 +3062,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -3387,7 +3465,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -3398,7 +3477,7 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushComponentPerformance( response$jscomp$0, @@ -3931,50 +4010,151 @@ )); } } - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -3986,43 +4166,43 @@ buffer = row += stringDecoder.decode(chunk); switch (tag) { case 73: - resolveModule(response, id, buffer); + resolveModule(response, id, buffer, streamState); break; case 72: id = buffer[0]; - buffer = buffer.slice(1); - response = JSON.parse(buffer, response._fromJSON); - buffer = ReactDOMSharedInternals.d; + streamState = buffer.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - buffer.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? buffer.C(response) - : buffer.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + buffer = response[1]; 3 === response.length - ? buffer.L(id, tag, response[2]) - : buffer.L(id, tag); + ? streamState.L(id, buffer, response[2]) + : streamState.L(id, buffer); break; case "m": "string" === typeof response - ? buffer.m(response) - : buffer.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? buffer.X(response) - : buffer.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? buffer.S(response) - : buffer.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -4030,8 +4210,8 @@ break; case "M": "string" === typeof response - ? buffer.M(response) - : buffer.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -4041,15 +4221,20 @@ stringDecoder = resolveErrorDev(response, buffer); stringDecoder.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, createErrorChunk(response, stringDecoder)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, stringDecoder)) + : ((response = createErrorChunk(response, stringDecoder)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +buffer - performance.timeOrigin; @@ -4061,19 +4246,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, buffer)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, buffer)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== buffer[0] || "$" !== buffer[1] || - ((buffer = buffer.slice(2, buffer.length - 1).split(":")), - (buffer = parseInt(buffer[0], 16)), - "pending" === getChunk(response, buffer).status && + ((streamState = buffer.slice(2, buffer.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -4083,16 +4268,16 @@ resolveConsoleEntry(response, buffer); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -4109,31 +4294,37 @@ Error.bind(null, buffer.reason || "") ); tag = response._debugRootTask; - buffer = null != tag ? tag.run(buffer) : buffer(); - buffer.$$typeof = REACT_POSTPONE_TYPE; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, buffer) - : tag.set(id, createErrorChunk(response, buffer)); + tag = null != tag ? tag.run(buffer) : buffer(); + tag.$$typeof = REACT_POSTPONE_TYPE; + buffer = response._chunks; + (chunk = buffer.get(id)) + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, tag)) + : ((response = createErrorChunk(response, tag)), + resolveChunkDebugInfo(streamState, response), + buffer.set(id, response)); break; default: if ("" === buffer) { if ( - ((buffer = response._chunks), - (tag = buffer.get(id)) || - buffer.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (buffer = streamState.get(id)) || + streamState.set(id, (buffer = createPendingChunk(response))), + "pending" === buffer.status || "blocked" === buffer.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, buffer), + (response = buffer), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, createResolvedModelChunk(response, buffer)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, buffer)) + : ((response = createResolvedModelChunk(response, buffer)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -4247,33 +4438,53 @@ : void 0 )._weakResponse; } - function startReadingFromStream(response$jscomp$0, stream, onDone) { + function startReadingFromStream( + response$jscomp$0, + stream, + onDone, + debugValue + ) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); _ref = streamState; if (void 0 !== response$jscomp$0.weak.deref()) { - for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; - i < chunkLength; - - ) { - var lastIdx = -1; + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length, + debugInfo = _ref._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end, + newByteLength = debugInfo.byteSize + chunkLength; + newByteLength > _ref._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((_ref._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: newByteLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (_ref._debugTargetChunkSize = newByteLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = newByteLength)); + for (; i < chunkLength; ) { + debugInfo = -1; switch (rowState) { case 0: - lastIdx = value[i++]; - 58 === lastIdx + debugInfo = value[i++]; + 58 === debugInfo ? (rowState = 1) : (rowID = (rowID << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 1: rowState = value[i]; @@ -4300,38 +4511,43 @@ : ((rowTag = 0), (rowState = 3)); continue; case 2: - lastIdx = value[i++]; - 44 === lastIdx + debugInfo = value[i++]; + 44 === debugInfo ? (rowState = 4) : (rowLength = (rowLength << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 3: - lastIdx = value.indexOf(10, i); + debugInfo = value.indexOf(10, i); break; case 4: - (lastIdx = i + rowLength), - lastIdx > value.length && (lastIdx = -1); + (debugInfo = i + rowLength), + debugInfo > value.length && (debugInfo = -1); } - var offset = value.byteOffset + i; - if (-1 < lastIdx) - (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), + endTime = value.byteOffset + i; + if (-1 < debugInfo) + (rowLength = new Uint8Array( + value.buffer, + endTime, + debugInfo - i + )), processFullBinaryRow( response, + _ref, rowID, rowTag, buffer, rowLength ), - (i = lastIdx), + (i = debugInfo), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), (buffer.length = 0); else { value = new Uint8Array( value.buffer, - offset, + endTime, value.byteLength - i ); buffer.push(value); @@ -4349,13 +4565,7 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = { - _rowState: 0, - _rowID: 0, - _rowTag: 0, - _rowLength: 0, - _buffer: [] - }, + var streamState = createStreamState(response$jscomp$0, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -4465,6 +4675,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -4579,12 +4790,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -4605,9 +4817,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.production.js index 0bde9521c9ea8..8ecec32d79721 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.edge.production.js @@ -1401,7 +1401,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1431,22 +1432,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1663,7 +1663,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1709,13 +1709,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1770,17 +1767,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, createErrorChunk(response, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = createErrorChunk(response, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1802,26 +1801,28 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; case 80: - buffer = Error( + tag = Error( "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details." ); - buffer.$$typeof = REACT_POSTPONE_TYPE; - buffer.stack = "Error: " + buffer.message; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, buffer) - : tag.set(id, createErrorChunk(response, buffer)); + tag.$$typeof = REACT_POSTPONE_TYPE; + tag.stack = "Error: " + tag.message; + buffer = response._chunks; + (chunk = buffer.get(id)) + ? triggerErrorOnChunk(response, chunk, tag) + : ((response = createErrorChunk(response, tag)), + buffer.set(id, response)); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1945,7 +1946,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js index 07ff9b3822a99..8686a44c6fc4b 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.development.js @@ -1825,7 +1825,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1843,7 +1844,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -2049,37 +2051,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -2115,7 +2130,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -2147,6 +2163,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -2288,9 +2305,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -2330,12 +2353,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2367,7 +2392,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -2377,12 +2404,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2711,6 +2739,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2723,24 +2752,65 @@ replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); } - function resolveBuffer(response, id, buffer) { + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2761,6 +2831,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2771,52 +2842,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2825,68 +2906,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2896,7 +2984,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2994,7 +3082,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -3396,7 +3485,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -3407,7 +3497,7 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushComponentPerformance( response$jscomp$0, @@ -3940,50 +4030,151 @@ )); } } - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -3993,48 +4184,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -4042,8 +4233,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -4053,15 +4244,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = createErrorChunk(response, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -4073,19 +4269,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -4095,16 +4291,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -4121,31 +4317,37 @@ Error.bind(null, row.reason || "") ); tag = response._debugRootTask; - row = null != tag ? tag.run(row) : row(); - row.$$typeof = REACT_POSTPONE_TYPE; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + tag = null != tag ? tag.run(row) : row(); + tag.$$typeof = REACT_POSTPONE_TYPE; + row = response._chunks; + (chunk = row.get(id)) + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, tag)) + : ((response = createErrorChunk(response, tag)), + resolveChunkDebugInfo(streamState, response), + row.set(id, response)); break; default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -4154,11 +4356,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4216,6 +4419,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -4349,7 +4553,7 @@ : void 0 )._weakResponse; } - function startReadingFromStream$1(response, stream, onDone) { + function startReadingFromStream$1(response, stream, onDone, debugValue) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); @@ -4359,7 +4563,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -4369,19 +4573,20 @@ ); } function startReadingFromStream(response$jscomp$0, stream, onEnd) { - var streamState = createStreamState(); + var streamState = createStreamState(response$jscomp$0, stream); stream.on("data", function (chunk) { if ("string" === typeof chunk) { if (void 0 !== response$jscomp$0.weak.deref()) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = streamState._rowState, + rowID = streamState._rowID, + rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = streamState._rowState, - rowID = streamState._rowID, - rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4446,7 +4651,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -4575,6 +4780,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -4689,12 +4895,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, r.body, handleDone); + startReadingFromStream$1(response, r.body, handleDone, r); } else startReadingFromStream$1( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -4753,9 +4960,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, stream, handleDone); + startReadingFromStream$1(response, stream, handleDone, stream); } else - startReadingFromStream$1(response, stream, close.bind(null, response)); + startReadingFromStream$1( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.production.js index 154e5db0782d3..f04c0178ac7ca 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.production.js @@ -1405,7 +1405,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1435,22 +1436,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1667,7 +1667,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1720,9 +1720,9 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } -function processFullStringRow(response, id, tag, row) { +function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: resolveModule(response, id, row); @@ -1743,8 +1743,10 @@ function processFullStringRow(response, id, tag, row) { break; case "L": id = response[0]; - tag = response[1]; - 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag); + streamState = response[1]; + 3 === response.length + ? row.L(id, streamState, response[2]) + : row.L(id, streamState); break; case "m": "string" === typeof response @@ -1772,20 +1774,22 @@ function processFullStringRow(response, id, tag, row) { } break; case 69: - tag = response._chunks; - var chunk = tag.get(id); + streamState = response._chunks; + tag = streamState.get(id); row = JSON.parse(row); var error = resolveErrorProd(); error.digest = row.digest; - chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + tag + ? triggerErrorOnChunk(response, tag, error) + : ((response = createErrorChunk(response, error)), + streamState.set(id, response)); break; case 84: response = response._chunks; - (tag = response.get(id)) && "pending" !== tag.status - ? tag.reason.enqueueValue(row) - : response.set(id, new ReactPromise("fulfilled", row, null)); + (streamState = response.get(id)) && "pending" !== streamState.status + ? streamState.reason.enqueueValue(row) + : ((row = new ReactPromise("fulfilled", row, null)), + response.set(id, row)); break; case 78: case 68: @@ -1807,26 +1811,28 @@ function processFullStringRow(response, id, tag, row) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === row ? '"$undefined"' : row); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === row ? '"$undefined"' : row); break; case 80: - row = Error( + streamState = Error( "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details." ); - row.$$typeof = REACT_POSTPONE_TYPE; - row.stack = "Error: " + row.message; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + streamState.$$typeof = REACT_POSTPONE_TYPE; + streamState.stack = "Error: " + streamState.message; + row = response._chunks; + (tag = row.get(id)) + ? triggerErrorOnChunk(response, tag, streamState) + : ((response = createErrorChunk(response, streamState)), + row.set(id, response)); break; default: - (tag = response._chunks), - (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, new ReactPromise("resolved_model", row, response)); + (streamState = response._chunks), + (tag = streamState.get(id)) + ? resolveModelChunk(response, tag, row) + : ((response = new ReactPromise("resolved_model", row, response)), + streamState.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -1890,7 +1896,14 @@ function processBinaryChunk(weakResponse, streamState, chunk) { var offset = chunk.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), - processFullBinaryRow(weakResponse, rowID, rowTag, buffer, rowLength), + processFullBinaryRow( + weakResponse, + streamState, + rowID, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), @@ -2057,7 +2070,7 @@ function startReadingFromStream(response, stream, onEnd) { "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.development.js index eb9bdea212c63..9c9ef53e722cb 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.development.js @@ -1785,7 +1785,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1803,7 +1804,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -2009,37 +2011,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -2075,7 +2090,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -2107,6 +2123,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -2248,9 +2265,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -2290,12 +2313,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2327,7 +2352,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -2337,12 +2364,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2671,6 +2699,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2683,24 +2712,65 @@ replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); } - function resolveBuffer(response, id, buffer) { + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2721,6 +2791,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2731,52 +2802,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2785,68 +2866,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2856,7 +2944,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2954,7 +3042,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -3356,7 +3445,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -3367,7 +3457,7 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushComponentPerformance( response$jscomp$0, @@ -3900,50 +3990,151 @@ )); } } - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -3953,48 +4144,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -4002,8 +4193,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -4013,15 +4204,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = createErrorChunk(response, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -4033,19 +4229,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -4055,16 +4251,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -4081,31 +4277,37 @@ Error.bind(null, row.reason || "") ); tag = response._debugRootTask; - row = null != tag ? tag.run(row) : row(); - row.$$typeof = REACT_POSTPONE_TYPE; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + tag = null != tag ? tag.run(row) : row(); + tag.$$typeof = REACT_POSTPONE_TYPE; + row = response._chunks; + (chunk = row.get(id)) + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, tag)) + : ((response = createErrorChunk(response, tag)), + resolveChunkDebugInfo(streamState, response), + row.set(id, response)); break; default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -4114,11 +4316,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4176,6 +4379,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -4309,7 +4513,7 @@ : void 0 )._weakResponse; } - function startReadingFromStream$1(response, stream, onDone) { + function startReadingFromStream$1(response, stream, onDone, debugValue) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); @@ -4319,7 +4523,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -4329,19 +4533,20 @@ ); } function startReadingFromStream(response$jscomp$0, stream, onEnd) { - var streamState = createStreamState(); + var streamState = createStreamState(response$jscomp$0, stream); stream.on("data", function (chunk) { if ("string" === typeof chunk) { if (void 0 !== response$jscomp$0.weak.deref()) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = streamState._rowState, + rowID = streamState._rowID, + rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = streamState._rowState, - rowID = streamState._rowID, - rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -4406,7 +4611,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -4535,6 +4740,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -4649,12 +4855,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, r.body, handleDone); + startReadingFromStream$1(response, r.body, handleDone, r); } else startReadingFromStream$1( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -4713,9 +4920,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, stream, handleDone); + startReadingFromStream$1(response, stream, handleDone, stream); } else - startReadingFromStream$1(response, stream, close.bind(null, response)); + startReadingFromStream$1( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.production.js index a1650df0f8f03..877e61ca0f9a3 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-client.node.unbundled.production.js @@ -1370,7 +1370,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1400,22 +1401,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1632,7 +1632,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1685,9 +1685,9 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } -function processFullStringRow(response, id, tag, row) { +function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: resolveModule(response, id, row); @@ -1708,8 +1708,10 @@ function processFullStringRow(response, id, tag, row) { break; case "L": id = response[0]; - tag = response[1]; - 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag); + streamState = response[1]; + 3 === response.length + ? row.L(id, streamState, response[2]) + : row.L(id, streamState); break; case "m": "string" === typeof response @@ -1737,20 +1739,22 @@ function processFullStringRow(response, id, tag, row) { } break; case 69: - tag = response._chunks; - var chunk = tag.get(id); + streamState = response._chunks; + tag = streamState.get(id); row = JSON.parse(row); var error = resolveErrorProd(); error.digest = row.digest; - chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, createErrorChunk(response, error)); + tag + ? triggerErrorOnChunk(response, tag, error) + : ((response = createErrorChunk(response, error)), + streamState.set(id, response)); break; case 84: response = response._chunks; - (tag = response.get(id)) && "pending" !== tag.status - ? tag.reason.enqueueValue(row) - : response.set(id, new ReactPromise("fulfilled", row, null)); + (streamState = response.get(id)) && "pending" !== streamState.status + ? streamState.reason.enqueueValue(row) + : ((row = new ReactPromise("fulfilled", row, null)), + response.set(id, row)); break; case 78: case 68: @@ -1772,26 +1776,28 @@ function processFullStringRow(response, id, tag, row) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === row ? '"$undefined"' : row); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === row ? '"$undefined"' : row); break; case 80: - row = Error( + streamState = Error( "A Server Component was postponed. The reason is omitted in production builds to avoid leaking sensitive details." ); - row.$$typeof = REACT_POSTPONE_TYPE; - row.stack = "Error: " + row.message; - tag = response._chunks; - (chunk = tag.get(id)) - ? triggerErrorOnChunk(response, chunk, row) - : tag.set(id, createErrorChunk(response, row)); + streamState.$$typeof = REACT_POSTPONE_TYPE; + streamState.stack = "Error: " + streamState.message; + row = response._chunks; + (tag = row.get(id)) + ? triggerErrorOnChunk(response, tag, streamState) + : ((response = createErrorChunk(response, streamState)), + row.set(id, response)); break; default: - (tag = response._chunks), - (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, new ReactPromise("resolved_model", row, response)); + (streamState = response._chunks), + (tag = streamState.get(id)) + ? resolveModelChunk(response, tag, row) + : ((response = new ReactPromise("resolved_model", row, response)), + streamState.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -1855,7 +1861,14 @@ function processBinaryChunk(weakResponse, streamState, chunk) { var offset = chunk.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), - processFullBinaryRow(weakResponse, rowID, rowTag, buffer, rowLength), + processFullBinaryRow( + weakResponse, + streamState, + rowID, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), @@ -2022,7 +2035,7 @@ function startReadingFromStream(response, stream, onEnd) { "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json b/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json index 4e33ded5cbd6f..41c10148120a7 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/package.json @@ -64,8 +64,8 @@ "webpack-sources": "^3.2.0" }, "peerDependencies": { - "react": "0.0.0-experimental-6b70072c-20250909", - "react-dom": "0.0.0-experimental-6b70072c-20250909", + "react": "0.0.0-experimental-886b3d36-20250910", + "react-dom": "0.0.0-experimental-886b3d36-20250910", "webpack": "^5.59.0" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js index ba71c9ac4cfcf..7f50757e1cecd 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js @@ -1206,7 +1206,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1224,7 +1225,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1430,37 +1432,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1496,7 +1511,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1528,6 +1544,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -1663,9 +1680,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -1702,12 +1725,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -1739,7 +1764,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -1749,12 +1776,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2074,6 +2102,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2085,24 +2114,65 @@ : debugChannelRegistry.register(this, debugChannel, this)); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; - } - function resolveBuffer(response, id, buffer) { + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2118,6 +2188,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2128,52 +2199,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2182,68 +2263,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2253,7 +2341,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2351,7 +2439,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -2731,7 +2820,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -2742,53 +2832,154 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushInitialRenderPerformance() {} - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -2798,48 +2989,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -2847,8 +3038,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -2858,15 +3049,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = new ReactPromise("rejected", null, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -2878,19 +3074,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -2900,16 +3096,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -2919,21 +3115,24 @@ default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -2942,11 +3141,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -3004,6 +3204,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -3168,15 +3369,16 @@ if ( ((_ref = streamState), void 0 !== response$jscomp$0.weak.deref()) ) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; + incrementChunkDebugInfo(_ref, chunkLength); i < chunkLength; ) { @@ -3241,7 +3443,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = value.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, _ref, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -3262,11 +3464,11 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response$jscomp$0, stream), reader = stream.getReader(); reader.read().then(progress).catch(error); } - function startReadingFromStream(response, stream, onDone) { + function startReadingFromStream(response, stream, onDone, debugValue) { function progress(_ref2) { var value = _ref2.value; if (_ref2.done) return onDone(); @@ -3276,7 +3478,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -3380,6 +3582,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -3488,10 +3691,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-canary-6b70072c-20250909", + version: "19.2.0-canary-886b3d36-20250910", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-6b70072c-20250909", + reconcilerVersion: "19.2.0-canary-886b3d36-20250910", getCurrentComponentInfo: function () { return currentOwnerInDEV; } @@ -3514,12 +3717,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -3540,9 +3744,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function ( diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js index e8629c1ed2f2c..dda328b731751 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js @@ -1222,7 +1222,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1247,22 +1248,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1479,7 +1479,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1525,13 +1525,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1586,17 +1583,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, new ReactPromise("rejected", null, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = new ReactPromise("rejected", null, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1618,15 +1617,16 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1745,7 +1745,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref2, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref2, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref2 = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js index f476f23baf9e4..2af65f0d4948f 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js @@ -1356,7 +1356,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1374,7 +1375,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1580,37 +1582,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1646,7 +1661,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1678,6 +1694,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -1819,9 +1836,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -1858,12 +1881,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -1895,7 +1920,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -1905,12 +1932,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2230,6 +2258,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2241,15 +2270,45 @@ : debugChannelRegistry.register(this, debugChannel, this)); this._fromJSON = createFromJSONCallback(this); } - function resolveBuffer(response, id, buffer) { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { + _rowState: 0, + _rowID: 0, + _rowTag: 0, + _rowLength: 0, + _buffer: [] + }; + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2270,6 +2329,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2280,52 +2340,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2334,68 +2404,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2405,7 +2482,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2503,7 +2580,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -2883,7 +2961,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -2894,53 +2973,154 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushInitialRenderPerformance() {} - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -2952,43 +3132,43 @@ buffer = row += stringDecoder.decode(chunk); switch (tag) { case 73: - resolveModule(response, id, buffer); + resolveModule(response, id, buffer, streamState); break; case 72: id = buffer[0]; - buffer = buffer.slice(1); - response = JSON.parse(buffer, response._fromJSON); - buffer = ReactDOMSharedInternals.d; + streamState = buffer.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - buffer.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? buffer.C(response) - : buffer.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + buffer = response[1]; 3 === response.length - ? buffer.L(id, tag, response[2]) - : buffer.L(id, tag); + ? streamState.L(id, buffer, response[2]) + : streamState.L(id, buffer); break; case "m": "string" === typeof response - ? buffer.m(response) - : buffer.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? buffer.X(response) - : buffer.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? buffer.S(response) - : buffer.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -2996,8 +3176,8 @@ break; case "M": "string" === typeof response - ? buffer.M(response) - : buffer.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -3007,15 +3187,20 @@ stringDecoder = resolveErrorDev(response, buffer); stringDecoder.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, new ReactPromise("rejected", null, stringDecoder)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, stringDecoder)) + : ((response = new ReactPromise("rejected", null, stringDecoder)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +buffer - performance.timeOrigin; @@ -3027,19 +3212,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, buffer)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, buffer)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== buffer[0] || "$" !== buffer[1] || - ((buffer = buffer.slice(2, buffer.length - 1).split(":")), - (buffer = parseInt(buffer[0], 16)), - "pending" === getChunk(response, buffer).status && + ((streamState = buffer.slice(2, buffer.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -3049,16 +3234,16 @@ resolveConsoleEntry(response, buffer); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -3068,21 +3253,24 @@ default: if ("" === buffer) { if ( - ((buffer = response._chunks), - (tag = buffer.get(id)) || - buffer.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (buffer = streamState.get(id)) || + streamState.set(id, (buffer = createPendingChunk(response))), + "pending" === buffer.status || "blocked" === buffer.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, buffer), + (response = buffer), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, createResolvedModelChunk(response, buffer)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, buffer)) + : ((response = createResolvedModelChunk(response, buffer)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -3196,33 +3384,53 @@ : void 0 )._weakResponse; } - function startReadingFromStream(response$jscomp$0, stream, onDone) { + function startReadingFromStream( + response$jscomp$0, + stream, + onDone, + debugValue + ) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); _ref = streamState; if (void 0 !== response$jscomp$0.weak.deref()) { - for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = _ref._rowState, - rowID = _ref._rowID, - rowTag = _ref._rowTag, - rowLength = _ref._rowLength, - buffer = _ref._buffer, - chunkLength = value.length; - i < chunkLength; - - ) { - var lastIdx = -1; + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = _ref._rowState, + rowID = _ref._rowID, + rowTag = _ref._rowTag, + rowLength = _ref._rowLength, + buffer = _ref._buffer, + chunkLength = value.length, + debugInfo = _ref._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end, + newByteLength = debugInfo.byteSize + chunkLength; + newByteLength > _ref._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((_ref._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: newByteLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (_ref._debugTargetChunkSize = newByteLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = newByteLength)); + for (; i < chunkLength; ) { + debugInfo = -1; switch (rowState) { case 0: - lastIdx = value[i++]; - 58 === lastIdx + debugInfo = value[i++]; + 58 === debugInfo ? (rowState = 1) : (rowID = (rowID << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 1: rowState = value[i]; @@ -3249,38 +3457,43 @@ : ((rowTag = 0), (rowState = 3)); continue; case 2: - lastIdx = value[i++]; - 44 === lastIdx + debugInfo = value[i++]; + 44 === debugInfo ? (rowState = 4) : (rowLength = (rowLength << 4) | - (96 < lastIdx ? lastIdx - 87 : lastIdx - 48)); + (96 < debugInfo ? debugInfo - 87 : debugInfo - 48)); continue; case 3: - lastIdx = value.indexOf(10, i); + debugInfo = value.indexOf(10, i); break; case 4: - (lastIdx = i + rowLength), - lastIdx > value.length && (lastIdx = -1); + (debugInfo = i + rowLength), + debugInfo > value.length && (debugInfo = -1); } - var offset = value.byteOffset + i; - if (-1 < lastIdx) - (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), + endTime = value.byteOffset + i; + if (-1 < debugInfo) + (rowLength = new Uint8Array( + value.buffer, + endTime, + debugInfo - i + )), processFullBinaryRow( response, + _ref, rowID, rowTag, buffer, rowLength ), - (i = lastIdx), + (i = debugInfo), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), (buffer.length = 0); else { value = new Uint8Array( value.buffer, - offset, + endTime, value.byteLength - i ); buffer.push(value); @@ -3298,13 +3511,7 @@ function error(e) { reportGlobalError(response$jscomp$0, e); } - var streamState = { - _rowState: 0, - _rowID: 0, - _rowTag: 0, - _rowLength: 0, - _buffer: [] - }, + var streamState = createStreamState(response$jscomp$0, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -3402,6 +3609,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -3516,12 +3724,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, r.body, handleDone); + startReadingFromStream(response, r.body, handleDone, r); } else startReadingFromStream( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -3542,9 +3751,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream(response, stream, handleDone); + startReadingFromStream(response, stream, handleDone, stream); } else - startReadingFromStream(response, stream, close.bind(null, response)); + startReadingFromStream( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js index c9ba10efd2dbc..72a88f2a67e07 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js @@ -1397,7 +1397,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1427,22 +1428,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1659,7 +1659,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1705,13 +1705,10 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { resolveTypedArray(response, id, buffer, chunk, DataView, 1); return; } - for ( - var stringDecoder = response._stringDecoder, row = "", i = 0; - i < buffer.length; - i++ - ) - row += stringDecoder.decode(buffer[i], decoderOptions); - buffer = row += stringDecoder.decode(chunk); + streamState = response._stringDecoder; + for (var row = "", i = 0; i < buffer.length; i++) + row += streamState.decode(buffer[i], decoderOptions); + buffer = row += streamState.decode(chunk); switch (tag) { case 73: resolveModule(response, id, buffer); @@ -1766,17 +1763,19 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { tag = response._chunks; chunk = tag.get(id); buffer = JSON.parse(buffer); - stringDecoder = resolveErrorProd(); - stringDecoder.digest = buffer.digest; + streamState = resolveErrorProd(); + streamState.digest = buffer.digest; chunk - ? triggerErrorOnChunk(response, chunk, stringDecoder) - : tag.set(id, new ReactPromise("rejected", null, stringDecoder)); + ? triggerErrorOnChunk(response, chunk, streamState) + : ((response = new ReactPromise("rejected", null, streamState)), + tag.set(id, response)); break; case 84: response = response._chunks; (tag = response.get(id)) && "pending" !== tag.status ? tag.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); break; case 78: case 68: @@ -1798,15 +1797,16 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === buffer ? '"$undefined"' : buffer); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === buffer ? '"$undefined"' : buffer); break; default: (tag = response._chunks), (chunk = tag.get(id)) ? resolveModelChunk(response, chunk, buffer) - : tag.set(id, new ReactPromise("resolved_model", buffer, response)); + : ((response = new ReactPromise("resolved_model", buffer, response)), + tag.set(id, response)); } } function createFromJSONCallback(response) { @@ -1930,7 +1930,14 @@ function startReadingFromStream(response, stream, onDone) { var offset = value.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)), - processFullBinaryRow(response, _ref, rowTag, buffer, rowLength), + processFullBinaryRow( + response, + streamState, + _ref, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = _ref = rowTag = rowState = 0), diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js index d07bf8d282e2a..8007567259422 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js @@ -1356,7 +1356,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1374,7 +1375,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1580,37 +1582,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1646,7 +1661,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1678,6 +1694,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -1819,9 +1836,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -1858,12 +1881,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -1895,7 +1920,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -1905,12 +1932,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2230,6 +2258,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2241,24 +2270,65 @@ : debugChannelRegistry.register(this, debugChannel, this)); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; - } - function resolveBuffer(response, id, buffer) { + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2279,6 +2349,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2289,52 +2360,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2343,68 +2424,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2414,7 +2502,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2512,7 +2600,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -2892,7 +2981,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -2903,53 +2993,154 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushInitialRenderPerformance() {} - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -2959,48 +3150,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -3008,8 +3199,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -3019,15 +3210,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = new ReactPromise("rejected", null, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -3039,19 +3235,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -3061,16 +3257,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -3080,21 +3276,24 @@ default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -3103,11 +3302,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -3165,6 +3365,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -3298,7 +3499,7 @@ : void 0 )._weakResponse; } - function startReadingFromStream$1(response, stream, onDone) { + function startReadingFromStream$1(response, stream, onDone, debugValue) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); @@ -3308,7 +3509,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -3318,19 +3519,20 @@ ); } function startReadingFromStream(response$jscomp$0, stream, onEnd) { - var streamState = createStreamState(); + var streamState = createStreamState(response$jscomp$0, stream); stream.on("data", function (chunk) { if ("string" === typeof chunk) { if (void 0 !== response$jscomp$0.weak.deref()) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = streamState._rowState, + rowID = streamState._rowID, + rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = streamState._rowState, - rowID = streamState._rowID, - rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -3395,7 +3597,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -3512,6 +3714,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -3626,12 +3829,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, r.body, handleDone); + startReadingFromStream$1(response, r.body, handleDone, r); } else startReadingFromStream$1( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -3690,9 +3894,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, stream, handleDone); + startReadingFromStream$1(response, stream, handleDone, stream); } else - startReadingFromStream$1(response, stream, close.bind(null, response)); + startReadingFromStream$1( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js index d62f400e2c9e8..ff481cedd4e21 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js @@ -1401,7 +1401,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1431,22 +1432,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1663,7 +1663,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1716,9 +1716,9 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } -function processFullStringRow(response, id, tag, row) { +function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: resolveModule(response, id, row); @@ -1739,8 +1739,10 @@ function processFullStringRow(response, id, tag, row) { break; case "L": id = response[0]; - tag = response[1]; - 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag); + streamState = response[1]; + 3 === response.length + ? row.L(id, streamState, response[2]) + : row.L(id, streamState); break; case "m": "string" === typeof response @@ -1768,20 +1770,22 @@ function processFullStringRow(response, id, tag, row) { } break; case 69: - tag = response._chunks; - var chunk = tag.get(id); + streamState = response._chunks; + tag = streamState.get(id); row = JSON.parse(row); var error = resolveErrorProd(); error.digest = row.digest; - chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + tag + ? triggerErrorOnChunk(response, tag, error) + : ((response = new ReactPromise("rejected", null, error)), + streamState.set(id, response)); break; case 84: response = response._chunks; - (tag = response.get(id)) && "pending" !== tag.status - ? tag.reason.enqueueValue(row) - : response.set(id, new ReactPromise("fulfilled", row, null)); + (streamState = response.get(id)) && "pending" !== streamState.status + ? streamState.reason.enqueueValue(row) + : ((row = new ReactPromise("fulfilled", row, null)), + response.set(id, row)); break; case 78: case 68: @@ -1803,15 +1807,16 @@ function processFullStringRow(response, id, tag, row) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === row ? '"$undefined"' : row); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === row ? '"$undefined"' : row); break; default: - (tag = response._chunks), - (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, new ReactPromise("resolved_model", row, response)); + (streamState = response._chunks), + (tag = streamState.get(id)) + ? resolveModelChunk(response, tag, row) + : ((response = new ReactPromise("resolved_model", row, response)), + streamState.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -1875,7 +1880,14 @@ function processBinaryChunk(weakResponse, streamState, chunk) { var offset = chunk.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), - processFullBinaryRow(weakResponse, rowID, rowTag, buffer, rowLength), + processFullBinaryRow( + weakResponse, + streamState, + rowID, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), @@ -2042,7 +2054,7 @@ function startReadingFromStream(response, stream, onEnd) { "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js index fa58325964fa5..7fc4dcef5dffa 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js @@ -1316,7 +1316,8 @@ "" + idx, response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1334,7 +1335,8 @@ "debug", response, initializeDebugInfo, - [""] + [""], + !0 ); break; default: @@ -1540,37 +1542,50 @@ } value = value[path[i]]; } - reference = map(response, value, parentObject, key); - parentObject[key] = reference; - transferReferencedDebugInfo(handler.chunk, fulfilledChunk, reference); - "" === key && null === handler.value && (handler.value = reference); + response = map(response, value, parentObject, key); + parentObject[key] = response; + "" === key && null === handler.value && (handler.value = response); if ( parentObject[0] === REACT_ELEMENT_TYPE && "object" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE ) - switch (((fulfilledChunk = handler.value), key)) { + switch (((reference = handler.value), key)) { case "3": - fulfilledChunk.props = reference; + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); + reference.props = response; break; case "4": - fulfilledChunk._owner = reference; + reference._owner = response; break; case "5": - fulfilledChunk._debugStack = reference; + reference._debugStack = response; + break; + default: + transferReferencedDebugInfo( + handler.chunk, + fulfilledChunk, + response + ); } + else + reference.isDebug || + transferReferencedDebugInfo(handler.chunk, fulfilledChunk, response); handler.deps--; 0 === handler.deps && - ((key = handler.chunk), - null !== key && - "blocked" === key.status && - ((fulfilledChunk = key.value), - (key.status = "fulfilled"), - (key.value = handler.value), - (key.reason = handler.reason), - null !== fulfilledChunk && - wakeChunk(fulfilledChunk, handler.value, key))); + ((fulfilledChunk = handler.chunk), + null !== fulfilledChunk && + "blocked" === fulfilledChunk.status && + ((key = fulfilledChunk.value), + (fulfilledChunk.status = "fulfilled"), + (fulfilledChunk.value = handler.value), + (fulfilledChunk.reason = handler.reason), + null !== key && wakeChunk(key, handler.value, fulfilledChunk))); } function rejectReference(reference, error) { var handler = reference.handler; @@ -1606,7 +1621,8 @@ key, response, map, - path + path, + isAwaitingDebugInfo ) { if ( !( @@ -1638,6 +1654,7 @@ map: map, path: path }; + parentObject.isDebug = isAwaitingDebugInfo; null === referencedChunk.value ? (referencedChunk.value = [parentObject]) : referencedChunk.value.push(parentObject); @@ -1779,9 +1796,15 @@ }) : existingDebugInfo.push.apply(existingDebugInfo, referencedChunk); } - null !== parentChunk && - ((parentChunk = parentChunk._debugInfo), - parentChunk.push.apply(parentChunk, referencedChunk)); + if (null !== parentChunk) + for ( + parentChunk = parentChunk._debugInfo, referencedValue = 0; + referencedValue < referencedChunk.length; + ++referencedValue + ) + (existingDebugInfo = referencedChunk[referencedValue]), + null == existingDebugInfo.name && + parentChunk.push(existingDebugInfo); } function getOutlinedModel(response, reference, parentObject, key, map) { reference = reference.split(":"); @@ -1818,12 +1841,14 @@ key, response, map, - reference.slice(i - 1) + reference.slice(i - 1), + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), + parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -1855,7 +1880,9 @@ value = value[reference[i]]; } response = map(response, value, parentObject, key); - transferReferencedDebugInfo(initializingChunk, id, response); + (parentObject[0] !== REACT_ELEMENT_TYPE || + ("4" !== key && "5" !== key)) && + transferReferencedDebugInfo(initializingChunk, id, response); return response; case "pending": case "blocked": @@ -1865,12 +1892,13 @@ key, response, map, - reference + reference, + !1 ); case "halted": return ( initializingHandler - ? ((response = initializingHandler), response.deps++) + ? ((parentObject = initializingHandler), parentObject.deps++) : (initializingHandler = { parent: null, chunk: null, @@ -2190,6 +2218,7 @@ (this._debugRootTask = console.createTask( '"use ' + environmentName.toLowerCase() + '"' )); + this._debugStartTime = performance.now(); this._debugFindSourceMapURL = findSourceMapURL; this._debugChannel = debugChannel; this._blockedConsole = null; @@ -2201,24 +2230,65 @@ : debugChannelRegistry.register(this, debugChannel, this)); this._fromJSON = createFromJSONCallback(this); } - function createStreamState() { - return { + function createStreamState(weakResponse, streamDebugValue) { + var streamState = { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] }; - } - function resolveBuffer(response, id, buffer) { + weakResponse = unwrapWeakResponse(weakResponse); + var debugValuePromise = Promise.resolve(streamDebugValue); + debugValuePromise.status = "fulfilled"; + debugValuePromise.value = streamDebugValue; + streamState._debugInfo = { + name: "RSC stream", + start: weakResponse._debugStartTime, + end: weakResponse._debugStartTime, + byteSize: 0, + value: debugValuePromise, + owner: weakResponse._debugRootOwner, + debugStack: weakResponse._debugRootStack, + debugTask: weakResponse._debugRootTask + }; + streamState._debugTargetChunkSize = MIN_CHUNK_SIZE; + return streamState; + } + function incrementChunkDebugInfo(streamState, chunkLength) { + var debugInfo = streamState._debugInfo, + endTime = performance.now(), + previousEndTime = debugInfo.end; + chunkLength = debugInfo.byteSize + chunkLength; + chunkLength > streamState._debugTargetChunkSize || + endTime > previousEndTime + 10 + ? ((streamState._debugInfo = { + name: debugInfo.name, + start: debugInfo.start, + end: endTime, + byteSize: chunkLength, + value: debugInfo.value, + owner: debugInfo.owner, + debugStack: debugInfo.debugStack, + debugTask: debugInfo.debugTask + }), + (streamState._debugTargetChunkSize = chunkLength + MIN_CHUNK_SIZE)) + : ((debugInfo.end = endTime), (debugInfo.byteSize = chunkLength)); + } + function resolveChunkDebugInfo(streamState, chunk) { + chunk._debugInfo.push({ awaited: streamState._debugInfo }); + } + function resolveBuffer(response, id, buffer, streamState) { var chunks = response._chunks, chunk = chunks.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), - chunks.set(id, new ReactPromise("fulfilled", buffer, null))); + (response = new ReactPromise("fulfilled", buffer, null)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response)); } - function resolveModule(response, id, model) { + function resolveModule(response, id, model, streamState) { var chunks = response._chunks, chunk = chunks.get(id); model = JSON.parse(model, response._fromJSON); @@ -2239,6 +2309,7 @@ } else (blockedChunk = new ReactPromise("blocked", null, null)), chunks.set(id, blockedChunk); + resolveChunkDebugInfo(streamState, blockedChunk); model.then( function () { return resolveModuleChunk(response, blockedChunk, clientReference); @@ -2249,52 +2320,62 @@ ); } else chunk - ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModuleChunk(response, chunk, clientReference)) + : ((chunk = new ReactPromise( + "resolved_module", + clientReference, + null + )), + resolveChunkDebugInfo(streamState, chunk), + chunks.set(id, chunk)); } - function resolveStream(response, id, stream, controller) { + function resolveStream(response, id, stream, controller, streamState) { var chunks = response._chunks, chunk = chunks.get(id); - if (!chunk) - chunks.set(id, new ReactPromise("fulfilled", stream, controller)); - else if ("pending" === chunk.status) { - releasePendingChunk(response, chunk); - id = chunk.value; - if (null != chunk._debugChunk) { - chunks = initializingHandler; - var prevChunk = initializingChunk; - initializingHandler = null; - chunk.status = "blocked"; - chunk.value = null; - chunk.reason = null; - initializingChunk = chunk; - try { - if ( - (initializeDebugChunk(response, chunk), - (chunk._debugChunk = null), - null !== initializingHandler && - !initializingHandler.errored && - 0 < initializingHandler.deps) - ) { - initializingHandler.value = stream; - initializingHandler.reason = controller; - initializingHandler.chunk = chunk; - return; + if (chunk) { + if ( + (resolveChunkDebugInfo(streamState, chunk), + "pending" === chunk.status) + ) { + releasePendingChunk(response, chunk); + id = chunk.value; + if (null != chunk._debugChunk) { + streamState = initializingHandler; + chunks = initializingChunk; + initializingHandler = null; + chunk.status = "blocked"; + chunk.value = null; + chunk.reason = null; + initializingChunk = chunk; + try { + if ( + (initializeDebugChunk(response, chunk), + (chunk._debugChunk = null), + null !== initializingHandler && + !initializingHandler.errored && + 0 < initializingHandler.deps) + ) { + initializingHandler.value = stream; + initializingHandler.reason = controller; + initializingHandler.chunk = chunk; + return; + } + } finally { + (initializingHandler = streamState), (initializingChunk = chunks); } - } finally { - (initializingHandler = chunks), (initializingChunk = prevChunk); } + chunk.status = "fulfilled"; + chunk.value = stream; + chunk.reason = controller; + null !== id && wakeChunk(id, chunk.value, chunk); } - chunk.status = "fulfilled"; - chunk.value = stream; - chunk.reason = controller; - null !== id && wakeChunk(id, chunk.value, chunk); - } + } else + (response = new ReactPromise("fulfilled", stream, controller)), + resolveChunkDebugInfo(streamState, response), + chunks.set(id, response); } - function startReadableStream(response, id, type) { + function startReadableStream(response, id, type, streamState) { var controller = null; type = new ReadableStream({ type: type, @@ -2303,68 +2384,75 @@ } }); var previousBlockedChunk = null; - resolveStream(response, id, type, { - enqueueValue: function (value) { - null === previousBlockedChunk - ? controller.enqueue(value) - : previousBlockedChunk.then(function () { - controller.enqueue(value); + resolveStream( + response, + id, + type, + { + enqueueValue: function (value) { + null === previousBlockedChunk + ? controller.enqueue(value) + : previousBlockedChunk.then(function () { + controller.enqueue(value); + }); + }, + enqueueModel: function (json) { + if (null === previousBlockedChunk) { + var chunk = createResolvedModelChunk(response, json); + initializeModelChunk(chunk); + "fulfilled" === chunk.status + ? controller.enqueue(chunk.value) + : (chunk.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ), + (previousBlockedChunk = chunk)); + } else { + chunk = previousBlockedChunk; + var _chunk3 = createPendingChunk(response); + _chunk3.then( + function (v) { + return controller.enqueue(v); + }, + function (e) { + return controller.error(e); + } + ); + previousBlockedChunk = _chunk3; + chunk.then(function () { + previousBlockedChunk === _chunk3 && + (previousBlockedChunk = null); + resolveModelChunk(response, _chunk3, json); }); - }, - enqueueModel: function (json) { - if (null === previousBlockedChunk) { - var chunk = createResolvedModelChunk(response, json); - initializeModelChunk(chunk); - "fulfilled" === chunk.status - ? controller.enqueue(chunk.value) - : (chunk.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ), - (previousBlockedChunk = chunk)); - } else { - chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(response); - _chunk3.then( - function (v) { - return controller.enqueue(v); - }, - function (e) { - return controller.error(e); - } - ); - previousBlockedChunk = _chunk3; - chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); - }); - } - }, - close: function () { - if (null === previousBlockedChunk) controller.close(); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.close(); - }); + } + }, + close: function () { + if (null === previousBlockedChunk) controller.close(); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.close(); + }); + } + }, + error: function (error) { + if (null === previousBlockedChunk) controller.error(error); + else { + var blockedChunk = previousBlockedChunk; + previousBlockedChunk = null; + blockedChunk.then(function () { + return controller.error(error); + }); + } } }, - error: function (error) { - if (null === previousBlockedChunk) controller.error(error); - else { - var blockedChunk = previousBlockedChunk; - previousBlockedChunk = null; - blockedChunk.then(function () { - return controller.error(error); - }); - } - } - }); + streamState + ); } function asyncIterator() { return this; @@ -2374,7 +2462,7 @@ next[ASYNC_ITERATOR] = asyncIterator; return next; } - function startAsyncIterable(response, id, iterator) { + function startAsyncIterable(response, id, iterator, streamState) { var buffer = [], closed = !1, nextWriteIndex = 0, @@ -2472,7 +2560,8 @@ ) triggerErrorOnChunk(response, buffer[nextWriteIndex++], error); } - } + }, + streamState ); } function resolveErrorDev(response, errorInfo) { @@ -2852,7 +2941,8 @@ buffer, lastChunk, constructor, - bytesPerElement + bytesPerElement, + streamState ) { buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement @@ -2863,53 +2953,154 @@ buffer.byteOffset, buffer.byteLength / bytesPerElement ); - resolveBuffer(response, id, constructor); + resolveBuffer(response, id, constructor, streamState); } function flushInitialRenderPerformance() {} - function processFullBinaryRow(response, id, tag, buffer, chunk) { + function processFullBinaryRow( + response, + streamState, + id, + tag, + buffer, + chunk + ) { switch (tag) { case 65: - resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); + resolveBuffer( + response, + id, + mergeBuffer(buffer, chunk).buffer, + streamState + ); return; case 79: - resolveTypedArray(response, id, buffer, chunk, Int8Array, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int8Array, + 1, + streamState + ); return; case 111: resolveBuffer( response, id, - 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk) + 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk), + streamState ); return; case 85: - resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint8ClampedArray, + 1, + streamState + ); return; case 83: - resolveTypedArray(response, id, buffer, chunk, Int16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int16Array, + 2, + streamState + ); return; case 115: - resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint16Array, + 2, + streamState + ); return; case 76: - resolveTypedArray(response, id, buffer, chunk, Int32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Int32Array, + 4, + streamState + ); return; case 108: - resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Uint32Array, + 4, + streamState + ); return; case 71: - resolveTypedArray(response, id, buffer, chunk, Float32Array, 4); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float32Array, + 4, + streamState + ); return; case 103: - resolveTypedArray(response, id, buffer, chunk, Float64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + Float64Array, + 8, + streamState + ); return; case 77: - resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigInt64Array, + 8, + streamState + ); return; case 109: - resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8); + resolveTypedArray( + response, + id, + buffer, + chunk, + BigUint64Array, + 8, + streamState + ); return; case 86: - resolveTypedArray(response, id, buffer, chunk, DataView, 1); + resolveTypedArray( + response, + id, + buffer, + chunk, + DataView, + 1, + streamState + ); return; } for ( @@ -2919,48 +3110,48 @@ ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } - function processFullStringRow(response, id, tag, row) { + function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: - resolveModule(response, id, row); + resolveModule(response, id, row, streamState); break; case 72: id = row[0]; - row = row.slice(1); - response = JSON.parse(row, response._fromJSON); - row = ReactDOMSharedInternals.d; + streamState = row.slice(1); + response = JSON.parse(streamState, response._fromJSON); + streamState = ReactDOMSharedInternals.d; switch (id) { case "D": - row.D(response); + streamState.D(response); break; case "C": "string" === typeof response - ? row.C(response) - : row.C(response[0], response[1]); + ? streamState.C(response) + : streamState.C(response[0], response[1]); break; case "L": id = response[0]; - tag = response[1]; + row = response[1]; 3 === response.length - ? row.L(id, tag, response[2]) - : row.L(id, tag); + ? streamState.L(id, row, response[2]) + : streamState.L(id, row); break; case "m": "string" === typeof response - ? row.m(response) - : row.m(response[0], response[1]); + ? streamState.m(response) + : streamState.m(response[0], response[1]); break; case "X": "string" === typeof response - ? row.X(response) - : row.X(response[0], response[1]); + ? streamState.X(response) + : streamState.X(response[0], response[1]); break; case "S": "string" === typeof response - ? row.S(response) - : row.S( + ? streamState.S(response) + : streamState.S( response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0 @@ -2968,8 +3159,8 @@ break; case "M": "string" === typeof response - ? row.M(response) - : row.M(response[0], response[1]); + ? streamState.M(response) + : streamState.M(response[0], response[1]); } break; case 69: @@ -2979,15 +3170,20 @@ var error = resolveErrorDev(response, row); error.digest = row.digest; chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + ? (resolveChunkDebugInfo(streamState, chunk), + triggerErrorOnChunk(response, chunk, error)) + : ((response = new ReactPromise("rejected", null, error)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 84: tag = response._chunks; (chunk = tag.get(id)) && "pending" !== chunk.status ? chunk.reason.enqueueValue(row) : (chunk && releasePendingChunk(response, chunk), - tag.set(id, new ReactPromise("fulfilled", row, null))); + (response = new ReactPromise("fulfilled", row, null)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); break; case 78: response._timeOrigin = +row - performance.timeOrigin; @@ -2999,19 +3195,19 @@ "halted" !== id.status && "blocked" !== id.status && "resolved_module" !== id.status && - ((tag = id._debugChunk), - (chunk = createResolvedModelChunk(response, row)), - (chunk._debugChunk = tag), - (id._debugChunk = chunk), + ((streamState = id._debugChunk), + (tag = createResolvedModelChunk(response, row)), + (tag._debugChunk = streamState), + (id._debugChunk = tag), initializeDebugChunk(response, id), - "blocked" !== chunk.status || + "blocked" !== tag.status || (void 0 !== response._debugChannel && response._debugChannel.hasReadable) || '"' !== row[0] || "$" !== row[1] || - ((row = row.slice(2, row.length - 1).split(":")), - (row = parseInt(row[0], 16)), - "pending" === getChunk(response, row).status && + ((streamState = row.slice(2, row.length - 1).split(":")), + (streamState = parseInt(streamState[0], 16)), + "pending" === getChunk(response, streamState).status && (id._debugChunk = null))); break; case 74: @@ -3021,16 +3217,16 @@ resolveConsoleEntry(response, row); break; case 82: - startReadableStream(response, id, void 0); + startReadableStream(response, id, void 0, streamState); break; case 114: - startReadableStream(response, id, "bytes"); + startReadableStream(response, id, "bytes", streamState); break; case 88: - startAsyncIterable(response, id, !1); + startAsyncIterable(response, id, !1, streamState); break; case 120: - startAsyncIterable(response, id, !0); + startAsyncIterable(response, id, !0, streamState); break; case 67: (response = response._chunks.get(id)) && @@ -3040,21 +3236,24 @@ default: if ("" === row) { if ( - ((row = response._chunks), - (tag = row.get(id)) || - row.set(id, (tag = createPendingChunk(response))), - "pending" === tag.status || "blocked" === tag.status) + ((streamState = response._chunks), + (row = streamState.get(id)) || + streamState.set(id, (row = createPendingChunk(response))), + "pending" === row.status || "blocked" === row.status) ) - releasePendingChunk(response, tag), - (response = tag), + releasePendingChunk(response, row), + (response = row), (response.status = "halted"), (response.value = null), (response.reason = null); } else (tag = response._chunks), (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, createResolvedModelChunk(response, row)); + ? (resolveChunkDebugInfo(streamState, chunk), + resolveModelChunk(response, chunk, row)) + : ((response = createResolvedModelChunk(response, row)), + resolveChunkDebugInfo(streamState, response), + tag.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -3063,11 +3262,12 @@ i = 0, rowState = streamState._rowState; weakResponse = streamState._rowID; + var rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -3125,6 +3325,7 @@ (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), processFullBinaryRow( response, + streamState, weakResponse, rowTag, buffer, @@ -3258,7 +3459,7 @@ : void 0 )._weakResponse; } - function startReadingFromStream$1(response, stream, onDone) { + function startReadingFromStream$1(response, stream, onDone, debugValue) { function progress(_ref) { var value = _ref.value; if (_ref.done) return onDone(); @@ -3268,7 +3469,7 @@ function error(e) { reportGlobalError(response, e); } - var streamState = createStreamState(), + var streamState = createStreamState(response, debugValue), reader = stream.getReader(); reader.read().then(progress).catch(error); } @@ -3278,19 +3479,20 @@ ); } function startReadingFromStream(response$jscomp$0, stream, onEnd) { - var streamState = createStreamState(); + var streamState = createStreamState(response$jscomp$0, stream); stream.on("data", function (chunk) { if ("string" === typeof chunk) { if (void 0 !== response$jscomp$0.weak.deref()) { + var response = unwrapWeakResponse(response$jscomp$0), + i = 0, + rowState = streamState._rowState, + rowID = streamState._rowID, + rowTag = streamState._rowTag, + rowLength = streamState._rowLength, + buffer = streamState._buffer, + chunkLength = chunk.length; for ( - var response = unwrapWeakResponse(response$jscomp$0), - i = 0, - rowState = streamState._rowState, - rowID = streamState._rowID, - rowTag = streamState._rowTag, - rowLength = streamState._rowLength, - buffer = streamState._buffer, - chunkLength = chunk.length; + incrementChunkDebugInfo(streamState, chunkLength); i < chunkLength; ) { @@ -3355,7 +3557,7 @@ "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; @@ -3472,6 +3674,7 @@ initializingHandler = null, initializingChunk = null, mightHaveStaticConstructor = /\bclass\b.*\bstatic\b/, + MIN_CHUNK_SIZE = 65536, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, @@ -3586,12 +3789,13 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, r.body, handleDone); + startReadingFromStream$1(response, r.body, handleDone, r); } else startReadingFromStream$1( response, r.body, - close.bind(null, response) + close.bind(null, response), + r ); }, function (e) { @@ -3650,9 +3854,14 @@ options.debugChannel.readable, handleDone ); - startReadingFromStream$1(response, stream, handleDone); + startReadingFromStream$1(response, stream, handleDone, stream); } else - startReadingFromStream$1(response, stream, close.bind(null, response)); + startReadingFromStream$1( + response, + stream, + close.bind(null, response), + stream + ); return getRoot(response); }; exports.createServerReference = function (id) { diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js index f628eb742182b..e038a6494a126 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js @@ -1366,7 +1366,8 @@ function resolveBuffer(response, id, buffer) { var chunk = response.get(id); chunk && "pending" !== chunk.status ? chunk.reason.enqueueValue(buffer) - : response.set(id, new ReactPromise("fulfilled", buffer, null)); + : ((buffer = new ReactPromise("fulfilled", buffer, null)), + response.set(id, buffer)); } function resolveModule(response, id, model) { var chunks = response._chunks, @@ -1396,22 +1397,21 @@ function resolveModule(response, id, model) { } else chunk ? resolveModuleChunk(response, chunk, clientReference) - : chunks.set( - id, - new ReactPromise("resolved_module", clientReference, null) - ); + : ((chunk = new ReactPromise("resolved_module", clientReference, null)), + chunks.set(id, chunk)); } function resolveStream(response, id, stream, controller) { - var chunks = response._chunks; - response = chunks.get(id); - response - ? "pending" === response.status && - ((id = response.value), - (response.status = "fulfilled"), - (response.value = stream), - (response.reason = controller), - null !== id && wakeChunk(id, response.value)) - : chunks.set(id, new ReactPromise("fulfilled", stream, controller)); + response = response._chunks; + var chunk = response.get(id); + chunk + ? "pending" === chunk.status && + ((id = chunk.value), + (chunk.status = "fulfilled"), + (chunk.value = stream), + (chunk.reason = controller), + null !== id && wakeChunk(id, chunk.value)) + : ((stream = new ReactPromise("fulfilled", stream, controller)), + response.set(id, stream)); } function startReadableStream(response, id, type) { var controller = null; @@ -1628,7 +1628,7 @@ function resolveTypedArray( ); resolveBuffer(response, id, constructor); } -function processFullBinaryRow(response, id, tag, buffer, chunk) { +function processFullBinaryRow(response, streamState, id, tag, buffer, chunk) { switch (tag) { case 65: resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer); @@ -1681,9 +1681,9 @@ function processFullBinaryRow(response, id, tag, buffer, chunk) { ) row += stringDecoder.decode(buffer[i], decoderOptions); row += stringDecoder.decode(chunk); - processFullStringRow(response, id, tag, row); + processFullStringRow(response, streamState, id, tag, row); } -function processFullStringRow(response, id, tag, row) { +function processFullStringRow(response, streamState, id, tag, row) { switch (tag) { case 73: resolveModule(response, id, row); @@ -1704,8 +1704,10 @@ function processFullStringRow(response, id, tag, row) { break; case "L": id = response[0]; - tag = response[1]; - 3 === response.length ? row.L(id, tag, response[2]) : row.L(id, tag); + streamState = response[1]; + 3 === response.length + ? row.L(id, streamState, response[2]) + : row.L(id, streamState); break; case "m": "string" === typeof response @@ -1733,20 +1735,22 @@ function processFullStringRow(response, id, tag, row) { } break; case 69: - tag = response._chunks; - var chunk = tag.get(id); + streamState = response._chunks; + tag = streamState.get(id); row = JSON.parse(row); var error = resolveErrorProd(); error.digest = row.digest; - chunk - ? triggerErrorOnChunk(response, chunk, error) - : tag.set(id, new ReactPromise("rejected", null, error)); + tag + ? triggerErrorOnChunk(response, tag, error) + : ((response = new ReactPromise("rejected", null, error)), + streamState.set(id, response)); break; case 84: response = response._chunks; - (tag = response.get(id)) && "pending" !== tag.status - ? tag.reason.enqueueValue(row) - : response.set(id, new ReactPromise("fulfilled", row, null)); + (streamState = response.get(id)) && "pending" !== streamState.status + ? streamState.reason.enqueueValue(row) + : ((row = new ReactPromise("fulfilled", row, null)), + response.set(id, row)); break; case 78: case 68: @@ -1768,15 +1772,16 @@ function processFullStringRow(response, id, tag, row) { startAsyncIterable(response, id, !0); break; case 67: - (response = response._chunks.get(id)) && - "fulfilled" === response.status && - response.reason.close("" === row ? '"$undefined"' : row); + (id = response._chunks.get(id)) && + "fulfilled" === id.status && + id.reason.close("" === row ? '"$undefined"' : row); break; default: - (tag = response._chunks), - (chunk = tag.get(id)) - ? resolveModelChunk(response, chunk, row) - : tag.set(id, new ReactPromise("resolved_model", row, response)); + (streamState = response._chunks), + (tag = streamState.get(id)) + ? resolveModelChunk(response, tag, row) + : ((response = new ReactPromise("resolved_model", row, response)), + streamState.set(id, response)); } } function processBinaryChunk(weakResponse, streamState, chunk) { @@ -1840,7 +1845,14 @@ function processBinaryChunk(weakResponse, streamState, chunk) { var offset = chunk.byteOffset + i; if (-1 < lastIdx) (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)), - processFullBinaryRow(weakResponse, rowID, rowTag, buffer, rowLength), + processFullBinaryRow( + weakResponse, + streamState, + rowID, + rowTag, + buffer, + rowLength + ), (i = lastIdx), 3 === rowState && i++, (rowLength = rowID = rowTag = rowState = 0), @@ -2007,7 +2019,7 @@ function startReadingFromStream(response, stream, onEnd) { "String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams." ); i = chunk.slice(i, lastIdx); - processFullStringRow(response, rowID, rowTag, i); + processFullStringRow(response, streamState, rowID, rowTag, i); i = lastIdx; 3 === rowState && i++; rowLength = rowID = rowTag = rowState = 0; diff --git a/packages/next/src/compiled/react-server-dom-webpack/package.json b/packages/next/src/compiled/react-server-dom-webpack/package.json index 37d2399deb65a..8b8ccbd5fa1cd 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/package.json +++ b/packages/next/src/compiled/react-server-dom-webpack/package.json @@ -64,8 +64,8 @@ "webpack-sources": "^3.2.0" }, "peerDependencies": { - "react": "19.2.0-canary-6b70072c-20250909", - "react-dom": "19.2.0-canary-6b70072c-20250909", + "react": "19.2.0-canary-886b3d36-20250910", + "react-dom": "19.2.0-canary-886b3d36-20250910", "webpack": "^5.59.0" } } \ No newline at end of file diff --git a/packages/next/src/compiled/react/cjs/react.development.js b/packages/next/src/compiled/react/cjs/react.development.js index e059e043ced75..e9f3ea80d7ee7 100644 --- a/packages/next/src/compiled/react/cjs/react.development.js +++ b/packages/next/src/compiled/react/cjs/react.development.js @@ -1272,7 +1272,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/packages/next/src/compiled/react/cjs/react.production.js b/packages/next/src/compiled/react/cjs/react.production.js index a5a7af2821aa2..83e9c8d792bf8 100644 --- a/packages/next/src/compiled/react/cjs/react.production.js +++ b/packages/next/src/compiled/react/cjs/react.production.js @@ -533,4 +533,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/react/cjs/react.react-server.development.js b/packages/next/src/compiled/react/cjs/react.react-server.development.js index e9c70108d62ac..0b24e97e737da 100644 --- a/packages/next/src/compiled/react/cjs/react.react-server.development.js +++ b/packages/next/src/compiled/react/cjs/react.react-server.development.js @@ -844,5 +844,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.2.0-canary-6b70072c-20250909"; + exports.version = "19.2.0-canary-886b3d36-20250910"; })(); diff --git a/packages/next/src/compiled/react/cjs/react.react-server.production.js b/packages/next/src/compiled/react/cjs/react.react-server.production.js index 188db70cbc7b9..429628dabc7b9 100644 --- a/packages/next/src/compiled/react/cjs/react.react-server.production.js +++ b/packages/next/src/compiled/react/cjs/react.react-server.production.js @@ -420,4 +420,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.2.0-canary-6b70072c-20250909"; +exports.version = "19.2.0-canary-886b3d36-20250910"; diff --git a/packages/next/src/compiled/unistore/unistore.js b/packages/next/src/compiled/unistore/unistore.js index d4c4ee7a44692..48aec95d0d075 100644 --- a/packages/next/src/compiled/unistore/unistore.js +++ b/packages/next/src/compiled/unistore/unistore.js @@ -1 +1 @@ -(()=>{var t={518:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a{var t={242:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a=14.0.0'} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -2775,8 +2775,8 @@ packages: resolution: {integrity: sha512-9+uaWyF1o/PgXqHLJnC81IIG0HlV3o9eFCQ5hWZDMx5NHrFk0rrwqEFGQOB8lti/rnbxNPi+kYYw1D4e8xSn/Q==} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -2991,7 +2991,7 @@ packages: resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} peerDependencies: '@types/react': '*' - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -3008,7 +3008,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks@1.0.1': resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 '@emotion/utils@1.2.1': resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} @@ -3663,20 +3663,20 @@ packages: '@floating-ui/react-dom@2.1.0': resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 '@floating-ui/react-dom@2.1.5': resolution: {integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 '@floating-ui/react@0.26.16': resolution: {integrity: sha512-HEf43zxZNAI/E781QIVpYSF3K2VH4TTYZpqecjdsFkjsaU1EbaWcM++kw0HXFffj7gDUcBFevX8s0rQGQpxkow==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} @@ -4400,13 +4400,13 @@ packages: resolution: {integrity: sha512-l9ypojKN3PjwO1CSLIsqxi7mA25+7w+xc71Q+JuCCREI0tuGwkZsKbIOpuTATIJOjPh8ycLiW7QxX1LYsRTq6w==} peerDependencies: '@mantine/hooks': 7.10.1 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 '@mantine/hooks@7.11.2': resolution: {integrity: sha512-jhyVe/sbDEG2U8rr2lMecUPgQxcfr5hh9HazqGfkS7ZRIMDO7uJ947yAcTMGGkp5Lxtt5TBFt1Cb6tiB2/1agg==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -4429,13 +4429,13 @@ packages: '@mdx-js/react@2.2.1': resolution: {integrity: sha512-YdXcMcEnqZhzql98RNrqYo9cEhTTesBiCclEtoiQUbJwx87q9453GTapYU6kJ8ZZ2ek1Vp25SiAXEFy5O/eAPw==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 '@mdx-js/react@3.1.0': resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 '@module-federation/error-codes@0.18.0': resolution: {integrity: sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ==} @@ -5135,8 +5135,8 @@ packages: '@storybook/blocks@8.6.0': resolution: {integrity: sha512-3PNxlB5Ooj8CIhttbDxeV6kW7ui+2GEdTngtqhnsUHVjzeTKpilsk2lviOeUzqlyq5FDK+rhpZ3L3DJ9pDvioA==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 storybook: ^8.6.0 peerDependenciesMeta: react: @@ -5186,8 +5186,8 @@ packages: resolution: {integrity: sha512-Nz/UzeYQdUZUhacrPyfkiiysSjydyjgg/p0P9HxB4p/WaJUUjMAcaoaLgy3EXx61zZJ3iD36WPuDkZs5QYrA0A==} engines: {node: '>=14.0.0'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 '@storybook/instrumenter@8.6.0': resolution: {integrity: sha512-eEY/Hfa3Vj5Nv4vHRHlSqjoyW6oAKNK3rKIXfL/eawQwb7rKhzijDLG5YBH44Hh7dEPIqUp0LEdgpyIY7GXezg==} @@ -5203,8 +5203,8 @@ packages: resolution: {integrity: sha512-04T86VG0UJtiozgZkTR5sY1qM3E0Rgwqwllvyy7kFFdkV+Sv/VsPjW9sC38s9C8FtCYRL8pJZz81ey3oylpIMA==} engines: {node: '>=18.0.0'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 storybook: ^8.6.0 typescript: '*' peerDependenciesMeta: @@ -5225,16 +5225,16 @@ packages: '@storybook/react-dom-shim@8.6.0': resolution: {integrity: sha512-5Y+vMHhcx0xnaNsLQMbkmjc3zkDn/fGBNsiLH2e4POvW3ZQvOxjoyxAsEQaKwLtFgsdCFSd2tR89F6ItYrA2JQ==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 storybook: ^8.6.0 '@storybook/react-webpack5@8.6.0': resolution: {integrity: sha512-2L9CYDPn1OL0B8K5EU/Wpo9Slg8f0vkYPaPioQnmcK3Q4SJR4JAuDVWHUtNdxhaPOkHIy887Tfrf6BEC/blMaQ==} engines: {node: '>=18.0.0'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 storybook: ^8.6.0 typescript: '>= 4.2.x' peerDependenciesMeta: @@ -5246,8 +5246,8 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: '@storybook/test': 8.6.0 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 storybook: ^8.6.0 typescript: '>= 4.2.x' peerDependenciesMeta: @@ -5427,8 +5427,8 @@ packages: engines: {node: '>=18'} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -8876,8 +8876,8 @@ packages: peerDependencies: eslint: '>=8.0.0' - eslint-plugin-react-hooks@0.0.0-experimental-6b70072c-20250909: - resolution: {integrity: sha512-saMos36pQ9qxcah8xnHf/9aD2qtK10TnHqVAIFl3QgmnKlDeilI+f9ayhcUC2dFut4ky97nKH3CVvrb6xrILSQ==} + eslint-plugin-react-hooks@0.0.0-experimental-886b3d36-20250910: + resolution: {integrity: sha512-b/KEeaYHnl0k/scxCzukBV3vD3gr/rFDwJzU8h+mZvUcSM3qVqhhiUAfuwlnOx2+5L4RTjWMybuw2dqDsmw3Wg==} engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -11569,7 +11569,7 @@ packages: lucide-react@0.383.0: resolution: {integrity: sha512-13xlG0CQCJtzjSQYwwJ3WRqMHtRj3EXmLlorrARt7y+IHnxUCp3XyFNL1DfaGySWxHObDvnu1u1dV+0VMKHUSg==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} @@ -14094,23 +14094,23 @@ packages: resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} - react-dom@0.0.0-experimental-6b70072c-20250909: - resolution: {integrity: sha512-BQ2GzkUVVuZVEkHTki8izTlYINt+y7qAcEOosTDnpi97JhvWbK6IBB+fnzmBUUhQrBYnBLK1FiFN5nPYyjdRBA==} + react-dom@0.0.0-experimental-886b3d36-20250910: + resolution: {integrity: sha512-CGBbTPYsF3CmdDqSXFoQuZ6H4bQnww4tTEhvrpJXAc3CiTuyKXZt8/xkb4gJnRG3uLZJZBpIF4KMD55NzZDzFQ==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 - react-dom@19.2.0-canary-6b70072c-20250909: - resolution: {integrity: sha512-VKPauyZnkJe8LyOUPBitSO4N4y1v7EKX2T/PAj/SbKnHqgbEgZbp/LmBFF7izTVy8fkXhSKaxs55pxZbgSYPbg==} + react-dom@19.2.0-canary-886b3d36-20250910: + resolution: {integrity: sha512-K7Qj+oa75Xjlpa4C0yDglE+uuIlp5hk1gH/+F6DavZNieueSZpsRT2mBaXzLftbzT9HL7iSatXE/sQ1Ahftpmw==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 react-dom@19.2.0-canary-f508edc8-20250818: resolution: {integrity: sha512-VX2+WGj5PLJRgWTc+JWJqJ1wv0qY3dQ7HiD3haXUInV+XtuQ46kxdc7VuWvHCiNdMWIbx2GdBDdz4qfQJPvuZQ==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 - react-is@19.2.0-canary-6b70072c-20250909: - resolution: {integrity: sha512-gDWz34ji3oLB1I5ojMyjWJ72PnGM6magnU/EeuFl+dSW+tleDhMrPGWS+V8Yfsf+eRk2Fe+gB4rcWDNpvnNyeA==} + react-is@19.2.0-canary-886b3d36-20250910: + resolution: {integrity: sha512-H5HAWY5VZqyWDUqnN4GE4IR9qlvMnATog7mO9ZPlBo/j4MJw1i0z6tGtXCQwwqJDEdaI7P+fcHQvmYws9cGpvg==} react-is@19.2.0-canary-f508edc8-20250818: resolution: {integrity: sha512-Q91V1D1ZvqPsYHT4L9R/A76QSStLct3znvku9dmrtOTtrcAKzSLFRiW8agL0vPH4lVtBuiLRLtbyq/HHYWF1PQ==} @@ -14121,8 +14121,8 @@ packages: react-number-format@5.4.0: resolution: {integrity: sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 react-refresh@0.12.0: resolution: {integrity: sha512-suLIhrU2IHKL5JEKR/fAwJv7bbeq4kJ+pJopf77jHwuR+HmJS/HbrPIGsTBUVfw7tXPOmYv7UJ7PCaN49e8x4A==} @@ -14133,7 +14133,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -14143,58 +14143,58 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true - react-server-dom-turbopack@0.0.0-experimental-6b70072c-20250909: - resolution: {integrity: sha512-pXOI/gnR3qPzPZwHHP5Au3yBPVDnt0uzJNQhF8v9f/VG9YnQqnCUN85DZNvHAll2JCoRcSdVw44foruxxbTXtg==} + react-server-dom-turbopack@0.0.0-experimental-886b3d36-20250910: + resolution: {integrity: sha512-U3d1Vu0TT8Rn1ywjfYcH5GPRm11IOmqJn71JyYKTZE8c0UmwndW3sfWpySQq/88I6PsQAlQ74uPbPeNJ341iNQ==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 - react-server-dom-turbopack@19.2.0-canary-6b70072c-20250909: - resolution: {integrity: sha512-cHh2ni+LrGXaUztSmcxF4K2isfMWqXer2VkvA+cs+wTunVXVDYxJiRdoVyAFMrGWa/m5veuqLUKLr9oNzKs2Aw==} + react-server-dom-turbopack@19.2.0-canary-886b3d36-20250910: + resolution: {integrity: sha512-ir0x3OoKvNOWOR7VZcua2yu5qkYOs7ovTr0SDpEZwHXMU+oDAOpChJhFQpBgOO92YBOuPuoSAkk3eypg+04yOA==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 - react-server-dom-webpack@0.0.0-experimental-6b70072c-20250909: - resolution: {integrity: sha512-7E8/3ng9WqMin0+47SYOxAEJNxo6ADizyQO1XyheqQBVNJxc/CjJfiOOUwv4rcSFSgvCG90LKpbyqBweytsn9A==} + react-server-dom-webpack@0.0.0-experimental-886b3d36-20250910: + resolution: {integrity: sha512-H0UKRAFX44EcSz5ebdZJ+bPMeMA3rjOQ8OjxaN45eElRR+UrJizfe+ppU8H8gmWvh4YnqAgnRimo2OKqupYFyw==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 webpack: 5.98.0 - react-server-dom-webpack@19.2.0-canary-6b70072c-20250909: - resolution: {integrity: sha512-VRY0osQeYaHAwr1qegDUoYuJSP0CSEHQpxOu7rkOgDD1KF91ulztydGF9wzJdsx4a3qWk8kcJAkLeG4kxAijLw==} + react-server-dom-webpack@19.2.0-canary-886b3d36-20250910: + resolution: {integrity: sha512-JDeBOUy0wGeLS96PUBQRyPlchvS8S9K0YaAteTjalHyuXHLkrXh5odPB4vpWYjRLTQnDZ5JCquhMuxAHZ5tPwg==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 webpack: 5.98.0 react-shallow-renderer@16.15.0: resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 react-ssr-prepass@1.0.8: resolution: {integrity: sha512-O0gfRA1SaK+9ITKxqfnXsej2jF+OHGP/+GxD4unROQaM/0/UczGF9fuF+wTboxaQoKdIf4FvS3h/OigWh704VA==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-is: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-is: 19.2.0-canary-886b3d36-20250910 react-style-singleton@2.2.1: resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -14202,26 +14202,26 @@ packages: react-test-renderer@18.2.0: resolution: {integrity: sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 react-textarea-autosize@8.5.3: resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} engines: {node: '>=10'} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 react-virtualized@9.22.3: resolution: {integrity: sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910 - react@0.0.0-experimental-6b70072c-20250909: - resolution: {integrity: sha512-NUsbubzOz8CWoVQKL4B4eOIcNAjPbKY+jorE3hRjGtuyMc0Zhepl1X1irAR3Dzr5/JO4H2PEEC1dAk27ZXbQTQ==} + react@0.0.0-experimental-886b3d36-20250910: + resolution: {integrity: sha512-I0lTedtemTY+zCdeBlgkQ1TtcHhIgjA2y1SAAwzana2JwEpjt0Yh2bsuakJybENpr15oPuPvKLO3BM7uSxBwkA==} engines: {node: '>=0.10.0'} - react@19.2.0-canary-6b70072c-20250909: - resolution: {integrity: sha512-ofzX2PCo2W3P1NCTb0RHiFnx2DmUrjfyeawO/AK2rYRo7KbFdoupcFxgmcacLs5JIgTSpL2GFHJB42Dkn7cDDQ==} + react@19.2.0-canary-886b3d36-20250910: + resolution: {integrity: sha512-MN3YAzcD5R+FbWtbEwqfC+sn9OOnW/IEXorAcrVOs/uGE3y4kgY297gLtr/WCxBEXwBgWCUFOxgiD3Cx+fXGfQ==} engines: {node: '>=0.10.0'} react@19.2.0-canary-f508edc8-20250818: @@ -14783,11 +14783,11 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.0.0-experimental-6b70072c-20250909: - resolution: {integrity: sha512-niY+OJYqLZzqXmbog3306afO8J8tYsYbuuDK/zXO/OVqEyR7SDYwdJkfT2BSNLv3ylTGVCo2HK4mah41QKFOjg==} + scheduler@0.0.0-experimental-886b3d36-20250910: + resolution: {integrity: sha512-EkRj0V8EMSdzCxEuu0gMsPsxr4s9JbiC3Y0UscR2vN8P0j8N2CNMD3NEX3/YVrjNnhuWh3pLzv5OQGLPR4SX2g==} - scheduler@0.27.0-canary-6b70072c-20250909: - resolution: {integrity: sha512-rLzK2zjBg2DeRx1Y5QhnPHbCp6uK8q7z6W+zrqPq5sZYqL4+upk+tP1yt9s1nj1nNsTsFWK3XhiWTi3PeRxCFA==} + scheduler@0.27.0-canary-886b3d36-20250910: + resolution: {integrity: sha512-kn/+hnC4TKE6/inIv5q9gBVp8C/l2bJbs/5UoMWx2ps0xkw2ACO595uIAdI2er2GcJ0zeiVnuXnCzRz+Md4Eow==} schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} @@ -15447,7 +15447,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@babel/core': optional: true @@ -15528,7 +15528,7 @@ packages: swr@2.2.4: resolution: {integrity: sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 symbol-observable@1.0.1: resolution: {integrity: sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==} @@ -16320,7 +16320,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -16328,13 +16328,13 @@ packages: use-composed-ref@1.3.0: resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 use-isomorphic-layout-effect@1.1.2: resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -16343,7 +16343,7 @@ packages: resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -16353,7 +16353,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 peerDependenciesMeta: '@types/react': optional: true @@ -16361,12 +16361,12 @@ packages: use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 use-sync-external-store@1.5.0: resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} peerDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -18064,28 +18064,28 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@base-ui-components/react@1.0.0-beta.2(@types/react@19.1.10)(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)': + '@base-ui-components/react@1.0.0-beta.2(@types/react@19.1.10)(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)': dependencies: '@babel/runtime': 7.27.6 - '@base-ui-components/utils': 0.1.0(@types/react@19.1.10)(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909) - '@floating-ui/react-dom': 2.1.5(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909) + '@base-ui-components/utils': 0.1.0(@types/react@19.1.10)(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910) + '@floating-ui/react-dom': 2.1.5(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910) '@floating-ui/utils': 0.2.10 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) reselect: 5.1.1 tabbable: 6.2.0 - use-sync-external-store: 1.5.0(react@19.2.0-canary-6b70072c-20250909) + use-sync-external-store: 1.5.0(react@19.2.0-canary-886b3d36-20250910) optionalDependencies: '@types/react': 19.1.10 - '@base-ui-components/utils@0.1.0(@types/react@19.1.10)(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)': + '@base-ui-components/utils@0.1.0(@types/react@19.1.10)(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)': dependencies: '@babel/runtime': 7.27.6 '@floating-ui/utils': 0.2.10 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) reselect: 5.1.1 - use-sync-external-store: 1.5.0(react@19.2.0-canary-6b70072c-20250909) + use-sync-external-store: 1.5.0(react@19.2.0-canary-886b3d36-20250910) optionalDependencies: '@types/react': 19.1.10 @@ -18418,17 +18418,17 @@ snapshots: '@emotion/memoize@0.8.1': {} - '@emotion/react@11.11.1(@types/react@19.1.10)(react@19.2.0-canary-6b70072c-20250909)': + '@emotion/react@11.11.1(@types/react@19.1.10)(react@19.2.0-canary-886b3d36-20250910)': dependencies: '@babel/runtime': 7.27.0 '@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.2.0-canary-6b70072c-20250909) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.2.0-canary-886b3d36-20250910) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 hoist-non-react-statics: 3.3.2 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 optionalDependencies: '@types/react': 19.1.10 transitivePeerDependencies: @@ -18446,9 +18446,9 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.2.0-canary-6b70072c-20250909)': + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.2.0-canary-886b3d36-20250910)': dependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 '@emotion/utils@1.2.1': {} @@ -18958,11 +18958,11 @@ snapshots: react: 19.2.0-canary-f508edc8-20250818 react-dom: 19.2.0-canary-f508edc8-20250818(react@19.2.0-canary-f508edc8-20250818) - '@floating-ui/react-dom@2.1.5(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)': + '@floating-ui/react-dom@2.1.5(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)': dependencies: '@floating-ui/dom': 1.7.3 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) '@floating-ui/react@0.26.16(react-dom@19.2.0-canary-f508edc8-20250818(react@19.2.0-canary-f508edc8-20250818))(react@19.2.0-canary-f508edc8-20250818)': dependencies: @@ -20121,11 +20121,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@2.2.1(react@19.2.0-canary-6b70072c-20250909)': + '@mdx-js/react@2.2.1(react@19.2.0-canary-886b3d36-20250910)': dependencies: '@types/mdx': 2.0.3 '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 '@mdx-js/react@2.2.1(react@19.2.0-canary-f508edc8-20250818)': dependencies: @@ -20133,11 +20133,11 @@ snapshots: '@types/react': 19.1.10 react: 19.2.0-canary-f508edc8-20250818 - '@mdx-js/react@3.1.0(@types/react@19.1.10)(react@19.2.0-canary-6b70072c-20250909)': + '@mdx-js/react@3.1.0(@types/react@19.1.10)(react@19.2.0-canary-886b3d36-20250910)': dependencies: '@types/mdx': 2.0.3 '@types/react': 19.1.10 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 '@module-federation/error-codes@0.18.0': {} @@ -20897,12 +20897,12 @@ snapshots: '@storybook/addon-docs@8.6.0(@types/react@19.1.10)(storybook@8.6.0(prettier@3.6.2))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.1.10)(react@19.2.0-canary-6b70072c-20250909) - '@storybook/blocks': 8.6.0(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2)) + '@mdx-js/react': 3.1.0(@types/react@19.1.10)(react@19.2.0-canary-886b3d36-20250910) + '@storybook/blocks': 8.6.0(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2)) '@storybook/csf-plugin': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2)) - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2)) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) storybook: 8.6.0(prettier@3.6.2) ts-dedent: 2.2.0 transitivePeerDependencies: @@ -20967,14 +20967,14 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/blocks@8.6.0(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))': + '@storybook/blocks@8.6.0(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))': dependencies: - '@storybook/icons': 1.3.0(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909) + '@storybook/icons': 1.3.0(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910) storybook: 8.6.0(prettier@3.6.2) ts-dedent: 2.2.0 optionalDependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) '@storybook/builder-webpack5@8.6.0(@rspack/core@1.5.0(@swc/helpers@0.5.15))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2)': dependencies: @@ -21053,10 +21053,10 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.0(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)': + '@storybook/icons@1.3.0(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)': dependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) '@storybook/instrumenter@8.6.0(storybook@8.6.0(prettier@3.6.2))': dependencies: @@ -21068,17 +21068,17 @@ snapshots: dependencies: storybook: 8.6.0(prettier@3.6.2) - '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2)': + '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2)': dependencies: '@storybook/core-webpack': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.2)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)) '@types/semver': 7.5.6 find-up: 5.0.0 magic-string: 0.30.17 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 react-docgen: 7.1.0 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) resolve: 1.22.10 semver: 7.6.3 storybook: 8.6.0(prettier@3.6.2) @@ -21112,19 +21112,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.6.0(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))': + '@storybook/react-dom-shim@8.6.0(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))': dependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) storybook: 8.6.0(prettier@3.6.2) - '@storybook/react-webpack5@8.6.0(@rspack/core@1.5.0(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2)': + '@storybook/react-webpack5@8.6.0(@rspack/core@1.5.0(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2)': dependencies: '@storybook/builder-webpack5': 8.6.0(@rspack/core@1.5.0(@swc/helpers@0.5.15))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2) - '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2) - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) storybook: 8.6.0(prettier@3.6.2) optionalDependencies: typescript: 5.8.2 @@ -21137,16 +21137,16 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2)': + '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.6.2)))(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2))(typescript@5.8.2)': dependencies: '@storybook/components': 8.6.0(storybook@8.6.0(prettier@3.6.2)) '@storybook/global': 5.0.0 '@storybook/manager-api': 8.6.0(storybook@8.6.0(prettier@3.6.2)) '@storybook/preview-api': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(storybook@8.6.0(prettier@3.6.2)) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(storybook@8.6.0(prettier@3.6.2)) '@storybook/theming': 8.6.0(storybook@8.6.0(prettier@3.6.2)) - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) storybook: 8.6.0(prettier@3.6.2) optionalDependencies: '@storybook/test': 8.6.0(storybook@8.6.0(prettier@3.6.2)) @@ -21353,13 +21353,13 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@15.0.7(@types/react@19.1.10)(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)': + '@testing-library/react@15.0.7(@types/react@19.1.10)(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)': dependencies: '@babel/runtime': 7.27.0 '@testing-library/dom': 10.1.0 '@types/react-dom': 19.1.7(@types/react@19.1.10) - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) optionalDependencies: '@types/react': 19.1.10 @@ -25619,7 +25619,7 @@ snapshots: - bluebird - supports-color - eslint-plugin-react-hooks@0.0.0-experimental-6b70072c-20250909(eslint@9.12.0): + eslint-plugin-react-hooks@0.0.0-experimental-886b3d36-20250910(eslint@9.12.0): dependencies: '@babel/core': 7.26.10 '@babel/parser': 7.27.0 @@ -27140,7 +27140,7 @@ snapshots: hoist-non-react-statics@3.3.2: dependencies: - react-is: 19.2.0-canary-6b70072c-20250909 + react-is: 19.2.0-canary-886b3d36-20250910 homedir-polyfill@1.0.3: dependencies: @@ -32079,25 +32079,25 @@ snapshots: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 - react-is: 19.2.0-canary-6b70072c-20250909 + react-is: 19.2.0-canary-886b3d36-20250910 pretty-format@29.5.0: dependencies: '@jest/schemas': 29.4.3 ansi-styles: 5.2.0 - react-is: 19.2.0-canary-6b70072c-20250909 + react-is: 19.2.0-canary-886b3d36-20250910 pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 19.2.0-canary-6b70072c-20250909 + react-is: 19.2.0-canary-886b3d36-20250910 pretty-format@30.0.0-alpha.6: dependencies: '@jest/schemas': 30.0.0-alpha.6 ansi-styles: 5.2.0 - react-is: 19.2.0-canary-6b70072c-20250909 + react-is: 19.2.0-canary-886b3d36-20250910 pretty-ms@7.0.0: dependencies: @@ -32160,7 +32160,7 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react-is: 19.2.0-canary-6b70072c-20250909 + react-is: 19.2.0-canary-886b3d36-20250910 property-information@5.6.0: dependencies: @@ -32371,22 +32371,22 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@0.0.0-experimental-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909): + react-dom@0.0.0-experimental-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910): dependencies: - react: 19.2.0-canary-6b70072c-20250909 - scheduler: 0.27.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + scheduler: 0.27.0-canary-886b3d36-20250910 - react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909): + react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910): dependencies: - react: 19.2.0-canary-6b70072c-20250909 - scheduler: 0.27.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + scheduler: 0.27.0-canary-886b3d36-20250910 react-dom@19.2.0-canary-f508edc8-20250818(react@19.2.0-canary-f508edc8-20250818): dependencies: react: 19.2.0-canary-f508edc8-20250818 - scheduler: 0.27.0-canary-6b70072c-20250909 + scheduler: 0.27.0-canary-886b3d36-20250910 - react-is@19.2.0-canary-6b70072c-20250909: {} + react-is@19.2.0-canary-886b3d36-20250910: {} react-is@19.2.0-canary-f508edc8-20250818: {} @@ -32419,48 +32419,48 @@ snapshots: optionalDependencies: '@types/react': 19.1.10 - react-server-dom-turbopack@0.0.0-experimental-6b70072c-20250909(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909): + react-server-dom-turbopack@0.0.0-experimental-886b3d36-20250910(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) - react-server-dom-turbopack@19.2.0-canary-6b70072c-20250909(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909): + react-server-dom-turbopack@19.2.0-canary-886b3d36-20250910(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) - react-server-dom-webpack@0.0.0-experimental-6b70072c-20250909(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): + react-server-dom-webpack@0.0.0-experimental-886b3d36-20250910(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15)) webpack-sources: 3.2.3(patch_hash=jbynf5dc46ambamq3wuyho6hkq) - react-server-dom-webpack@19.2.0-canary-6b70072c-20250909(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): + react-server-dom-webpack@19.2.0-canary-886b3d36-20250910(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15)) webpack-sources: 3.2.3(patch_hash=jbynf5dc46ambamq3wuyho6hkq) - react-shallow-renderer@16.15.0(react@19.2.0-canary-6b70072c-20250909): + react-shallow-renderer@16.15.0(react@19.2.0-canary-886b3d36-20250910): dependencies: object-assign: 4.1.1 - react: 19.2.0-canary-6b70072c-20250909 - react-is: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-is: 19.2.0-canary-886b3d36-20250910 - react-ssr-prepass@1.0.8(react-is@19.2.0-canary-f508edc8-20250818)(react@19.2.0-canary-6b70072c-20250909): + react-ssr-prepass@1.0.8(react-is@19.2.0-canary-f508edc8-20250818)(react@19.2.0-canary-886b3d36-20250910): dependencies: object-is: 1.0.2 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 react-is: 19.2.0-canary-f508edc8-20250818 react-style-singleton@2.2.1(@types/react@19.1.10)(react@19.2.0-canary-f508edc8-20250818): @@ -32472,12 +32472,12 @@ snapshots: optionalDependencies: '@types/react': 19.1.10 - react-test-renderer@18.2.0(react@19.2.0-canary-6b70072c-20250909): + react-test-renderer@18.2.0(react@19.2.0-canary-886b3d36-20250910): dependencies: - react: 19.2.0-canary-6b70072c-20250909 - react-is: 19.2.0-canary-6b70072c-20250909 - react-shallow-renderer: 16.15.0(react@19.2.0-canary-6b70072c-20250909) - scheduler: 0.27.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 + react-is: 19.2.0-canary-886b3d36-20250910 + react-shallow-renderer: 16.15.0(react@19.2.0-canary-886b3d36-20250910) + scheduler: 0.27.0-canary-886b3d36-20250910 react-textarea-autosize@8.5.3(@types/react@19.1.10)(react@19.2.0-canary-f508edc8-20250818): dependencies: @@ -32488,20 +32488,20 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-virtualized@9.22.3(react-dom@19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909))(react@19.2.0-canary-6b70072c-20250909): + react-virtualized@9.22.3(react-dom@19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910))(react@19.2.0-canary-886b3d36-20250910): dependencies: '@babel/runtime': 7.27.0 clsx: 1.1.1 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.0-canary-6b70072c-20250909 - react-dom: 19.2.0-canary-6b70072c-20250909(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + react-dom: 19.2.0-canary-886b3d36-20250910(react@19.2.0-canary-886b3d36-20250910) react-lifecycles-compat: 3.0.4 - react@0.0.0-experimental-6b70072c-20250909: {} + react@0.0.0-experimental-886b3d36-20250910: {} - react@19.2.0-canary-6b70072c-20250909: {} + react@19.2.0-canary-886b3d36-20250910: {} react@19.2.0-canary-f508edc8-20250818: {} @@ -33271,9 +33271,9 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.0.0-experimental-6b70072c-20250909: {} + scheduler@0.0.0-experimental-886b3d36-20250910: {} - scheduler@0.27.0-canary-6b70072c-20250909: {} + scheduler@0.27.0-canary-886b3d36-20250910: {} schema-utils@2.7.1: dependencies: @@ -34074,10 +34074,10 @@ snapshots: postcss: 7.0.32 postcss-load-plugins: 2.3.0 - styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.2.0-canary-6b70072c-20250909): + styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.2.0-canary-886b3d36-20250910): dependencies: client-only: 0.0.1 - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 optionalDependencies: '@babel/core': 7.26.10 babel-plugin-macros: 3.1.0 @@ -34171,11 +34171,11 @@ snapshots: '@swc/counter': 0.1.3 webpack: 5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2) - swr@2.2.4(react@19.2.0-canary-6b70072c-20250909): + swr@2.2.4(react@19.2.0-canary-886b3d36-20250910): dependencies: client-only: 0.0.1 - react: 19.2.0-canary-6b70072c-20250909 - use-sync-external-store: 1.2.0(react@19.2.0-canary-6b70072c-20250909) + react: 19.2.0-canary-886b3d36-20250910 + use-sync-external-store: 1.2.0(react@19.2.0-canary-886b3d36-20250910) symbol-observable@1.0.1: {} @@ -34972,9 +34972,9 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - unistore@3.4.1(react@19.2.0-canary-6b70072c-20250909): + unistore@3.4.1(react@19.2.0-canary-886b3d36-20250910): optionalDependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 universal-github-app-jwt@1.1.1: dependencies: @@ -35100,13 +35100,13 @@ snapshots: optionalDependencies: '@types/react': 19.1.10 - use-sync-external-store@1.2.0(react@19.2.0-canary-6b70072c-20250909): + use-sync-external-store@1.2.0(react@19.2.0-canary-886b3d36-20250910): dependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 - use-sync-external-store@1.5.0(react@19.2.0-canary-6b70072c-20250909): + use-sync-external-store@1.5.0(react@19.2.0-canary-886b3d36-20250910): dependencies: - react: 19.2.0-canary-6b70072c-20250909 + react: 19.2.0-canary-886b3d36-20250910 util-deprecate@1.0.2: {} diff --git a/test/development/acceptance-app/hydration-error.test.ts b/test/development/acceptance-app/hydration-error.test.ts index c28ef29ce7fbe..d38855cb1c70c 100644 --- a/test/development/acceptance-app/hydration-error.test.ts +++ b/test/development/acceptance-app/hydration-error.test.ts @@ -785,23 +785,10 @@ describe('Error overlay for hydration errors in App router', () => {