diff --git a/package.json b/package.json index e9bcfec5ab8f02..6e112068f25ff9 100644 --- a/package.json +++ b/package.json @@ -233,16 +233,16 @@ "pretty-ms": "7.0.0", "random-seed": "0.3.0", "react": "19.0.0", - "react-builtin": "npm:react@19.2.0-canary-4db4b21c-20250626", + "react-builtin": "npm:react@19.2.0-canary-65c4decb-20250630", "react-dom": "19.0.0", - "react-dom-builtin": "npm:react-dom@19.2.0-canary-4db4b21c-20250626", - "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-4db4b21c-20250626", - "react-experimental-builtin": "npm:react@0.0.0-experimental-4db4b21c-20250626", - "react-is-builtin": "npm:react-is@19.2.0-canary-4db4b21c-20250626", - "react-server-dom-turbopack": "19.2.0-canary-4db4b21c-20250626", - "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-4db4b21c-20250626", - "react-server-dom-webpack": "19.2.0-canary-4db4b21c-20250626", - "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-4db4b21c-20250626", + "react-dom-builtin": "npm:react-dom@19.2.0-canary-65c4decb-20250630", + "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-65c4decb-20250630", + "react-experimental-builtin": "npm:react@0.0.0-experimental-65c4decb-20250630", + "react-is-builtin": "npm:react-is@19.2.0-canary-65c4decb-20250630", + "react-server-dom-turbopack": "19.2.0-canary-65c4decb-20250630", + "react-server-dom-turbopack-experimental": "npm:react-server-dom-turbopack@0.0.0-experimental-65c4decb-20250630", + "react-server-dom-webpack": "19.2.0-canary-65c4decb-20250630", + "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-65c4decb-20250630", "react-ssr-prepass": "1.0.8", "react-virtualized": "9.22.3", "relay-compiler": "13.0.2", @@ -252,8 +252,8 @@ "resolve-from": "5.0.0", "sass": "1.54.0", "satori": "0.12.2", - "scheduler-builtin": "npm:scheduler@0.27.0-canary-4db4b21c-20250626", - "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-4db4b21c-20250626", + "scheduler-builtin": "npm:scheduler@0.27.0-canary-65c4decb-20250630", + "scheduler-experimental-builtin": "npm:scheduler@0.0.0-experimental-65c4decb-20250630", "seedrandom": "3.0.5", "semver": "7.3.7", "shell-quote": "1.7.3", @@ -296,10 +296,10 @@ "@types/react-dom": "19.1.2", "@types/retry": "0.12.0", "jest-snapshot": "30.0.0-alpha.6", - "react": "19.2.0-canary-4db4b21c-20250626", - "react-dom": "19.2.0-canary-4db4b21c-20250626", - "react-is": "19.2.0-canary-4db4b21c-20250626", - "scheduler": "0.27.0-canary-4db4b21c-20250626" + "react": "19.2.0-canary-65c4decb-20250630", + "react-dom": "19.2.0-canary-65c4decb-20250630", + "react-is": "19.2.0-canary-65c4decb-20250630", + "scheduler": "0.27.0-canary-65c4decb-20250630" }, "patchedDependencies": { "webpack-sources@3.2.3": "patches/webpack-sources@3.2.3.patch", 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 d3a3bf3941d0f8..8ebfd797c02af7 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 @@ -3865,6 +3865,185 @@ ? null : eventClass; } + function getArrayKind(array) { + for (var kind = EMPTY_ARRAY, i = 0; i < array.length; i++) { + var value = array[i]; + if ("object" === typeof value && null !== value) + if ( + isArrayImpl(value) && + 2 === value.length && + "string" === typeof value[0] + ) { + if (kind !== EMPTY_ARRAY && kind !== ENTRIES_ARRAY) + return COMPLEX_ARRAY; + kind = ENTRIES_ARRAY; + } else return COMPLEX_ARRAY; + else { + if ( + "function" === typeof value || + ("string" === typeof value && 50 < value.length) || + (kind !== EMPTY_ARRAY && kind !== PRIMITIVE_ARRAY) + ) + return COMPLEX_ARRAY; + kind = PRIMITIVE_ARRAY; + } + } + return kind; + } + function addObjectToProperties(object, properties, indent) { + for (var key in object) + hasOwnProperty.call(object, key) && + "_" !== key[0] && + addValueToProperties(key, object[key], properties, indent); + } + function addValueToProperties(propertyName, value, properties, indent) { + switch (typeof value) { + case "object": + if (null === value) { + value = "null"; + break; + } else { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + propKey === PRIMITIVE_ARRAY || propKey === EMPTY_ARRAY) + ) { + value = JSON.stringify(value); + break; + } else if (propKey === ENTRIES_ARRAY) { + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "" + ]); + for ( + propertyName = 0; + propertyName < value.length; + propertyName++ + ) + (typeName = value[propertyName]), + addValueToProperties( + typeName[0], + typeName[1], + properties, + indent + 1 + ); + return; + } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; + } + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName + ]); + 3 > indent && addObjectToProperties(value, properties, indent + 1); + return; + } + case "function": + value = "" === value.name ? "() => {}" : value.name + "() {}"; + break; + case "string": + value = + value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + break; + case "undefined": + value = "undefined"; + break; + case "boolean": + value = value ? "true" : "false"; + break; + default: + value = String(value); + } + properties.push(["\u00a0\u00a0".repeat(indent) + propertyName, value]); + } function setCurrentTrackFromLanes(lanes) { currentTrack = lanes & 127 @@ -3973,6 +4152,10 @@ : String(capturedValue) ]); } + null !== fiber.key && + addValueToProperties("key", fiber.key, properties, 0); + null !== fiber.memoizedProps && + addObjectToProperties(fiber.memoizedProps, properties, 0); null == debugTask && (debugTask = fiber._debugTask); fiber = { start: startTime, @@ -4026,6 +4209,10 @@ : String(error) ]); } + null !== fiber.key && + addValueToProperties("key", fiber.key, selfTime, 0); + null !== fiber.memoizedProps && + addObjectToProperties(fiber.memoizedProps, selfTime, 0); startTime = { start: startTime, end: endTime, @@ -27944,6 +28131,12 @@ } console.error(error); }, + OMITTED_PROP_ERROR = + "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.", + EMPTY_ARRAY = 0, + COMPLEX_ARRAY = 1, + PRIMITIVE_ARRAY = 2, + ENTRIES_ARRAY = 3, supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp, @@ -30654,11 +30847,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30695,10 +30888,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626" + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -30844,7 +31037,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; "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 ffc46f831cb75f..c2f39a6c8a7c64 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 @@ -19159,14 +19159,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2186 = React.version; if ( - "19.2.0-experimental-4db4b21c-20250626" !== + "19.2.0-experimental-65c4decb-20250630" !== isomorphicReactPackageVersion$jscomp$inline_2186 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2186, - "19.2.0-experimental-4db4b21c-20250626" + "19.2.0-experimental-65c4decb-20250630" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19188,10 +19188,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2871 = { bundleType: 0, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626" + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2872 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -19298,4 +19298,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 9080e9004cb2db..7efa5946c28089 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 @@ -3873,6 +3873,185 @@ ? null : eventClass; } + function getArrayKind(array) { + for (var kind = EMPTY_ARRAY, i = 0; i < array.length; i++) { + var value = array[i]; + if ("object" === typeof value && null !== value) + if ( + isArrayImpl(value) && + 2 === value.length && + "string" === typeof value[0] + ) { + if (kind !== EMPTY_ARRAY && kind !== ENTRIES_ARRAY) + return COMPLEX_ARRAY; + kind = ENTRIES_ARRAY; + } else return COMPLEX_ARRAY; + else { + if ( + "function" === typeof value || + ("string" === typeof value && 50 < value.length) || + (kind !== EMPTY_ARRAY && kind !== PRIMITIVE_ARRAY) + ) + return COMPLEX_ARRAY; + kind = PRIMITIVE_ARRAY; + } + } + return kind; + } + function addObjectToProperties(object, properties, indent) { + for (var key in object) + hasOwnProperty.call(object, key) && + "_" !== key[0] && + addValueToProperties(key, object[key], properties, indent); + } + function addValueToProperties(propertyName, value, properties, indent) { + switch (typeof value) { + case "object": + if (null === value) { + value = "null"; + break; + } else { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + propKey === PRIMITIVE_ARRAY || propKey === EMPTY_ARRAY) + ) { + value = JSON.stringify(value); + break; + } else if (propKey === ENTRIES_ARRAY) { + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "" + ]); + for ( + propertyName = 0; + propertyName < value.length; + propertyName++ + ) + (typeName = value[propertyName]), + addValueToProperties( + typeName[0], + typeName[1], + properties, + indent + 1 + ); + return; + } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; + } + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName + ]); + 3 > indent && addObjectToProperties(value, properties, indent + 1); + return; + } + case "function": + value = "" === value.name ? "() => {}" : value.name + "() {}"; + break; + case "string": + value = + value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + break; + case "undefined": + value = "undefined"; + break; + case "boolean": + value = value ? "true" : "false"; + break; + default: + value = String(value); + } + properties.push(["\u00a0\u00a0".repeat(indent) + propertyName, value]); + } function setCurrentTrackFromLanes(lanes) { currentTrack = lanes & 127 @@ -3981,6 +4160,10 @@ : String(capturedValue) ]); } + null !== fiber.key && + addValueToProperties("key", fiber.key, properties, 0); + null !== fiber.memoizedProps && + addObjectToProperties(fiber.memoizedProps, properties, 0); null == debugTask && (debugTask = fiber._debugTask); fiber = { start: startTime, @@ -4034,6 +4217,10 @@ : String(error) ]); } + null !== fiber.key && + addValueToProperties("key", fiber.key, selfTime, 0); + null !== fiber.memoizedProps && + addObjectToProperties(fiber.memoizedProps, selfTime, 0); startTime = { start: startTime, end: endTime, @@ -27996,6 +28183,12 @@ } console.error(error); }, + OMITTED_PROP_ERROR = + "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.", + EMPTY_ARRAY = 0, + COMPLEX_ARRAY = 1, + PRIMITIVE_ARRAY = 2, + ENTRIES_ARRAY = 3, supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp, @@ -30706,11 +30899,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -30747,10 +30940,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626" + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -31226,7 +31419,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; "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 e60f2b4653f758..8aa16f05d30307 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 @@ -20814,14 +20814,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2406 = React.version; if ( - "19.2.0-experimental-4db4b21c-20250626" !== + "19.2.0-experimental-65c4decb-20250630" !== isomorphicReactPackageVersion$jscomp$inline_2406 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2406, - "19.2.0-experimental-4db4b21c-20250626" + "19.2.0-experimental-65c4decb-20250630" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -20843,10 +20843,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_3093 = { bundleType: 0, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626" + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_3094 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -21113,7 +21113,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; "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 0550c596fcc75b..1fcbcb78292d60 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 @@ -10482,5 +10482,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-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 c12f6759dc688a..37bf7706111655 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 @@ -7107,4 +7107,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-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 9f0d0de43be826..06fa04a9a4ea80 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 @@ -10482,5 +10482,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-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 17e696406651d1..e6d393b6828c3a 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 @@ -7210,4 +7210,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-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 10eb6d77d64a75..90277c9db19753 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 @@ -9473,11 +9473,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11296,5 +11296,5 @@ startWork(request); }); }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 5df4467a401e7e..4b3eddb87156d9 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 @@ -7772,12 +7772,12 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.2.0-experimental-4db4b21c-20250626" + "19.2.0-experimental-65c4decb-20250630" ) ); } @@ -8032,4 +8032,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 e934a28c865e22..7235fde1321667 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 @@ -7257,13 +7257,13 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } var isomorphicReactPackageVersion$jscomp$inline_870 = React.version; if ( - "19.2.0-experimental-4db4b21c-20250626" !== + "19.2.0-experimental-65c4decb-20250630" !== isomorphicReactPackageVersion$jscomp$inline_870 ) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion$jscomp$inline_870 + - "\n - react-dom: 19.2.0-experimental-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); exports.renderToReadableStream = function (children, options) { return new Promise(function (resolve, reject) { @@ -7354,4 +7354,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 4f102fb398fb53..e26c02c87a3bbf 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 @@ -9511,11 +9511,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react-experimental"), @@ -11330,5 +11330,5 @@ startWork(request); }); }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 7a8e341daca512..2cc0f9fa9e3c29 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 @@ -7899,11 +7899,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8157,4 +8157,4 @@ exports.resumeAndPrerender = function (children, postponedState, options) { startWork(request); }); }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 132d4b7eb83c06..833200aac657c0 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 @@ -9363,11 +9363,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -11492,5 +11492,5 @@ } }; }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 4f5315c2ae1a4d..a58f6a20e488d7 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 @@ -7770,11 +7770,11 @@ function getPostponedState(request) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -8332,4 +8332,4 @@ exports.resumeToPipeableStream = function (children, postponedState, options) { } }; }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 edd2b6f13e6d30..477a8e40b03bbe 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 @@ -3906,6 +3906,185 @@ ? null : eventClass; } + function getArrayKind(array) { + for (var kind = EMPTY_ARRAY, i = 0; i < array.length; i++) { + var value = array[i]; + if ("object" === typeof value && null !== value) + if ( + isArrayImpl(value) && + 2 === value.length && + "string" === typeof value[0] + ) { + if (kind !== EMPTY_ARRAY && kind !== ENTRIES_ARRAY) + return COMPLEX_ARRAY; + kind = ENTRIES_ARRAY; + } else return COMPLEX_ARRAY; + else { + if ( + "function" === typeof value || + ("string" === typeof value && 50 < value.length) || + (kind !== EMPTY_ARRAY && kind !== PRIMITIVE_ARRAY) + ) + return COMPLEX_ARRAY; + kind = PRIMITIVE_ARRAY; + } + } + return kind; + } + function addObjectToProperties(object, properties, indent) { + for (var key in object) + hasOwnProperty.call(object, key) && + "_" !== key[0] && + addValueToProperties(key, object[key], properties, indent); + } + function addValueToProperties(propertyName, value, properties, indent) { + switch (typeof value) { + case "object": + if (null === value) { + value = "null"; + break; + } else { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + propKey === PRIMITIVE_ARRAY || propKey === EMPTY_ARRAY) + ) { + value = JSON.stringify(value); + break; + } else if (propKey === ENTRIES_ARRAY) { + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "" + ]); + for ( + propertyName = 0; + propertyName < value.length; + propertyName++ + ) + (typeName = value[propertyName]), + addValueToProperties( + typeName[0], + typeName[1], + properties, + indent + 1 + ); + return; + } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; + } + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName + ]); + 3 > indent && addObjectToProperties(value, properties, indent + 1); + return; + } + case "function": + value = "" === value.name ? "() => {}" : value.name + "() {}"; + break; + case "string": + value = + value === OMITTED_PROP_ERROR ? "\u2026" : JSON.stringify(value); + break; + case "undefined": + value = "undefined"; + break; + case "boolean": + value = value ? "true" : "false"; + break; + default: + value = String(value); + } + properties.push(["\u00a0\u00a0".repeat(indent) + propertyName, value]); + } function setCurrentTrackFromLanes(lanes) { currentTrack = lanes & 127 @@ -4014,6 +4193,10 @@ : String(capturedValue) ]); } + null !== fiber.key && + addValueToProperties("key", fiber.key, properties, 0); + null !== fiber.memoizedProps && + addObjectToProperties(fiber.memoizedProps, properties, 0); null == debugTask && (debugTask = fiber._debugTask); fiber = { start: startTime, @@ -4067,6 +4250,10 @@ : String(error) ]); } + null !== fiber.key && + addValueToProperties("key", fiber.key, selfTime, 0); + null !== fiber.memoizedProps && + addObjectToProperties(fiber.memoizedProps, selfTime, 0); startTime = { start: startTime, end: endTime, @@ -28260,6 +28447,12 @@ } console.error(error); }, + OMITTED_PROP_ERROR = + "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.", + EMPTY_ARRAY = 0, + COMPLEX_ARRAY = 1, + PRIMITIVE_ARRAY = 2, + ENTRIES_ARRAY = 3, supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp, @@ -30975,11 +31168,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-experimental-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-experimental-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-experimental-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -31016,10 +31209,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626" + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -31331,5 +31524,5 @@ } }; }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 9280c0992d11b3..ef66629b576a23 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 @@ -19475,14 +19475,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2215 = React.version; if ( - "19.2.0-experimental-4db4b21c-20250626" !== + "19.2.0-experimental-65c4decb-20250630" !== isomorphicReactPackageVersion$jscomp$inline_2215 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2215, - "19.2.0-experimental-4db4b21c-20250626" + "19.2.0-experimental-65c4decb-20250630" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19504,10 +19504,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2905 = { bundleType: 0, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626" + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2906 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -19765,4 +19765,4 @@ exports.observeVisibleRects = function ( } }; }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 56977d89ece993..5a57e9b5a97204 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-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; "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 e75803e7a08bcf..51f05555595904 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-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 deca9cf8019968..446f207d9bdd69 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-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 4d70041b90f04f..be171356a31635 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-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; diff --git a/packages/next/src/compiled/react-dom-experimental/package.json b/packages/next/src/compiled/react-dom-experimental/package.json index 55d8e2499ac8ab..cf91d8bf816308 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-4db4b21c-20250626" + "scheduler": "0.0.0-experimental-65c4decb-20250630" }, "peerDependencies": { - "react": "0.0.0-experimental-4db4b21c-20250626" + "react": "0.0.0-experimental-65c4decb-20250630" }, "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 0026feffce07e6..5c695282e294f8 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 @@ -25501,11 +25501,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -25542,10 +25542,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-canary-4db4b21c-20250626", + version: "19.2.0-canary-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-4db4b21c-20250626" + reconcilerVersion: "19.2.0-canary-65c4decb-20250630" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -25683,7 +25683,7 @@ listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-canary-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; "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 12aa762f91b379..dee4045850718d 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 @@ -15713,14 +15713,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_1857 = React.version; if ( - "19.2.0-canary-4db4b21c-20250626" !== + "19.2.0-canary-65c4decb-20250630" !== isomorphicReactPackageVersion$jscomp$inline_1857 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1857, - "19.2.0-canary-4db4b21c-20250626" + "19.2.0-canary-65c4decb-20250630" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -15742,10 +15742,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2350 = { bundleType: 0, - version: "19.2.0-canary-4db4b21c-20250626", + version: "19.2.0-canary-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-4db4b21c-20250626" + reconcilerVersion: "19.2.0-canary-65c4decb-20250630" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2351 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -15843,4 +15843,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 7f8cd10f227ae7..effe61b8440df0 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 @@ -25553,11 +25553,11 @@ }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -25594,10 +25594,10 @@ !(function () { var internals = { bundleType: 1, - version: "19.2.0-canary-4db4b21c-20250626", + version: "19.2.0-canary-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-4db4b21c-20250626" + reconcilerVersion: "19.2.0-canary-65c4decb-20250630" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -26065,7 +26065,7 @@ exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-canary-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; "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 d85b14f71302cb..1d97877e7ebf7b 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 @@ -16414,14 +16414,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_1961 = React.version; if ( - "19.2.0-canary-4db4b21c-20250626" !== + "19.2.0-canary-65c4decb-20250630" !== isomorphicReactPackageVersion$jscomp$inline_1961 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1961, - "19.2.0-canary-4db4b21c-20250626" + "19.2.0-canary-65c4decb-20250630" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -16443,10 +16443,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_1968 = { bundleType: 0, - version: "19.2.0-canary-4db4b21c-20250626", + version: "19.2.0-canary-65c4decb-20250630", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-4db4b21c-20250626", + reconcilerVersion: "19.2.0-canary-65c4decb-20250630", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$293 = 0; @@ -16719,7 +16719,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; "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 760b2dea7bbbe4..4897f7e431cb81 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 @@ -9683,5 +9683,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-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; })(); 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 14b6a5ef363760..b83f88e4f03a45 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 @@ -6456,4 +6456,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-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 7b06f51ca7db45..a092e0f02a8224 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 @@ -9683,5 +9683,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-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; })(); 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 277a3648babd39..fd18d4e93aa12e 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 @@ -6539,4 +6539,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-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 4851992e8e4e63..5b6e1ee9d16619 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 @@ -8432,11 +8432,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -10126,5 +10126,5 @@ startWork(request); }); }; - exports.version = "19.2.0-canary-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; })(); 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 569c169fe7d906..413011ba9bead6 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 @@ -6842,12 +6842,12 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== isomorphicReactPackageVersion) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion, - "19.2.0-canary-4db4b21c-20250626" + "19.2.0-canary-65c4decb-20250630" ) ); } @@ -6994,4 +6994,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 4b388fdba77de3..7d972797385ad2 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 @@ -6487,13 +6487,13 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } var isomorphicReactPackageVersion$jscomp$inline_817 = React.version; if ( - "19.2.0-canary-4db4b21c-20250626" !== + "19.2.0-canary-65c4decb-20250630" !== isomorphicReactPackageVersion$jscomp$inline_817 ) throw Error( 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + (isomorphicReactPackageVersion$jscomp$inline_817 + - "\n - react-dom: 19.2.0-canary-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); exports.renderToReadableStream = function (children, options) { return new Promise(function (resolve, reject) { @@ -6584,4 +6584,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 73f7d7a1cb84ba..c5b01b0eba9d0e 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 @@ -8464,11 +8464,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } var React = require("next/dist/compiled/react"), @@ -10154,5 +10154,5 @@ startWork(request); }); }; - exports.version = "19.2.0-canary-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; })(); 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 445bb1095eef92..3925805fd55f49 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 @@ -6949,11 +6949,11 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7099,4 +7099,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 ab70ba9777fe20..6f19298bb47316 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 @@ -8330,11 +8330,11 @@ } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } function createDrainHandler(destination, request) { @@ -10205,5 +10205,5 @@ startWork(request); }); }; - exports.version = "19.2.0-canary-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; })(); 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 ae69770e15ec1d..a362f19aec1051 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 @@ -6832,11 +6832,11 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) { } function ensureCorrectIsomorphicReactVersion() { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-canary-4db4b21c-20250626" !== isomorphicReactPackageVersion) + if ("19.2.0-canary-65c4decb-20250630" !== 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-4db4b21c-20250626\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-canary-65c4decb-20250630\nLearn more: https://react.dev/warnings/version-mismatch") ); } ensureCorrectIsomorphicReactVersion(); @@ -7174,4 +7174,4 @@ exports.renderToReadableStream = function (children, options) { startWork(request); }); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 f7fcdce6f4917f..232f6813501c5d 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-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; "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 d2f8af12ad7d62..05f0de55cabab1 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-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 6270801acdca88..237341468b7e0d 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-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; })(); 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 0d8308b1ee4186..a3d958b5e6dc98 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-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; diff --git a/packages/next/src/compiled/react-dom/package.json b/packages/next/src/compiled/react-dom/package.json index 685ae332399d20..c6798fe258e490 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-4db4b21c-20250626" + "scheduler": "0.27.0-canary-65c4decb-20250630" }, "peerDependencies": { - "react": "19.2.0-canary-4db4b21c-20250626" + "react": "19.2.0-canary-65c4decb-20250630" }, "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 7eb296865d8304..dc00b23b4ae4d7 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.development.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.development.js @@ -1327,7 +1327,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; "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 cb2e7734b21dde..b87efc4ba392ca 100644 --- a/packages/next/src/compiled/react-experimental/cjs/react.production.js +++ b/packages/next/src/compiled/react-experimental/cjs/react.production.js @@ -605,4 +605,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; 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 0d9b4a1b93cce7..ec8302c6e5183f 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 @@ -994,5 +994,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.2.0-experimental-4db4b21c-20250626"; + exports.version = "19.2.0-experimental-65c4decb-20250630"; })(); 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 c2ee1c058f9fa8..72326b54e005a2 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 @@ -572,4 +572,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.2.0-experimental-4db4b21c-20250626"; +exports.version = "19.2.0-experimental-65c4decb-20250630"; diff --git a/packages/next/src/compiled/react-is/package.json b/packages/next/src/compiled/react-is/package.json index dc82673e7306e0..7cc59ff0b016f5 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-4db4b21c-20250626", + "version": "19.2.0-canary-65c4decb-20250630", "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 ac81fe956f0483..38432924e0f66b 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 @@ -849,6 +849,66 @@ +(error[4] || error[7]) ]; } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } function getArrayKind(array) { for (var kind = 0, i = 0; i < array.length; i++) { var value = array[i]; @@ -886,14 +946,62 @@ value = "null"; break; } else { - var objectToString = Object.prototype.toString.call(value); - objectToString = objectToString.slice(8, objectToString.length - 1); - if ("Array" === objectToString) { - var kind = getArrayKind(value); - if (2 === kind || 0 === kind) { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + 2 === propKey || 0 === propKey) + ) { value = JSON.stringify(value); break; - } else if (3 === kind) { + } else if (3 === propKey) { properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, "" @@ -903,23 +1011,60 @@ propertyName < value.length; propertyName++ ) - (objectToString = value[propertyName]), + (typeName = value[propertyName]), addValueToProperties( - objectToString[0], - objectToString[1], + typeName[0], + typeName[1], properties, indent + 1 ); return; } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; } - "Object" === objectToString && - (kind = Object.getPrototypeOf(value)) && - "function" === typeof kind.constructor && - (objectToString = kind.constructor.name); + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, - "Object" === objectToString ? "" : objectToString + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName ]); 3 > indent && addObjectToProperties(value, properties, indent + 1); return; @@ -931,7 +1076,7 @@ value = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value - ? "..." + ? "\u2026" : JSON.stringify(value); break; case "undefined": @@ -1101,66 +1246,6 @@ ); } } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) - return type.$$typeof === REACT_CLIENT_REFERENCE - ? null - : type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - case REACT_ACTIVITY_TYPE: - return "Activity"; - case REACT_VIEW_TRANSITION_TYPE: - return "ViewTransition"; - } - if ("object" === typeof type) - switch ( - ("number" === typeof type.tag && - console.error( - "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." - ), - type.$$typeof) - ) { - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_CONTEXT_TYPE: - return type.displayName || "Context"; - case REACT_CONSUMER_TYPE: - return (type._context.displayName || "Context") + ".Consumer"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || - ((type = innerType.displayName || innerType.name || ""), - (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); - return type; - case REACT_MEMO_TYPE: - return ( - (innerType = type.displayName || null), - null !== innerType - ? innerType - : getComponentNameFromType(type.type) || "Memo" - ); - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } function ReactPromise(status, value, reason) { this.status = status; this.value = value; @@ -1194,17 +1279,64 @@ return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1218,7 +1350,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1228,7 +1360,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1324,14 +1456,15 @@ var debugChannel = response._debugChannel; void 0 !== debugChannel && (debugChannel(""), (response._debugChannel = void 0)); - markAllTracksInOrder(); - flushComponentPerformance( - response, - getChunk(response, 0), - 0, - -Infinity, - -Infinity - ); + response._replayConsole && + (markAllTracksInOrder(), + flushComponentPerformance( + response, + getChunk(response, 0), + 0, + -Infinity, + -Infinity + )); } function nullRefGetter() { return null; @@ -1352,6 +1485,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1372,6 +1544,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1380,72 +1661,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1457,8 +1672,20 @@ deps: 1, errored: !1 }; - fulfill.isReactInternalListener = !0; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1580,18 +1807,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1611,7 +1878,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1620,6 +1886,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1900,7 +2179,7 @@ this._debugChannel = debugChannel; this._replayConsole = replayConsole; this._rootEnvironmentName = environmentName; - markAllTracksInOrder(); + replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } function resolveDebugHalt(response, id) { @@ -2011,8 +2290,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -2020,10 +2299,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2548,23 +2827,25 @@ initializeFakeStack(response, ioInfo)); ioInfo.start += response._timeOrigin; ioInfo.end += response._timeOrigin; - response = response._rootEnvironmentName; - var promise = ioInfo.value; - if (promise) - switch (promise.status) { - case "fulfilled": - logIOInfo(ioInfo, response, promise.value); - break; - case "rejected": - logIOInfoErrored(ioInfo, response, promise.reason); - break; - default: - promise.then( - logIOInfo.bind(null, ioInfo, response), - logIOInfoErrored.bind(null, ioInfo, response) - ); - } - else logIOInfo(ioInfo, response, void 0); + if (response._replayConsole) { + response = response._rootEnvironmentName; + var promise = ioInfo.value; + if (promise) + switch (promise.status) { + case "fulfilled": + logIOInfo(ioInfo, response, promise.value); + break; + case "rejected": + logIOInfoErrored(ioInfo, response, promise.reason); + break; + default: + promise.then( + logIOInfo.bind(null, ioInfo, response), + logIOInfoErrored.bind(null, ioInfo, response) + ); + } + else logIOInfo(ioInfo, response, void 0); + } } function resolveIOInfo(response, id, model) { var chunks = response._chunks, @@ -2592,8 +2873,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2701,10 +2982,10 @@ root._children = trackIdx; componentInfo = -Infinity; info = trackIdx$jscomp$1; - for (var _i4 = 0; _i4 < entryName.length; _i4++) { + for (var _i5 = 0; _i5 < entryName.length; _i5++) { var childResult = flushComponentPerformance( response$jscomp$0, - entryName[_i4], + entryName[_i5], info, trackTime, parentEndTime @@ -2719,7 +3000,7 @@ if (previousEndTime) for ( childResult = 0, - _i4 = !0, + _i5 = !0, info = parentEndTime = -1, entryName = previousEndTime.length - 1; 0 <= entryName; @@ -2742,106 +3023,145 @@ startTime = trackTime, componentEndTime = childResult, childrenEndTime = componentInfo; - _i4 && - "rejected" === root.status && - root.reason !== response._closedReason - ? ((_i4 = root.reason), + if ( + _i5 && + "rejected" === root.status && + root.reason !== response._closedReason + ) + (_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + (componentEndTime = childrenEndTime), + (childrenEndTime = root.reason), supportsUserTiming && - ((childResult = componentInfo$jscomp$0.env), - (componentInfo$jscomp$0 = componentInfo$jscomp$0.name), - (childResult = - childResult === response._rootEnvironmentName || - void 0 === childResult + ((trackIdx$jscomp$0 = _i5.env), + (componentInfo$jscomp$0 = _i5.name), + (response = + trackIdx$jscomp$0 === response._rootEnvironmentName || + void 0 === trackIdx$jscomp$0 ? componentInfo$jscomp$0 : componentInfo$jscomp$0 + " [" + - childResult + + trackIdx$jscomp$0 + "]"), - performance.measure(childResult, { + (childrenEndTime = [ + [ + "Error", + "object" === typeof childrenEndTime && + null !== childrenEndTime && + "string" === typeof childrenEndTime.message + ? String(childrenEndTime.message) + : String(childrenEndTime) + ] + ]), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + childrenEndTime, + 0 + ), + null != _i5.props && + addObjectToProperties(_i5.props, childrenEndTime, 0), + performance.measure(response, { start: 0 > startTime ? 0 : startTime, - end: childrenEndTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: trackNames[trackIdx$jscomp$0], + track: trackNames[childResult], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Errored", - properties: [ - [ - "Error", - "object" === typeof _i4 && - null !== _i4 && - "string" === typeof _i4.message - ? String(_i4.message) - : String(_i4) - ] - ] + tooltipText: response + " Errored", + properties: childrenEndTime } } - }))) - : ((_i4 = trackIdx$jscomp$0), - (childResult = startTime), - (startTime = childrenEndTime), - supportsUserTiming && - 0 <= startTime && - 10 > _i4 && - ((childrenEndTime = componentInfo$jscomp$0.env), - (trackIdx$jscomp$0 = componentInfo$jscomp$0.name), - (response = - childrenEndTime === response._rootEnvironmentName), - (componentEndTime -= childResult), - (componentEndTime = - 0.5 > componentEndTime - ? response - ? "primary-light" - : "secondary-light" - : 50 > componentEndTime - ? response - ? "primary" - : "secondary" - : 500 > componentEndTime - ? response - ? "primary-dark" - : "secondary-dark" - : "error"), - (response = - response || void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), - (componentInfo$jscomp$0 = - componentInfo$jscomp$0.debugTask) - ? componentInfo$jscomp$0.run( - console.timeStamp.bind( - console, - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ) - ) - : console.timeStamp( - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ))); + })); + else if ( + ((_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + supportsUserTiming && + 0 <= childrenEndTime && + 10 > childResult) + ) { + trackIdx$jscomp$0 = _i5.env; + componentInfo$jscomp$0 = _i5.name; + var isPrimaryEnv = + trackIdx$jscomp$0 === response._rootEnvironmentName; + response = componentEndTime - startTime; + response = + 0.5 > response + ? isPrimaryEnv + ? "primary-light" + : "secondary-light" + : 50 > response + ? isPrimaryEnv + ? "primary" + : "secondary" + : 500 > response + ? isPrimaryEnv + ? "primary-dark" + : "secondary-dark" + : "error"; + componentEndTime = + isPrimaryEnv || void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + + " [" + + trackIdx$jscomp$0 + + "]"; + (trackIdx$jscomp$0 = _i5.debugTask) + ? ((componentInfo$jscomp$0 = []), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + componentInfo$jscomp$0, + 0 + ), + null != _i5.props && + addObjectToProperties( + _i5.props, + componentInfo$jscomp$0, + 0 + ), + trackIdx$jscomp$0.run( + performance.measure.bind( + performance, + componentEndTime, + { + start: 0 > startTime ? 0 : startTime, + end: childrenEndTime, + detail: { + devtools: { + color: response, + track: trackNames[childResult], + trackGroup: "Server Components \u269b", + properties: componentInfo$jscomp$0 + } + } + } + ) + )) + : console.timeStamp( + componentEndTime, + 0 > startTime ? 0 : startTime, + childrenEndTime, + trackNames[childResult], + "Server Components \u269b", + response + ); + } childResult = trackTime; trackIdx.component = candidateInfo; - _i4 = !1; + _i5 = !1; } else if (candidateInfo.awaited) if ( (parentEndTime > componentInfo && (componentInfo = parentEndTime), - (componentEndTime = response$jscomp$0._rootEnvironmentName), - (componentInfo$jscomp$0 = candidateInfo.awaited.value)) + (childrenEndTime = response$jscomp$0._rootEnvironmentName), + (response = candidateInfo.awaited.value)) ) switch ( - ((childrenEndTime = componentInfo$jscomp$0), - childrenEndTime.status) + ((trackIdx$jscomp$0 = response), trackIdx$jscomp$0.status) ) { case "fulfilled": logComponentAwait( @@ -2849,68 +3169,72 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, - childrenEndTime.value + childrenEndTime, + trackIdx$jscomp$0.value ); break; case "rejected": - componentInfo$jscomp$0 = trackIdx$jscomp$1; - response = trackTime; - startTime = parentEndTime; - childrenEndTime = childrenEndTime.reason; - if (supportsUserTiming && 0 < startTime) { - trackIdx$jscomp$0 = candidateInfo.env; - var name = candidateInfo.awaited.name; - componentEndTime = + response = trackIdx$jscomp$1; + startTime = trackTime; + componentEndTime = parentEndTime; + trackIdx$jscomp$0 = trackIdx$jscomp$0.reason; + supportsUserTiming && + 0 < componentEndTime && + ((componentInfo$jscomp$0 = candidateInfo.env), + (isPrimaryEnv = candidateInfo.awaited.name), + (childrenEndTime = "await " + - (trackIdx$jscomp$0 === componentEndTime || - void 0 === trackIdx$jscomp$0 - ? name - : name + " [" + trackIdx$jscomp$0 + "]"); + (componentInfo$jscomp$0 === childrenEndTime || + void 0 === componentInfo$jscomp$0 + ? isPrimaryEnv + : isPrimaryEnv + + " [" + + componentInfo$jscomp$0 + + "]")), (candidateInfo = candidateInfo.debugTask || candidateInfo.awaited.debugTask) ? candidateInfo.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: 0 > response ? 0 : response, - end: startTime, + start: 0 > startTime ? 0 : startTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: - trackNames[componentInfo$jscomp$0], + track: trackNames[response], trackGroup: "Server Components \u269b", properties: [ [ "Rejected", "object" === - typeof childrenEndTime && - null !== childrenEndTime && + typeof trackIdx$jscomp$0 && + null !== trackIdx$jscomp$0 && "string" === - typeof childrenEndTime.message - ? String(childrenEndTime.message) - : String(childrenEndTime) + typeof trackIdx$jscomp$0.message + ? String( + trackIdx$jscomp$0.message + ) + : String(trackIdx$jscomp$0) ] ], tooltipText: - componentEndTime + " Rejected" + childrenEndTime + " Rejected" } } } ) ) : console.timeStamp( + childrenEndTime, + 0 > startTime ? 0 : startTime, componentEndTime, - 0 > response ? 0 : response, - startTime, - trackNames[componentInfo$jscomp$0], + trackNames[response], "Server Components \u269b", "error" - ); - } + )); break; default: logComponentAwait( @@ -2918,7 +3242,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -2928,7 +3252,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -2942,76 +3266,91 @@ "string" === typeof candidateInfo.name ? (childResult > componentInfo && (componentInfo = childResult), - (_i4 = candidateInfo), - (childResult = response$jscomp$0._rootEnvironmentName), + (_i5 = candidateInfo), + (componentEndTime = + response$jscomp$0._rootEnvironmentName), + (childResult = _i5), + (candidateInfo = trackIdx$jscomp$1), + (response = trackTime), + (startTime = componentInfo), supportsUserTiming && - ((candidateInfo = _i4.env), - (componentInfo$jscomp$0 = _i4.name), - (childResult = - candidateInfo === childResult || - void 0 === candidateInfo - ? componentInfo$jscomp$0 - : componentInfo$jscomp$0 + - " [" + - candidateInfo + - "]"), - performance.measure(childResult, { - start: 0 > trackTime ? 0 : trackTime, - end: componentInfo, + ((childrenEndTime = childResult.env), + (trackIdx$jscomp$0 = childResult.name), + (componentEndTime = + childrenEndTime === componentEndTime || + void 0 === childrenEndTime + ? trackIdx$jscomp$0 + : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), + (childrenEndTime = [ + [ + "Aborted", + "The stream was aborted before this Component finished rendering." + ] + ]), + null != childResult.key && + addValueToProperties( + "key", + childResult.key, + childrenEndTime, + 0 + ), + null != childResult.props && + addObjectToProperties( + childResult.props, + childrenEndTime, + 0 + ), + performance.measure(componentEndTime, { + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", - track: trackNames[trackIdx$jscomp$1], + track: trackNames[candidateInfo], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Aborted", - properties: [ - [ - "Aborted", - "The stream was aborted before this Component finished rendering." - ] - ] + tooltipText: componentEndTime + " Aborted", + properties: childrenEndTime } } })), (childResult = trackTime), - (trackIdx.component = _i4), - (_i4 = !1)) + (trackIdx.component = _i5), + (_i5 = !1)) : candidateInfo.awaited && - ((startTime = candidateInfo), - (componentEndTime = + ((componentEndTime = candidateInfo), + (childrenEndTime = response$jscomp$0._rootEnvironmentName), - startTime.awaited.end > parentEndTime && - (parentEndTime = startTime.awaited.end), + componentEndTime.awaited.end > parentEndTime && + (parentEndTime = componentEndTime.awaited.end), parentEndTime > componentInfo && (componentInfo = parentEndTime), (candidateInfo = trackIdx$jscomp$1), - (componentInfo$jscomp$0 = trackTime), - (response = parentEndTime), + (response = trackTime), + (startTime = parentEndTime), supportsUserTiming && - 0 < response && - ((childrenEndTime = startTime.env), - (trackIdx$jscomp$0 = startTime.awaited.name), - (componentEndTime = + 0 < startTime && + ((trackIdx$jscomp$0 = componentEndTime.env), + (componentInfo$jscomp$0 = + componentEndTime.awaited.name), + (childrenEndTime = "await " + - (childrenEndTime === componentEndTime || - void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + + (trackIdx$jscomp$0 === childrenEndTime || + void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + " [" + - childrenEndTime + + trackIdx$jscomp$0 + "]")), - (startTime = - startTime.debugTask || startTime.awaited.debugTask) - ? startTime.run( + (componentEndTime = + componentEndTime.debugTask || + componentEndTime.awaited.debugTask) + ? componentEndTime.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - end: response, + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", @@ -3023,18 +3362,16 @@ "The stream was aborted before this Promise resolved." ] ], - tooltipText: componentEndTime + " Aborted" + tooltipText: childrenEndTime + " Aborted" } } } ) ) : console.timeStamp( - componentEndTime, - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - response, + childrenEndTime, + 0 > response ? 0 : response, + startTime, trackNames[candidateInfo], "Server Components \u269b", "warning" @@ -3172,98 +3509,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = createErrorChunk(response, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = createErrorChunk(response, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -3436,6 +3750,7 @@ /^ {3} at (?:(.+) \((.+):(\d+):(\d+)\)|(?:async )?(.+):(\d+):(\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\d+):(\d+)/, hasOwnProperty = Object.prototype.hasOwnProperty, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp && @@ -3445,7 +3760,6 @@ "Primary Parallel Parallel\u200b Parallel\u200b\u200b Parallel\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b".split( " " ), - REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), prefix, suffix; new ("function" === typeof WeakMap ? WeakMap : Map)(); @@ -3464,38 +3778,36 @@ case "resolved_module": initializeModuleChunk(this); } - if ("function" !== typeof resolve || !resolve.isReactInternalListener) { - var resolveCallback = resolve, - rejectCallback = reject, - wrapperPromise = new Promise(function (res, rej) { - resolve = function (value) { - wrapperPromise._debugInfo = _this._debugInfo; - res(value); - }; - reject = function (reason) { - wrapperPromise._debugInfo = _this._debugInfo; - rej(reason); - }; - }); - wrapperPromise.then(resolveCallback, rejectCallback); - } + var resolveCallback = resolve, + rejectCallback = reject, + wrapperPromise = new Promise(function (res, rej) { + resolve = function (value) { + wrapperPromise._debugInfo = _this._debugInfo; + res(value); + }; + reject = function (reason) { + wrapperPromise._debugInfo = _this._debugInfo; + rej(reason); + }; + }); + wrapperPromise.then(resolveCallback, rejectCallback); switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, @@ -3612,10 +3924,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626", + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630", getCurrentComponentInfo: function () { return currentOwnerInDEV; } 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 9d3f1d392ed3ed..f8b35fb0bfe0c3 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 @@ -535,19 +535,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -573,17 +573,64 @@ function createErrorChunk(response, error) { return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -597,7 +644,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -607,7 +654,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -709,6 +756,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -717,52 +848,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -774,7 +859,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -863,25 +961,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1129,8 +1279,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1138,10 +1288,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1283,8 +1433,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 b7fe00bc04be11..56533d3204af7e 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 @@ -1055,6 +1055,66 @@ registerBoundServerReference(action, id, null, encodeFormAction); return action; } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } function getArrayKind(array) { for (var kind = 0, i = 0; i < array.length; i++) { var value = array[i]; @@ -1092,14 +1152,62 @@ value = "null"; break; } else { - var objectToString = Object.prototype.toString.call(value); - objectToString = objectToString.slice(8, objectToString.length - 1); - if ("Array" === objectToString) { - var kind = getArrayKind(value); - if (2 === kind || 0 === kind) { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + 2 === propKey || 0 === propKey) + ) { value = JSON.stringify(value); break; - } else if (3 === kind) { + } else if (3 === propKey) { properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, "" @@ -1109,23 +1217,60 @@ propertyName < value.length; propertyName++ ) - (objectToString = value[propertyName]), + (typeName = value[propertyName]), addValueToProperties( - objectToString[0], - objectToString[1], + typeName[0], + typeName[1], properties, indent + 1 ); return; } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; } - "Object" === objectToString && - (kind = Object.getPrototypeOf(value)) && - "function" === typeof kind.constructor && - (objectToString = kind.constructor.name); + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, - "Object" === objectToString ? "" : objectToString + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName ]); 3 > indent && addObjectToProperties(value, properties, indent + 1); return; @@ -1137,7 +1282,7 @@ value = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value - ? "..." + ? "\u2026" : JSON.stringify(value); break; case "undefined": @@ -1307,66 +1452,6 @@ ); } } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) - return type.$$typeof === REACT_CLIENT_REFERENCE - ? null - : type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - case REACT_ACTIVITY_TYPE: - return "Activity"; - case REACT_VIEW_TRANSITION_TYPE: - return "ViewTransition"; - } - if ("object" === typeof type) - switch ( - ("number" === typeof type.tag && - console.error( - "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." - ), - type.$$typeof) - ) { - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_CONTEXT_TYPE: - return type.displayName || "Context"; - case REACT_CONSUMER_TYPE: - return (type._context.displayName || "Context") + ".Consumer"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || - ((type = innerType.displayName || innerType.name || ""), - (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); - return type; - case REACT_MEMO_TYPE: - return ( - (innerType = type.displayName || null), - null !== innerType - ? innerType - : getComponentNameFromType(type.type) || "Memo" - ); - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } function prepareStackTrace(error, structuredStackTrace) { error = (error.name || "Error") + ": " + (error.message || ""); for (var i = 0; i < structuredStackTrace.length; i++) @@ -1406,17 +1491,64 @@ return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1430,7 +1562,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1440,7 +1572,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1536,14 +1668,15 @@ var debugChannel = response._debugChannel; void 0 !== debugChannel && (debugChannel(""), (response._debugChannel = void 0)); - markAllTracksInOrder(); - flushComponentPerformance( - response, - getChunk(response, 0), - 0, - -Infinity, - -Infinity - ); + response._replayConsole && + (markAllTracksInOrder(), + flushComponentPerformance( + response, + getChunk(response, 0), + 0, + -Infinity, + -Infinity + )); } function nullRefGetter() { return null; @@ -1564,6 +1697,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1584,6 +1756,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1592,72 +1873,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1669,8 +1884,20 @@ deps: 1, errored: !1 }; - fulfill.isReactInternalListener = !0; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1799,18 +2026,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1830,7 +2097,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1839,6 +2105,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -2119,7 +2398,7 @@ this._debugChannel = debugChannel; this._replayConsole = replayConsole; this._rootEnvironmentName = environmentName; - markAllTracksInOrder(); + replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } function resolveDebugHalt(response, id) { @@ -2235,8 +2514,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -2244,10 +2523,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2772,23 +3051,25 @@ initializeFakeStack(response, ioInfo)); ioInfo.start += response._timeOrigin; ioInfo.end += response._timeOrigin; - response = response._rootEnvironmentName; - var promise = ioInfo.value; - if (promise) - switch (promise.status) { - case "fulfilled": - logIOInfo(ioInfo, response, promise.value); - break; - case "rejected": - logIOInfoErrored(ioInfo, response, promise.reason); - break; - default: - promise.then( - logIOInfo.bind(null, ioInfo, response), - logIOInfoErrored.bind(null, ioInfo, response) - ); - } - else logIOInfo(ioInfo, response, void 0); + if (response._replayConsole) { + response = response._rootEnvironmentName; + var promise = ioInfo.value; + if (promise) + switch (promise.status) { + case "fulfilled": + logIOInfo(ioInfo, response, promise.value); + break; + case "rejected": + logIOInfoErrored(ioInfo, response, promise.reason); + break; + default: + promise.then( + logIOInfo.bind(null, ioInfo, response), + logIOInfoErrored.bind(null, ioInfo, response) + ); + } + else logIOInfo(ioInfo, response, void 0); + } } function resolveIOInfo(response, id, model) { var chunks = response._chunks, @@ -2816,8 +3097,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2925,10 +3206,10 @@ root._children = trackIdx; componentInfo = -Infinity; info = trackIdx$jscomp$1; - for (var _i4 = 0; _i4 < entryName.length; _i4++) { + for (var _i5 = 0; _i5 < entryName.length; _i5++) { var childResult = flushComponentPerformance( response$jscomp$0, - entryName[_i4], + entryName[_i5], info, trackTime, parentEndTime @@ -2943,7 +3224,7 @@ if (previousEndTime) for ( childResult = 0, - _i4 = !0, + _i5 = !0, info = parentEndTime = -1, entryName = previousEndTime.length - 1; 0 <= entryName; @@ -2966,106 +3247,145 @@ startTime = trackTime, componentEndTime = childResult, childrenEndTime = componentInfo; - _i4 && - "rejected" === root.status && - root.reason !== response._closedReason - ? ((_i4 = root.reason), + if ( + _i5 && + "rejected" === root.status && + root.reason !== response._closedReason + ) + (_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + (componentEndTime = childrenEndTime), + (childrenEndTime = root.reason), supportsUserTiming && - ((childResult = componentInfo$jscomp$0.env), - (componentInfo$jscomp$0 = componentInfo$jscomp$0.name), - (childResult = - childResult === response._rootEnvironmentName || - void 0 === childResult + ((trackIdx$jscomp$0 = _i5.env), + (componentInfo$jscomp$0 = _i5.name), + (response = + trackIdx$jscomp$0 === response._rootEnvironmentName || + void 0 === trackIdx$jscomp$0 ? componentInfo$jscomp$0 : componentInfo$jscomp$0 + " [" + - childResult + + trackIdx$jscomp$0 + "]"), - performance.measure(childResult, { + (childrenEndTime = [ + [ + "Error", + "object" === typeof childrenEndTime && + null !== childrenEndTime && + "string" === typeof childrenEndTime.message + ? String(childrenEndTime.message) + : String(childrenEndTime) + ] + ]), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + childrenEndTime, + 0 + ), + null != _i5.props && + addObjectToProperties(_i5.props, childrenEndTime, 0), + performance.measure(response, { start: 0 > startTime ? 0 : startTime, - end: childrenEndTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: trackNames[trackIdx$jscomp$0], + track: trackNames[childResult], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Errored", - properties: [ - [ - "Error", - "object" === typeof _i4 && - null !== _i4 && - "string" === typeof _i4.message - ? String(_i4.message) - : String(_i4) - ] - ] + tooltipText: response + " Errored", + properties: childrenEndTime } } - }))) - : ((_i4 = trackIdx$jscomp$0), - (childResult = startTime), - (startTime = childrenEndTime), - supportsUserTiming && - 0 <= startTime && - 10 > _i4 && - ((childrenEndTime = componentInfo$jscomp$0.env), - (trackIdx$jscomp$0 = componentInfo$jscomp$0.name), - (response = - childrenEndTime === response._rootEnvironmentName), - (componentEndTime -= childResult), - (componentEndTime = - 0.5 > componentEndTime - ? response - ? "primary-light" - : "secondary-light" - : 50 > componentEndTime - ? response - ? "primary" - : "secondary" - : 500 > componentEndTime - ? response - ? "primary-dark" - : "secondary-dark" - : "error"), - (response = - response || void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), - (componentInfo$jscomp$0 = - componentInfo$jscomp$0.debugTask) - ? componentInfo$jscomp$0.run( - console.timeStamp.bind( - console, - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ) - ) - : console.timeStamp( - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ))); + })); + else if ( + ((_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + supportsUserTiming && + 0 <= childrenEndTime && + 10 > childResult) + ) { + trackIdx$jscomp$0 = _i5.env; + componentInfo$jscomp$0 = _i5.name; + var isPrimaryEnv = + trackIdx$jscomp$0 === response._rootEnvironmentName; + response = componentEndTime - startTime; + response = + 0.5 > response + ? isPrimaryEnv + ? "primary-light" + : "secondary-light" + : 50 > response + ? isPrimaryEnv + ? "primary" + : "secondary" + : 500 > response + ? isPrimaryEnv + ? "primary-dark" + : "secondary-dark" + : "error"; + componentEndTime = + isPrimaryEnv || void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + + " [" + + trackIdx$jscomp$0 + + "]"; + (trackIdx$jscomp$0 = _i5.debugTask) + ? ((componentInfo$jscomp$0 = []), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + componentInfo$jscomp$0, + 0 + ), + null != _i5.props && + addObjectToProperties( + _i5.props, + componentInfo$jscomp$0, + 0 + ), + trackIdx$jscomp$0.run( + performance.measure.bind( + performance, + componentEndTime, + { + start: 0 > startTime ? 0 : startTime, + end: childrenEndTime, + detail: { + devtools: { + color: response, + track: trackNames[childResult], + trackGroup: "Server Components \u269b", + properties: componentInfo$jscomp$0 + } + } + } + ) + )) + : console.timeStamp( + componentEndTime, + 0 > startTime ? 0 : startTime, + childrenEndTime, + trackNames[childResult], + "Server Components \u269b", + response + ); + } childResult = trackTime; trackIdx.component = candidateInfo; - _i4 = !1; + _i5 = !1; } else if (candidateInfo.awaited) if ( (parentEndTime > componentInfo && (componentInfo = parentEndTime), - (componentEndTime = response$jscomp$0._rootEnvironmentName), - (componentInfo$jscomp$0 = candidateInfo.awaited.value)) + (childrenEndTime = response$jscomp$0._rootEnvironmentName), + (response = candidateInfo.awaited.value)) ) switch ( - ((childrenEndTime = componentInfo$jscomp$0), - childrenEndTime.status) + ((trackIdx$jscomp$0 = response), trackIdx$jscomp$0.status) ) { case "fulfilled": logComponentAwait( @@ -3073,68 +3393,72 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, - childrenEndTime.value + childrenEndTime, + trackIdx$jscomp$0.value ); break; case "rejected": - componentInfo$jscomp$0 = trackIdx$jscomp$1; - response = trackTime; - startTime = parentEndTime; - childrenEndTime = childrenEndTime.reason; - if (supportsUserTiming && 0 < startTime) { - trackIdx$jscomp$0 = candidateInfo.env; - var name = candidateInfo.awaited.name; - componentEndTime = + response = trackIdx$jscomp$1; + startTime = trackTime; + componentEndTime = parentEndTime; + trackIdx$jscomp$0 = trackIdx$jscomp$0.reason; + supportsUserTiming && + 0 < componentEndTime && + ((componentInfo$jscomp$0 = candidateInfo.env), + (isPrimaryEnv = candidateInfo.awaited.name), + (childrenEndTime = "await " + - (trackIdx$jscomp$0 === componentEndTime || - void 0 === trackIdx$jscomp$0 - ? name - : name + " [" + trackIdx$jscomp$0 + "]"); + (componentInfo$jscomp$0 === childrenEndTime || + void 0 === componentInfo$jscomp$0 + ? isPrimaryEnv + : isPrimaryEnv + + " [" + + componentInfo$jscomp$0 + + "]")), (candidateInfo = candidateInfo.debugTask || candidateInfo.awaited.debugTask) ? candidateInfo.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: 0 > response ? 0 : response, - end: startTime, + start: 0 > startTime ? 0 : startTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: - trackNames[componentInfo$jscomp$0], + track: trackNames[response], trackGroup: "Server Components \u269b", properties: [ [ "Rejected", "object" === - typeof childrenEndTime && - null !== childrenEndTime && + typeof trackIdx$jscomp$0 && + null !== trackIdx$jscomp$0 && "string" === - typeof childrenEndTime.message - ? String(childrenEndTime.message) - : String(childrenEndTime) + typeof trackIdx$jscomp$0.message + ? String( + trackIdx$jscomp$0.message + ) + : String(trackIdx$jscomp$0) ] ], tooltipText: - componentEndTime + " Rejected" + childrenEndTime + " Rejected" } } } ) ) : console.timeStamp( + childrenEndTime, + 0 > startTime ? 0 : startTime, componentEndTime, - 0 > response ? 0 : response, - startTime, - trackNames[componentInfo$jscomp$0], + trackNames[response], "Server Components \u269b", "error" - ); - } + )); break; default: logComponentAwait( @@ -3142,7 +3466,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3152,7 +3476,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3166,76 +3490,91 @@ "string" === typeof candidateInfo.name ? (childResult > componentInfo && (componentInfo = childResult), - (_i4 = candidateInfo), - (childResult = response$jscomp$0._rootEnvironmentName), + (_i5 = candidateInfo), + (componentEndTime = + response$jscomp$0._rootEnvironmentName), + (childResult = _i5), + (candidateInfo = trackIdx$jscomp$1), + (response = trackTime), + (startTime = componentInfo), supportsUserTiming && - ((candidateInfo = _i4.env), - (componentInfo$jscomp$0 = _i4.name), - (childResult = - candidateInfo === childResult || - void 0 === candidateInfo - ? componentInfo$jscomp$0 - : componentInfo$jscomp$0 + - " [" + - candidateInfo + - "]"), - performance.measure(childResult, { - start: 0 > trackTime ? 0 : trackTime, - end: componentInfo, + ((childrenEndTime = childResult.env), + (trackIdx$jscomp$0 = childResult.name), + (componentEndTime = + childrenEndTime === componentEndTime || + void 0 === childrenEndTime + ? trackIdx$jscomp$0 + : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), + (childrenEndTime = [ + [ + "Aborted", + "The stream was aborted before this Component finished rendering." + ] + ]), + null != childResult.key && + addValueToProperties( + "key", + childResult.key, + childrenEndTime, + 0 + ), + null != childResult.props && + addObjectToProperties( + childResult.props, + childrenEndTime, + 0 + ), + performance.measure(componentEndTime, { + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", - track: trackNames[trackIdx$jscomp$1], + track: trackNames[candidateInfo], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Aborted", - properties: [ - [ - "Aborted", - "The stream was aborted before this Component finished rendering." - ] - ] + tooltipText: componentEndTime + " Aborted", + properties: childrenEndTime } } })), (childResult = trackTime), - (trackIdx.component = _i4), - (_i4 = !1)) + (trackIdx.component = _i5), + (_i5 = !1)) : candidateInfo.awaited && - ((startTime = candidateInfo), - (componentEndTime = + ((componentEndTime = candidateInfo), + (childrenEndTime = response$jscomp$0._rootEnvironmentName), - startTime.awaited.end > parentEndTime && - (parentEndTime = startTime.awaited.end), + componentEndTime.awaited.end > parentEndTime && + (parentEndTime = componentEndTime.awaited.end), parentEndTime > componentInfo && (componentInfo = parentEndTime), (candidateInfo = trackIdx$jscomp$1), - (componentInfo$jscomp$0 = trackTime), - (response = parentEndTime), + (response = trackTime), + (startTime = parentEndTime), supportsUserTiming && - 0 < response && - ((childrenEndTime = startTime.env), - (trackIdx$jscomp$0 = startTime.awaited.name), - (componentEndTime = + 0 < startTime && + ((trackIdx$jscomp$0 = componentEndTime.env), + (componentInfo$jscomp$0 = + componentEndTime.awaited.name), + (childrenEndTime = "await " + - (childrenEndTime === componentEndTime || - void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + + (trackIdx$jscomp$0 === childrenEndTime || + void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + " [" + - childrenEndTime + + trackIdx$jscomp$0 + "]")), - (startTime = - startTime.debugTask || startTime.awaited.debugTask) - ? startTime.run( + (componentEndTime = + componentEndTime.debugTask || + componentEndTime.awaited.debugTask) + ? componentEndTime.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - end: response, + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", @@ -3247,18 +3586,16 @@ "The stream was aborted before this Promise resolved." ] ], - tooltipText: componentEndTime + " Aborted" + tooltipText: childrenEndTime + " Aborted" } } } ) ) : console.timeStamp( - componentEndTime, - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - response, + childrenEndTime, + 0 > response ? 0 : response, + startTime, trackNames[candidateInfo], "Server Components \u269b", "warning" @@ -3396,98 +3733,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = createErrorChunk(response, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = createErrorChunk(response, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -3651,6 +3965,7 @@ /^ {3} at (?:(.+) \((.+):(\d+):(\d+)\)|(?:async )?(.+):(\d+):(\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\d+):(\d+)/, hasOwnProperty = Object.prototype.hasOwnProperty, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp && @@ -3660,7 +3975,6 @@ "Primary Parallel Parallel\u200b Parallel\u200b\u200b Parallel\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b".split( " " ), - REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), prefix, suffix; new ("function" === typeof WeakMap ? WeakMap : Map)(); @@ -3679,38 +3993,36 @@ case "resolved_module": initializeModuleChunk(this); } - if ("function" !== typeof resolve || !resolve.isReactInternalListener) { - var resolveCallback = resolve, - rejectCallback = reject, - wrapperPromise = new Promise(function (res, rej) { - resolve = function (value) { - wrapperPromise._debugInfo = _this._debugInfo; - res(value); - }; - reject = function (reason) { - wrapperPromise._debugInfo = _this._debugInfo; - rej(reason); - }; - }); - wrapperPromise.then(resolveCallback, rejectCallback); - } + var resolveCallback = resolve, + rejectCallback = reject, + wrapperPromise = new Promise(function (res, rej) { + resolve = function (value) { + wrapperPromise._debugInfo = _this._debugInfo; + res(value); + }; + reject = function (reason) { + wrapperPromise._debugInfo = _this._debugInfo; + rej(reason); + }; + }); + wrapperPromise.then(resolveCallback, rejectCallback); switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 798e8646814f54..b4703a820224ca 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 @@ -705,19 +705,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -743,17 +743,64 @@ function createErrorChunk(response, error) { return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -767,7 +814,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -777,7 +824,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -879,6 +926,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -887,52 +1018,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -944,7 +1029,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1048,25 +1146,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1319,8 +1469,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1328,10 +1478,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1473,8 +1623,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 54dfe3fb17c65e..952ed9ef1c94a6 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 @@ -1055,6 +1055,66 @@ registerBoundServerReference(action, id, null, encodeFormAction); return action; } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } function getArrayKind(array) { for (var kind = 0, i = 0; i < array.length; i++) { var value = array[i]; @@ -1092,14 +1152,62 @@ value = "null"; break; } else { - var objectToString = Object.prototype.toString.call(value); - objectToString = objectToString.slice(8, objectToString.length - 1); - if ("Array" === objectToString) { - var kind = getArrayKind(value); - if (2 === kind || 0 === kind) { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + 2 === propKey || 0 === propKey) + ) { value = JSON.stringify(value); break; - } else if (3 === kind) { + } else if (3 === propKey) { properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, "" @@ -1109,23 +1217,60 @@ propertyName < value.length; propertyName++ ) - (objectToString = value[propertyName]), + (typeName = value[propertyName]), addValueToProperties( - objectToString[0], - objectToString[1], + typeName[0], + typeName[1], properties, indent + 1 ); return; } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; } - "Object" === objectToString && - (kind = Object.getPrototypeOf(value)) && - "function" === typeof kind.constructor && - (objectToString = kind.constructor.name); + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, - "Object" === objectToString ? "" : objectToString + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName ]); 3 > indent && addObjectToProperties(value, properties, indent + 1); return; @@ -1137,7 +1282,7 @@ value = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value - ? "..." + ? "\u2026" : JSON.stringify(value); break; case "undefined": @@ -1307,66 +1452,6 @@ ); } } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) - return type.$$typeof === REACT_CLIENT_REFERENCE - ? null - : type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - case REACT_ACTIVITY_TYPE: - return "Activity"; - case REACT_VIEW_TRANSITION_TYPE: - return "ViewTransition"; - } - if ("object" === typeof type) - switch ( - ("number" === typeof type.tag && - console.error( - "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." - ), - type.$$typeof) - ) { - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_CONTEXT_TYPE: - return type.displayName || "Context"; - case REACT_CONSUMER_TYPE: - return (type._context.displayName || "Context") + ".Consumer"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || - ((type = innerType.displayName || innerType.name || ""), - (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); - return type; - case REACT_MEMO_TYPE: - return ( - (innerType = type.displayName || null), - null !== innerType - ? innerType - : getComponentNameFromType(type.type) || "Memo" - ); - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } function prepareStackTrace(error, structuredStackTrace) { error = (error.name || "Error") + ": " + (error.message || ""); for (var i = 0; i < structuredStackTrace.length; i++) @@ -1406,17 +1491,64 @@ return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1430,7 +1562,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1440,7 +1572,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1536,14 +1668,15 @@ var debugChannel = response._debugChannel; void 0 !== debugChannel && (debugChannel(""), (response._debugChannel = void 0)); - markAllTracksInOrder(); - flushComponentPerformance( - response, - getChunk(response, 0), - 0, - -Infinity, - -Infinity - ); + response._replayConsole && + (markAllTracksInOrder(), + flushComponentPerformance( + response, + getChunk(response, 0), + 0, + -Infinity, + -Infinity + )); } function nullRefGetter() { return null; @@ -1564,6 +1697,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1584,6 +1756,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1592,72 +1873,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1669,8 +1884,20 @@ deps: 1, errored: !1 }; - fulfill.isReactInternalListener = !0; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1799,18 +2026,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1830,7 +2097,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1839,6 +2105,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -2119,7 +2398,7 @@ this._debugChannel = debugChannel; this._replayConsole = replayConsole; this._rootEnvironmentName = environmentName; - markAllTracksInOrder(); + replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } function resolveDebugHalt(response, id) { @@ -2235,8 +2514,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -2244,10 +2523,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2772,23 +3051,25 @@ initializeFakeStack(response, ioInfo)); ioInfo.start += response._timeOrigin; ioInfo.end += response._timeOrigin; - response = response._rootEnvironmentName; - var promise = ioInfo.value; - if (promise) - switch (promise.status) { - case "fulfilled": - logIOInfo(ioInfo, response, promise.value); - break; - case "rejected": - logIOInfoErrored(ioInfo, response, promise.reason); - break; - default: - promise.then( - logIOInfo.bind(null, ioInfo, response), - logIOInfoErrored.bind(null, ioInfo, response) - ); - } - else logIOInfo(ioInfo, response, void 0); + if (response._replayConsole) { + response = response._rootEnvironmentName; + var promise = ioInfo.value; + if (promise) + switch (promise.status) { + case "fulfilled": + logIOInfo(ioInfo, response, promise.value); + break; + case "rejected": + logIOInfoErrored(ioInfo, response, promise.reason); + break; + default: + promise.then( + logIOInfo.bind(null, ioInfo, response), + logIOInfoErrored.bind(null, ioInfo, response) + ); + } + else logIOInfo(ioInfo, response, void 0); + } } function resolveIOInfo(response, id, model) { var chunks = response._chunks, @@ -2816,8 +3097,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2925,10 +3206,10 @@ root._children = trackIdx; componentInfo = -Infinity; info = trackIdx$jscomp$1; - for (var _i4 = 0; _i4 < entryName.length; _i4++) { + for (var _i5 = 0; _i5 < entryName.length; _i5++) { var childResult = flushComponentPerformance( response$jscomp$0, - entryName[_i4], + entryName[_i5], info, trackTime, parentEndTime @@ -2943,7 +3224,7 @@ if (previousEndTime) for ( childResult = 0, - _i4 = !0, + _i5 = !0, info = parentEndTime = -1, entryName = previousEndTime.length - 1; 0 <= entryName; @@ -2966,106 +3247,145 @@ startTime = trackTime, componentEndTime = childResult, childrenEndTime = componentInfo; - _i4 && - "rejected" === root.status && - root.reason !== response._closedReason - ? ((_i4 = root.reason), + if ( + _i5 && + "rejected" === root.status && + root.reason !== response._closedReason + ) + (_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + (componentEndTime = childrenEndTime), + (childrenEndTime = root.reason), supportsUserTiming && - ((childResult = componentInfo$jscomp$0.env), - (componentInfo$jscomp$0 = componentInfo$jscomp$0.name), - (childResult = - childResult === response._rootEnvironmentName || - void 0 === childResult + ((trackIdx$jscomp$0 = _i5.env), + (componentInfo$jscomp$0 = _i5.name), + (response = + trackIdx$jscomp$0 === response._rootEnvironmentName || + void 0 === trackIdx$jscomp$0 ? componentInfo$jscomp$0 : componentInfo$jscomp$0 + " [" + - childResult + + trackIdx$jscomp$0 + "]"), - performance.measure(childResult, { + (childrenEndTime = [ + [ + "Error", + "object" === typeof childrenEndTime && + null !== childrenEndTime && + "string" === typeof childrenEndTime.message + ? String(childrenEndTime.message) + : String(childrenEndTime) + ] + ]), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + childrenEndTime, + 0 + ), + null != _i5.props && + addObjectToProperties(_i5.props, childrenEndTime, 0), + performance.measure(response, { start: 0 > startTime ? 0 : startTime, - end: childrenEndTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: trackNames[trackIdx$jscomp$0], + track: trackNames[childResult], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Errored", - properties: [ - [ - "Error", - "object" === typeof _i4 && - null !== _i4 && - "string" === typeof _i4.message - ? String(_i4.message) - : String(_i4) - ] - ] + tooltipText: response + " Errored", + properties: childrenEndTime } } - }))) - : ((_i4 = trackIdx$jscomp$0), - (childResult = startTime), - (startTime = childrenEndTime), - supportsUserTiming && - 0 <= startTime && - 10 > _i4 && - ((childrenEndTime = componentInfo$jscomp$0.env), - (trackIdx$jscomp$0 = componentInfo$jscomp$0.name), - (response = - childrenEndTime === response._rootEnvironmentName), - (componentEndTime -= childResult), - (componentEndTime = - 0.5 > componentEndTime - ? response - ? "primary-light" - : "secondary-light" - : 50 > componentEndTime - ? response - ? "primary" - : "secondary" - : 500 > componentEndTime - ? response - ? "primary-dark" - : "secondary-dark" - : "error"), - (response = - response || void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), - (componentInfo$jscomp$0 = - componentInfo$jscomp$0.debugTask) - ? componentInfo$jscomp$0.run( - console.timeStamp.bind( - console, - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ) - ) - : console.timeStamp( - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ))); + })); + else if ( + ((_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + supportsUserTiming && + 0 <= childrenEndTime && + 10 > childResult) + ) { + trackIdx$jscomp$0 = _i5.env; + componentInfo$jscomp$0 = _i5.name; + var isPrimaryEnv = + trackIdx$jscomp$0 === response._rootEnvironmentName; + response = componentEndTime - startTime; + response = + 0.5 > response + ? isPrimaryEnv + ? "primary-light" + : "secondary-light" + : 50 > response + ? isPrimaryEnv + ? "primary" + : "secondary" + : 500 > response + ? isPrimaryEnv + ? "primary-dark" + : "secondary-dark" + : "error"; + componentEndTime = + isPrimaryEnv || void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + + " [" + + trackIdx$jscomp$0 + + "]"; + (trackIdx$jscomp$0 = _i5.debugTask) + ? ((componentInfo$jscomp$0 = []), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + componentInfo$jscomp$0, + 0 + ), + null != _i5.props && + addObjectToProperties( + _i5.props, + componentInfo$jscomp$0, + 0 + ), + trackIdx$jscomp$0.run( + performance.measure.bind( + performance, + componentEndTime, + { + start: 0 > startTime ? 0 : startTime, + end: childrenEndTime, + detail: { + devtools: { + color: response, + track: trackNames[childResult], + trackGroup: "Server Components \u269b", + properties: componentInfo$jscomp$0 + } + } + } + ) + )) + : console.timeStamp( + componentEndTime, + 0 > startTime ? 0 : startTime, + childrenEndTime, + trackNames[childResult], + "Server Components \u269b", + response + ); + } childResult = trackTime; trackIdx.component = candidateInfo; - _i4 = !1; + _i5 = !1; } else if (candidateInfo.awaited) if ( (parentEndTime > componentInfo && (componentInfo = parentEndTime), - (componentEndTime = response$jscomp$0._rootEnvironmentName), - (componentInfo$jscomp$0 = candidateInfo.awaited.value)) + (childrenEndTime = response$jscomp$0._rootEnvironmentName), + (response = candidateInfo.awaited.value)) ) switch ( - ((childrenEndTime = componentInfo$jscomp$0), - childrenEndTime.status) + ((trackIdx$jscomp$0 = response), trackIdx$jscomp$0.status) ) { case "fulfilled": logComponentAwait( @@ -3073,68 +3393,72 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, - childrenEndTime.value + childrenEndTime, + trackIdx$jscomp$0.value ); break; case "rejected": - componentInfo$jscomp$0 = trackIdx$jscomp$1; - response = trackTime; - startTime = parentEndTime; - childrenEndTime = childrenEndTime.reason; - if (supportsUserTiming && 0 < startTime) { - trackIdx$jscomp$0 = candidateInfo.env; - var name = candidateInfo.awaited.name; - componentEndTime = + response = trackIdx$jscomp$1; + startTime = trackTime; + componentEndTime = parentEndTime; + trackIdx$jscomp$0 = trackIdx$jscomp$0.reason; + supportsUserTiming && + 0 < componentEndTime && + ((componentInfo$jscomp$0 = candidateInfo.env), + (isPrimaryEnv = candidateInfo.awaited.name), + (childrenEndTime = "await " + - (trackIdx$jscomp$0 === componentEndTime || - void 0 === trackIdx$jscomp$0 - ? name - : name + " [" + trackIdx$jscomp$0 + "]"); + (componentInfo$jscomp$0 === childrenEndTime || + void 0 === componentInfo$jscomp$0 + ? isPrimaryEnv + : isPrimaryEnv + + " [" + + componentInfo$jscomp$0 + + "]")), (candidateInfo = candidateInfo.debugTask || candidateInfo.awaited.debugTask) ? candidateInfo.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: 0 > response ? 0 : response, - end: startTime, + start: 0 > startTime ? 0 : startTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: - trackNames[componentInfo$jscomp$0], + track: trackNames[response], trackGroup: "Server Components \u269b", properties: [ [ "Rejected", "object" === - typeof childrenEndTime && - null !== childrenEndTime && + typeof trackIdx$jscomp$0 && + null !== trackIdx$jscomp$0 && "string" === - typeof childrenEndTime.message - ? String(childrenEndTime.message) - : String(childrenEndTime) + typeof trackIdx$jscomp$0.message + ? String( + trackIdx$jscomp$0.message + ) + : String(trackIdx$jscomp$0) ] ], tooltipText: - componentEndTime + " Rejected" + childrenEndTime + " Rejected" } } } ) ) : console.timeStamp( + childrenEndTime, + 0 > startTime ? 0 : startTime, componentEndTime, - 0 > response ? 0 : response, - startTime, - trackNames[componentInfo$jscomp$0], + trackNames[response], "Server Components \u269b", "error" - ); - } + )); break; default: logComponentAwait( @@ -3142,7 +3466,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3152,7 +3476,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3166,76 +3490,91 @@ "string" === typeof candidateInfo.name ? (childResult > componentInfo && (componentInfo = childResult), - (_i4 = candidateInfo), - (childResult = response$jscomp$0._rootEnvironmentName), + (_i5 = candidateInfo), + (componentEndTime = + response$jscomp$0._rootEnvironmentName), + (childResult = _i5), + (candidateInfo = trackIdx$jscomp$1), + (response = trackTime), + (startTime = componentInfo), supportsUserTiming && - ((candidateInfo = _i4.env), - (componentInfo$jscomp$0 = _i4.name), - (childResult = - candidateInfo === childResult || - void 0 === candidateInfo - ? componentInfo$jscomp$0 - : componentInfo$jscomp$0 + - " [" + - candidateInfo + - "]"), - performance.measure(childResult, { - start: 0 > trackTime ? 0 : trackTime, - end: componentInfo, + ((childrenEndTime = childResult.env), + (trackIdx$jscomp$0 = childResult.name), + (componentEndTime = + childrenEndTime === componentEndTime || + void 0 === childrenEndTime + ? trackIdx$jscomp$0 + : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), + (childrenEndTime = [ + [ + "Aborted", + "The stream was aborted before this Component finished rendering." + ] + ]), + null != childResult.key && + addValueToProperties( + "key", + childResult.key, + childrenEndTime, + 0 + ), + null != childResult.props && + addObjectToProperties( + childResult.props, + childrenEndTime, + 0 + ), + performance.measure(componentEndTime, { + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", - track: trackNames[trackIdx$jscomp$1], + track: trackNames[candidateInfo], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Aborted", - properties: [ - [ - "Aborted", - "The stream was aborted before this Component finished rendering." - ] - ] + tooltipText: componentEndTime + " Aborted", + properties: childrenEndTime } } })), (childResult = trackTime), - (trackIdx.component = _i4), - (_i4 = !1)) + (trackIdx.component = _i5), + (_i5 = !1)) : candidateInfo.awaited && - ((startTime = candidateInfo), - (componentEndTime = + ((componentEndTime = candidateInfo), + (childrenEndTime = response$jscomp$0._rootEnvironmentName), - startTime.awaited.end > parentEndTime && - (parentEndTime = startTime.awaited.end), + componentEndTime.awaited.end > parentEndTime && + (parentEndTime = componentEndTime.awaited.end), parentEndTime > componentInfo && (componentInfo = parentEndTime), (candidateInfo = trackIdx$jscomp$1), - (componentInfo$jscomp$0 = trackTime), - (response = parentEndTime), + (response = trackTime), + (startTime = parentEndTime), supportsUserTiming && - 0 < response && - ((childrenEndTime = startTime.env), - (trackIdx$jscomp$0 = startTime.awaited.name), - (componentEndTime = + 0 < startTime && + ((trackIdx$jscomp$0 = componentEndTime.env), + (componentInfo$jscomp$0 = + componentEndTime.awaited.name), + (childrenEndTime = "await " + - (childrenEndTime === componentEndTime || - void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + + (trackIdx$jscomp$0 === childrenEndTime || + void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + " [" + - childrenEndTime + + trackIdx$jscomp$0 + "]")), - (startTime = - startTime.debugTask || startTime.awaited.debugTask) - ? startTime.run( + (componentEndTime = + componentEndTime.debugTask || + componentEndTime.awaited.debugTask) + ? componentEndTime.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - end: response, + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", @@ -3247,18 +3586,16 @@ "The stream was aborted before this Promise resolved." ] ], - tooltipText: componentEndTime + " Aborted" + tooltipText: childrenEndTime + " Aborted" } } } ) ) : console.timeStamp( - componentEndTime, - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - response, + childrenEndTime, + 0 > response ? 0 : response, + startTime, trackNames[candidateInfo], "Server Components \u269b", "warning" @@ -3475,98 +3812,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = createErrorChunk(response, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = createErrorChunk(response, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -3658,6 +3972,7 @@ /^ {3} at (?:(.+) \((.+):(\d+):(\d+)\)|(?:async )?(.+):(\d+):(\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\d+):(\d+)/, hasOwnProperty = Object.prototype.hasOwnProperty, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp && @@ -3667,7 +3982,6 @@ "Primary Parallel Parallel\u200b Parallel\u200b\u200b Parallel\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b".split( " " ), - REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), prefix, suffix; new ("function" === typeof WeakMap ? WeakMap : Map)(); @@ -3686,38 +4000,36 @@ case "resolved_module": initializeModuleChunk(this); } - if ("function" !== typeof resolve || !resolve.isReactInternalListener) { - var resolveCallback = resolve, - rejectCallback = reject, - wrapperPromise = new Promise(function (res, rej) { - resolve = function (value) { - wrapperPromise._debugInfo = _this._debugInfo; - res(value); - }; - reject = function (reason) { - wrapperPromise._debugInfo = _this._debugInfo; - rej(reason); - }; - }); - wrapperPromise.then(resolveCallback, rejectCallback); - } + var resolveCallback = resolve, + rejectCallback = reject, + wrapperPromise = new Promise(function (res, rej) { + resolve = function (value) { + wrapperPromise._debugInfo = _this._debugInfo; + res(value); + }; + reject = function (reason) { + wrapperPromise._debugInfo = _this._debugInfo; + rej(reason); + }; + }); + wrapperPromise.then(resolveCallback, rejectCallback); switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 c4346186a99aa3..3ba5e71d088d70 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 @@ -706,19 +706,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -744,17 +744,64 @@ function createErrorChunk(response, error) { return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -768,7 +815,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -778,7 +825,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -880,6 +927,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -888,52 +1019,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -945,7 +1030,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1049,25 +1147,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1320,8 +1470,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1329,10 +1479,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1474,8 +1624,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js index 83fc884de5b1d0..500f6330050600 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.development.js @@ -189,6 +189,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -667,7 +694,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -780,7 +807,7 @@ TaintRegistryPendingRequests.add(cleanupQueue); var hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -807,6 +834,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -883,7 +911,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -918,7 +946,7 @@ null !== thenable && thenable.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, thenable) - : emitErrorChunk(request, id, "", thenable), + : emitErrorChunk(request, id, "", thenable, !0), ref ); } @@ -943,7 +971,7 @@ null !== reason && reason.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, reason) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -998,7 +1026,7 @@ if (request.status === ABORTING) return ( request.abortableTasks.delete(newTask), - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : abortTask(newTask, request, request.fatalError), newTask.id @@ -1024,7 +1052,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && ((newTask.timed = !0), erroredTask(request, newTask, reason), enqueueFlush(request)); @@ -1034,9 +1062,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -1058,7 +1086,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1068,11 +1096,11 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal), enqueueFlush(request)); @@ -1108,9 +1136,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1145,7 +1173,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1156,11 +1184,11 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal.reason), @@ -1505,7 +1533,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1606,17 +1634,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1628,7 +1667,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1656,7 +1695,7 @@ request.writtenObjects.set(model, serializeByValueID(id)); var task = { id: id, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1748,39 +1787,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1790,7 +1803,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1844,7 +1893,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1862,12 +1911,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1880,7 +1961,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1890,11 +1971,11 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : (erroredTask(request, newTask, signal), enqueueFlush(request)); reader.cancel(signal).then(error, error); @@ -1931,8 +2012,8 @@ (parent.$$typeof === REACT_ELEMENT_TYPE || parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) { - task.status = ABORTED; - if (request.type === PRERENDER) + task.status = 3; + if (21 === request.type) return ( (task = request.nextChunkId++), (task = parent @@ -1983,7 +2064,7 @@ ? (logPostpone(request, key.message, task), emitPostponeChunk(request, prevKeyPath, key)) : ((task = logRecoverableError(request, key, task)), - emitErrorChunk(request, prevKeyPath, task, key)); + emitErrorChunk(request, prevKeyPath, task, key, !1)); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2094,8 +2175,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2345,7 +2429,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2394,7 +2478,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2424,7 +2508,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2438,13 +2532,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2480,7 +2574,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { if (TaintRegistryByteLengths.has(typedArray.byteLength)) { var tainted = TaintRegistryValues.get( String.fromCharCode.apply( @@ -2504,9 +2598,11 @@ tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2516,7 +2612,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2529,7 +2627,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2640,67 +2738,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2721,7 +2846,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2730,7 +2858,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2745,11 +2873,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2835,7 +2963,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2846,7 +2974,7 @@ function emitTimeOriginChunk(request, timeOrigin) { request.pendingChunks++; timeOrigin = stringToChunk(":N" + timeOrigin + "\n"); - request.completedRegularChunks.push(timeOrigin); + request.completedDebugChunks.push(timeOrigin); } function forwardDebugInfo(request$jscomp$1, task, debugInfo) { for (var id = task.id, i = 0; i < debugInfo.length; i++) { @@ -2897,7 +3025,7 @@ ); id$jscomp$1 = id$jscomp$1.toString(16) + ":J" + value + "\n"; id$jscomp$1 = stringToChunk(id$jscomp$1); - request$jscomp$0.completedRegularChunks.push(id$jscomp$1); + request$jscomp$0.completedDebugChunks.push(id$jscomp$1); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id$jscomp$0) @@ -2953,7 +3081,7 @@ timestamp -= request.timeOrigin; id = id.toString(16) + ':D{"time":' + timestamp + "}\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function markOperationEndTime(request, task, timestamp) { request.status !== ABORTING && @@ -2967,39 +3095,51 @@ "string" === typeof value && null !== byteLengthOfChunk ? ((task = TaintRegistryValues.get(value)), void 0 !== task && throwTaintViolation(task.message), - emitTextChunk(request, id, value)) + emitTextChunk(request, id, value, !1)) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { task.timed && markOperationEndTime(request, task, performance.now()); - task.status = ERRORED$1; + task.status = 4; if ( "object" === typeof error && null !== error && @@ -3009,15 +3149,15 @@ emitPostponeChunk(request, task.id, error); else { var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); } request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -3048,14 +3188,14 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), - request.type === PRERENDER + (task.status = 0), + 21 === request.type ? haltTask(task, request) : abortTask(task, request, request.fatalError); else { @@ -3068,7 +3208,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -3112,8 +3252,8 @@ } } function abortTask(task, request, errorId) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), task.timed && markOperationEndTime(request, task, performance.now()), (errorId = serializeByValueID(errorId)), @@ -3121,8 +3261,8 @@ request.completedErrorChunks.push(task)); } function haltTask(task, request) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), request.pendingChunks--); } @@ -3152,6 +3292,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3202,7 +3353,7 @@ return performWork(request); }); scheduleWork(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3221,7 +3372,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3241,7 +3392,7 @@ callOnAllReadyIfReady(request)); var abortableTasks = request.abortableTasks; if (0 < abortableTasks.size) { - if (request.type === PRERENDER) + if (21 === request.type) abortableTasks.forEach(function (task) { return haltTask(task, request); }); @@ -3275,7 +3426,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4564,16 +4715,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js index 6385289016272f..f7259df99cc56b 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.browser.production.js @@ -1471,8 +1471,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -2051,7 +2054,7 @@ function abort(request, reason) { errorId$27 = request.nextChunkId++; request.fatalError = errorId$27; request.pendingChunks++; - emitErrorChunk(request, errorId$27, digest, error); + emitErrorChunk(request, errorId$27, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId$27); }); diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js index b4e0ac33e4cc6b..976acda1a6cbf8 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.development.js @@ -202,6 +202,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -683,7 +710,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -796,7 +823,7 @@ TaintRegistryPendingRequests.add(cleanupQueue); var hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -823,6 +850,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -899,7 +927,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -939,7 +967,7 @@ null !== thenable && thenable.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, thenable) - : emitErrorChunk(request, id, "", thenable), + : emitErrorChunk(request, id, "", thenable, !0), ref ); } @@ -964,7 +992,7 @@ null !== reason && reason.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, reason) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -1019,7 +1047,7 @@ if (request.status === ABORTING) return ( request.abortableTasks.delete(newTask), - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : abortTask(newTask, request, request.fatalError), newTask.id @@ -1045,7 +1073,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && ((newTask.timed = !0), erroredTask(request, newTask, reason), enqueueFlush(request)); @@ -1055,9 +1083,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -1079,7 +1107,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1089,11 +1117,11 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal), enqueueFlush(request)); @@ -1129,9 +1157,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1166,7 +1194,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1177,11 +1205,11 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal.reason), @@ -1574,7 +1602,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1675,17 +1703,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1697,7 +1736,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1725,7 +1764,7 @@ request.writtenObjects.set(model, serializeByValueID(id)); var task = { id: id, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1817,39 +1856,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1859,7 +1872,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1913,7 +1962,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1931,12 +1980,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1949,7 +2030,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1959,11 +2040,11 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : (erroredTask(request, newTask, signal), enqueueFlush(request)); reader.cancel(signal).then(error, error); @@ -2000,8 +2081,8 @@ (parent.$$typeof === REACT_ELEMENT_TYPE || parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) { - task.status = ABORTED; - if (request.type === PRERENDER) + task.status = 3; + if (21 === request.type) return ( (task = request.nextChunkId++), (task = parent @@ -2052,7 +2133,7 @@ ? (logPostpone(request, key.message, task), emitPostponeChunk(request, prevKeyPath, key)) : ((task = logRecoverableError(request, key, task)), - emitErrorChunk(request, prevKeyPath, task, key)); + emitErrorChunk(request, prevKeyPath, task, key, !1)); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2163,8 +2244,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2436,7 +2520,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2485,7 +2569,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2515,7 +2599,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2529,13 +2623,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2571,7 +2665,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { if (TaintRegistryByteLengths.has(typedArray.byteLength)) { var tainted = TaintRegistryValues.get( String.fromCharCode.apply( @@ -2595,9 +2689,11 @@ tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2607,7 +2703,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2620,7 +2718,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2731,67 +2829,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2812,7 +2937,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2821,7 +2949,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2836,11 +2964,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2926,7 +3054,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2937,7 +3065,7 @@ function emitTimeOriginChunk(request, timeOrigin) { request.pendingChunks++; timeOrigin = stringToChunk(":N" + timeOrigin + "\n"); - request.completedRegularChunks.push(timeOrigin); + request.completedDebugChunks.push(timeOrigin); } function forwardDebugInfo(request$jscomp$1, task, debugInfo) { for (var id = task.id, i = 0; i < debugInfo.length; i++) { @@ -2988,7 +3116,7 @@ ); id$jscomp$1 = id$jscomp$1.toString(16) + ":J" + value + "\n"; id$jscomp$1 = stringToChunk(id$jscomp$1); - request$jscomp$0.completedRegularChunks.push(id$jscomp$1); + request$jscomp$0.completedDebugChunks.push(id$jscomp$1); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id$jscomp$0) @@ -3044,7 +3172,7 @@ timestamp -= request.timeOrigin; id = id.toString(16) + ':D{"time":' + timestamp + "}\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function markOperationEndTime(request, task, timestamp) { request.status !== ABORTING && @@ -3058,39 +3186,51 @@ "string" === typeof value && null !== byteLengthOfChunk ? ((task = TaintRegistryValues.get(value)), void 0 !== task && throwTaintViolation(task.message), - emitTextChunk(request, id, value)) + emitTextChunk(request, id, value, !1)) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { task.timed && markOperationEndTime(request, task, performance.now()); - task.status = ERRORED$1; + task.status = 4; if ( "object" === typeof error && null !== error && @@ -3100,15 +3240,15 @@ emitPostponeChunk(request, task.id, error); else { var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); } request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -3139,14 +3279,14 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), - request.type === PRERENDER + (task.status = 0), + 21 === request.type ? haltTask(task, request) : abortTask(task, request, request.fatalError); else { @@ -3159,7 +3299,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -3203,8 +3343,8 @@ } } function abortTask(task, request, errorId) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), task.timed && markOperationEndTime(request, task, performance.now()), (errorId = serializeByValueID(errorId)), @@ -3212,8 +3352,8 @@ request.completedErrorChunks.push(task)); } function haltTask(task, request) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), request.pendingChunks--); } @@ -3243,6 +3383,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3297,7 +3448,7 @@ return performWork(request); }); setTimeoutOrImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3316,7 +3467,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3336,7 +3487,7 @@ callOnAllReadyIfReady(request)); var abortableTasks = request.abortableTasks; if (0 < abortableTasks.size) { - if (request.type === PRERENDER) + if (21 === request.type) abortableTasks.forEach(function (task) { return haltTask(task, request); }); @@ -3370,7 +3521,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4659,16 +4810,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js index 086d51c0138126..fe4ad33ec360d4 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.edge.production.js @@ -1479,8 +1479,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -2067,7 +2070,7 @@ function abort(request, reason) { errorId$27 = request.nextChunkId++; request.fatalError = errorId$27; request.pendingChunks++; - emitErrorChunk(request, errorId$27, digest, error); + emitErrorChunk(request, errorId$27, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId$27); }); diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js index e4d0bf5dc4b8b8..bdb2054624056e 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.development.js @@ -220,6 +220,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -712,7 +739,7 @@ env, "Unknown Value: React could not send it from the server." ])); - request.completedRegularChunks.push(":W" + args + "\n"); + request.completedDebugChunks.push(":W" + args + "\n"); } return originalMethod.apply(this, arguments); }; @@ -825,7 +852,7 @@ TaintRegistryPendingRequests.add(cleanupQueue); var hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -852,6 +879,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -928,7 +956,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -965,7 +993,7 @@ null !== thenable && thenable.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, thenable) - : emitErrorChunk(request, id, "", thenable), + : emitErrorChunk(request, id, "", thenable, !0), ref ); } @@ -990,7 +1018,7 @@ null !== reason && reason.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, reason) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -1045,7 +1073,7 @@ if (request.status === ABORTING) return ( request.abortableTasks.delete(newTask), - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : abortTask(newTask, request, request.fatalError), newTask.id @@ -1071,7 +1099,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && ((newTask.timed = !0), erroredTask(request, newTask, reason), enqueueFlush(request)); @@ -1081,9 +1109,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(entry), request.abortableTasks.delete(streamTask), @@ -1105,7 +1133,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1115,11 +1143,11 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal), enqueueFlush(request)); @@ -1155,9 +1183,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1192,7 +1220,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1203,11 +1231,11 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal.reason), @@ -1572,7 +1600,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1673,17 +1701,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1817,7 +1856,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1845,7 +1884,7 @@ request.writtenObjects.set(model, serializeByValueID(id)); var task = { id: id, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1936,38 +1975,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - processedChunk = importId.toString(16) + ":I" + json + "\n"; - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1977,7 +1991,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -2031,7 +2081,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -2049,12 +2099,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -2067,7 +2149,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -2077,11 +2159,11 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : (erroredTask(request, newTask, signal), enqueueFlush(request)); reader.cancel(signal).then(error, error); @@ -2118,8 +2200,8 @@ (parent.$$typeof === REACT_ELEMENT_TYPE || parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) { - task.status = ABORTED; - if (request.type === PRERENDER) + task.status = 3; + if (21 === request.type) return ( (task = request.nextChunkId++), (task = parent @@ -2170,7 +2252,7 @@ ? (logPostpone(request, key.message, task), emitPostponeChunk(request, prevKeyPath, key)) : ((task = logRecoverableError(request, key, task)), - emitErrorChunk(request, prevKeyPath, task, key)); + emitErrorChunk(request, prevKeyPath, task, key, !1)); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2281,8 +2363,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2545,7 +2630,7 @@ cleanupTaintQueue(request); null !== request.destination ? ((request.status = CLOSED), request.destination.destroy(error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2593,7 +2678,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2622,7 +2707,16 @@ env: env }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2630,12 +2724,12 @@ } function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2695,7 +2789,7 @@ null != owner && (name.owner = owner); value = serializeDebugModel(request, objectLimit, name); id = id.toString(16) + ":J" + value + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function serializeIONode(request, ioNode, promiseRef) { var existingRef = request.writtenDebugObjects.get(ioNode); @@ -2757,7 +2851,7 @@ request.writtenDebugObjects.set(ioNode, existingRef); return existingRef; } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { if (TaintRegistryByteLengths.has(typedArray.byteLength)) { var tainted = TaintRegistryValues.get( String.fromCharCode.apply( @@ -2779,9 +2873,11 @@ ); tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2789,7 +2885,9 @@ request.pendingChunks++; var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2802,7 +2900,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2913,67 +3011,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2994,7 +3119,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -3003,7 +3131,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -3018,11 +3146,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -3107,7 +3235,7 @@ debugModelRoot = prevModelRoot; } id = id.toString(16) + ":" + json + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -3117,7 +3245,7 @@ } function emitTimeOriginChunk(request, timeOrigin) { request.pendingChunks++; - request.completedRegularChunks.push(":N" + timeOrigin + "\n"); + request.completedDebugChunks.push(":N" + timeOrigin + "\n"); } function forwardDebugInfo(request$jscomp$0, task, debugInfo) { for (var id = task.id, i = 0; i < debugInfo.length; i++) { @@ -3248,7 +3376,7 @@ request.pendingChunks++; timestamp -= request.timeOrigin; id = id.toString(16) + ':D{"time":' + timestamp + "}\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function advanceTaskTime(request, task, timestamp) { timestamp > task.time @@ -3269,33 +3397,45 @@ "string" === typeof value && null !== byteLengthOfChunk ? ((task = TaintRegistryValues.get(value)), void 0 !== task && throwTaintViolation(task.message), - emitTextChunk(request, id, value)) + emitTextChunk(request, id, value, !1)) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), (task = task.id.toString(16) + @@ -3306,7 +3446,7 @@ } function erroredTask(request, task, error) { task.timed && markOperationEndTime(request, task, performance.now()); - task.status = ERRORED$1; + task.status = 4; if ( "object" === typeof error && null !== error && @@ -3316,15 +3456,15 @@ emitPostponeChunk(request, task.id, error); else { var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); } request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -3356,14 +3496,14 @@ processedChunk = task.id.toString(16) + ":" + json + "\n"; request.completedRegularChunks.push(processedChunk); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), - request.type === PRERENDER + (task.status = 0), + 21 === request.type ? haltTask(task, request) : abortTask(task, request, request.fatalError); else { @@ -3376,7 +3516,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -3421,8 +3561,8 @@ } } function abortTask(task, request, errorId) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), task.timed && markOperationEndTime(request, task, performance.now()), (errorId = serializeByValueID(errorId)), @@ -3430,8 +3570,8 @@ request.completedErrorChunks.push(task)); } function haltTask(task, request) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), request.pendingChunks--); } @@ -3462,6 +3602,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3512,7 +3663,7 @@ requestStorage.run(request, performWork, request); }); setImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3531,7 +3682,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), destination.destroy(request.fatalError); else if (request.status !== CLOSED && null === request.destination) { request.destination = destination; @@ -3550,7 +3701,7 @@ callOnAllReadyIfReady(request)); var abortableTasks = request.abortableTasks; if (0 < abortableTasks.size) { - if (request.type === PRERENDER) + if (21 === request.type) abortableTasks.forEach(function (task) { return haltTask(task, request); }); @@ -3584,7 +3735,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -5100,16 +5251,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -5274,12 +5417,12 @@ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_202 = []; + var JSCompiler_object_inline_chunks_214 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_202.push(chunk); + JSCompiler_object_inline_chunks_214.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_202, { + var blob = new Blob(JSCompiler_object_inline_chunks_214, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js index 7ac89049515c94..92814e93106df1 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack-experimental/cjs/react-server-dom-turbopack-server.node.production.js @@ -1490,8 +1490,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -2084,7 +2087,7 @@ function abort(request, reason) { errorId$27 = request.nextChunkId++; request.fatalError = errorId$27; request.pendingChunks++; - emitErrorChunk(request, errorId$27, digest, error); + emitErrorChunk(request, errorId$27, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId$27); }); @@ -2973,12 +2976,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, turbopackMap, options) { "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_254 = []; + var JSCompiler_object_inline_chunks_255 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_254.push(chunk); + JSCompiler_object_inline_chunks_255.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_254, { + var blob = new Blob(JSCompiler_object_inline_chunks_255, { type: mimeType }); response._formData.append(name, blob, filename); 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 197ec4da858856..449f30111b8a7e 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-4db4b21c-20250626", - "react-dom": "0.0.0-experimental-4db4b21c-20250626" + "react": "0.0.0-experimental-65c4decb-20250630", + "react-dom": "0.0.0-experimental-65c4decb-20250630" } } \ 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 4a2554f00139f6..be0e33aed0931d 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 @@ -934,17 +934,64 @@ return new ReactPromise("pending", null, null); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -958,7 +1005,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -968,7 +1015,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1082,6 +1129,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1102,6 +1188,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1110,72 +1305,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1187,7 +1316,20 @@ deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1306,18 +1448,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1337,7 +1519,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1346,6 +1527,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1728,8 +1922,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -1737,10 +1931,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2248,8 +2442,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2394,98 +2588,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = new ReactPromise("rejected", null, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = new ReactPromise("rejected", null, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -2675,21 +2846,21 @@ } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, @@ -2805,10 +2976,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-canary-4db4b21c-20250626", + version: "19.2.0-canary-65c4decb-20250630", rendererPackageName: "react-server-dom-turbopack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-4db4b21c-20250626", + reconcilerVersion: "19.2.0-canary-65c4decb-20250630", getCurrentComponentInfo: function () { return currentOwnerInDEV; } 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 a7077d519fdff1..4f7a2b091d19da 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 @@ -534,19 +534,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -569,17 +569,64 @@ function readChunk(chunk) { } } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -593,7 +640,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -603,7 +650,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -705,6 +752,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -713,52 +844,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -770,7 +855,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -859,25 +957,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1125,8 +1275,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1134,10 +1284,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1279,8 +1429,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 56bb5c9957a0ac..200ca954216b6c 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 @@ -1146,17 +1146,64 @@ return new ReactPromise("pending", null, null); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1170,7 +1217,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1180,7 +1227,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1294,6 +1341,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1314,6 +1400,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1322,72 +1517,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1399,7 +1528,20 @@ deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1525,18 +1667,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1556,7 +1738,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1565,6 +1746,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1952,8 +2146,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -1961,10 +2155,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2472,8 +2666,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2618,98 +2812,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = new ReactPromise("rejected", null, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = new ReactPromise("rejected", null, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -2890,21 +3061,21 @@ } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 66fd9041294a37..7b9e85e30dbfd4 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 @@ -704,19 +704,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -739,17 +739,64 @@ function readChunk(chunk) { } } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -763,7 +810,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -773,7 +820,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -875,6 +922,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -883,52 +1014,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -940,7 +1025,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1044,25 +1142,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1315,8 +1465,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1324,10 +1474,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1469,8 +1619,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 1460a0aaa60c2b..7b5fc834e2eff5 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 @@ -1146,17 +1146,64 @@ return new ReactPromise("pending", null, null); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1170,7 +1217,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1180,7 +1227,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1294,6 +1341,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1314,6 +1400,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1322,72 +1517,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1399,7 +1528,20 @@ deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1525,18 +1667,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1556,7 +1738,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1565,6 +1746,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1952,8 +2146,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -1961,10 +2155,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2472,8 +2666,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2697,98 +2891,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = new ReactPromise("rejected", null, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = new ReactPromise("rejected", null, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -2897,21 +3068,21 @@ } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 e53bd49e858ac4..d7a17aaace43c8 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 @@ -705,19 +705,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -740,17 +740,64 @@ function readChunk(chunk) { } } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -764,7 +811,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -774,7 +821,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -876,6 +923,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -884,52 +1015,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -941,7 +1026,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1045,25 +1143,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1316,8 +1466,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1325,10 +1475,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1470,8 +1620,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js index f64b98b0dcac33..50a03115207239 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js @@ -189,6 +189,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -664,7 +691,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -759,7 +786,7 @@ pingedTasks = [], hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -786,6 +813,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -850,7 +878,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -879,7 +907,7 @@ ref ); case "rejected": - return emitErrorChunk(request, id, "", thenable.reason), ref; + return emitErrorChunk(request, id, "", thenable.reason, !0), ref; } if (request.status === ABORTING) return emitDebugHaltChunk(request, id), ref; @@ -898,7 +926,7 @@ ((cancelled = !0), request.status === ABORTING ? emitDebugHaltChunk(request, id) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -965,7 +993,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (erroredTask(request, newTask, reason), enqueueFlush(request)); } ); @@ -973,9 +1001,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -997,7 +1025,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1007,7 +1035,7 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; @@ -1045,9 +1073,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1082,7 +1110,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1093,7 +1121,7 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; @@ -1430,7 +1458,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1531,17 +1559,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1552,7 +1591,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1580,7 +1619,7 @@ request.writtenObjects.set(model, serializeByValueID(lastTimestamp)); var task = { id: lastTimestamp, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1670,39 +1709,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1712,7 +1725,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1766,7 +1815,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1784,12 +1833,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1802,7 +1883,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1812,7 +1893,7 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; @@ -1853,7 +1934,7 @@ parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) return ( - (task.status = ABORTED), + (task.status = 3), (task = request.fatalError), parent ? serializeLazyID(task) : serializeByValueID(task) ); @@ -1892,7 +1973,7 @@ request.pendingChunks++; prevKeyPath = request.nextChunkId++; task = logRecoverableError(request, key, task); - emitErrorChunk(request, prevKeyPath, task, key); + emitErrorChunk(request, prevKeyPath, task, key, !1); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2001,8 +2082,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2230,7 +2314,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2259,7 +2343,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2289,7 +2373,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2303,13 +2397,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2345,7 +2439,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { request.pendingChunks++; var buffer = new Uint8Array( typedArray.buffer, @@ -2356,9 +2450,11 @@ buffer = typedArray.byteLength; id = id.toString(16) + ":" + tag + buffer.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2368,7 +2464,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2381,7 +2479,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2492,67 +2590,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2573,7 +2698,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2582,7 +2710,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2597,11 +2725,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2687,7 +2815,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2744,7 +2872,7 @@ ); id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n"; id$jscomp$0 = stringToChunk(id$jscomp$0); - request$jscomp$0.completedRegularChunks.push(id$jscomp$0); + request$jscomp$0.completedDebugChunks.push(id$jscomp$0); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id) @@ -2780,47 +2908,59 @@ function emitChunk(request, task, value) { var id = task.id; "string" === typeof value && null !== byteLengthOfChunk - ? emitTextChunk(request, id, value) + ? emitTextChunk(request, id, value, !1) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { - task.status = ERRORED$1; + task.status = 4; var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -2850,13 +2990,13 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), + (task.status = 0), abortTask(task, request, request.fatalError); else { var x = @@ -2868,7 +3008,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -2912,8 +3052,8 @@ } } function abortTask(task, request, errorId) { - if (task.status !== RENDERING) { - task.status = ABORTED; + if (5 !== task.status) { + task.status = 3; var model = task.model; "object" === typeof model && null !== model && @@ -2950,6 +3090,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -2999,7 +3150,7 @@ return performWork(request); }); scheduleWork(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3018,7 +3169,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3054,7 +3205,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4340,16 +4491,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = !1, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js index 815850dc266088..bc40f1103afcd8 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js @@ -1419,8 +1419,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -1930,7 +1933,7 @@ function abort(request, reason) { errorId = request.nextChunkId++; request.fatalError = errorId; request.pendingChunks++; - emitErrorChunk(request, errorId, digest, error); + emitErrorChunk(request, errorId, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId); }); diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js index 1d98086862ddcc..455a5630014ce7 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js @@ -202,6 +202,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -680,7 +707,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -775,7 +802,7 @@ pingedTasks = [], hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -802,6 +829,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -866,7 +894,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -900,7 +928,7 @@ ref ); case "rejected": - return emitErrorChunk(request, id, "", thenable.reason), ref; + return emitErrorChunk(request, id, "", thenable.reason, !0), ref; } if (request.status === ABORTING) return emitDebugHaltChunk(request, id), ref; @@ -919,7 +947,7 @@ ((cancelled = !0), request.status === ABORTING ? emitDebugHaltChunk(request, id) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -986,7 +1014,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (erroredTask(request, newTask, reason), enqueueFlush(request)); } ); @@ -994,9 +1022,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -1018,7 +1046,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1028,7 +1056,7 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; @@ -1066,9 +1094,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1103,7 +1131,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1114,7 +1142,7 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; @@ -1499,7 +1527,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1600,17 +1628,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1621,7 +1660,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1649,7 +1688,7 @@ request.writtenObjects.set(model, serializeByValueID(lastTimestamp)); var task = { id: lastTimestamp, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1739,39 +1778,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1781,7 +1794,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1835,7 +1884,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1853,12 +1902,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1871,7 +1952,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1881,7 +1962,7 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; @@ -1922,7 +2003,7 @@ parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) return ( - (task.status = ABORTED), + (task.status = 3), (task = request.fatalError), parent ? serializeLazyID(task) : serializeByValueID(task) ); @@ -1961,7 +2042,7 @@ request.pendingChunks++; prevKeyPath = request.nextChunkId++; task = logRecoverableError(request, key, task); - emitErrorChunk(request, prevKeyPath, task, key); + emitErrorChunk(request, prevKeyPath, task, key, !1); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2070,8 +2151,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2310,7 +2394,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2339,7 +2423,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2369,7 +2453,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2383,13 +2477,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2425,7 +2519,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { request.pendingChunks++; var buffer = new Uint8Array( typedArray.buffer, @@ -2436,9 +2530,11 @@ buffer = typedArray.byteLength; id = id.toString(16) + ":" + tag + buffer.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2448,7 +2544,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2461,7 +2559,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2572,67 +2670,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2653,7 +2778,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2662,7 +2790,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2677,11 +2805,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2767,7 +2895,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2824,7 +2952,7 @@ ); id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n"; id$jscomp$0 = stringToChunk(id$jscomp$0); - request$jscomp$0.completedRegularChunks.push(id$jscomp$0); + request$jscomp$0.completedDebugChunks.push(id$jscomp$0); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id) @@ -2860,47 +2988,59 @@ function emitChunk(request, task, value) { var id = task.id; "string" === typeof value && null !== byteLengthOfChunk - ? emitTextChunk(request, id, value) + ? emitTextChunk(request, id, value, !1) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { - task.status = ERRORED$1; + task.status = 4; var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -2930,13 +3070,13 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), + (task.status = 0), abortTask(task, request, request.fatalError); else { var x = @@ -2948,7 +3088,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -2992,8 +3132,8 @@ } } function abortTask(task, request, errorId) { - if (task.status !== RENDERING) { - task.status = ABORTED; + if (5 !== task.status) { + task.status = 3; var model = task.model; "object" === typeof model && null !== model && @@ -3030,6 +3170,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3083,7 +3234,7 @@ return performWork(request); }); setTimeoutOrImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3102,7 +3253,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3138,7 +3289,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4424,16 +4575,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = !1, diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js index d0b71fb22f41fb..97b84f14e9594d 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js @@ -1427,8 +1427,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -1944,7 +1947,7 @@ function abort(request, reason) { errorId = request.nextChunkId++; request.fatalError = errorId; request.pendingChunks++; - emitErrorChunk(request, errorId, digest, error); + emitErrorChunk(request, errorId, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId); }); diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js index da88a82434a8af..0d8da7cb2105a8 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js @@ -220,6 +220,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -694,7 +721,7 @@ env, "Unknown Value: React could not send it from the server." ])); - request.completedRegularChunks.push(":W" + args + "\n"); + request.completedDebugChunks.push(":W" + args + "\n"); } return originalMethod.apply(this, arguments); }; @@ -789,7 +816,7 @@ pingedTasks = [], hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -816,6 +843,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -880,7 +908,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -911,7 +939,7 @@ ref ); case "rejected": - return emitErrorChunk(request, id, "", thenable.reason), ref; + return emitErrorChunk(request, id, "", thenable.reason, !0), ref; } if (request.status === ABORTING) return emitDebugHaltChunk(request, id), ref; @@ -930,7 +958,7 @@ ((cancelled = !0), request.status === ABORTING ? emitDebugHaltChunk(request, id) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -997,7 +1025,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (erroredTask(request, newTask, reason), enqueueFlush(request)); } ); @@ -1005,9 +1033,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(entry), request.abortableTasks.delete(streamTask), @@ -1029,7 +1057,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1039,7 +1067,7 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; @@ -1077,9 +1105,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1114,7 +1142,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1125,7 +1153,7 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; @@ -1487,7 +1515,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1588,17 +1616,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1609,7 +1648,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1637,7 +1676,7 @@ request.writtenObjects.set(model, serializeByValueID(lastTimestamp)); var task = { id: lastTimestamp, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1726,38 +1765,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - processedChunk = importId.toString(16) + ":I" + json + "\n"; - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1767,7 +1781,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1821,7 +1871,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1839,12 +1889,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); return serializeByValueID(bufferId); } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); + return serializeByValueID(bufferId); + } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1857,7 +1939,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1867,7 +1949,7 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; @@ -1908,7 +1990,7 @@ parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) return ( - (task.status = ABORTED), + (task.status = 3), (task = request.fatalError), parent ? serializeLazyID(task) : serializeByValueID(task) ); @@ -1947,7 +2029,7 @@ request.pendingChunks++; prevKeyPath = request.nextChunkId++; task = logRecoverableError(request, key, task); - emitErrorChunk(request, prevKeyPath, task, key); + emitErrorChunk(request, prevKeyPath, task, key, !1); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2056,8 +2138,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2291,7 +2376,7 @@ onFatalError(error); null !== request.destination ? ((request.status = CLOSED), request.destination.destroy(error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2320,7 +2405,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2349,7 +2434,16 @@ env: env }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2357,12 +2451,12 @@ } function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2398,7 +2492,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { request.pendingChunks++; typedArray = new Uint8Array( typedArray.buffer, @@ -2407,9 +2501,11 @@ ); var binaryLength = typedArray.byteLength; id = id.toString(16) + ":" + tag + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2417,7 +2513,9 @@ request.pendingChunks++; var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2430,7 +2528,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2541,67 +2639,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2622,7 +2747,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2631,7 +2759,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2646,11 +2774,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2735,7 +2863,7 @@ debugModelRoot = prevModelRoot; } id = id.toString(16) + ":" + json + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2791,7 +2919,7 @@ debugIOInfo ); id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n"; - request$jscomp$0.completedRegularChunks.push(id$jscomp$0); + request$jscomp$0.completedDebugChunks.push(id$jscomp$0); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id) @@ -2827,33 +2955,45 @@ function emitChunk(request, task, value) { var id = task.id; "string" === typeof value && null !== byteLengthOfChunk - ? emitTextChunk(request, id, value) + ? emitTextChunk(request, id, value, !1) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), (task = task.id.toString(16) + @@ -2863,16 +3003,16 @@ request.completedRegularChunks.push(task)); } function erroredTask(request, task, error) { - task.status = ERRORED$1; + task.status = 4; var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -2903,13 +3043,13 @@ processedChunk = task.id.toString(16) + ":" + json + "\n"; request.completedRegularChunks.push(processedChunk); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), + (task.status = 0), abortTask(task, request, request.fatalError); else { var x = @@ -2921,7 +3061,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -2965,8 +3105,8 @@ } } function abortTask(task, request, errorId) { - if (task.status !== RENDERING) { - task.status = ABORTED; + if (5 !== task.status) { + task.status = 3; var model = task.model; "object" === typeof model && null !== model && @@ -3004,6 +3144,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3053,7 +3204,7 @@ requestStorage.run(request, performWork, request); }); setImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3072,7 +3223,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), destination.destroy(request.fatalError); else if (request.status !== CLOSED && null === request.destination) { request.destination = destination; @@ -3107,7 +3258,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4483,16 +4634,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = !1, @@ -4651,12 +4794,12 @@ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_188 = []; + var JSCompiler_object_inline_chunks_200 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_188.push(chunk); + JSCompiler_object_inline_chunks_200.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_188, { + var blob = new Blob(JSCompiler_object_inline_chunks_200, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js index b6012c830800d9..13136e21cbf212 100644 --- a/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js @@ -1438,8 +1438,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -1965,7 +1968,7 @@ function abort(request, reason) { errorId = request.nextChunkId++; request.fatalError = errorId; request.pendingChunks++; - emitErrorChunk(request, errorId, digest, error); + emitErrorChunk(request, errorId, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId); }); @@ -2853,12 +2856,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, turbopackMap, options) { "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_244 = []; + var JSCompiler_object_inline_chunks_245 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_244.push(chunk); + JSCompiler_object_inline_chunks_245.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_244, { + var blob = new Blob(JSCompiler_object_inline_chunks_245, { type: mimeType }); response._formData.append(name, blob, filename); 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 363fe997d74758..d21e997930dcc4 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-4db4b21c-20250626", - "react-dom": "19.2.0-canary-4db4b21c-20250626" + "react": "19.2.0-canary-65c4decb-20250630", + "react-dom": "19.2.0-canary-65c4decb-20250630" } } \ 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 346c7847896dce..3c70f50290f245 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 @@ -856,6 +856,66 @@ +(error[4] || error[7]) ]; } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } function getArrayKind(array) { for (var kind = 0, i = 0; i < array.length; i++) { var value = array[i]; @@ -893,14 +953,62 @@ value = "null"; break; } else { - var objectToString = Object.prototype.toString.call(value); - objectToString = objectToString.slice(8, objectToString.length - 1); - if ("Array" === objectToString) { - var kind = getArrayKind(value); - if (2 === kind || 0 === kind) { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + 2 === propKey || 0 === propKey) + ) { value = JSON.stringify(value); break; - } else if (3 === kind) { + } else if (3 === propKey) { properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, "" @@ -910,23 +1018,60 @@ propertyName < value.length; propertyName++ ) - (objectToString = value[propertyName]), + (typeName = value[propertyName]), addValueToProperties( - objectToString[0], - objectToString[1], + typeName[0], + typeName[1], properties, indent + 1 ); return; } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; } - "Object" === objectToString && - (kind = Object.getPrototypeOf(value)) && - "function" === typeof kind.constructor && - (objectToString = kind.constructor.name); + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, - "Object" === objectToString ? "" : objectToString + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName ]); 3 > indent && addObjectToProperties(value, properties, indent + 1); return; @@ -938,7 +1083,7 @@ value = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value - ? "..." + ? "\u2026" : JSON.stringify(value); break; case "undefined": @@ -1108,66 +1253,6 @@ ); } } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) - return type.$$typeof === REACT_CLIENT_REFERENCE - ? null - : type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - case REACT_ACTIVITY_TYPE: - return "Activity"; - case REACT_VIEW_TRANSITION_TYPE: - return "ViewTransition"; - } - if ("object" === typeof type) - switch ( - ("number" === typeof type.tag && - console.error( - "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." - ), - type.$$typeof) - ) { - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_CONTEXT_TYPE: - return type.displayName || "Context"; - case REACT_CONSUMER_TYPE: - return (type._context.displayName || "Context") + ".Consumer"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || - ((type = innerType.displayName || innerType.name || ""), - (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); - return type; - case REACT_MEMO_TYPE: - return ( - (innerType = type.displayName || null), - null !== innerType - ? innerType - : getComponentNameFromType(type.type) || "Memo" - ); - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } function ReactPromise(status, value, reason) { this.status = status; this.value = value; @@ -1201,17 +1286,64 @@ return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1225,7 +1357,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1235,7 +1367,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1331,14 +1463,15 @@ var debugChannel = response._debugChannel; void 0 !== debugChannel && (debugChannel(""), (response._debugChannel = void 0)); - markAllTracksInOrder(); - flushComponentPerformance( - response, - getChunk(response, 0), - 0, - -Infinity, - -Infinity - ); + response._replayConsole && + (markAllTracksInOrder(), + flushComponentPerformance( + response, + getChunk(response, 0), + 0, + -Infinity, + -Infinity + )); } function nullRefGetter() { return null; @@ -1359,6 +1492,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1379,6 +1551,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1387,72 +1668,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1464,8 +1679,20 @@ deps: 1, errored: !1 }; - fulfill.isReactInternalListener = !0; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1587,18 +1814,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1618,7 +1885,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1627,6 +1893,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1907,7 +2186,7 @@ this._debugChannel = debugChannel; this._replayConsole = replayConsole; this._rootEnvironmentName = environmentName; - markAllTracksInOrder(); + replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } function resolveDebugHalt(response, id) { @@ -2018,8 +2297,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -2027,10 +2306,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2555,23 +2834,25 @@ initializeFakeStack(response, ioInfo)); ioInfo.start += response._timeOrigin; ioInfo.end += response._timeOrigin; - response = response._rootEnvironmentName; - var promise = ioInfo.value; - if (promise) - switch (promise.status) { - case "fulfilled": - logIOInfo(ioInfo, response, promise.value); - break; - case "rejected": - logIOInfoErrored(ioInfo, response, promise.reason); - break; - default: - promise.then( - logIOInfo.bind(null, ioInfo, response), - logIOInfoErrored.bind(null, ioInfo, response) - ); - } - else logIOInfo(ioInfo, response, void 0); + if (response._replayConsole) { + response = response._rootEnvironmentName; + var promise = ioInfo.value; + if (promise) + switch (promise.status) { + case "fulfilled": + logIOInfo(ioInfo, response, promise.value); + break; + case "rejected": + logIOInfoErrored(ioInfo, response, promise.reason); + break; + default: + promise.then( + logIOInfo.bind(null, ioInfo, response), + logIOInfoErrored.bind(null, ioInfo, response) + ); + } + else logIOInfo(ioInfo, response, void 0); + } } function resolveIOInfo(response, id, model) { var chunks = response._chunks, @@ -2599,8 +2880,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2708,10 +2989,10 @@ root._children = trackIdx; componentInfo = -Infinity; info = trackIdx$jscomp$1; - for (var _i4 = 0; _i4 < entryName.length; _i4++) { + for (var _i5 = 0; _i5 < entryName.length; _i5++) { var childResult = flushComponentPerformance( response$jscomp$0, - entryName[_i4], + entryName[_i5], info, trackTime, parentEndTime @@ -2726,7 +3007,7 @@ if (previousEndTime) for ( childResult = 0, - _i4 = !0, + _i5 = !0, info = parentEndTime = -1, entryName = previousEndTime.length - 1; 0 <= entryName; @@ -2749,106 +3030,145 @@ startTime = trackTime, componentEndTime = childResult, childrenEndTime = componentInfo; - _i4 && - "rejected" === root.status && - root.reason !== response._closedReason - ? ((_i4 = root.reason), + if ( + _i5 && + "rejected" === root.status && + root.reason !== response._closedReason + ) + (_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + (componentEndTime = childrenEndTime), + (childrenEndTime = root.reason), supportsUserTiming && - ((childResult = componentInfo$jscomp$0.env), - (componentInfo$jscomp$0 = componentInfo$jscomp$0.name), - (childResult = - childResult === response._rootEnvironmentName || - void 0 === childResult + ((trackIdx$jscomp$0 = _i5.env), + (componentInfo$jscomp$0 = _i5.name), + (response = + trackIdx$jscomp$0 === response._rootEnvironmentName || + void 0 === trackIdx$jscomp$0 ? componentInfo$jscomp$0 : componentInfo$jscomp$0 + " [" + - childResult + + trackIdx$jscomp$0 + "]"), - performance.measure(childResult, { + (childrenEndTime = [ + [ + "Error", + "object" === typeof childrenEndTime && + null !== childrenEndTime && + "string" === typeof childrenEndTime.message + ? String(childrenEndTime.message) + : String(childrenEndTime) + ] + ]), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + childrenEndTime, + 0 + ), + null != _i5.props && + addObjectToProperties(_i5.props, childrenEndTime, 0), + performance.measure(response, { start: 0 > startTime ? 0 : startTime, - end: childrenEndTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: trackNames[trackIdx$jscomp$0], + track: trackNames[childResult], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Errored", - properties: [ - [ - "Error", - "object" === typeof _i4 && - null !== _i4 && - "string" === typeof _i4.message - ? String(_i4.message) - : String(_i4) - ] - ] + tooltipText: response + " Errored", + properties: childrenEndTime } } - }))) - : ((_i4 = trackIdx$jscomp$0), - (childResult = startTime), - (startTime = childrenEndTime), - supportsUserTiming && - 0 <= startTime && - 10 > _i4 && - ((childrenEndTime = componentInfo$jscomp$0.env), - (trackIdx$jscomp$0 = componentInfo$jscomp$0.name), - (response = - childrenEndTime === response._rootEnvironmentName), - (componentEndTime -= childResult), - (componentEndTime = - 0.5 > componentEndTime - ? response - ? "primary-light" - : "secondary-light" - : 50 > componentEndTime - ? response - ? "primary" - : "secondary" - : 500 > componentEndTime - ? response - ? "primary-dark" - : "secondary-dark" - : "error"), - (response = - response || void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), - (componentInfo$jscomp$0 = - componentInfo$jscomp$0.debugTask) - ? componentInfo$jscomp$0.run( - console.timeStamp.bind( - console, - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ) - ) - : console.timeStamp( - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ))); + })); + else if ( + ((_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + supportsUserTiming && + 0 <= childrenEndTime && + 10 > childResult) + ) { + trackIdx$jscomp$0 = _i5.env; + componentInfo$jscomp$0 = _i5.name; + var isPrimaryEnv = + trackIdx$jscomp$0 === response._rootEnvironmentName; + response = componentEndTime - startTime; + response = + 0.5 > response + ? isPrimaryEnv + ? "primary-light" + : "secondary-light" + : 50 > response + ? isPrimaryEnv + ? "primary" + : "secondary" + : 500 > response + ? isPrimaryEnv + ? "primary-dark" + : "secondary-dark" + : "error"; + componentEndTime = + isPrimaryEnv || void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + + " [" + + trackIdx$jscomp$0 + + "]"; + (trackIdx$jscomp$0 = _i5.debugTask) + ? ((componentInfo$jscomp$0 = []), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + componentInfo$jscomp$0, + 0 + ), + null != _i5.props && + addObjectToProperties( + _i5.props, + componentInfo$jscomp$0, + 0 + ), + trackIdx$jscomp$0.run( + performance.measure.bind( + performance, + componentEndTime, + { + start: 0 > startTime ? 0 : startTime, + end: childrenEndTime, + detail: { + devtools: { + color: response, + track: trackNames[childResult], + trackGroup: "Server Components \u269b", + properties: componentInfo$jscomp$0 + } + } + } + ) + )) + : console.timeStamp( + componentEndTime, + 0 > startTime ? 0 : startTime, + childrenEndTime, + trackNames[childResult], + "Server Components \u269b", + response + ); + } childResult = trackTime; trackIdx.component = candidateInfo; - _i4 = !1; + _i5 = !1; } else if (candidateInfo.awaited) if ( (parentEndTime > componentInfo && (componentInfo = parentEndTime), - (componentEndTime = response$jscomp$0._rootEnvironmentName), - (componentInfo$jscomp$0 = candidateInfo.awaited.value)) + (childrenEndTime = response$jscomp$0._rootEnvironmentName), + (response = candidateInfo.awaited.value)) ) switch ( - ((childrenEndTime = componentInfo$jscomp$0), - childrenEndTime.status) + ((trackIdx$jscomp$0 = response), trackIdx$jscomp$0.status) ) { case "fulfilled": logComponentAwait( @@ -2856,68 +3176,72 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, - childrenEndTime.value + childrenEndTime, + trackIdx$jscomp$0.value ); break; case "rejected": - componentInfo$jscomp$0 = trackIdx$jscomp$1; - response = trackTime; - startTime = parentEndTime; - childrenEndTime = childrenEndTime.reason; - if (supportsUserTiming && 0 < startTime) { - trackIdx$jscomp$0 = candidateInfo.env; - var name = candidateInfo.awaited.name; - componentEndTime = + response = trackIdx$jscomp$1; + startTime = trackTime; + componentEndTime = parentEndTime; + trackIdx$jscomp$0 = trackIdx$jscomp$0.reason; + supportsUserTiming && + 0 < componentEndTime && + ((componentInfo$jscomp$0 = candidateInfo.env), + (isPrimaryEnv = candidateInfo.awaited.name), + (childrenEndTime = "await " + - (trackIdx$jscomp$0 === componentEndTime || - void 0 === trackIdx$jscomp$0 - ? name - : name + " [" + trackIdx$jscomp$0 + "]"); + (componentInfo$jscomp$0 === childrenEndTime || + void 0 === componentInfo$jscomp$0 + ? isPrimaryEnv + : isPrimaryEnv + + " [" + + componentInfo$jscomp$0 + + "]")), (candidateInfo = candidateInfo.debugTask || candidateInfo.awaited.debugTask) ? candidateInfo.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: 0 > response ? 0 : response, - end: startTime, + start: 0 > startTime ? 0 : startTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: - trackNames[componentInfo$jscomp$0], + track: trackNames[response], trackGroup: "Server Components \u269b", properties: [ [ "Rejected", "object" === - typeof childrenEndTime && - null !== childrenEndTime && + typeof trackIdx$jscomp$0 && + null !== trackIdx$jscomp$0 && "string" === - typeof childrenEndTime.message - ? String(childrenEndTime.message) - : String(childrenEndTime) + typeof trackIdx$jscomp$0.message + ? String( + trackIdx$jscomp$0.message + ) + : String(trackIdx$jscomp$0) ] ], tooltipText: - componentEndTime + " Rejected" + childrenEndTime + " Rejected" } } } ) ) : console.timeStamp( + childrenEndTime, + 0 > startTime ? 0 : startTime, componentEndTime, - 0 > response ? 0 : response, - startTime, - trackNames[componentInfo$jscomp$0], + trackNames[response], "Server Components \u269b", "error" - ); - } + )); break; default: logComponentAwait( @@ -2925,7 +3249,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -2935,7 +3259,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -2949,76 +3273,91 @@ "string" === typeof candidateInfo.name ? (childResult > componentInfo && (componentInfo = childResult), - (_i4 = candidateInfo), - (childResult = response$jscomp$0._rootEnvironmentName), + (_i5 = candidateInfo), + (componentEndTime = + response$jscomp$0._rootEnvironmentName), + (childResult = _i5), + (candidateInfo = trackIdx$jscomp$1), + (response = trackTime), + (startTime = componentInfo), supportsUserTiming && - ((candidateInfo = _i4.env), - (componentInfo$jscomp$0 = _i4.name), - (childResult = - candidateInfo === childResult || - void 0 === candidateInfo - ? componentInfo$jscomp$0 - : componentInfo$jscomp$0 + - " [" + - candidateInfo + - "]"), - performance.measure(childResult, { - start: 0 > trackTime ? 0 : trackTime, - end: componentInfo, + ((childrenEndTime = childResult.env), + (trackIdx$jscomp$0 = childResult.name), + (componentEndTime = + childrenEndTime === componentEndTime || + void 0 === childrenEndTime + ? trackIdx$jscomp$0 + : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), + (childrenEndTime = [ + [ + "Aborted", + "The stream was aborted before this Component finished rendering." + ] + ]), + null != childResult.key && + addValueToProperties( + "key", + childResult.key, + childrenEndTime, + 0 + ), + null != childResult.props && + addObjectToProperties( + childResult.props, + childrenEndTime, + 0 + ), + performance.measure(componentEndTime, { + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", - track: trackNames[trackIdx$jscomp$1], + track: trackNames[candidateInfo], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Aborted", - properties: [ - [ - "Aborted", - "The stream was aborted before this Component finished rendering." - ] - ] + tooltipText: componentEndTime + " Aborted", + properties: childrenEndTime } } })), (childResult = trackTime), - (trackIdx.component = _i4), - (_i4 = !1)) + (trackIdx.component = _i5), + (_i5 = !1)) : candidateInfo.awaited && - ((startTime = candidateInfo), - (componentEndTime = + ((componentEndTime = candidateInfo), + (childrenEndTime = response$jscomp$0._rootEnvironmentName), - startTime.awaited.end > parentEndTime && - (parentEndTime = startTime.awaited.end), + componentEndTime.awaited.end > parentEndTime && + (parentEndTime = componentEndTime.awaited.end), parentEndTime > componentInfo && (componentInfo = parentEndTime), (candidateInfo = trackIdx$jscomp$1), - (componentInfo$jscomp$0 = trackTime), - (response = parentEndTime), + (response = trackTime), + (startTime = parentEndTime), supportsUserTiming && - 0 < response && - ((childrenEndTime = startTime.env), - (trackIdx$jscomp$0 = startTime.awaited.name), - (componentEndTime = + 0 < startTime && + ((trackIdx$jscomp$0 = componentEndTime.env), + (componentInfo$jscomp$0 = + componentEndTime.awaited.name), + (childrenEndTime = "await " + - (childrenEndTime === componentEndTime || - void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + + (trackIdx$jscomp$0 === childrenEndTime || + void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + " [" + - childrenEndTime + + trackIdx$jscomp$0 + "]")), - (startTime = - startTime.debugTask || startTime.awaited.debugTask) - ? startTime.run( + (componentEndTime = + componentEndTime.debugTask || + componentEndTime.awaited.debugTask) + ? componentEndTime.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - end: response, + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", @@ -3030,18 +3369,16 @@ "The stream was aborted before this Promise resolved." ] ], - tooltipText: componentEndTime + " Aborted" + tooltipText: childrenEndTime + " Aborted" } } } ) ) : console.timeStamp( - componentEndTime, - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - response, + childrenEndTime, + 0 > response ? 0 : response, + startTime, trackNames[candidateInfo], "Server Components \u269b", "warning" @@ -3179,98 +3516,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = createErrorChunk(response, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = createErrorChunk(response, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -3451,6 +3765,7 @@ /^ {3} at (?:(.+) \((.+):(\d+):(\d+)\)|(?:async )?(.+):(\d+):(\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\d+):(\d+)/, hasOwnProperty = Object.prototype.hasOwnProperty, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp && @@ -3460,7 +3775,6 @@ "Primary Parallel Parallel\u200b Parallel\u200b\u200b Parallel\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b".split( " " ), - REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), prefix, suffix; new ("function" === typeof WeakMap ? WeakMap : Map)(); @@ -3479,38 +3793,36 @@ case "resolved_module": initializeModuleChunk(this); } - if ("function" !== typeof resolve || !resolve.isReactInternalListener) { - var resolveCallback = resolve, - rejectCallback = reject, - wrapperPromise = new Promise(function (res, rej) { - resolve = function (value) { - wrapperPromise._debugInfo = _this._debugInfo; - res(value); - }; - reject = function (reason) { - wrapperPromise._debugInfo = _this._debugInfo; - rej(reason); - }; - }); - wrapperPromise.then(resolveCallback, rejectCallback); - } + var resolveCallback = resolve, + rejectCallback = reject, + wrapperPromise = new Promise(function (res, rej) { + resolve = function (value) { + wrapperPromise._debugInfo = _this._debugInfo; + res(value); + }; + reject = function (reason) { + wrapperPromise._debugInfo = _this._debugInfo; + rej(reason); + }; + }); + wrapperPromise.then(resolveCallback, rejectCallback); switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, @@ -3627,10 +3939,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-experimental-4db4b21c-20250626", + version: "19.2.0-experimental-65c4decb-20250630", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-experimental-4db4b21c-20250626", + reconcilerVersion: "19.2.0-experimental-65c4decb-20250630", getCurrentComponentInfo: function () { return currentOwnerInDEV; } 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 f9c8d4f2785cdf..39522ccd8bab49 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 @@ -547,19 +547,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -585,17 +585,64 @@ function createErrorChunk(response, error) { return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -609,7 +656,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -619,7 +666,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -721,6 +768,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -729,52 +860,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -786,7 +871,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -875,25 +973,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1141,8 +1291,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1150,10 +1300,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1295,8 +1445,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 9d2eacb327ed51..5475f8c772136e 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 @@ -1058,6 +1058,66 @@ registerBoundServerReference(action, id, null, encodeFormAction); return action; } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } function getArrayKind(array) { for (var kind = 0, i = 0; i < array.length; i++) { var value = array[i]; @@ -1095,14 +1155,62 @@ value = "null"; break; } else { - var objectToString = Object.prototype.toString.call(value); - objectToString = objectToString.slice(8, objectToString.length - 1); - if ("Array" === objectToString) { - var kind = getArrayKind(value); - if (2 === kind || 0 === kind) { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + 2 === propKey || 0 === propKey) + ) { value = JSON.stringify(value); break; - } else if (3 === kind) { + } else if (3 === propKey) { properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, "" @@ -1112,23 +1220,60 @@ propertyName < value.length; propertyName++ ) - (objectToString = value[propertyName]), + (typeName = value[propertyName]), addValueToProperties( - objectToString[0], - objectToString[1], + typeName[0], + typeName[1], properties, indent + 1 ); return; } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; } - "Object" === objectToString && - (kind = Object.getPrototypeOf(value)) && - "function" === typeof kind.constructor && - (objectToString = kind.constructor.name); + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, - "Object" === objectToString ? "" : objectToString + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName ]); 3 > indent && addObjectToProperties(value, properties, indent + 1); return; @@ -1140,7 +1285,7 @@ value = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value - ? "..." + ? "\u2026" : JSON.stringify(value); break; case "undefined": @@ -1310,66 +1455,6 @@ ); } } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) - return type.$$typeof === REACT_CLIENT_REFERENCE - ? null - : type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - case REACT_ACTIVITY_TYPE: - return "Activity"; - case REACT_VIEW_TRANSITION_TYPE: - return "ViewTransition"; - } - if ("object" === typeof type) - switch ( - ("number" === typeof type.tag && - console.error( - "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." - ), - type.$$typeof) - ) { - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_CONTEXT_TYPE: - return type.displayName || "Context"; - case REACT_CONSUMER_TYPE: - return (type._context.displayName || "Context") + ".Consumer"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || - ((type = innerType.displayName || innerType.name || ""), - (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); - return type; - case REACT_MEMO_TYPE: - return ( - (innerType = type.displayName || null), - null !== innerType - ? innerType - : getComponentNameFromType(type.type) || "Memo" - ); - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } function prepareStackTrace(error, structuredStackTrace) { error = (error.name || "Error") + ": " + (error.message || ""); for (var i = 0; i < structuredStackTrace.length; i++) @@ -1409,17 +1494,64 @@ return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1433,7 +1565,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1443,7 +1575,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1539,14 +1671,15 @@ var debugChannel = response._debugChannel; void 0 !== debugChannel && (debugChannel(""), (response._debugChannel = void 0)); - markAllTracksInOrder(); - flushComponentPerformance( - response, - getChunk(response, 0), - 0, - -Infinity, - -Infinity - ); + response._replayConsole && + (markAllTracksInOrder(), + flushComponentPerformance( + response, + getChunk(response, 0), + 0, + -Infinity, + -Infinity + )); } function nullRefGetter() { return null; @@ -1567,6 +1700,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1587,6 +1759,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1595,72 +1876,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1672,8 +1887,20 @@ deps: 1, errored: !1 }; - fulfill.isReactInternalListener = !0; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1802,18 +2029,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1833,7 +2100,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1842,6 +2108,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -2122,7 +2401,7 @@ this._debugChannel = debugChannel; this._replayConsole = replayConsole; this._rootEnvironmentName = environmentName; - markAllTracksInOrder(); + replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } function resolveDebugHalt(response, id) { @@ -2238,8 +2517,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -2247,10 +2526,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2775,23 +3054,25 @@ initializeFakeStack(response, ioInfo)); ioInfo.start += response._timeOrigin; ioInfo.end += response._timeOrigin; - response = response._rootEnvironmentName; - var promise = ioInfo.value; - if (promise) - switch (promise.status) { - case "fulfilled": - logIOInfo(ioInfo, response, promise.value); - break; - case "rejected": - logIOInfoErrored(ioInfo, response, promise.reason); - break; - default: - promise.then( - logIOInfo.bind(null, ioInfo, response), - logIOInfoErrored.bind(null, ioInfo, response) - ); - } - else logIOInfo(ioInfo, response, void 0); + if (response._replayConsole) { + response = response._rootEnvironmentName; + var promise = ioInfo.value; + if (promise) + switch (promise.status) { + case "fulfilled": + logIOInfo(ioInfo, response, promise.value); + break; + case "rejected": + logIOInfoErrored(ioInfo, response, promise.reason); + break; + default: + promise.then( + logIOInfo.bind(null, ioInfo, response), + logIOInfoErrored.bind(null, ioInfo, response) + ); + } + else logIOInfo(ioInfo, response, void 0); + } } function resolveIOInfo(response, id, model) { var chunks = response._chunks, @@ -2819,8 +3100,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2928,10 +3209,10 @@ root._children = trackIdx; componentInfo = -Infinity; info = trackIdx$jscomp$1; - for (var _i4 = 0; _i4 < entryName.length; _i4++) { + for (var _i5 = 0; _i5 < entryName.length; _i5++) { var childResult = flushComponentPerformance( response$jscomp$0, - entryName[_i4], + entryName[_i5], info, trackTime, parentEndTime @@ -2946,7 +3227,7 @@ if (previousEndTime) for ( childResult = 0, - _i4 = !0, + _i5 = !0, info = parentEndTime = -1, entryName = previousEndTime.length - 1; 0 <= entryName; @@ -2969,106 +3250,145 @@ startTime = trackTime, componentEndTime = childResult, childrenEndTime = componentInfo; - _i4 && - "rejected" === root.status && - root.reason !== response._closedReason - ? ((_i4 = root.reason), + if ( + _i5 && + "rejected" === root.status && + root.reason !== response._closedReason + ) + (_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + (componentEndTime = childrenEndTime), + (childrenEndTime = root.reason), supportsUserTiming && - ((childResult = componentInfo$jscomp$0.env), - (componentInfo$jscomp$0 = componentInfo$jscomp$0.name), - (childResult = - childResult === response._rootEnvironmentName || - void 0 === childResult + ((trackIdx$jscomp$0 = _i5.env), + (componentInfo$jscomp$0 = _i5.name), + (response = + trackIdx$jscomp$0 === response._rootEnvironmentName || + void 0 === trackIdx$jscomp$0 ? componentInfo$jscomp$0 : componentInfo$jscomp$0 + " [" + - childResult + + trackIdx$jscomp$0 + "]"), - performance.measure(childResult, { + (childrenEndTime = [ + [ + "Error", + "object" === typeof childrenEndTime && + null !== childrenEndTime && + "string" === typeof childrenEndTime.message + ? String(childrenEndTime.message) + : String(childrenEndTime) + ] + ]), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + childrenEndTime, + 0 + ), + null != _i5.props && + addObjectToProperties(_i5.props, childrenEndTime, 0), + performance.measure(response, { start: 0 > startTime ? 0 : startTime, - end: childrenEndTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: trackNames[trackIdx$jscomp$0], + track: trackNames[childResult], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Errored", - properties: [ - [ - "Error", - "object" === typeof _i4 && - null !== _i4 && - "string" === typeof _i4.message - ? String(_i4.message) - : String(_i4) - ] - ] + tooltipText: response + " Errored", + properties: childrenEndTime } } - }))) - : ((_i4 = trackIdx$jscomp$0), - (childResult = startTime), - (startTime = childrenEndTime), - supportsUserTiming && - 0 <= startTime && - 10 > _i4 && - ((childrenEndTime = componentInfo$jscomp$0.env), - (trackIdx$jscomp$0 = componentInfo$jscomp$0.name), - (response = - childrenEndTime === response._rootEnvironmentName), - (componentEndTime -= childResult), - (componentEndTime = - 0.5 > componentEndTime - ? response - ? "primary-light" - : "secondary-light" - : 50 > componentEndTime - ? response - ? "primary" - : "secondary" - : 500 > componentEndTime - ? response - ? "primary-dark" - : "secondary-dark" - : "error"), - (response = - response || void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), - (componentInfo$jscomp$0 = - componentInfo$jscomp$0.debugTask) - ? componentInfo$jscomp$0.run( - console.timeStamp.bind( - console, - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ) - ) - : console.timeStamp( - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ))); + })); + else if ( + ((_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + supportsUserTiming && + 0 <= childrenEndTime && + 10 > childResult) + ) { + trackIdx$jscomp$0 = _i5.env; + componentInfo$jscomp$0 = _i5.name; + var isPrimaryEnv = + trackIdx$jscomp$0 === response._rootEnvironmentName; + response = componentEndTime - startTime; + response = + 0.5 > response + ? isPrimaryEnv + ? "primary-light" + : "secondary-light" + : 50 > response + ? isPrimaryEnv + ? "primary" + : "secondary" + : 500 > response + ? isPrimaryEnv + ? "primary-dark" + : "secondary-dark" + : "error"; + componentEndTime = + isPrimaryEnv || void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + + " [" + + trackIdx$jscomp$0 + + "]"; + (trackIdx$jscomp$0 = _i5.debugTask) + ? ((componentInfo$jscomp$0 = []), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + componentInfo$jscomp$0, + 0 + ), + null != _i5.props && + addObjectToProperties( + _i5.props, + componentInfo$jscomp$0, + 0 + ), + trackIdx$jscomp$0.run( + performance.measure.bind( + performance, + componentEndTime, + { + start: 0 > startTime ? 0 : startTime, + end: childrenEndTime, + detail: { + devtools: { + color: response, + track: trackNames[childResult], + trackGroup: "Server Components \u269b", + properties: componentInfo$jscomp$0 + } + } + } + ) + )) + : console.timeStamp( + componentEndTime, + 0 > startTime ? 0 : startTime, + childrenEndTime, + trackNames[childResult], + "Server Components \u269b", + response + ); + } childResult = trackTime; trackIdx.component = candidateInfo; - _i4 = !1; + _i5 = !1; } else if (candidateInfo.awaited) if ( (parentEndTime > componentInfo && (componentInfo = parentEndTime), - (componentEndTime = response$jscomp$0._rootEnvironmentName), - (componentInfo$jscomp$0 = candidateInfo.awaited.value)) + (childrenEndTime = response$jscomp$0._rootEnvironmentName), + (response = candidateInfo.awaited.value)) ) switch ( - ((childrenEndTime = componentInfo$jscomp$0), - childrenEndTime.status) + ((trackIdx$jscomp$0 = response), trackIdx$jscomp$0.status) ) { case "fulfilled": logComponentAwait( @@ -3076,68 +3396,72 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, - childrenEndTime.value + childrenEndTime, + trackIdx$jscomp$0.value ); break; case "rejected": - componentInfo$jscomp$0 = trackIdx$jscomp$1; - response = trackTime; - startTime = parentEndTime; - childrenEndTime = childrenEndTime.reason; - if (supportsUserTiming && 0 < startTime) { - trackIdx$jscomp$0 = candidateInfo.env; - var name = candidateInfo.awaited.name; - componentEndTime = + response = trackIdx$jscomp$1; + startTime = trackTime; + componentEndTime = parentEndTime; + trackIdx$jscomp$0 = trackIdx$jscomp$0.reason; + supportsUserTiming && + 0 < componentEndTime && + ((componentInfo$jscomp$0 = candidateInfo.env), + (isPrimaryEnv = candidateInfo.awaited.name), + (childrenEndTime = "await " + - (trackIdx$jscomp$0 === componentEndTime || - void 0 === trackIdx$jscomp$0 - ? name - : name + " [" + trackIdx$jscomp$0 + "]"); + (componentInfo$jscomp$0 === childrenEndTime || + void 0 === componentInfo$jscomp$0 + ? isPrimaryEnv + : isPrimaryEnv + + " [" + + componentInfo$jscomp$0 + + "]")), (candidateInfo = candidateInfo.debugTask || candidateInfo.awaited.debugTask) ? candidateInfo.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: 0 > response ? 0 : response, - end: startTime, + start: 0 > startTime ? 0 : startTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: - trackNames[componentInfo$jscomp$0], + track: trackNames[response], trackGroup: "Server Components \u269b", properties: [ [ "Rejected", "object" === - typeof childrenEndTime && - null !== childrenEndTime && + typeof trackIdx$jscomp$0 && + null !== trackIdx$jscomp$0 && "string" === - typeof childrenEndTime.message - ? String(childrenEndTime.message) - : String(childrenEndTime) + typeof trackIdx$jscomp$0.message + ? String( + trackIdx$jscomp$0.message + ) + : String(trackIdx$jscomp$0) ] ], tooltipText: - componentEndTime + " Rejected" + childrenEndTime + " Rejected" } } } ) ) : console.timeStamp( + childrenEndTime, + 0 > startTime ? 0 : startTime, componentEndTime, - 0 > response ? 0 : response, - startTime, - trackNames[componentInfo$jscomp$0], + trackNames[response], "Server Components \u269b", "error" - ); - } + )); break; default: logComponentAwait( @@ -3145,7 +3469,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3155,7 +3479,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3169,76 +3493,91 @@ "string" === typeof candidateInfo.name ? (childResult > componentInfo && (componentInfo = childResult), - (_i4 = candidateInfo), - (childResult = response$jscomp$0._rootEnvironmentName), + (_i5 = candidateInfo), + (componentEndTime = + response$jscomp$0._rootEnvironmentName), + (childResult = _i5), + (candidateInfo = trackIdx$jscomp$1), + (response = trackTime), + (startTime = componentInfo), supportsUserTiming && - ((candidateInfo = _i4.env), - (componentInfo$jscomp$0 = _i4.name), - (childResult = - candidateInfo === childResult || - void 0 === candidateInfo - ? componentInfo$jscomp$0 - : componentInfo$jscomp$0 + - " [" + - candidateInfo + - "]"), - performance.measure(childResult, { - start: 0 > trackTime ? 0 : trackTime, - end: componentInfo, + ((childrenEndTime = childResult.env), + (trackIdx$jscomp$0 = childResult.name), + (componentEndTime = + childrenEndTime === componentEndTime || + void 0 === childrenEndTime + ? trackIdx$jscomp$0 + : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), + (childrenEndTime = [ + [ + "Aborted", + "The stream was aborted before this Component finished rendering." + ] + ]), + null != childResult.key && + addValueToProperties( + "key", + childResult.key, + childrenEndTime, + 0 + ), + null != childResult.props && + addObjectToProperties( + childResult.props, + childrenEndTime, + 0 + ), + performance.measure(componentEndTime, { + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", - track: trackNames[trackIdx$jscomp$1], + track: trackNames[candidateInfo], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Aborted", - properties: [ - [ - "Aborted", - "The stream was aborted before this Component finished rendering." - ] - ] + tooltipText: componentEndTime + " Aborted", + properties: childrenEndTime } } })), (childResult = trackTime), - (trackIdx.component = _i4), - (_i4 = !1)) + (trackIdx.component = _i5), + (_i5 = !1)) : candidateInfo.awaited && - ((startTime = candidateInfo), - (componentEndTime = + ((componentEndTime = candidateInfo), + (childrenEndTime = response$jscomp$0._rootEnvironmentName), - startTime.awaited.end > parentEndTime && - (parentEndTime = startTime.awaited.end), + componentEndTime.awaited.end > parentEndTime && + (parentEndTime = componentEndTime.awaited.end), parentEndTime > componentInfo && (componentInfo = parentEndTime), (candidateInfo = trackIdx$jscomp$1), - (componentInfo$jscomp$0 = trackTime), - (response = parentEndTime), + (response = trackTime), + (startTime = parentEndTime), supportsUserTiming && - 0 < response && - ((childrenEndTime = startTime.env), - (trackIdx$jscomp$0 = startTime.awaited.name), - (componentEndTime = + 0 < startTime && + ((trackIdx$jscomp$0 = componentEndTime.env), + (componentInfo$jscomp$0 = + componentEndTime.awaited.name), + (childrenEndTime = "await " + - (childrenEndTime === componentEndTime || - void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + + (trackIdx$jscomp$0 === childrenEndTime || + void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + " [" + - childrenEndTime + + trackIdx$jscomp$0 + "]")), - (startTime = - startTime.debugTask || startTime.awaited.debugTask) - ? startTime.run( + (componentEndTime = + componentEndTime.debugTask || + componentEndTime.awaited.debugTask) + ? componentEndTime.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - end: response, + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", @@ -3250,18 +3589,16 @@ "The stream was aborted before this Promise resolved." ] ], - tooltipText: componentEndTime + " Aborted" + tooltipText: childrenEndTime + " Aborted" } } } ) ) : console.timeStamp( - componentEndTime, - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - response, + childrenEndTime, + 0 > response ? 0 : response, + startTime, trackNames[candidateInfo], "Server Components \u269b", "warning" @@ -3399,98 +3736,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = createErrorChunk(response, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = createErrorChunk(response, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -3654,6 +3968,7 @@ /^ {3} at (?:(.+) \((.+):(\d+):(\d+)\)|(?:async )?(.+):(\d+):(\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\d+):(\d+)/, hasOwnProperty = Object.prototype.hasOwnProperty, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp && @@ -3663,7 +3978,6 @@ "Primary Parallel Parallel\u200b Parallel\u200b\u200b Parallel\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b".split( " " ), - REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), prefix, suffix; new ("function" === typeof WeakMap ? WeakMap : Map)(); @@ -3682,38 +3996,36 @@ case "resolved_module": initializeModuleChunk(this); } - if ("function" !== typeof resolve || !resolve.isReactInternalListener) { - var resolveCallback = resolve, - rejectCallback = reject, - wrapperPromise = new Promise(function (res, rej) { - resolve = function (value) { - wrapperPromise._debugInfo = _this._debugInfo; - res(value); - }; - reject = function (reason) { - wrapperPromise._debugInfo = _this._debugInfo; - rej(reason); - }; - }); - wrapperPromise.then(resolveCallback, rejectCallback); - } + var resolveCallback = resolve, + rejectCallback = reject, + wrapperPromise = new Promise(function (res, rej) { + resolve = function (value) { + wrapperPromise._debugInfo = _this._debugInfo; + res(value); + }; + reject = function (reason) { + wrapperPromise._debugInfo = _this._debugInfo; + rej(reason); + }; + }); + wrapperPromise.then(resolveCallback, rejectCallback); switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 0ce99bb4695133..f98b298cc1d547 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 @@ -708,19 +708,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -746,17 +746,64 @@ function createErrorChunk(response, error) { return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -770,7 +817,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -780,7 +827,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -882,6 +929,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -890,52 +1021,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -947,7 +1032,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1051,25 +1149,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1322,8 +1472,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1331,10 +1481,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1476,8 +1626,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 4682a63c942a3a..84fa3194139524 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 @@ -1058,6 +1058,66 @@ registerBoundServerReference(action, id, null, encodeFormAction); return action; } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } function getArrayKind(array) { for (var kind = 0, i = 0; i < array.length; i++) { var value = array[i]; @@ -1095,14 +1155,62 @@ value = "null"; break; } else { - var objectToString = Object.prototype.toString.call(value); - objectToString = objectToString.slice(8, objectToString.length - 1); - if ("Array" === objectToString) { - var kind = getArrayKind(value); - if (2 === kind || 0 === kind) { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + 2 === propKey || 0 === propKey) + ) { value = JSON.stringify(value); break; - } else if (3 === kind) { + } else if (3 === propKey) { properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, "" @@ -1112,23 +1220,60 @@ propertyName < value.length; propertyName++ ) - (objectToString = value[propertyName]), + (typeName = value[propertyName]), addValueToProperties( - objectToString[0], - objectToString[1], + typeName[0], + typeName[1], properties, indent + 1 ); return; } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; } - "Object" === objectToString && - (kind = Object.getPrototypeOf(value)) && - "function" === typeof kind.constructor && - (objectToString = kind.constructor.name); + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, - "Object" === objectToString ? "" : objectToString + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName ]); 3 > indent && addObjectToProperties(value, properties, indent + 1); return; @@ -1140,7 +1285,7 @@ value = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value - ? "..." + ? "\u2026" : JSON.stringify(value); break; case "undefined": @@ -1310,66 +1455,6 @@ ); } } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) - return type.$$typeof === REACT_CLIENT_REFERENCE - ? null - : type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - case REACT_ACTIVITY_TYPE: - return "Activity"; - case REACT_VIEW_TRANSITION_TYPE: - return "ViewTransition"; - } - if ("object" === typeof type) - switch ( - ("number" === typeof type.tag && - console.error( - "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." - ), - type.$$typeof) - ) { - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_CONTEXT_TYPE: - return type.displayName || "Context"; - case REACT_CONSUMER_TYPE: - return (type._context.displayName || "Context") + ".Consumer"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || - ((type = innerType.displayName || innerType.name || ""), - (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); - return type; - case REACT_MEMO_TYPE: - return ( - (innerType = type.displayName || null), - null !== innerType - ? innerType - : getComponentNameFromType(type.type) || "Memo" - ); - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } function prepareStackTrace(error, structuredStackTrace) { error = (error.name || "Error") + ": " + (error.message || ""); for (var i = 0; i < structuredStackTrace.length; i++) @@ -1409,17 +1494,64 @@ return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1433,7 +1565,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1443,7 +1575,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1539,14 +1671,15 @@ var debugChannel = response._debugChannel; void 0 !== debugChannel && (debugChannel(""), (response._debugChannel = void 0)); - markAllTracksInOrder(); - flushComponentPerformance( - response, - getChunk(response, 0), - 0, - -Infinity, - -Infinity - ); + response._replayConsole && + (markAllTracksInOrder(), + flushComponentPerformance( + response, + getChunk(response, 0), + 0, + -Infinity, + -Infinity + )); } function nullRefGetter() { return null; @@ -1567,6 +1700,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1587,6 +1759,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1595,72 +1876,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1672,8 +1887,20 @@ deps: 1, errored: !1 }; - fulfill.isReactInternalListener = !0; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1802,18 +2029,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1833,7 +2100,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1842,6 +2108,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -2122,7 +2401,7 @@ this._debugChannel = debugChannel; this._replayConsole = replayConsole; this._rootEnvironmentName = environmentName; - markAllTracksInOrder(); + replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } function resolveDebugHalt(response, id) { @@ -2238,8 +2517,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -2247,10 +2526,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2775,23 +3054,25 @@ initializeFakeStack(response, ioInfo)); ioInfo.start += response._timeOrigin; ioInfo.end += response._timeOrigin; - response = response._rootEnvironmentName; - var promise = ioInfo.value; - if (promise) - switch (promise.status) { - case "fulfilled": - logIOInfo(ioInfo, response, promise.value); - break; - case "rejected": - logIOInfoErrored(ioInfo, response, promise.reason); - break; - default: - promise.then( - logIOInfo.bind(null, ioInfo, response), - logIOInfoErrored.bind(null, ioInfo, response) - ); - } - else logIOInfo(ioInfo, response, void 0); + if (response._replayConsole) { + response = response._rootEnvironmentName; + var promise = ioInfo.value; + if (promise) + switch (promise.status) { + case "fulfilled": + logIOInfo(ioInfo, response, promise.value); + break; + case "rejected": + logIOInfoErrored(ioInfo, response, promise.reason); + break; + default: + promise.then( + logIOInfo.bind(null, ioInfo, response), + logIOInfoErrored.bind(null, ioInfo, response) + ); + } + else logIOInfo(ioInfo, response, void 0); + } } function resolveIOInfo(response, id, model) { var chunks = response._chunks, @@ -2819,8 +3100,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2928,10 +3209,10 @@ root._children = trackIdx; componentInfo = -Infinity; info = trackIdx$jscomp$1; - for (var _i4 = 0; _i4 < entryName.length; _i4++) { + for (var _i5 = 0; _i5 < entryName.length; _i5++) { var childResult = flushComponentPerformance( response$jscomp$0, - entryName[_i4], + entryName[_i5], info, trackTime, parentEndTime @@ -2946,7 +3227,7 @@ if (previousEndTime) for ( childResult = 0, - _i4 = !0, + _i5 = !0, info = parentEndTime = -1, entryName = previousEndTime.length - 1; 0 <= entryName; @@ -2969,106 +3250,145 @@ startTime = trackTime, componentEndTime = childResult, childrenEndTime = componentInfo; - _i4 && - "rejected" === root.status && - root.reason !== response._closedReason - ? ((_i4 = root.reason), + if ( + _i5 && + "rejected" === root.status && + root.reason !== response._closedReason + ) + (_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + (componentEndTime = childrenEndTime), + (childrenEndTime = root.reason), supportsUserTiming && - ((childResult = componentInfo$jscomp$0.env), - (componentInfo$jscomp$0 = componentInfo$jscomp$0.name), - (childResult = - childResult === response._rootEnvironmentName || - void 0 === childResult + ((trackIdx$jscomp$0 = _i5.env), + (componentInfo$jscomp$0 = _i5.name), + (response = + trackIdx$jscomp$0 === response._rootEnvironmentName || + void 0 === trackIdx$jscomp$0 ? componentInfo$jscomp$0 : componentInfo$jscomp$0 + " [" + - childResult + + trackIdx$jscomp$0 + "]"), - performance.measure(childResult, { + (childrenEndTime = [ + [ + "Error", + "object" === typeof childrenEndTime && + null !== childrenEndTime && + "string" === typeof childrenEndTime.message + ? String(childrenEndTime.message) + : String(childrenEndTime) + ] + ]), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + childrenEndTime, + 0 + ), + null != _i5.props && + addObjectToProperties(_i5.props, childrenEndTime, 0), + performance.measure(response, { start: 0 > startTime ? 0 : startTime, - end: childrenEndTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: trackNames[trackIdx$jscomp$0], + track: trackNames[childResult], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Errored", - properties: [ - [ - "Error", - "object" === typeof _i4 && - null !== _i4 && - "string" === typeof _i4.message - ? String(_i4.message) - : String(_i4) - ] - ] + tooltipText: response + " Errored", + properties: childrenEndTime } } - }))) - : ((_i4 = trackIdx$jscomp$0), - (childResult = startTime), - (startTime = childrenEndTime), - supportsUserTiming && - 0 <= startTime && - 10 > _i4 && - ((childrenEndTime = componentInfo$jscomp$0.env), - (trackIdx$jscomp$0 = componentInfo$jscomp$0.name), - (response = - childrenEndTime === response._rootEnvironmentName), - (componentEndTime -= childResult), - (componentEndTime = - 0.5 > componentEndTime - ? response - ? "primary-light" - : "secondary-light" - : 50 > componentEndTime - ? response - ? "primary" - : "secondary" - : 500 > componentEndTime - ? response - ? "primary-dark" - : "secondary-dark" - : "error"), - (response = - response || void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), - (componentInfo$jscomp$0 = - componentInfo$jscomp$0.debugTask) - ? componentInfo$jscomp$0.run( - console.timeStamp.bind( - console, - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ) - ) - : console.timeStamp( - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ))); + })); + else if ( + ((_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + supportsUserTiming && + 0 <= childrenEndTime && + 10 > childResult) + ) { + trackIdx$jscomp$0 = _i5.env; + componentInfo$jscomp$0 = _i5.name; + var isPrimaryEnv = + trackIdx$jscomp$0 === response._rootEnvironmentName; + response = componentEndTime - startTime; + response = + 0.5 > response + ? isPrimaryEnv + ? "primary-light" + : "secondary-light" + : 50 > response + ? isPrimaryEnv + ? "primary" + : "secondary" + : 500 > response + ? isPrimaryEnv + ? "primary-dark" + : "secondary-dark" + : "error"; + componentEndTime = + isPrimaryEnv || void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + + " [" + + trackIdx$jscomp$0 + + "]"; + (trackIdx$jscomp$0 = _i5.debugTask) + ? ((componentInfo$jscomp$0 = []), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + componentInfo$jscomp$0, + 0 + ), + null != _i5.props && + addObjectToProperties( + _i5.props, + componentInfo$jscomp$0, + 0 + ), + trackIdx$jscomp$0.run( + performance.measure.bind( + performance, + componentEndTime, + { + start: 0 > startTime ? 0 : startTime, + end: childrenEndTime, + detail: { + devtools: { + color: response, + track: trackNames[childResult], + trackGroup: "Server Components \u269b", + properties: componentInfo$jscomp$0 + } + } + } + ) + )) + : console.timeStamp( + componentEndTime, + 0 > startTime ? 0 : startTime, + childrenEndTime, + trackNames[childResult], + "Server Components \u269b", + response + ); + } childResult = trackTime; trackIdx.component = candidateInfo; - _i4 = !1; + _i5 = !1; } else if (candidateInfo.awaited) if ( (parentEndTime > componentInfo && (componentInfo = parentEndTime), - (componentEndTime = response$jscomp$0._rootEnvironmentName), - (componentInfo$jscomp$0 = candidateInfo.awaited.value)) + (childrenEndTime = response$jscomp$0._rootEnvironmentName), + (response = candidateInfo.awaited.value)) ) switch ( - ((childrenEndTime = componentInfo$jscomp$0), - childrenEndTime.status) + ((trackIdx$jscomp$0 = response), trackIdx$jscomp$0.status) ) { case "fulfilled": logComponentAwait( @@ -3076,68 +3396,72 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, - childrenEndTime.value + childrenEndTime, + trackIdx$jscomp$0.value ); break; case "rejected": - componentInfo$jscomp$0 = trackIdx$jscomp$1; - response = trackTime; - startTime = parentEndTime; - childrenEndTime = childrenEndTime.reason; - if (supportsUserTiming && 0 < startTime) { - trackIdx$jscomp$0 = candidateInfo.env; - var name = candidateInfo.awaited.name; - componentEndTime = + response = trackIdx$jscomp$1; + startTime = trackTime; + componentEndTime = parentEndTime; + trackIdx$jscomp$0 = trackIdx$jscomp$0.reason; + supportsUserTiming && + 0 < componentEndTime && + ((componentInfo$jscomp$0 = candidateInfo.env), + (isPrimaryEnv = candidateInfo.awaited.name), + (childrenEndTime = "await " + - (trackIdx$jscomp$0 === componentEndTime || - void 0 === trackIdx$jscomp$0 - ? name - : name + " [" + trackIdx$jscomp$0 + "]"); + (componentInfo$jscomp$0 === childrenEndTime || + void 0 === componentInfo$jscomp$0 + ? isPrimaryEnv + : isPrimaryEnv + + " [" + + componentInfo$jscomp$0 + + "]")), (candidateInfo = candidateInfo.debugTask || candidateInfo.awaited.debugTask) ? candidateInfo.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: 0 > response ? 0 : response, - end: startTime, + start: 0 > startTime ? 0 : startTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: - trackNames[componentInfo$jscomp$0], + track: trackNames[response], trackGroup: "Server Components \u269b", properties: [ [ "Rejected", "object" === - typeof childrenEndTime && - null !== childrenEndTime && + typeof trackIdx$jscomp$0 && + null !== trackIdx$jscomp$0 && "string" === - typeof childrenEndTime.message - ? String(childrenEndTime.message) - : String(childrenEndTime) + typeof trackIdx$jscomp$0.message + ? String( + trackIdx$jscomp$0.message + ) + : String(trackIdx$jscomp$0) ] ], tooltipText: - componentEndTime + " Rejected" + childrenEndTime + " Rejected" } } } ) ) : console.timeStamp( + childrenEndTime, + 0 > startTime ? 0 : startTime, componentEndTime, - 0 > response ? 0 : response, - startTime, - trackNames[componentInfo$jscomp$0], + trackNames[response], "Server Components \u269b", "error" - ); - } + )); break; default: logComponentAwait( @@ -3145,7 +3469,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3155,7 +3479,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3169,76 +3493,91 @@ "string" === typeof candidateInfo.name ? (childResult > componentInfo && (componentInfo = childResult), - (_i4 = candidateInfo), - (childResult = response$jscomp$0._rootEnvironmentName), + (_i5 = candidateInfo), + (componentEndTime = + response$jscomp$0._rootEnvironmentName), + (childResult = _i5), + (candidateInfo = trackIdx$jscomp$1), + (response = trackTime), + (startTime = componentInfo), supportsUserTiming && - ((candidateInfo = _i4.env), - (componentInfo$jscomp$0 = _i4.name), - (childResult = - candidateInfo === childResult || - void 0 === candidateInfo - ? componentInfo$jscomp$0 - : componentInfo$jscomp$0 + - " [" + - candidateInfo + - "]"), - performance.measure(childResult, { - start: 0 > trackTime ? 0 : trackTime, - end: componentInfo, + ((childrenEndTime = childResult.env), + (trackIdx$jscomp$0 = childResult.name), + (componentEndTime = + childrenEndTime === componentEndTime || + void 0 === childrenEndTime + ? trackIdx$jscomp$0 + : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), + (childrenEndTime = [ + [ + "Aborted", + "The stream was aborted before this Component finished rendering." + ] + ]), + null != childResult.key && + addValueToProperties( + "key", + childResult.key, + childrenEndTime, + 0 + ), + null != childResult.props && + addObjectToProperties( + childResult.props, + childrenEndTime, + 0 + ), + performance.measure(componentEndTime, { + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", - track: trackNames[trackIdx$jscomp$1], + track: trackNames[candidateInfo], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Aborted", - properties: [ - [ - "Aborted", - "The stream was aborted before this Component finished rendering." - ] - ] + tooltipText: componentEndTime + " Aborted", + properties: childrenEndTime } } })), (childResult = trackTime), - (trackIdx.component = _i4), - (_i4 = !1)) + (trackIdx.component = _i5), + (_i5 = !1)) : candidateInfo.awaited && - ((startTime = candidateInfo), - (componentEndTime = + ((componentEndTime = candidateInfo), + (childrenEndTime = response$jscomp$0._rootEnvironmentName), - startTime.awaited.end > parentEndTime && - (parentEndTime = startTime.awaited.end), + componentEndTime.awaited.end > parentEndTime && + (parentEndTime = componentEndTime.awaited.end), parentEndTime > componentInfo && (componentInfo = parentEndTime), (candidateInfo = trackIdx$jscomp$1), - (componentInfo$jscomp$0 = trackTime), - (response = parentEndTime), + (response = trackTime), + (startTime = parentEndTime), supportsUserTiming && - 0 < response && - ((childrenEndTime = startTime.env), - (trackIdx$jscomp$0 = startTime.awaited.name), - (componentEndTime = + 0 < startTime && + ((trackIdx$jscomp$0 = componentEndTime.env), + (componentInfo$jscomp$0 = + componentEndTime.awaited.name), + (childrenEndTime = "await " + - (childrenEndTime === componentEndTime || - void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + + (trackIdx$jscomp$0 === childrenEndTime || + void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + " [" + - childrenEndTime + + trackIdx$jscomp$0 + "]")), - (startTime = - startTime.debugTask || startTime.awaited.debugTask) - ? startTime.run( + (componentEndTime = + componentEndTime.debugTask || + componentEndTime.awaited.debugTask) + ? componentEndTime.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - end: response, + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", @@ -3250,18 +3589,16 @@ "The stream was aborted before this Promise resolved." ] ], - tooltipText: componentEndTime + " Aborted" + tooltipText: childrenEndTime + " Aborted" } } } ) ) : console.timeStamp( - componentEndTime, - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - response, + childrenEndTime, + 0 > response ? 0 : response, + startTime, trackNames[candidateInfo], "Server Components \u269b", "warning" @@ -3478,98 +3815,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = createErrorChunk(response, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = createErrorChunk(response, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -3661,6 +3975,7 @@ /^ {3} at (?:(.+) \((.+):(\d+):(\d+)\)|(?:async )?(.+):(\d+):(\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\d+):(\d+)/, hasOwnProperty = Object.prototype.hasOwnProperty, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp && @@ -3670,7 +3985,6 @@ "Primary Parallel Parallel\u200b Parallel\u200b\u200b Parallel\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b".split( " " ), - REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), prefix, suffix; new ("function" === typeof WeakMap ? WeakMap : Map)(); @@ -3689,38 +4003,36 @@ case "resolved_module": initializeModuleChunk(this); } - if ("function" !== typeof resolve || !resolve.isReactInternalListener) { - var resolveCallback = resolve, - rejectCallback = reject, - wrapperPromise = new Promise(function (res, rej) { - resolve = function (value) { - wrapperPromise._debugInfo = _this._debugInfo; - res(value); - }; - reject = function (reason) { - wrapperPromise._debugInfo = _this._debugInfo; - rej(reason); - }; - }); - wrapperPromise.then(resolveCallback, rejectCallback); - } + var resolveCallback = resolve, + rejectCallback = reject, + wrapperPromise = new Promise(function (res, rej) { + resolve = function (value) { + wrapperPromise._debugInfo = _this._debugInfo; + res(value); + }; + reject = function (reason) { + wrapperPromise._debugInfo = _this._debugInfo; + rej(reason); + }; + }); + wrapperPromise.then(resolveCallback, rejectCallback); switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 cd7d9315f0665f..666bace093b7ec 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 @@ -709,19 +709,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -747,17 +747,64 @@ function createErrorChunk(response, error) { return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -771,7 +818,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -781,7 +828,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -883,6 +930,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -891,52 +1022,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -948,7 +1033,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1052,25 +1150,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1323,8 +1473,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1332,10 +1482,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1477,8 +1627,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 c9b9f6d1868648..23db2ed220798d 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 @@ -1020,6 +1020,66 @@ registerBoundServerReference(action, id, null, encodeFormAction); return action; } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + case REACT_VIEW_TRANSITION_TYPE: + return "ViewTransition"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } function getArrayKind(array) { for (var kind = 0, i = 0; i < array.length; i++) { var value = array[i]; @@ -1057,14 +1117,62 @@ value = "null"; break; } else { - var objectToString = Object.prototype.toString.call(value); - objectToString = objectToString.slice(8, objectToString.length - 1); - if ("Array" === objectToString) { - var kind = getArrayKind(value); - if (2 === kind || 0 === kind) { + if (value.$$typeof === REACT_ELEMENT_TYPE) { + var typeName = getComponentNameFromType(value.type) || "\u2026", + key = value.key; + value = value.props; + var propsKeys = Object.keys(value), + propsLength = propsKeys.length; + if (null == key && 0 === propsLength) { + value = "<" + typeName + " />"; + break; + } + if ( + 3 > indent || + (1 === propsLength && + "children" === propsKeys[0] && + null == key) + ) { + value = "<" + typeName + " \u2026 />"; + break; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "<" + typeName + ]); + null !== key && + addValueToProperties("key", key, properties, indent + 1); + propertyName = !1; + for (var propKey in value) + "children" === propKey + ? null != value.children && + (!isArrayImpl(value.children) || + 0 < value.children.length) && + (propertyName = !0) + : hasOwnProperty.call(value, propKey) && + "_" !== propKey[0] && + addValueToProperties( + propKey, + value[propKey], + properties, + indent + 1 + ); + properties.push([ + "", + propertyName ? ">\u2026" : "/>" + ]); + return; + } + typeName = Object.prototype.toString.call(value); + typeName = typeName.slice(8, typeName.length - 1); + if ("Array" === typeName) + if ( + ((propKey = getArrayKind(value)), + 2 === propKey || 0 === propKey) + ) { value = JSON.stringify(value); break; - } else if (3 === kind) { + } else if (3 === propKey) { properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, "" @@ -1074,23 +1182,60 @@ propertyName < value.length; propertyName++ ) - (objectToString = value[propertyName]), + (typeName = value[propertyName]), addValueToProperties( - objectToString[0], - objectToString[1], + typeName[0], + typeName[1], properties, indent + 1 ); return; } + if ("Promise" === typeName) { + if ("fulfilled" === value.status) { + if ( + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.value, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = + "Promise<" + (properties[1] || "Object") + ">"; + return; + } + } else if ( + "rejected" === value.status && + ((typeName = properties.length), + addValueToProperties( + propertyName, + value.reason, + properties, + indent + ), + properties.length > typeName) + ) { + properties = properties[typeName]; + properties[1] = "Rejected Promise<" + properties[1] + ">"; + return; + } + properties.push([ + "\u00a0\u00a0".repeat(indent) + propertyName, + "Promise" + ]); + return; } - "Object" === objectToString && - (kind = Object.getPrototypeOf(value)) && - "function" === typeof kind.constructor && - (objectToString = kind.constructor.name); + "Object" === typeName && + (propKey = Object.getPrototypeOf(value)) && + "function" === typeof propKey.constructor && + (typeName = propKey.constructor.name); properties.push([ "\u00a0\u00a0".repeat(indent) + propertyName, - "Object" === objectToString ? "" : objectToString + "Object" === typeName ? (3 > indent ? "" : "\u2026") : typeName ]); 3 > indent && addObjectToProperties(value, properties, indent + 1); return; @@ -1102,7 +1247,7 @@ value = "This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects." === value - ? "..." + ? "\u2026" : JSON.stringify(value); break; case "undefined": @@ -1272,66 +1417,6 @@ ); } } - function getComponentNameFromType(type) { - if (null == type) return null; - if ("function" === typeof type) - return type.$$typeof === REACT_CLIENT_REFERENCE - ? null - : type.displayName || type.name || null; - if ("string" === typeof type) return type; - switch (type) { - case REACT_FRAGMENT_TYPE: - return "Fragment"; - case REACT_PROFILER_TYPE: - return "Profiler"; - case REACT_STRICT_MODE_TYPE: - return "StrictMode"; - case REACT_SUSPENSE_TYPE: - return "Suspense"; - case REACT_SUSPENSE_LIST_TYPE: - return "SuspenseList"; - case REACT_ACTIVITY_TYPE: - return "Activity"; - case REACT_VIEW_TRANSITION_TYPE: - return "ViewTransition"; - } - if ("object" === typeof type) - switch ( - ("number" === typeof type.tag && - console.error( - "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." - ), - type.$$typeof) - ) { - case REACT_PORTAL_TYPE: - return "Portal"; - case REACT_CONTEXT_TYPE: - return type.displayName || "Context"; - case REACT_CONSUMER_TYPE: - return (type._context.displayName || "Context") + ".Consumer"; - case REACT_FORWARD_REF_TYPE: - var innerType = type.render; - type = type.displayName; - type || - ((type = innerType.displayName || innerType.name || ""), - (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); - return type; - case REACT_MEMO_TYPE: - return ( - (innerType = type.displayName || null), - null !== innerType - ? innerType - : getComponentNameFromType(type.type) || "Memo" - ); - case REACT_LAZY_TYPE: - innerType = type._payload; - type = type._init; - try { - return getComponentNameFromType(type(innerType)); - } catch (x) {} - } - return null; - } function prepareStackTrace(error, structuredStackTrace) { error = (error.name || "Error") + ": " + (error.message || ""); for (var i = 0; i < structuredStackTrace.length; i++) @@ -1371,17 +1456,64 @@ return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1395,7 +1527,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1405,7 +1537,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1501,14 +1633,15 @@ var debugChannel = response._debugChannel; void 0 !== debugChannel && (debugChannel(""), (response._debugChannel = void 0)); - markAllTracksInOrder(); - flushComponentPerformance( - response, - getChunk(response, 0), - 0, - -Infinity, - -Infinity - ); + response._replayConsole && + (markAllTracksInOrder(), + flushComponentPerformance( + response, + getChunk(response, 0), + 0, + -Infinity, + -Infinity + )); } function nullRefGetter() { return null; @@ -1529,6 +1662,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1549,6 +1721,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1557,72 +1838,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1634,8 +1849,20 @@ deps: 1, errored: !1 }; - fulfill.isReactInternalListener = !0; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1764,18 +1991,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1795,7 +2062,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1804,6 +2070,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -2084,7 +2363,7 @@ this._debugChannel = debugChannel; this._replayConsole = replayConsole; this._rootEnvironmentName = environmentName; - markAllTracksInOrder(); + replayConsole && markAllTracksInOrder(); this._fromJSON = createFromJSONCallback(this); } function resolveDebugHalt(response, id) { @@ -2200,8 +2479,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -2209,10 +2488,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2737,23 +3016,25 @@ initializeFakeStack(response, ioInfo)); ioInfo.start += response._timeOrigin; ioInfo.end += response._timeOrigin; - response = response._rootEnvironmentName; - var promise = ioInfo.value; - if (promise) - switch (promise.status) { - case "fulfilled": - logIOInfo(ioInfo, response, promise.value); - break; - case "rejected": - logIOInfoErrored(ioInfo, response, promise.reason); - break; - default: - promise.then( - logIOInfo.bind(null, ioInfo, response), - logIOInfoErrored.bind(null, ioInfo, response) - ); - } - else logIOInfo(ioInfo, response, void 0); + if (response._replayConsole) { + response = response._rootEnvironmentName; + var promise = ioInfo.value; + if (promise) + switch (promise.status) { + case "fulfilled": + logIOInfo(ioInfo, response, promise.value); + break; + case "rejected": + logIOInfoErrored(ioInfo, response, promise.reason); + break; + default: + promise.then( + logIOInfo.bind(null, ioInfo, response), + logIOInfoErrored.bind(null, ioInfo, response) + ); + } + else logIOInfo(ioInfo, response, void 0); + } } function resolveIOInfo(response, id, model) { var chunks = response._chunks, @@ -2781,8 +3062,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2890,10 +3171,10 @@ root._children = trackIdx; componentInfo = -Infinity; info = trackIdx$jscomp$1; - for (var _i4 = 0; _i4 < entryName.length; _i4++) { + for (var _i5 = 0; _i5 < entryName.length; _i5++) { var childResult = flushComponentPerformance( response$jscomp$0, - entryName[_i4], + entryName[_i5], info, trackTime, parentEndTime @@ -2908,7 +3189,7 @@ if (previousEndTime) for ( childResult = 0, - _i4 = !0, + _i5 = !0, info = parentEndTime = -1, entryName = previousEndTime.length - 1; 0 <= entryName; @@ -2931,106 +3212,145 @@ startTime = trackTime, componentEndTime = childResult, childrenEndTime = componentInfo; - _i4 && - "rejected" === root.status && - root.reason !== response._closedReason - ? ((_i4 = root.reason), + if ( + _i5 && + "rejected" === root.status && + root.reason !== response._closedReason + ) + (_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + (componentEndTime = childrenEndTime), + (childrenEndTime = root.reason), supportsUserTiming && - ((childResult = componentInfo$jscomp$0.env), - (componentInfo$jscomp$0 = componentInfo$jscomp$0.name), - (childResult = - childResult === response._rootEnvironmentName || - void 0 === childResult + ((trackIdx$jscomp$0 = _i5.env), + (componentInfo$jscomp$0 = _i5.name), + (response = + trackIdx$jscomp$0 === response._rootEnvironmentName || + void 0 === trackIdx$jscomp$0 ? componentInfo$jscomp$0 : componentInfo$jscomp$0 + " [" + - childResult + + trackIdx$jscomp$0 + "]"), - performance.measure(childResult, { + (childrenEndTime = [ + [ + "Error", + "object" === typeof childrenEndTime && + null !== childrenEndTime && + "string" === typeof childrenEndTime.message + ? String(childrenEndTime.message) + : String(childrenEndTime) + ] + ]), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + childrenEndTime, + 0 + ), + null != _i5.props && + addObjectToProperties(_i5.props, childrenEndTime, 0), + performance.measure(response, { start: 0 > startTime ? 0 : startTime, - end: childrenEndTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: trackNames[trackIdx$jscomp$0], + track: trackNames[childResult], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Errored", - properties: [ - [ - "Error", - "object" === typeof _i4 && - null !== _i4 && - "string" === typeof _i4.message - ? String(_i4.message) - : String(_i4) - ] - ] + tooltipText: response + " Errored", + properties: childrenEndTime } } - }))) - : ((_i4 = trackIdx$jscomp$0), - (childResult = startTime), - (startTime = childrenEndTime), - supportsUserTiming && - 0 <= startTime && - 10 > _i4 && - ((childrenEndTime = componentInfo$jscomp$0.env), - (trackIdx$jscomp$0 = componentInfo$jscomp$0.name), - (response = - childrenEndTime === response._rootEnvironmentName), - (componentEndTime -= childResult), - (componentEndTime = - 0.5 > componentEndTime - ? response - ? "primary-light" - : "secondary-light" - : 50 > componentEndTime - ? response - ? "primary" - : "secondary" - : 500 > componentEndTime - ? response - ? "primary-dark" - : "secondary-dark" - : "error"), - (response = - response || void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), - (componentInfo$jscomp$0 = - componentInfo$jscomp$0.debugTask) - ? componentInfo$jscomp$0.run( - console.timeStamp.bind( - console, - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ) - ) - : console.timeStamp( - response, - 0 > childResult ? 0 : childResult, - startTime, - trackNames[_i4], - "Server Components \u269b", - componentEndTime - ))); + })); + else if ( + ((_i5 = componentInfo$jscomp$0), + (childResult = trackIdx$jscomp$0), + supportsUserTiming && + 0 <= childrenEndTime && + 10 > childResult) + ) { + trackIdx$jscomp$0 = _i5.env; + componentInfo$jscomp$0 = _i5.name; + var isPrimaryEnv = + trackIdx$jscomp$0 === response._rootEnvironmentName; + response = componentEndTime - startTime; + response = + 0.5 > response + ? isPrimaryEnv + ? "primary-light" + : "secondary-light" + : 50 > response + ? isPrimaryEnv + ? "primary" + : "secondary" + : 500 > response + ? isPrimaryEnv + ? "primary-dark" + : "secondary-dark" + : "error"; + componentEndTime = + isPrimaryEnv || void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + + " [" + + trackIdx$jscomp$0 + + "]"; + (trackIdx$jscomp$0 = _i5.debugTask) + ? ((componentInfo$jscomp$0 = []), + null != _i5.key && + addValueToProperties( + "key", + _i5.key, + componentInfo$jscomp$0, + 0 + ), + null != _i5.props && + addObjectToProperties( + _i5.props, + componentInfo$jscomp$0, + 0 + ), + trackIdx$jscomp$0.run( + performance.measure.bind( + performance, + componentEndTime, + { + start: 0 > startTime ? 0 : startTime, + end: childrenEndTime, + detail: { + devtools: { + color: response, + track: trackNames[childResult], + trackGroup: "Server Components \u269b", + properties: componentInfo$jscomp$0 + } + } + } + ) + )) + : console.timeStamp( + componentEndTime, + 0 > startTime ? 0 : startTime, + childrenEndTime, + trackNames[childResult], + "Server Components \u269b", + response + ); + } childResult = trackTime; trackIdx.component = candidateInfo; - _i4 = !1; + _i5 = !1; } else if (candidateInfo.awaited) if ( (parentEndTime > componentInfo && (componentInfo = parentEndTime), - (componentEndTime = response$jscomp$0._rootEnvironmentName), - (componentInfo$jscomp$0 = candidateInfo.awaited.value)) + (childrenEndTime = response$jscomp$0._rootEnvironmentName), + (response = candidateInfo.awaited.value)) ) switch ( - ((childrenEndTime = componentInfo$jscomp$0), - childrenEndTime.status) + ((trackIdx$jscomp$0 = response), trackIdx$jscomp$0.status) ) { case "fulfilled": logComponentAwait( @@ -3038,68 +3358,72 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, - childrenEndTime.value + childrenEndTime, + trackIdx$jscomp$0.value ); break; case "rejected": - componentInfo$jscomp$0 = trackIdx$jscomp$1; - response = trackTime; - startTime = parentEndTime; - childrenEndTime = childrenEndTime.reason; - if (supportsUserTiming && 0 < startTime) { - trackIdx$jscomp$0 = candidateInfo.env; - var name = candidateInfo.awaited.name; - componentEndTime = + response = trackIdx$jscomp$1; + startTime = trackTime; + componentEndTime = parentEndTime; + trackIdx$jscomp$0 = trackIdx$jscomp$0.reason; + supportsUserTiming && + 0 < componentEndTime && + ((componentInfo$jscomp$0 = candidateInfo.env), + (isPrimaryEnv = candidateInfo.awaited.name), + (childrenEndTime = "await " + - (trackIdx$jscomp$0 === componentEndTime || - void 0 === trackIdx$jscomp$0 - ? name - : name + " [" + trackIdx$jscomp$0 + "]"); + (componentInfo$jscomp$0 === childrenEndTime || + void 0 === componentInfo$jscomp$0 + ? isPrimaryEnv + : isPrimaryEnv + + " [" + + componentInfo$jscomp$0 + + "]")), (candidateInfo = candidateInfo.debugTask || candidateInfo.awaited.debugTask) ? candidateInfo.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: 0 > response ? 0 : response, - end: startTime, + start: 0 > startTime ? 0 : startTime, + end: componentEndTime, detail: { devtools: { color: "error", - track: - trackNames[componentInfo$jscomp$0], + track: trackNames[response], trackGroup: "Server Components \u269b", properties: [ [ "Rejected", "object" === - typeof childrenEndTime && - null !== childrenEndTime && + typeof trackIdx$jscomp$0 && + null !== trackIdx$jscomp$0 && "string" === - typeof childrenEndTime.message - ? String(childrenEndTime.message) - : String(childrenEndTime) + typeof trackIdx$jscomp$0.message + ? String( + trackIdx$jscomp$0.message + ) + : String(trackIdx$jscomp$0) ] ], tooltipText: - componentEndTime + " Rejected" + childrenEndTime + " Rejected" } } } ) ) : console.timeStamp( + childrenEndTime, + 0 > startTime ? 0 : startTime, componentEndTime, - 0 > response ? 0 : response, - startTime, - trackNames[componentInfo$jscomp$0], + trackNames[response], "Server Components \u269b", "error" - ); - } + )); break; default: logComponentAwait( @@ -3107,7 +3431,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3117,7 +3441,7 @@ trackIdx$jscomp$1, trackTime, parentEndTime, - componentEndTime, + childrenEndTime, void 0 ); } @@ -3131,76 +3455,91 @@ "string" === typeof candidateInfo.name ? (childResult > componentInfo && (componentInfo = childResult), - (_i4 = candidateInfo), - (childResult = response$jscomp$0._rootEnvironmentName), + (_i5 = candidateInfo), + (componentEndTime = + response$jscomp$0._rootEnvironmentName), + (childResult = _i5), + (candidateInfo = trackIdx$jscomp$1), + (response = trackTime), + (startTime = componentInfo), supportsUserTiming && - ((candidateInfo = _i4.env), - (componentInfo$jscomp$0 = _i4.name), - (childResult = - candidateInfo === childResult || - void 0 === candidateInfo - ? componentInfo$jscomp$0 - : componentInfo$jscomp$0 + - " [" + - candidateInfo + - "]"), - performance.measure(childResult, { - start: 0 > trackTime ? 0 : trackTime, - end: componentInfo, + ((childrenEndTime = childResult.env), + (trackIdx$jscomp$0 = childResult.name), + (componentEndTime = + childrenEndTime === componentEndTime || + void 0 === childrenEndTime + ? trackIdx$jscomp$0 + : trackIdx$jscomp$0 + " [" + childrenEndTime + "]"), + (childrenEndTime = [ + [ + "Aborted", + "The stream was aborted before this Component finished rendering." + ] + ]), + null != childResult.key && + addValueToProperties( + "key", + childResult.key, + childrenEndTime, + 0 + ), + null != childResult.props && + addObjectToProperties( + childResult.props, + childrenEndTime, + 0 + ), + performance.measure(componentEndTime, { + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", - track: trackNames[trackIdx$jscomp$1], + track: trackNames[candidateInfo], trackGroup: "Server Components \u269b", - tooltipText: childResult + " Aborted", - properties: [ - [ - "Aborted", - "The stream was aborted before this Component finished rendering." - ] - ] + tooltipText: componentEndTime + " Aborted", + properties: childrenEndTime } } })), (childResult = trackTime), - (trackIdx.component = _i4), - (_i4 = !1)) + (trackIdx.component = _i5), + (_i5 = !1)) : candidateInfo.awaited && - ((startTime = candidateInfo), - (componentEndTime = + ((componentEndTime = candidateInfo), + (childrenEndTime = response$jscomp$0._rootEnvironmentName), - startTime.awaited.end > parentEndTime && - (parentEndTime = startTime.awaited.end), + componentEndTime.awaited.end > parentEndTime && + (parentEndTime = componentEndTime.awaited.end), parentEndTime > componentInfo && (componentInfo = parentEndTime), (candidateInfo = trackIdx$jscomp$1), - (componentInfo$jscomp$0 = trackTime), - (response = parentEndTime), + (response = trackTime), + (startTime = parentEndTime), supportsUserTiming && - 0 < response && - ((childrenEndTime = startTime.env), - (trackIdx$jscomp$0 = startTime.awaited.name), - (componentEndTime = + 0 < startTime && + ((trackIdx$jscomp$0 = componentEndTime.env), + (componentInfo$jscomp$0 = + componentEndTime.awaited.name), + (childrenEndTime = "await " + - (childrenEndTime === componentEndTime || - void 0 === childrenEndTime - ? trackIdx$jscomp$0 - : trackIdx$jscomp$0 + + (trackIdx$jscomp$0 === childrenEndTime || + void 0 === trackIdx$jscomp$0 + ? componentInfo$jscomp$0 + : componentInfo$jscomp$0 + " [" + - childrenEndTime + + trackIdx$jscomp$0 + "]")), - (startTime = - startTime.debugTask || startTime.awaited.debugTask) - ? startTime.run( + (componentEndTime = + componentEndTime.debugTask || + componentEndTime.awaited.debugTask) + ? componentEndTime.run( performance.measure.bind( performance, - componentEndTime, + childrenEndTime, { - start: - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - end: response, + start: 0 > response ? 0 : response, + end: startTime, detail: { devtools: { color: "warning", @@ -3212,18 +3551,16 @@ "The stream was aborted before this Promise resolved." ] ], - tooltipText: componentEndTime + " Aborted" + tooltipText: childrenEndTime + " Aborted" } } } ) ) : console.timeStamp( - componentEndTime, - 0 > componentInfo$jscomp$0 - ? 0 - : componentInfo$jscomp$0, - response, + childrenEndTime, + 0 > response ? 0 : response, + startTime, trackNames[candidateInfo], "Server Components \u269b", "warning" @@ -3440,98 +3777,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = createErrorChunk(response, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = createErrorChunk(response, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -3623,6 +3937,7 @@ /^ {3} at (?:(.+) \((.+):(\d+):(\d+)\)|(?:async )?(.+):(\d+):(\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\d+):(\d+)/, hasOwnProperty = Object.prototype.hasOwnProperty, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), supportsUserTiming = "undefined" !== typeof console && "function" === typeof console.timeStamp && @@ -3632,7 +3947,6 @@ "Primary Parallel Parallel\u200b Parallel\u200b\u200b Parallel\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b Parallel\u200b\u200b\u200b\u200b\u200b\u200b\u200b\u200b".split( " " ), - REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), prefix, suffix; new ("function" === typeof WeakMap ? WeakMap : Map)(); @@ -3651,38 +3965,36 @@ case "resolved_module": initializeModuleChunk(this); } - if ("function" !== typeof resolve || !resolve.isReactInternalListener) { - var resolveCallback = resolve, - rejectCallback = reject, - wrapperPromise = new Promise(function (res, rej) { - resolve = function (value) { - wrapperPromise._debugInfo = _this._debugInfo; - res(value); - }; - reject = function (reason) { - wrapperPromise._debugInfo = _this._debugInfo; - rej(reason); - }; - }); - wrapperPromise.then(resolveCallback, rejectCallback); - } + var resolveCallback = resolve, + rejectCallback = reject, + wrapperPromise = new Promise(function (res, rej) { + resolve = function (value) { + wrapperPromise._debugInfo = _this._debugInfo; + res(value); + }; + reject = function (reason) { + wrapperPromise._debugInfo = _this._debugInfo; + rej(reason); + }; + }); + wrapperPromise.then(resolveCallback, rejectCallback); switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 6f4fd89b47ff60..f2c4805621fe2e 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 @@ -674,19 +674,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -712,17 +712,64 @@ function createErrorChunk(response, error) { return new ReactPromise("rejected", null, error); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -736,7 +783,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -746,7 +793,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -848,6 +895,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -856,52 +987,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -913,7 +998,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1017,25 +1115,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1288,8 +1438,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1297,10 +1447,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1442,8 +1592,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js index 2ba8f04c3c3126..e4fdf5a64b0fc4 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.development.js @@ -189,6 +189,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -667,7 +694,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -780,7 +807,7 @@ TaintRegistryPendingRequests.add(cleanupQueue); var hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -807,6 +834,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -883,7 +911,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -918,7 +946,7 @@ null !== thenable && thenable.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, thenable) - : emitErrorChunk(request, id, "", thenable), + : emitErrorChunk(request, id, "", thenable, !0), ref ); } @@ -943,7 +971,7 @@ null !== reason && reason.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, reason) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -998,7 +1026,7 @@ if (request.status === ABORTING) return ( request.abortableTasks.delete(newTask), - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : abortTask(newTask, request, request.fatalError), newTask.id @@ -1024,7 +1052,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && ((newTask.timed = !0), erroredTask(request, newTask, reason), enqueueFlush(request)); @@ -1034,9 +1062,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -1058,7 +1086,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1068,11 +1096,11 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal), enqueueFlush(request)); @@ -1108,9 +1136,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1145,7 +1173,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1156,11 +1184,11 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal.reason), @@ -1505,7 +1533,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1606,17 +1634,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1628,7 +1667,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1656,7 +1695,7 @@ request.writtenObjects.set(model, serializeByValueID(id)); var task = { id: id, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1748,39 +1787,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1790,7 +1803,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1844,7 +1893,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1862,12 +1911,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1880,7 +1961,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1890,11 +1971,11 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : (erroredTask(request, newTask, signal), enqueueFlush(request)); reader.cancel(signal).then(error, error); @@ -1931,8 +2012,8 @@ (parent.$$typeof === REACT_ELEMENT_TYPE || parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) { - task.status = ABORTED; - if (request.type === PRERENDER) + task.status = 3; + if (21 === request.type) return ( (task = request.nextChunkId++), (task = parent @@ -1983,7 +2064,7 @@ ? (logPostpone(request, key.message, task), emitPostponeChunk(request, prevKeyPath, key)) : ((task = logRecoverableError(request, key, task)), - emitErrorChunk(request, prevKeyPath, task, key)); + emitErrorChunk(request, prevKeyPath, task, key, !1)); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2094,8 +2175,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2345,7 +2429,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2394,7 +2478,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2424,7 +2508,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2438,13 +2532,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2480,7 +2574,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { if (TaintRegistryByteLengths.has(typedArray.byteLength)) { var tainted = TaintRegistryValues.get( String.fromCharCode.apply( @@ -2504,9 +2598,11 @@ tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2516,7 +2612,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2529,7 +2627,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2640,67 +2738,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2721,7 +2846,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2730,7 +2858,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2745,11 +2873,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2835,7 +2963,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2846,7 +2974,7 @@ function emitTimeOriginChunk(request, timeOrigin) { request.pendingChunks++; timeOrigin = stringToChunk(":N" + timeOrigin + "\n"); - request.completedRegularChunks.push(timeOrigin); + request.completedDebugChunks.push(timeOrigin); } function forwardDebugInfo(request$jscomp$1, task, debugInfo) { for (var id = task.id, i = 0; i < debugInfo.length; i++) { @@ -2897,7 +3025,7 @@ ); id$jscomp$1 = id$jscomp$1.toString(16) + ":J" + value + "\n"; id$jscomp$1 = stringToChunk(id$jscomp$1); - request$jscomp$0.completedRegularChunks.push(id$jscomp$1); + request$jscomp$0.completedDebugChunks.push(id$jscomp$1); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id$jscomp$0) @@ -2953,7 +3081,7 @@ timestamp -= request.timeOrigin; id = id.toString(16) + ':D{"time":' + timestamp + "}\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function markOperationEndTime(request, task, timestamp) { request.status !== ABORTING && @@ -2967,39 +3095,51 @@ "string" === typeof value && null !== byteLengthOfChunk ? ((task = TaintRegistryValues.get(value)), void 0 !== task && throwTaintViolation(task.message), - emitTextChunk(request, id, value)) + emitTextChunk(request, id, value, !1)) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { task.timed && markOperationEndTime(request, task, performance.now()); - task.status = ERRORED$1; + task.status = 4; if ( "object" === typeof error && null !== error && @@ -3009,15 +3149,15 @@ emitPostponeChunk(request, task.id, error); else { var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); } request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -3048,14 +3188,14 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), - request.type === PRERENDER + (task.status = 0), + 21 === request.type ? haltTask(task, request) : abortTask(task, request, request.fatalError); else { @@ -3068,7 +3208,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -3112,8 +3252,8 @@ } } function abortTask(task, request, errorId) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), task.timed && markOperationEndTime(request, task, performance.now()), (errorId = serializeByValueID(errorId)), @@ -3121,8 +3261,8 @@ request.completedErrorChunks.push(task)); } function haltTask(task, request) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), request.pendingChunks--); } @@ -3152,6 +3292,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3202,7 +3353,7 @@ return performWork(request); }); scheduleWork(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3221,7 +3372,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3241,7 +3392,7 @@ callOnAllReadyIfReady(request)); var abortableTasks = request.abortableTasks; if (0 < abortableTasks.size) { - if (request.type === PRERENDER) + if (21 === request.type) abortableTasks.forEach(function (task) { return haltTask(task, request); }); @@ -3275,7 +3426,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4571,16 +4722,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js index 4a68b9e126fad2..d114e9b9dd8a9c 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.browser.production.js @@ -1471,8 +1471,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -2051,7 +2054,7 @@ function abort(request, reason) { errorId$27 = request.nextChunkId++; request.fatalError = errorId$27; request.pendingChunks++; - emitErrorChunk(request, errorId$27, digest, error); + emitErrorChunk(request, errorId$27, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId$27); }); diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js index 81421885951516..340dcba4babfbd 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.development.js @@ -202,6 +202,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -683,7 +710,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -796,7 +823,7 @@ TaintRegistryPendingRequests.add(cleanupQueue); var hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -823,6 +850,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -899,7 +927,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -939,7 +967,7 @@ null !== thenable && thenable.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, thenable) - : emitErrorChunk(request, id, "", thenable), + : emitErrorChunk(request, id, "", thenable, !0), ref ); } @@ -964,7 +992,7 @@ null !== reason && reason.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, reason) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -1019,7 +1047,7 @@ if (request.status === ABORTING) return ( request.abortableTasks.delete(newTask), - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : abortTask(newTask, request, request.fatalError), newTask.id @@ -1045,7 +1073,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && ((newTask.timed = !0), erroredTask(request, newTask, reason), enqueueFlush(request)); @@ -1055,9 +1083,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -1079,7 +1107,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1089,11 +1117,11 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal), enqueueFlush(request)); @@ -1129,9 +1157,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1166,7 +1194,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1177,11 +1205,11 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal.reason), @@ -1574,7 +1602,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1675,17 +1703,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1697,7 +1736,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1725,7 +1764,7 @@ request.writtenObjects.set(model, serializeByValueID(id)); var task = { id: id, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1817,39 +1856,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1859,7 +1872,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1913,7 +1962,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1931,12 +1980,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1949,7 +2030,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1959,11 +2040,11 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : (erroredTask(request, newTask, signal), enqueueFlush(request)); reader.cancel(signal).then(error, error); @@ -2000,8 +2081,8 @@ (parent.$$typeof === REACT_ELEMENT_TYPE || parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) { - task.status = ABORTED; - if (request.type === PRERENDER) + task.status = 3; + if (21 === request.type) return ( (task = request.nextChunkId++), (task = parent @@ -2052,7 +2133,7 @@ ? (logPostpone(request, key.message, task), emitPostponeChunk(request, prevKeyPath, key)) : ((task = logRecoverableError(request, key, task)), - emitErrorChunk(request, prevKeyPath, task, key)); + emitErrorChunk(request, prevKeyPath, task, key, !1)); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2163,8 +2244,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2436,7 +2520,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2485,7 +2569,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2515,7 +2599,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2529,13 +2623,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2571,7 +2665,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { if (TaintRegistryByteLengths.has(typedArray.byteLength)) { var tainted = TaintRegistryValues.get( String.fromCharCode.apply( @@ -2595,9 +2689,11 @@ tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2607,7 +2703,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2620,7 +2718,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2731,67 +2829,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2812,7 +2937,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2821,7 +2949,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2836,11 +2964,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2926,7 +3054,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2937,7 +3065,7 @@ function emitTimeOriginChunk(request, timeOrigin) { request.pendingChunks++; timeOrigin = stringToChunk(":N" + timeOrigin + "\n"); - request.completedRegularChunks.push(timeOrigin); + request.completedDebugChunks.push(timeOrigin); } function forwardDebugInfo(request$jscomp$1, task, debugInfo) { for (var id = task.id, i = 0; i < debugInfo.length; i++) { @@ -2988,7 +3116,7 @@ ); id$jscomp$1 = id$jscomp$1.toString(16) + ":J" + value + "\n"; id$jscomp$1 = stringToChunk(id$jscomp$1); - request$jscomp$0.completedRegularChunks.push(id$jscomp$1); + request$jscomp$0.completedDebugChunks.push(id$jscomp$1); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id$jscomp$0) @@ -3044,7 +3172,7 @@ timestamp -= request.timeOrigin; id = id.toString(16) + ':D{"time":' + timestamp + "}\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function markOperationEndTime(request, task, timestamp) { request.status !== ABORTING && @@ -3058,39 +3186,51 @@ "string" === typeof value && null !== byteLengthOfChunk ? ((task = TaintRegistryValues.get(value)), void 0 !== task && throwTaintViolation(task.message), - emitTextChunk(request, id, value)) + emitTextChunk(request, id, value, !1)) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { task.timed && markOperationEndTime(request, task, performance.now()); - task.status = ERRORED$1; + task.status = 4; if ( "object" === typeof error && null !== error && @@ -3100,15 +3240,15 @@ emitPostponeChunk(request, task.id, error); else { var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); } request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -3139,14 +3279,14 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), - request.type === PRERENDER + (task.status = 0), + 21 === request.type ? haltTask(task, request) : abortTask(task, request, request.fatalError); else { @@ -3159,7 +3299,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -3203,8 +3343,8 @@ } } function abortTask(task, request, errorId) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), task.timed && markOperationEndTime(request, task, performance.now()), (errorId = serializeByValueID(errorId)), @@ -3212,8 +3352,8 @@ request.completedErrorChunks.push(task)); } function haltTask(task, request) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), request.pendingChunks--); } @@ -3243,6 +3383,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3297,7 +3448,7 @@ return performWork(request); }); setTimeoutOrImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3316,7 +3467,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3336,7 +3487,7 @@ callOnAllReadyIfReady(request)); var abortableTasks = request.abortableTasks; if (0 < abortableTasks.size) { - if (request.type === PRERENDER) + if (21 === request.type) abortableTasks.forEach(function (task) { return haltTask(task, request); }); @@ -3370,7 +3521,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4662,16 +4813,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js index ce98a66b3cf08e..35e04f62553b16 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.edge.production.js @@ -1479,8 +1479,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -2067,7 +2070,7 @@ function abort(request, reason) { errorId$27 = request.nextChunkId++; request.fatalError = errorId$27; request.pendingChunks++; - emitErrorChunk(request, errorId$27, digest, error); + emitErrorChunk(request, errorId$27, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId$27); }); diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js index fba1971d31171a..fd84a3346bff5c 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.development.js @@ -220,6 +220,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -712,7 +739,7 @@ env, "Unknown Value: React could not send it from the server." ])); - request.completedRegularChunks.push(":W" + args + "\n"); + request.completedDebugChunks.push(":W" + args + "\n"); } return originalMethod.apply(this, arguments); }; @@ -825,7 +852,7 @@ TaintRegistryPendingRequests.add(cleanupQueue); var hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -852,6 +879,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -928,7 +956,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -965,7 +993,7 @@ null !== thenable && thenable.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, thenable) - : emitErrorChunk(request, id, "", thenable), + : emitErrorChunk(request, id, "", thenable, !0), ref ); } @@ -990,7 +1018,7 @@ null !== reason && reason.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, reason) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -1045,7 +1073,7 @@ if (request.status === ABORTING) return ( request.abortableTasks.delete(newTask), - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : abortTask(newTask, request, request.fatalError), newTask.id @@ -1071,7 +1099,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && ((newTask.timed = !0), erroredTask(request, newTask, reason), enqueueFlush(request)); @@ -1081,9 +1109,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(entry), request.abortableTasks.delete(streamTask), @@ -1105,7 +1133,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1115,11 +1143,11 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal), enqueueFlush(request)); @@ -1155,9 +1183,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1192,7 +1220,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1203,11 +1231,11 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal.reason), @@ -1572,7 +1600,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1673,17 +1701,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1817,7 +1856,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1845,7 +1884,7 @@ request.writtenObjects.set(model, serializeByValueID(id)); var task = { id: id, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1936,38 +1975,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - processedChunk = importId.toString(16) + ":I" + json + "\n"; - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1977,7 +1991,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -2031,7 +2081,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -2049,12 +2099,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); return serializeByValueID(bufferId); } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); + return serializeByValueID(bufferId); + } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -2067,7 +2149,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -2077,11 +2159,11 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : (erroredTask(request, newTask, signal), enqueueFlush(request)); reader.cancel(signal).then(error, error); @@ -2118,8 +2200,8 @@ (parent.$$typeof === REACT_ELEMENT_TYPE || parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) { - task.status = ABORTED; - if (request.type === PRERENDER) + task.status = 3; + if (21 === request.type) return ( (task = request.nextChunkId++), (task = parent @@ -2170,7 +2252,7 @@ ? (logPostpone(request, key.message, task), emitPostponeChunk(request, prevKeyPath, key)) : ((task = logRecoverableError(request, key, task)), - emitErrorChunk(request, prevKeyPath, task, key)); + emitErrorChunk(request, prevKeyPath, task, key, !1)); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2281,8 +2363,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2545,7 +2630,7 @@ cleanupTaintQueue(request); null !== request.destination ? ((request.status = CLOSED), request.destination.destroy(error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2593,7 +2678,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2622,7 +2707,16 @@ env: env }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2630,12 +2724,12 @@ } function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2695,7 +2789,7 @@ null != owner && (name.owner = owner); value = serializeDebugModel(request, objectLimit, name); id = id.toString(16) + ":J" + value + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function serializeIONode(request, ioNode, promiseRef) { var existingRef = request.writtenDebugObjects.get(ioNode); @@ -2757,7 +2851,7 @@ request.writtenDebugObjects.set(ioNode, existingRef); return existingRef; } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { if (TaintRegistryByteLengths.has(typedArray.byteLength)) { var tainted = TaintRegistryValues.get( String.fromCharCode.apply( @@ -2779,9 +2873,11 @@ ); tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2789,7 +2885,9 @@ request.pendingChunks++; var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2802,7 +2900,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2913,67 +3011,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2994,7 +3119,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -3003,7 +3131,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -3018,11 +3146,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -3107,7 +3235,7 @@ debugModelRoot = prevModelRoot; } id = id.toString(16) + ":" + json + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -3117,7 +3245,7 @@ } function emitTimeOriginChunk(request, timeOrigin) { request.pendingChunks++; - request.completedRegularChunks.push(":N" + timeOrigin + "\n"); + request.completedDebugChunks.push(":N" + timeOrigin + "\n"); } function forwardDebugInfo(request$jscomp$0, task, debugInfo) { for (var id = task.id, i = 0; i < debugInfo.length; i++) { @@ -3248,7 +3376,7 @@ request.pendingChunks++; timestamp -= request.timeOrigin; id = id.toString(16) + ':D{"time":' + timestamp + "}\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function advanceTaskTime(request, task, timestamp) { timestamp > task.time @@ -3269,33 +3397,45 @@ "string" === typeof value && null !== byteLengthOfChunk ? ((task = TaintRegistryValues.get(value)), void 0 !== task && throwTaintViolation(task.message), - emitTextChunk(request, id, value)) + emitTextChunk(request, id, value, !1)) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), (task = task.id.toString(16) + @@ -3306,7 +3446,7 @@ } function erroredTask(request, task, error) { task.timed && markOperationEndTime(request, task, performance.now()); - task.status = ERRORED$1; + task.status = 4; if ( "object" === typeof error && null !== error && @@ -3316,15 +3456,15 @@ emitPostponeChunk(request, task.id, error); else { var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); } request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -3356,14 +3496,14 @@ processedChunk = task.id.toString(16) + ":" + json + "\n"; request.completedRegularChunks.push(processedChunk); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), - request.type === PRERENDER + (task.status = 0), + 21 === request.type ? haltTask(task, request) : abortTask(task, request, request.fatalError); else { @@ -3376,7 +3516,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -3421,8 +3561,8 @@ } } function abortTask(task, request, errorId) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), task.timed && markOperationEndTime(request, task, performance.now()), (errorId = serializeByValueID(errorId)), @@ -3430,8 +3570,8 @@ request.completedErrorChunks.push(task)); } function haltTask(task, request) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), request.pendingChunks--); } @@ -3462,6 +3602,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3512,7 +3663,7 @@ requestStorage.run(request, performWork, request); }); setImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3531,7 +3682,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), destination.destroy(request.fatalError); else if (request.status !== CLOSED && null === request.destination) { request.destination = destination; @@ -3550,7 +3701,7 @@ callOnAllReadyIfReady(request)); var abortableTasks = request.abortableTasks; if (0 < abortableTasks.size) { - if (request.type === PRERENDER) + if (21 === request.type) abortableTasks.forEach(function (task) { return haltTask(task, request); }); @@ -3584,7 +3735,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -5103,16 +5254,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -5277,12 +5420,12 @@ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_202 = []; + var JSCompiler_object_inline_chunks_214 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_202.push(chunk); + JSCompiler_object_inline_chunks_214.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_202, { + var blob = new Blob(JSCompiler_object_inline_chunks_214, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js index 5ba936c071b604..e8679b987be83b 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.production.js @@ -1490,8 +1490,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -2084,7 +2087,7 @@ function abort(request, reason) { errorId$27 = request.nextChunkId++; request.fatalError = errorId$27; request.pendingChunks++; - emitErrorChunk(request, errorId$27, digest, error); + emitErrorChunk(request, errorId$27, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId$27); }); @@ -2976,12 +2979,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) { "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_254 = []; + var JSCompiler_object_inline_chunks_255 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_254.push(chunk); + JSCompiler_object_inline_chunks_255.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_254, { + var blob = new Blob(JSCompiler_object_inline_chunks_255, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.development.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.development.js index f128f7f84bc74f..53c98ac74c66e5 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.development.js @@ -220,6 +220,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -712,7 +739,7 @@ env, "Unknown Value: React could not send it from the server." ])); - request.completedRegularChunks.push(":W" + args + "\n"); + request.completedDebugChunks.push(":W" + args + "\n"); } return originalMethod.apply(this, arguments); }; @@ -825,7 +852,7 @@ TaintRegistryPendingRequests.add(cleanupQueue); var hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -852,6 +879,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -928,7 +956,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -965,7 +993,7 @@ null !== thenable && thenable.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, thenable) - : emitErrorChunk(request, id, "", thenable), + : emitErrorChunk(request, id, "", thenable, !0), ref ); } @@ -990,7 +1018,7 @@ null !== reason && reason.$$typeof === REACT_POSTPONE_TYPE ? emitPostponeChunk(request, id, reason) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -1045,7 +1073,7 @@ if (request.status === ABORTING) return ( request.abortableTasks.delete(newTask), - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : abortTask(newTask, request, request.fatalError), newTask.id @@ -1071,7 +1099,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && ((newTask.timed = !0), erroredTask(request, newTask, reason), enqueueFlush(request)); @@ -1081,9 +1109,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(entry), request.abortableTasks.delete(streamTask), @@ -1105,7 +1133,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1115,11 +1143,11 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal), enqueueFlush(request)); @@ -1155,9 +1183,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1192,7 +1220,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1203,11 +1231,11 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; - request.type === PRERENDER + 21 === request.type ? (haltTask(streamTask, request), request.abortableTasks.delete(streamTask)) : (erroredTask(request, streamTask, signal.reason), @@ -1572,7 +1600,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1673,17 +1701,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1817,7 +1856,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1845,7 +1884,7 @@ request.writtenObjects.set(model, serializeByValueID(id)); var task = { id: id, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1936,38 +1975,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - processedChunk = importId.toString(16) + ":I" + json + "\n"; - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1977,7 +1991,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -2031,7 +2081,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -2049,12 +2099,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -2067,7 +2149,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -2077,11 +2159,11 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; - request.type === PRERENDER + 21 === request.type ? haltTask(newTask, request) : (erroredTask(request, newTask, signal), enqueueFlush(request)); reader.cancel(signal).then(error, error); @@ -2118,8 +2200,8 @@ (parent.$$typeof === REACT_ELEMENT_TYPE || parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) { - task.status = ABORTED; - if (request.type === PRERENDER) + task.status = 3; + if (21 === request.type) return ( (task = request.nextChunkId++), (task = parent @@ -2170,7 +2252,7 @@ ? (logPostpone(request, key.message, task), emitPostponeChunk(request, prevKeyPath, key)) : ((task = logRecoverableError(request, key, task)), - emitErrorChunk(request, prevKeyPath, task, key)); + emitErrorChunk(request, prevKeyPath, task, key, !1)); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2281,8 +2363,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2545,7 +2630,7 @@ cleanupTaintQueue(request); null !== request.destination ? ((request.status = CLOSED), request.destination.destroy(error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2593,7 +2678,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2622,7 +2707,16 @@ env: env }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2630,12 +2724,12 @@ } function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2695,7 +2789,7 @@ null != owner && (name.owner = owner); value = serializeDebugModel(request, objectLimit, name); id = id.toString(16) + ":J" + value + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function serializeIONode(request, ioNode, promiseRef) { var existingRef = request.writtenDebugObjects.get(ioNode); @@ -2757,7 +2851,7 @@ request.writtenDebugObjects.set(ioNode, existingRef); return existingRef; } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { if (TaintRegistryByteLengths.has(typedArray.byteLength)) { var tainted = TaintRegistryValues.get( String.fromCharCode.apply( @@ -2779,9 +2873,11 @@ ); tainted = typedArray.byteLength; id = id.toString(16) + ":" + tag + tainted.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2789,7 +2885,9 @@ request.pendingChunks++; var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2802,7 +2900,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2913,67 +3011,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2994,7 +3119,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -3003,7 +3131,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -3018,11 +3146,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -3107,7 +3235,7 @@ debugModelRoot = prevModelRoot; } id = id.toString(16) + ":" + json + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -3117,7 +3245,7 @@ } function emitTimeOriginChunk(request, timeOrigin) { request.pendingChunks++; - request.completedRegularChunks.push(":N" + timeOrigin + "\n"); + request.completedDebugChunks.push(":N" + timeOrigin + "\n"); } function forwardDebugInfo(request$jscomp$0, task, debugInfo) { for (var id = task.id, i = 0; i < debugInfo.length; i++) { @@ -3248,7 +3376,7 @@ request.pendingChunks++; timestamp -= request.timeOrigin; id = id.toString(16) + ':D{"time":' + timestamp + "}\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function advanceTaskTime(request, task, timestamp) { timestamp > task.time @@ -3269,33 +3397,45 @@ "string" === typeof value && null !== byteLengthOfChunk ? ((task = TaintRegistryValues.get(value)), void 0 !== task && throwTaintViolation(task.message), - emitTextChunk(request, id, value)) + emitTextChunk(request, id, value, !1)) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), (task = task.id.toString(16) + @@ -3306,7 +3446,7 @@ } function erroredTask(request, task, error) { task.timed && markOperationEndTime(request, task, performance.now()); - task.status = ERRORED$1; + task.status = 4; if ( "object" === typeof error && null !== error && @@ -3316,15 +3456,15 @@ emitPostponeChunk(request, task.id, error); else { var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); } request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -3356,14 +3496,14 @@ processedChunk = task.id.toString(16) + ":" + json + "\n"; request.completedRegularChunks.push(processedChunk); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), - request.type === PRERENDER + (task.status = 0), + 21 === request.type ? haltTask(task, request) : abortTask(task, request, request.fatalError); else { @@ -3376,7 +3516,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -3421,8 +3561,8 @@ } } function abortTask(task, request, errorId) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), task.timed && markOperationEndTime(request, task, performance.now()), (errorId = serializeByValueID(errorId)), @@ -3430,8 +3570,8 @@ request.completedErrorChunks.push(task)); } function haltTask(task, request) { - task.status !== RENDERING && - ((task.status = ABORTED), + 5 !== task.status && + ((task.status = 3), forwardDebugInfoFromAbortedTask(request, task), request.pendingChunks--); } @@ -3462,6 +3602,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3512,7 +3663,7 @@ requestStorage.run(request, performWork, request); }); setImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3531,7 +3682,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), destination.destroy(request.fatalError); else if (request.status !== CLOSED && null === request.destination) { request.destination = destination; @@ -3550,7 +3701,7 @@ callOnAllReadyIfReady(request)); var abortableTasks = request.abortableTasks; if (0 < abortableTasks.size) { - if (request.type === PRERENDER) + if (21 === request.type) abortableTasks.forEach(function (task) { return haltTask(task, request); }); @@ -3584,7 +3735,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -5066,16 +5217,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, TaintRegistryObjects = ReactSharedInternalsServer.TaintRegistryObjects, TaintRegistryValues = ReactSharedInternalsServer.TaintRegistryValues, TaintRegistryByteLengths = @@ -5240,12 +5383,12 @@ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_202 = []; + var JSCompiler_object_inline_chunks_214 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_202.push(chunk); + JSCompiler_object_inline_chunks_214.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_202, { + var blob = new Blob(JSCompiler_object_inline_chunks_214, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.production.js b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.production.js index bf23cb7014af04..cf84be8e29e54e 100644 --- a/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack-experimental/cjs/react-server-dom-webpack-server.node.unbundled.production.js @@ -1490,8 +1490,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -2084,7 +2087,7 @@ function abort(request, reason) { errorId$27 = request.nextChunkId++; request.fatalError = errorId$27; request.pendingChunks++; - emitErrorChunk(request, errorId$27, digest, error); + emitErrorChunk(request, errorId$27, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId$27); }); @@ -2942,12 +2945,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) { "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_254 = []; + var JSCompiler_object_inline_chunks_255 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_254.push(chunk); + JSCompiler_object_inline_chunks_255.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_254, { + var blob = new Blob(JSCompiler_object_inline_chunks_255, { type: mimeType }); response._formData.append(name, blob, filename); 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 3490993932db77..c9c340771f6632 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-4db4b21c-20250626", - "react-dom": "0.0.0-experimental-4db4b21c-20250626", + "react": "0.0.0-experimental-65c4decb-20250630", + "react-dom": "0.0.0-experimental-65c4decb-20250630", "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 1e1fd3caab837f..e1835763bcdf5f 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 @@ -941,17 +941,64 @@ return new ReactPromise("pending", null, null); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -965,7 +1012,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -975,7 +1022,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1089,6 +1136,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1109,6 +1195,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1117,72 +1312,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1194,7 +1323,20 @@ deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1313,18 +1455,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1344,7 +1526,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1353,6 +1534,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1735,8 +1929,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -1744,10 +1938,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2255,8 +2449,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2401,98 +2595,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = new ReactPromise("rejected", null, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = new ReactPromise("rejected", null, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -2690,21 +2861,21 @@ } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, @@ -2820,10 +2991,10 @@ return hook.checkDCE ? !0 : !1; })({ bundleType: 1, - version: "19.2.0-canary-4db4b21c-20250626", + version: "19.2.0-canary-65c4decb-20250630", rendererPackageName: "react-server-dom-webpack", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-canary-4db4b21c-20250626", + reconcilerVersion: "19.2.0-canary-65c4decb-20250630", getCurrentComponentInfo: function () { return currentOwnerInDEV; } 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 4274b46c7cb9b2..5ff10ea5229338 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 @@ -546,19 +546,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -581,17 +581,64 @@ function readChunk(chunk) { } } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -605,7 +652,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -615,7 +662,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -717,6 +764,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -725,52 +856,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -782,7 +867,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -871,25 +969,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1137,8 +1287,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1146,10 +1296,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1291,8 +1441,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 94055f16973f9c..f923e848568b49 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 @@ -1149,17 +1149,64 @@ return new ReactPromise("pending", null, null); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1173,7 +1220,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1183,7 +1230,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1297,6 +1344,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1317,6 +1403,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1325,72 +1520,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1402,7 +1531,20 @@ deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1528,18 +1670,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1559,7 +1741,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1568,6 +1749,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1955,8 +2149,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -1964,10 +2158,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2475,8 +2669,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2621,98 +2815,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = new ReactPromise("rejected", null, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = new ReactPromise("rejected", null, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -2893,21 +3064,21 @@ } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 ed3edf4ccf0514..9a7e3262a74d2d 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 @@ -707,19 +707,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -742,17 +742,64 @@ function readChunk(chunk) { } } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -766,7 +813,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -776,7 +823,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -878,6 +925,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -886,52 +1017,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -943,7 +1028,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1047,25 +1145,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1318,8 +1468,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1327,10 +1477,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1472,8 +1622,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 b3b0832f745d2c..da4b84e8c1a52b 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 @@ -1149,17 +1149,64 @@ return new ReactPromise("pending", null, null); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1173,7 +1220,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1183,7 +1230,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1297,6 +1344,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1317,6 +1403,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1325,72 +1520,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1402,7 +1531,20 @@ deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1528,18 +1670,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1559,7 +1741,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1568,6 +1749,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1955,8 +2149,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -1964,10 +2158,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2475,8 +2669,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2700,98 +2894,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = new ReactPromise("rejected", null, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = new ReactPromise("rejected", null, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -2900,21 +3071,21 @@ } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 8dc059a269ff7f..676d9380b9da3a 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 @@ -708,19 +708,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -743,17 +743,64 @@ function readChunk(chunk) { } } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -767,7 +814,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -777,7 +824,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -879,6 +926,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -887,52 +1018,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -944,7 +1029,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1048,25 +1146,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1319,8 +1469,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1328,10 +1478,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1473,8 +1623,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } 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 e1ce7e48bf069e..3097440e13b4b0 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 @@ -1111,17 +1111,64 @@ return new ReactPromise("pending", null, null); } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } + } + function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } + } + function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -1135,7 +1182,7 @@ } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -1145,7 +1192,7 @@ var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -1259,6 +1306,45 @@ return "<...>"; } } + function initializeElement(response, element) { + var stack = element._debugStack, + owner = element._owner; + null === owner && (element._owner = response._debugRootOwner); + var env = response._rootEnvironmentName; + null !== owner && null != owner.env && (env = owner.env); + var normalizedStackTrace = null; + null === owner && null != response._debugRootStack + ? (normalizedStackTrace = response._debugRootStack) + : null !== stack && + (normalizedStackTrace = createFakeJSXCallStackInDEV( + response, + stack, + env + )); + element._debugStack = normalizedStackTrace; + normalizedStackTrace = null; + supportsCreateTask && + null !== stack && + ((normalizedStackTrace = console.createTask.bind( + console, + getTaskName(element.type) + )), + (stack = buildFakeCallStack( + response, + stack, + env, + !1, + normalizedStackTrace + )), + (env = null === owner ? null : initializeFakeTask(response, owner)), + null === env + ? ((env = response._debugRootTask), + (normalizedStackTrace = null != env ? env.run(stack) : stack())) + : (normalizedStackTrace = env.run(stack))); + element._debugTask = normalizedStackTrace; + null !== owner && initializeFakeStack(response, owner); + Object.freeze(element.props); + } function createLazyChunkWrapper(chunk) { var lazyType = { $$typeof: REACT_LAZY_TYPE, @@ -1279,6 +1365,115 @@ chunks.set(id, chunk)); return chunk; } + function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + break; + case "4": + parentObject._owner = reference; + break; + case "5": + parentObject._debugStack = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); + } + function rejectReference(reference, error) { + var handler = reference.handler; + if ( + !handler.errored && + ((reference = handler.value), + (handler.errored = !0), + (handler.value = error), + (handler = handler.chunk), + null !== handler && "blocked" === handler.status) + ) { + if ( + "object" === typeof reference && + null !== reference && + reference.$$typeof === REACT_ELEMENT_TYPE + ) { + var erroredComponent = { + name: getComponentNameFromType(reference.type) || "", + owner: reference._owner + }; + erroredComponent.debugStack = reference._debugStack; + supportsCreateTask && + (erroredComponent.debugTask = reference._debugTask); + (handler._debugInfo || (handler._debugInfo = [])).push( + erroredComponent + ); + } + triggerErrorOnChunk(handler, error); + } + } function waitForReference( referencedChunk, parentObject, @@ -1287,72 +1482,6 @@ map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - break; - case "4": - value._owner = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - var blockedValue = handler.value; - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - if (null !== chunk && "blocked" === chunk.status) { - if ( - "object" === typeof blockedValue && - null !== blockedValue && - blockedValue.$$typeof === REACT_ELEMENT_TYPE - ) { - var erroredComponent = { - name: getComponentNameFromType(blockedValue.type) || "", - owner: blockedValue._owner - }; - erroredComponent.debugStack = blockedValue._debugStack; - supportsCreateTask && - (erroredComponent.debugTask = blockedValue._debugTask); - (chunk._debugInfo || (chunk._debugInfo = [])).push( - erroredComponent - ); - } - triggerErrorOnChunk(chunk, error); - } - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -1364,7 +1493,20 @@ deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1490,18 +1632,58 @@ switch (id.status) { case "fulfilled": for (var value = id.value, i = 1; i < reference.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(i - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(i - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[i]]; } response = map(response, value, parentObject, key); @@ -1521,7 +1703,6 @@ return response; case "pending": case "blocked": - case "halted": return waitForReference( id, parentObject, @@ -1530,6 +1711,19 @@ map, reference ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1917,8 +2111,8 @@ (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var _chunk3 = createPendingChunk(); - _chunk3.then( + var _chunk2 = createPendingChunk(); + _chunk2.then( function (v) { return controller.enqueue(v); }, @@ -1926,10 +2120,10 @@ return controller.error(e); } ); - previousBlockedChunk = _chunk3; + previousBlockedChunk = _chunk2; chunk.then(function () { - previousBlockedChunk === _chunk3 && (previousBlockedChunk = null); - resolveModelChunk(response, _chunk3, json); + previousBlockedChunk === _chunk2 && (previousBlockedChunk = null); + resolveModelChunk(response, _chunk2, json); }); } }, @@ -2437,8 +2631,8 @@ ) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var _i2 = (i = 0); _i2 < l; _i2++) { - var chunk = buffer[_i2]; + for (var _i3 = (i = 0); _i3 < l; _i3++) { + var chunk = buffer[_i3]; byteLength.set(chunk, i); i += chunk.byteLength; } @@ -2662,98 +2856,75 @@ if ("string" === typeof value) return parseModelString(response, this, key, value); if ("object" === typeof value && null !== value) { - if (value[0] === REACT_ELEMENT_TYPE) { - var type = value[1]; - key = value[4]; - var stack = value[5], - validated = value[6]; - value = { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: value[2], - props: value[3], - _owner: null === key ? response._debugRootOwner : key - }; - Object.defineProperty(value, "ref", { - enumerable: !1, - get: nullRefGetter - }); - value._store = {}; - Object.defineProperty(value._store, "validated", { - configurable: !1, - enumerable: !1, - writable: !0, - value: validated - }); - Object.defineProperty(value, "_debugInfo", { - configurable: !1, - enumerable: !1, - writable: !0, - value: null - }); - validated = response._rootEnvironmentName; - null !== key && null != key.env && (validated = key.env); - var normalizedStackTrace = null; - null === key && null != response._debugRootStack - ? (normalizedStackTrace = response._debugRootStack) - : null !== stack && - (normalizedStackTrace = createFakeJSXCallStackInDEV( - response, - stack, - validated - )); - Object.defineProperty(value, "_debugStack", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - normalizedStackTrace = null; - supportsCreateTask && - null !== stack && - ((type = console.createTask.bind(console, getTaskName(type))), - (stack = buildFakeCallStack( - response, - stack, - validated, - !1, - type - )), - (type = null === key ? null : initializeFakeTask(response, key)), - null === type - ? ((type = response._debugRootTask), - (normalizedStackTrace = - null != type ? type.run(stack) : stack())) - : (normalizedStackTrace = type.run(stack))); - Object.defineProperty(value, "_debugTask", { - configurable: !1, - enumerable: !1, - writable: !0, - value: normalizedStackTrace - }); - null !== key && initializeFakeStack(response, key); - null !== initializingHandler - ? ((stack = initializingHandler), - (initializingHandler = stack.parent), - stack.errored - ? ((key = new ReactPromise("rejected", null, stack.value)), - (stack = { - name: getComponentNameFromType(value.type) || "", - owner: value._owner - }), - (stack.debugStack = value._debugStack), - supportsCreateTask && (stack.debugTask = value._debugTask), - (key._debugInfo = [stack]), - (value = createLazyChunkWrapper(key))) - : 0 < stack.deps && - ((key = new ReactPromise("blocked", null, null)), - (stack.value = value), - (stack.chunk = key), - (value = Object.freeze.bind(Object, value.props)), - key.then(value, value), - (value = createLazyChunkWrapper(key)))) - : Object.freeze(value.props); - } + if (value[0] === REACT_ELEMENT_TYPE) + b: { + key = value[5]; + var validated = value[6]; + value = { + $$typeof: REACT_ELEMENT_TYPE, + type: value[1], + key: value[2], + props: value[3], + _owner: value[4] + }; + Object.defineProperty(value, "ref", { + enumerable: !1, + get: nullRefGetter + }); + value._store = {}; + Object.defineProperty(value._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: validated + }); + Object.defineProperty(value, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(value, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: key + }); + Object.defineProperty(value, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + if (null !== initializingHandler) { + validated = initializingHandler; + initializingHandler = validated.parent; + if (validated.errored) { + key = new ReactPromise("rejected", null, validated.value); + initializeElement(response, value); + validated = { + name: getComponentNameFromType(value.type) || "", + owner: value._owner + }; + validated.debugStack = value._debugStack; + supportsCreateTask && + (validated.debugTask = value._debugTask); + key._debugInfo = [validated]; + value = createLazyChunkWrapper(key); + break b; + } + if (0 < validated.deps) { + key = new ReactPromise("blocked", null, null); + validated.value = value; + validated.chunk = key; + value = initializeElement.bind(null, response, value); + key.then(value, value); + value = createLazyChunkWrapper(key); + break b; + } + } + initializeElement(response, value); + } return value; } return value; @@ -2862,21 +3033,21 @@ } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; var initializingHandler = null, 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 09dcb3c31416b0..6c6c593cdf788a 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 @@ -673,19 +673,19 @@ ReactPromise.prototype.then = function (resolve, reject) { } switch (this.status) { case "fulfilled": - resolve(this.value); + "function" === typeof resolve && resolve(this.value); break; case "pending": case "blocked": - resolve && + "function" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve)); - reject && + "function" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject)); break; case "halted": break; default: - reject && reject(this.reason); + "function" === typeof reject && reject(this.reason); } }; function readChunk(chunk) { @@ -708,17 +708,64 @@ function readChunk(chunk) { } } function wakeChunk(listeners, value) { - for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value); + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(value) + : fulfillReference(listener, value); + } +} +function rejectChunk(listeners, error) { + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + "function" === typeof listener + ? listener(error) + : rejectReference(listener, error); + } +} +function resolveBlockedCycle(resolvedChunk, reference) { + var referencedChunk = reference.handler.chunk; + if (null === referencedChunk) return null; + if (referencedChunk === resolvedChunk) return reference.handler; + reference = referencedChunk.value; + if (null !== reference) + for ( + referencedChunk = 0; + referencedChunk < reference.length; + referencedChunk++ + ) { + var listener = reference[referencedChunk]; + if ( + "function" !== typeof listener && + ((listener = resolveBlockedCycle(resolvedChunk, listener)), + null !== listener) + ) + return listener; + } + return null; } function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { switch (chunk.status) { case "fulfilled": wakeChunk(resolveListeners, chunk.value); break; - case "pending": case "blocked": + for (var i = 0; i < resolveListeners.length; i++) { + var listener = resolveListeners[i]; + if ("function" !== typeof listener) { + var cyclicHandler = resolveBlockedCycle(chunk, listener); + null !== cyclicHandler && + (fulfillReference(listener, cyclicHandler.value), + resolveListeners.splice(i, 1), + i--, + null !== rejectListeners && + ((listener = rejectListeners.indexOf(listener)), + -1 !== listener && rejectListeners.splice(listener, 1))); + } + } + case "pending": if (chunk.value) - for (var i = 0; i < resolveListeners.length; i++) + for (i = 0; i < resolveListeners.length; i++) chunk.value.push(resolveListeners[i]); else chunk.value = resolveListeners; if (chunk.reason) { @@ -732,7 +779,7 @@ function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) { } else chunk.reason = rejectListeners; break; case "rejected": - rejectListeners && wakeChunk(rejectListeners, chunk.reason); + rejectListeners && rejectChunk(rejectListeners, chunk.reason); } } function triggerErrorOnChunk(chunk, error) { @@ -742,7 +789,7 @@ function triggerErrorOnChunk(chunk, error) { var listeners = chunk.reason; chunk.status = "rejected"; chunk.reason = error; - null !== listeners && wakeChunk(listeners, error); + null !== listeners && rejectChunk(listeners, error); } } function createResolvedIteratorResultChunk(response, value, done) { @@ -844,6 +891,90 @@ function getChunk(response, id) { chunks.set(id, chunk)); return chunk; } +function fulfillReference(reference, value) { + for ( + var response = reference.response, + handler = reference.handler, + parentObject = reference.parentObject, + key = reference.key, + map = reference.map, + path = reference.path, + i = 1; + i < path.length; + i++ + ) { + for (; value.$$typeof === REACT_LAZY_TYPE; ) + if (((value = value._payload), value === handler.chunk)) + value = handler.value; + else { + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + continue; + case "blocked": + var cyclicHandler = resolveBlockedCycle(value, reference); + if (null !== cyclicHandler) { + value = cyclicHandler.value; + continue; + } + case "pending": + path.splice(0, i - 1); + null === value.value + ? (value.value = [reference]) + : value.value.push(reference); + null === value.reason + ? (value.reason = [reference]) + : value.reason.push(reference); + return; + case "halted": + return; + default: + rejectReference(reference, value.reason); + return; + } + } + value = value[path[i]]; + } + reference = map(response, value, parentObject, key); + parentObject[key] = reference; + "" === key && null === handler.value && (handler.value = reference); + if ( + parentObject[0] === REACT_ELEMENT_TYPE && + "object" === typeof handler.value && + null !== handler.value && + handler.value.$$typeof === REACT_ELEMENT_TYPE + ) + switch (((parentObject = handler.value), key)) { + case "3": + parentObject.props = reference; + } + handler.deps--; + 0 === handler.deps && + ((key = handler.chunk), + null !== key && + "blocked" === key.status && + ((parentObject = key.value), + (key.status = "fulfilled"), + (key.value = handler.value), + null !== parentObject && wakeChunk(parentObject, handler.value))); +} +function rejectReference(reference, error) { + reference = reference.handler; + reference.errored || + ((reference.errored = !0), + (reference.value = error), + (reference = reference.chunk), + null !== reference && + "blocked" === reference.status && + triggerErrorOnChunk(reference, error)); +} function waitForReference( referencedChunk, parentObject, @@ -852,52 +983,6 @@ function waitForReference( map, path ) { - function fulfill(value) { - for (var i = 1; i < path.length; i++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), value === handler.chunk)) - value = handler.value; - else if ("fulfilled" === value.status) value = value.value; - else { - path.splice(0, i - 1); - value.then(fulfill, reject); - return; - } - value = value[path[i]]; - } - i = map(response, value, parentObject, key); - parentObject[key] = i; - "" === key && null === handler.value && (handler.value = i); - if ( - parentObject[0] === REACT_ELEMENT_TYPE && - "object" === typeof handler.value && - null !== handler.value && - handler.value.$$typeof === REACT_ELEMENT_TYPE - ) - switch (((value = handler.value), key)) { - case "3": - value.props = i; - } - handler.deps--; - 0 === handler.deps && - ((i = handler.chunk), - null !== i && - "blocked" === i.status && - ((value = i.value), - (i.status = "fulfilled"), - (i.value = handler.value), - null !== value && wakeChunk(value, handler.value))); - } - function reject(error) { - if (!handler.errored) { - handler.errored = !0; - handler.value = error; - var chunk = handler.chunk; - null !== chunk && - "blocked" === chunk.status && - triggerErrorOnChunk(chunk, error); - } - } if (initializingHandler) { var handler = initializingHandler; handler.deps++; @@ -909,7 +994,20 @@ function waitForReference( deps: 1, errored: !1 }; - referencedChunk.then(fulfill, reject); + parentObject = { + response: response, + handler: handler, + parentObject: parentObject, + key: key, + map: map, + path: path + }; + null === referencedChunk.value + ? (referencedChunk.value = [parentObject]) + : referencedChunk.value.push(parentObject); + null === referencedChunk.reason + ? (referencedChunk.reason = [parentObject]) + : referencedChunk.reason.push(parentObject); return null; } function loadServerReference(response, metaData, parentObject, key) { @@ -1013,25 +1111,77 @@ function getOutlinedModel(response, reference, parentObject, key, map) { case "fulfilled": var value = id.value; for (id = 1; id < reference.length; id++) { - for (; value.$$typeof === REACT_LAZY_TYPE; ) - if (((value = value._payload), "fulfilled" === value.status)) - value = value.value; - else - return waitForReference( - value, - parentObject, - key, - response, - map, - reference.slice(id - 1) - ); + for (; value.$$typeof === REACT_LAZY_TYPE; ) { + value = value._payload; + switch (value.status) { + case "resolved_model": + initializeModelChunk(value); + break; + case "resolved_module": + initializeModuleChunk(value); + } + switch (value.status) { + case "fulfilled": + value = value.value; + break; + case "blocked": + case "pending": + return waitForReference( + value, + parentObject, + key, + response, + map, + reference.slice(id - 1) + ); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); + default: + return ( + initializingHandler + ? ((initializingHandler.errored = !0), + (initializingHandler.value = value.reason)) + : (initializingHandler = { + parent: null, + chunk: null, + value: value.reason, + deps: 0, + errored: !0 + }), + null + ); + } + } value = value[reference[id]]; } return map(response, value, parentObject, key); case "pending": case "blocked": - case "halted": return waitForReference(id, parentObject, key, response, map, reference); + case "halted": + return ( + initializingHandler + ? ((response = initializingHandler), response.deps++) + : (initializingHandler = { + parent: null, + chunk: null, + value: null, + deps: 1, + errored: !1 + }), + null + ); default: return ( initializingHandler @@ -1284,8 +1434,8 @@ function startReadableStream(response, id, type) { (previousBlockedChunk = chunk)); } else { chunk = previousBlockedChunk; - var chunk$51 = new ReactPromise("pending", null, null); - chunk$51.then( + var chunk$52 = new ReactPromise("pending", null, null); + chunk$52.then( function (v) { return controller.enqueue(v); }, @@ -1293,10 +1443,10 @@ function startReadableStream(response, id, type) { return controller.error(e); } ); - previousBlockedChunk = chunk$51; + previousBlockedChunk = chunk$52; chunk.then(function () { - previousBlockedChunk === chunk$51 && (previousBlockedChunk = null); - resolveModelChunk(response, chunk$51, json); + previousBlockedChunk === chunk$52 && (previousBlockedChunk = null); + resolveModelChunk(response, chunk$52, json); }); } }, @@ -1438,8 +1588,8 @@ function mergeBuffer(buffer, lastChunk) { for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++) byteLength += buffer[i].byteLength; byteLength = new Uint8Array(byteLength); - for (var i$52 = (i = 0); i$52 < l; i$52++) { - var chunk = buffer[i$52]; + for (var i$53 = (i = 0); i$53 < l; i$53++) { + var chunk = buffer[i$53]; byteLength.set(chunk, i); i += chunk.byteLength; } diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js index 9abb7d008f6c30..da63c9b981be9d 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js @@ -189,6 +189,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -664,7 +691,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -759,7 +786,7 @@ pingedTasks = [], hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -786,6 +813,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -850,7 +878,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -879,7 +907,7 @@ ref ); case "rejected": - return emitErrorChunk(request, id, "", thenable.reason), ref; + return emitErrorChunk(request, id, "", thenable.reason, !0), ref; } if (request.status === ABORTING) return emitDebugHaltChunk(request, id), ref; @@ -898,7 +926,7 @@ ((cancelled = !0), request.status === ABORTING ? emitDebugHaltChunk(request, id) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -965,7 +993,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (erroredTask(request, newTask, reason), enqueueFlush(request)); } ); @@ -973,9 +1001,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -997,7 +1025,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1007,7 +1035,7 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; @@ -1045,9 +1073,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1082,7 +1110,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1093,7 +1121,7 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; @@ -1430,7 +1458,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1531,17 +1559,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1552,7 +1591,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1580,7 +1619,7 @@ request.writtenObjects.set(model, serializeByValueID(lastTimestamp)); var task = { id: lastTimestamp, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1670,39 +1709,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1712,7 +1725,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1766,7 +1815,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1784,12 +1833,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1802,7 +1883,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1812,7 +1893,7 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; @@ -1853,7 +1934,7 @@ parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) return ( - (task.status = ABORTED), + (task.status = 3), (task = request.fatalError), parent ? serializeLazyID(task) : serializeByValueID(task) ); @@ -1892,7 +1973,7 @@ request.pendingChunks++; prevKeyPath = request.nextChunkId++; task = logRecoverableError(request, key, task); - emitErrorChunk(request, prevKeyPath, task, key); + emitErrorChunk(request, prevKeyPath, task, key, !1); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2001,8 +2082,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2230,7 +2314,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2259,7 +2343,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2289,7 +2373,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2303,13 +2397,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2345,7 +2439,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { request.pendingChunks++; var buffer = new Uint8Array( typedArray.buffer, @@ -2356,9 +2450,11 @@ buffer = typedArray.byteLength; id = id.toString(16) + ":" + tag + buffer.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2368,7 +2464,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2381,7 +2479,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2492,67 +2590,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2573,7 +2698,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2582,7 +2710,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2597,11 +2725,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2687,7 +2815,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2744,7 +2872,7 @@ ); id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n"; id$jscomp$0 = stringToChunk(id$jscomp$0); - request$jscomp$0.completedRegularChunks.push(id$jscomp$0); + request$jscomp$0.completedDebugChunks.push(id$jscomp$0); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id) @@ -2780,47 +2908,59 @@ function emitChunk(request, task, value) { var id = task.id; "string" === typeof value && null !== byteLengthOfChunk - ? emitTextChunk(request, id, value) + ? emitTextChunk(request, id, value, !1) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { - task.status = ERRORED$1; + task.status = 4; var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -2850,13 +2990,13 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), + (task.status = 0), abortTask(task, request, request.fatalError); else { var x = @@ -2868,7 +3008,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -2912,8 +3052,8 @@ } } function abortTask(task, request, errorId) { - if (task.status !== RENDERING) { - task.status = ABORTED; + if (5 !== task.status) { + task.status = 3; var model = task.model; "object" === typeof model && null !== model && @@ -2950,6 +3090,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -2999,7 +3150,7 @@ return performWork(request); }); scheduleWork(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3018,7 +3169,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3054,7 +3205,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4347,16 +4498,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = !1, diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js index 96babc2bbb873e..8f0bbda1ba86cb 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js @@ -1419,8 +1419,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -1930,7 +1933,7 @@ function abort(request, reason) { errorId = request.nextChunkId++; request.fatalError = errorId; request.pendingChunks++; - emitErrorChunk(request, errorId, digest, error); + emitErrorChunk(request, errorId, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId); }); diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js index 160d7db8da8b26..710adce4f3cb9b 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js @@ -202,6 +202,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -680,7 +707,7 @@ "Unknown Value: React could not send it from the server." ])); stack = stringToChunk(":W" + args + "\n"); - request.completedRegularChunks.push(stack); + request.completedDebugChunks.push(stack); } return originalMethod.apply(this, arguments); }; @@ -775,7 +802,7 @@ pingedTasks = [], hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -802,6 +829,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -866,7 +894,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -900,7 +928,7 @@ ref ); case "rejected": - return emitErrorChunk(request, id, "", thenable.reason), ref; + return emitErrorChunk(request, id, "", thenable.reason, !0), ref; } if (request.status === ABORTING) return emitDebugHaltChunk(request, id), ref; @@ -919,7 +947,7 @@ ((cancelled = !0), request.status === ABORTING ? emitDebugHaltChunk(request, id) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -986,7 +1014,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (erroredTask(request, newTask, reason), enqueueFlush(request)); } ); @@ -994,9 +1022,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(stringToChunk(entry)), request.abortableTasks.delete(streamTask), @@ -1018,7 +1046,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1028,7 +1056,7 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; @@ -1066,9 +1094,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1103,7 +1131,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1114,7 +1142,7 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; @@ -1499,7 +1527,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1600,17 +1628,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1621,7 +1660,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1649,7 +1688,7 @@ request.writtenObjects.set(model, serializeByValueID(lastTimestamp)); var task = { id: lastTimestamp, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1739,39 +1778,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - row = importId.toString(16) + ":I" + json + "\n", - processedChunk = stringToChunk(row); - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1781,7 +1794,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1835,7 +1884,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1853,12 +1902,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1871,7 +1952,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1881,7 +1962,7 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; @@ -1922,7 +2003,7 @@ parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) return ( - (task.status = ABORTED), + (task.status = 3), (task = request.fatalError), parent ? serializeLazyID(task) : serializeByValueID(task) ); @@ -1961,7 +2042,7 @@ request.pendingChunks++; prevKeyPath = request.nextChunkId++; task = logRecoverableError(request, key, task); - emitErrorChunk(request, prevKeyPath, task, key); + emitErrorChunk(request, prevKeyPath, task, key, !1); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2070,8 +2151,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2310,7 +2394,7 @@ null !== request.destination ? ((request.status = CLOSED), closeWithError(request.destination, error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2339,7 +2423,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2369,7 +2453,17 @@ }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; id = stringToChunk(id); - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + id = stringToChunk(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2383,13 +2477,13 @@ function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2425,7 +2519,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { request.pendingChunks++; var buffer = new Uint8Array( typedArray.buffer, @@ -2436,9 +2530,11 @@ buffer = typedArray.byteLength; id = id.toString(16) + ":" + tag + buffer.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2448,7 +2544,9 @@ var binaryLength = text.byteLength; id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; id = stringToChunk(id); - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2461,7 +2559,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2572,67 +2670,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2653,7 +2778,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2662,7 +2790,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2677,11 +2805,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2767,7 +2895,7 @@ } id = id.toString(16) + ":" + json + "\n"; id = stringToChunk(id); - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2824,7 +2952,7 @@ ); id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n"; id$jscomp$0 = stringToChunk(id$jscomp$0); - request$jscomp$0.completedRegularChunks.push(id$jscomp$0); + request$jscomp$0.completedDebugChunks.push(id$jscomp$0); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id) @@ -2860,47 +2988,59 @@ function emitChunk(request, task, value) { var id = task.id; "string" === typeof value && null !== byteLengthOfChunk - ? emitTextChunk(request, id, value) + ? emitTextChunk(request, id, value, !1) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), emitModelChunk(request, task.id, value)); } function erroredTask(request, task, error) { - task.status = ERRORED$1; + task.status = 4; var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -2930,13 +3070,13 @@ var json = stringify(resolvedModel); emitModelChunk(request, task.id, json); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), + (task.status = 0), abortTask(task, request, request.fatalError); else { var x = @@ -2948,7 +3088,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -2992,8 +3132,8 @@ } } function abortTask(task, request, errorId) { - if (task.status !== RENDERING) { - task.status = ABORTED; + if (5 !== task.status) { + task.status = 3; var model = task.model; "object" === typeof model && null !== model && @@ -3030,6 +3170,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3083,7 +3234,7 @@ return performWork(request); }); setTimeoutOrImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3102,7 +3253,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), closeWithError(destination, request.fatalError); else if (request.status !== CLOSED && null === request.destination) { @@ -3138,7 +3289,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4427,16 +4578,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = !1, diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js index 46b4f5ea707eab..612388c3636614 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js @@ -1427,8 +1427,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -1944,7 +1947,7 @@ function abort(request, reason) { errorId = request.nextChunkId++; request.fatalError = errorId; request.pendingChunks++; - emitErrorChunk(request, errorId, digest, error); + emitErrorChunk(request, errorId, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId); }); diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js index fd942c3d2ab44d..c02c0b6964f04b 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js @@ -220,6 +220,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -694,7 +721,7 @@ env, "Unknown Value: React could not send it from the server." ])); - request.completedRegularChunks.push(":W" + args + "\n"); + request.completedDebugChunks.push(":W" + args + "\n"); } return originalMethod.apply(this, arguments); }; @@ -789,7 +816,7 @@ pingedTasks = [], hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -816,6 +843,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -880,7 +908,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -911,7 +939,7 @@ ref ); case "rejected": - return emitErrorChunk(request, id, "", thenable.reason), ref; + return emitErrorChunk(request, id, "", thenable.reason, !0), ref; } if (request.status === ABORTING) return emitDebugHaltChunk(request, id), ref; @@ -930,7 +958,7 @@ ((cancelled = !0), request.status === ABORTING ? emitDebugHaltChunk(request, id) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -997,7 +1025,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (erroredTask(request, newTask, reason), enqueueFlush(request)); } ); @@ -1005,9 +1033,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(entry), request.abortableTasks.delete(streamTask), @@ -1029,7 +1057,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1039,7 +1067,7 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; @@ -1077,9 +1105,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1114,7 +1142,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1125,7 +1153,7 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; @@ -1487,7 +1515,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1588,17 +1616,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1609,7 +1648,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1637,7 +1676,7 @@ request.writtenObjects.set(model, serializeByValueID(lastTimestamp)); var task = { id: lastTimestamp, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1726,38 +1765,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - processedChunk = importId.toString(16) + ":I" + json + "\n"; - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1767,7 +1781,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1821,7 +1871,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1839,12 +1889,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); return serializeByValueID(bufferId); } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); + return serializeByValueID(bufferId); + } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1857,7 +1939,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1867,7 +1949,7 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; @@ -1908,7 +1990,7 @@ parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) return ( - (task.status = ABORTED), + (task.status = 3), (task = request.fatalError), parent ? serializeLazyID(task) : serializeByValueID(task) ); @@ -1947,7 +2029,7 @@ request.pendingChunks++; prevKeyPath = request.nextChunkId++; task = logRecoverableError(request, key, task); - emitErrorChunk(request, prevKeyPath, task, key); + emitErrorChunk(request, prevKeyPath, task, key, !1); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2056,8 +2138,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2291,7 +2376,7 @@ onFatalError(error); null !== request.destination ? ((request.status = CLOSED), request.destination.destroy(error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2320,7 +2405,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2349,7 +2434,16 @@ env: env }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2357,12 +2451,12 @@ } function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2398,7 +2492,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { request.pendingChunks++; typedArray = new Uint8Array( typedArray.buffer, @@ -2407,9 +2501,11 @@ ); var binaryLength = typedArray.byteLength; id = id.toString(16) + ":" + tag + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2417,7 +2513,9 @@ request.pendingChunks++; var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2430,7 +2528,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2541,67 +2639,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2622,7 +2747,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2631,7 +2759,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2646,11 +2774,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2735,7 +2863,7 @@ debugModelRoot = prevModelRoot; } id = id.toString(16) + ":" + json + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2791,7 +2919,7 @@ debugIOInfo ); id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n"; - request$jscomp$0.completedRegularChunks.push(id$jscomp$0); + request$jscomp$0.completedDebugChunks.push(id$jscomp$0); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id) @@ -2827,33 +2955,45 @@ function emitChunk(request, task, value) { var id = task.id; "string" === typeof value && null !== byteLengthOfChunk - ? emitTextChunk(request, id, value) + ? emitTextChunk(request, id, value, !1) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), (task = task.id.toString(16) + @@ -2863,16 +3003,16 @@ request.completedRegularChunks.push(task)); } function erroredTask(request, task, error) { - task.status = ERRORED$1; + task.status = 4; var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -2903,13 +3043,13 @@ processedChunk = task.id.toString(16) + ":" + json + "\n"; request.completedRegularChunks.push(processedChunk); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), + (task.status = 0), abortTask(task, request, request.fatalError); else { var x = @@ -2921,7 +3061,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -2965,8 +3105,8 @@ } } function abortTask(task, request, errorId) { - if (task.status !== RENDERING) { - task.status = ABORTED; + if (5 !== task.status) { + task.status = 3; var model = task.model; "object" === typeof model && null !== model && @@ -3004,6 +3144,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3053,7 +3204,7 @@ requestStorage.run(request, performWork, request); }); setImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3072,7 +3223,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), destination.destroy(request.fatalError); else if (request.status !== CLOSED && null === request.destination) { request.destination = destination; @@ -3107,7 +3258,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4486,16 +4637,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = !1, @@ -4654,12 +4797,12 @@ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_188 = []; + var JSCompiler_object_inline_chunks_200 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_188.push(chunk); + JSCompiler_object_inline_chunks_200.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_188, { + var blob = new Blob(JSCompiler_object_inline_chunks_200, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js index 3fd735752cb2cb..77ff1bce98f4d5 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js @@ -1438,8 +1438,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -1965,7 +1968,7 @@ function abort(request, reason) { errorId = request.nextChunkId++; request.fatalError = errorId; request.pendingChunks++; - emitErrorChunk(request, errorId, digest, error); + emitErrorChunk(request, errorId, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId); }); @@ -2856,12 +2859,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) { "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_244 = []; + var JSCompiler_object_inline_chunks_245 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_244.push(chunk); + JSCompiler_object_inline_chunks_245.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_244, { + var blob = new Blob(JSCompiler_object_inline_chunks_245, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js index e97fd21dad296b..f3d64c467c5b8d 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js @@ -220,6 +220,33 @@ new Proxy(clientReference, deepProxyHandlers))); return clientReference; } + function resolveClientReferenceMetadata(config, clientReference) { + var modulePath = clientReference.$$id, + name = "", + resolvedModuleData = config[modulePath]; + if (resolvedModuleData) name = resolvedModuleData.name; + else { + var idx = modulePath.lastIndexOf("#"); + -1 !== idx && + ((name = modulePath.slice(idx + 1)), + (resolvedModuleData = config[modulePath.slice(0, idx)])); + if (!resolvedModuleData) + throw Error( + 'Could not find the module "' + + modulePath + + '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' + ); + } + if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) + throw Error( + 'The module "' + + modulePath + + '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' + ); + return !0 === resolvedModuleData.async || !0 === clientReference.$$async + ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1] + : [resolvedModuleData.id, resolvedModuleData.chunks, name]; + } function trimOptions(options) { if (null == options) return null; var hasProperties = !1, @@ -694,7 +721,7 @@ env, "Unknown Value: React could not send it from the server." ])); - request.completedRegularChunks.push(":W" + args + "\n"); + request.completedDebugChunks.push(":W" + args + "\n"); } return originalMethod.apply(this, arguments); }; @@ -789,7 +816,7 @@ pingedTasks = [], hints = new Set(); this.type = type; - this.status = OPENING; + this.status = 10; this.flushScheduled = !1; this.destination = this.fatalError = null; this.bundlerConfig = bundlerConfig; @@ -816,6 +843,7 @@ void 0 === onPostpone ? defaultPostponeHandler : onPostpone; this.onAllReady = onAllReady; this.onFatalError = onFatalError; + this.completedDebugChunks = []; this.environmentName = void 0 === environmentName ? function () { @@ -880,7 +908,7 @@ ) { resetOwnerStackLimit(); return new RequestInstance( - PRERENDER, + 21, model, bundlerConfig, onError, @@ -911,7 +939,7 @@ ref ); case "rejected": - return emitErrorChunk(request, id, "", thenable.reason), ref; + return emitErrorChunk(request, id, "", thenable.reason, !0), ref; } if (request.status === ABORTING) return emitDebugHaltChunk(request, id), ref; @@ -930,7 +958,7 @@ ((cancelled = !0), request.status === ABORTING ? emitDebugHaltChunk(request, id) - : emitErrorChunk(request, id, "", reason), + : emitErrorChunk(request, id, "", reason, !0), enqueueFlush(request)); } ); @@ -997,7 +1025,7 @@ pingTask(request, newTask); }, function (reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (erroredTask(request, newTask, reason), enqueueFlush(request)); } ); @@ -1005,9 +1033,9 @@ } function serializeReadableStream(request, task, stream) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) - (streamTask.status = COMPLETED), + (streamTask.status = 1), (entry = streamTask.id.toString(16) + ":C\n"), request.completedRegularChunks.push(entry), request.abortableTasks.delete(streamTask), @@ -1029,7 +1057,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortStream @@ -1039,7 +1067,7 @@ reader.cancel(reason).then(error, error)); } function abortStream() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortStream); signal = signal.reason; @@ -1077,9 +1105,9 @@ } function serializeAsyncIterable(request, task, iterable, iterator) { function progress(entry) { - if (streamTask.status === PENDING$1) + if (0 === streamTask.status) if (entry.done) { - streamTask.status = COMPLETED; + streamTask.status = 1; if (void 0 === entry.value) var endStreamRow = streamTask.id.toString(16) + ":C\n"; else @@ -1114,7 +1142,7 @@ } } function error(reason) { - streamTask.status === PENDING$1 && + 0 === streamTask.status && (request.cacheController.signal.removeEventListener( "abort", abortIterable @@ -1125,7 +1153,7 @@ iterator.throw(reason).then(error, error)); } function abortIterable() { - if (streamTask.status === PENDING$1) { + if (0 === streamTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortIterable); var reason = signal.reason; @@ -1487,7 +1515,7 @@ task.debugTask ); retryTask(request, task); - return task.status === COMPLETED + return 1 === task.status ? serializeByValueID(task.id) : serializeLazyID(task.id); } @@ -1588,17 +1616,28 @@ ); ref = task.keyPath; null === key ? (key = ref) : null !== ref && (key = ref + "," + key); - null !== task.debugOwner && - outlineComponentInfo(request, task.debugOwner); + var debugStack = null; + ref = task.debugOwner; + null !== ref && outlineComponentInfo(request, ref); + if (null !== task.debugStack) { + debugStack = filterStackTrace( + request, + parseStackTrace(task.debugStack, 1) + ); + var id = outlineDebugModel( + request, + { objectLimit: 2 * debugStack.length + 1 }, + debugStack + ); + request.writtenObjects.set(debugStack, serializeByValueID(id)); + } request = [ REACT_ELEMENT_TYPE, type, key, props, - task.debugOwner, - null === task.debugStack - ? null - : filterStackTrace(request, parseStackTrace(task.debugStack, 1)), + ref, + debugStack, validated ]; task = task.implicitSlot && null !== key ? [request] : request; @@ -1609,7 +1648,7 @@ pingedTasks.push(task); 1 === pingedTasks.length && ((request.flushScheduled = null !== request.destination), - request.type === PRERENDER || request.status === OPENING + 21 === request.type || 10 === request.status ? scheduleMicrotask(function () { return performWork(request); }) @@ -1637,7 +1676,7 @@ request.writtenObjects.set(model, serializeByValueID(lastTimestamp)); var task = { id: lastTimestamp, - status: PENDING$1, + status: 0, model: model, keyPath: keyPath, implicitSlot: implicitSlot, @@ -1726,38 +1765,13 @@ ? serializeLazyID(existingId) : serializeByValueID(existingId); try { - var config = request.bundlerConfig, - modulePath = clientReference.$$id; - existingId = ""; - var resolvedModuleData = config[modulePath]; - if (resolvedModuleData) existingId = resolvedModuleData.name; - else { - var idx = modulePath.lastIndexOf("#"); - -1 !== idx && - ((existingId = modulePath.slice(idx + 1)), - (resolvedModuleData = config[modulePath.slice(0, idx)])); - if (!resolvedModuleData) - throw Error( - 'Could not find the module "' + - modulePath + - '" in the React Client Manifest. This is probably a bug in the React Server Components bundler.' - ); - } - if (!0 === resolvedModuleData.async && !0 === clientReference.$$async) - throw Error( - 'The module "' + - modulePath + - '" is marked as an async ESM module but was loaded as a CJS proxy. This is probably a bug in the React Server Components bundler.' - ); - var clientReferenceMetadata = - !0 === resolvedModuleData.async || !0 === clientReference.$$async - ? [resolvedModuleData.id, resolvedModuleData.chunks, existingId, 1] - : [resolvedModuleData.id, resolvedModuleData.chunks, existingId]; + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); request.pendingChunks++; - var importId = request.nextChunkId++, - json = stringify(clientReferenceMetadata), - processedChunk = importId.toString(16) + ":I" + json + "\n"; - request.completedImportChunks.push(processedChunk); + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !1); writtenClientReferences.set(clientReferenceKey, importId); return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName ? serializeLazyID(importId) @@ -1767,7 +1781,43 @@ request.pendingChunks++, (parent = request.nextChunkId++), (parentPropertyName = logRecoverableError(request, x, null)), - emitErrorChunk(request, parent, parentPropertyName, x), + emitErrorChunk(request, parent, parentPropertyName, x, !1), + serializeByValueID(parent) + ); + } + } + function serializeDebugClientReference( + request, + parent, + parentPropertyName, + clientReference + ) { + var existingId = request.writtenClientReferences.get( + clientReference.$$async + ? clientReference.$$id + "#async" + : clientReference.$$id + ); + if (void 0 !== existingId) + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(existingId) + : serializeByValueID(existingId); + try { + var clientReferenceMetadata = resolveClientReferenceMetadata( + request.bundlerConfig, + clientReference + ); + request.pendingChunks++; + var importId = request.nextChunkId++; + emitImportChunk(request, importId, clientReferenceMetadata, !0); + return parent[0] === REACT_ELEMENT_TYPE && "1" === parentPropertyName + ? serializeLazyID(importId) + : serializeByValueID(importId); + } catch (x) { + return ( + request.pendingChunks++, + (parent = request.nextChunkId++), + (parentPropertyName = logRecoverableError(request, x, null)), + emitErrorChunk(request, parent, parentPropertyName, x, !0), serializeByValueID(parent) ); } @@ -1821,7 +1871,7 @@ function serializeLargeTextString(request, text) { request.pendingChunks++; var textId = request.nextChunkId++; - emitTextChunk(request, textId, text); + emitTextChunk(request, textId, text, !1); return serializeByValueID(textId); } function serializeMap(request, map) { @@ -1839,12 +1889,44 @@ function serializeTypedArray(request, tag, typedArray) { request.pendingChunks++; var bufferId = request.nextChunkId++; - emitTypedArrayChunk(request, bufferId, tag, typedArray); + emitTypedArrayChunk(request, bufferId, tag, typedArray, !1); + return serializeByValueID(bufferId); + } + function serializeDebugTypedArray(request, tag, typedArray) { + request.pendingChunks++; + var bufferId = request.nextChunkId++; + emitTypedArrayChunk(request, bufferId, tag, typedArray, !0); return serializeByValueID(bufferId); } + function serializeDebugBlob(request, blob) { + function progress(entry) { + if (entry.done) + emitOutlinedDebugModelChunk( + request, + id, + { objectLimit: model.length + 2 }, + model + ), + enqueueFlush(request); + else + return ( + model.push(entry.value), reader.read().then(progress).catch(error) + ); + } + function error(reason) { + emitErrorChunk(request, id, "", reason, !0); + enqueueFlush(request); + reader.cancel(reason).then(noop, noop); + } + var model = [blob.type], + reader = blob.stream().getReader(), + id = request.nextChunkId++; + reader.read().then(progress).catch(error); + return "$B" + id.toString(16); + } function serializeBlob(request, blob) { function progress(entry) { - if (newTask.status === PENDING$1) + if (0 === newTask.status) if (entry.done) request.cacheController.signal.removeEventListener( "abort", @@ -1857,7 +1939,7 @@ ); } function error(reason) { - newTask.status === PENDING$1 && + 0 === newTask.status && (request.cacheController.signal.removeEventListener( "abort", abortBlob @@ -1867,7 +1949,7 @@ reader.cancel(reason).then(error, error)); } function abortBlob() { - if (newTask.status === PENDING$1) { + if (0 === newTask.status) { var signal = request.cacheController.signal; signal.removeEventListener("abort", abortBlob); signal = signal.reason; @@ -1908,7 +1990,7 @@ parent.$$typeof === REACT_LAZY_TYPE); if (request.status === ABORTING) return ( - (task.status = ABORTED), + (task.status = 3), (task = request.fatalError), parent ? serializeLazyID(task) : serializeByValueID(task) ); @@ -1947,7 +2029,7 @@ request.pendingChunks++; prevKeyPath = request.nextChunkId++; task = logRecoverableError(request, key, task); - emitErrorChunk(request, prevKeyPath, task, key); + emitErrorChunk(request, prevKeyPath, task, key, !1); return parent ? serializeLazyID(prevKeyPath) : serializeByValueID(prevKeyPath); @@ -2056,8 +2138,11 @@ return request; } if (void 0 !== _writtenObjects) - if (modelRoot === value) modelRoot = null; - else return _writtenObjects; + if (modelRoot === value) { + if (_writtenObjects !== serializeByValueID(task.id)) + return _writtenObjects; + modelRoot = null; + } else return _writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((_writtenObjects = elementReference.get(parent)), @@ -2291,7 +2376,7 @@ onFatalError(error); null !== request.destination ? ((request.status = CLOSED), request.destination.destroy(error)) - : ((request.status = CLOSING), (request.fatalError = error)); + : ((request.status = 13), (request.fatalError = error)); request.cacheController.abort( Error("The render was aborted due to a fatal error.", { cause: error }) ); @@ -2320,7 +2405,7 @@ }).toString(16) ); } - function emitErrorChunk(request, id, digest, error) { + function emitErrorChunk(request, id, digest, error, debug) { var name = "Error", env = (0, request.environmentName)(); try { @@ -2349,7 +2434,16 @@ env: env }; id = id.toString(16) + ":E" + stringify(digest) + "\n"; - request.completedErrorChunks.push(id); + debug + ? request.completedDebugChunks.push(id) + : request.completedErrorChunks.push(id); + } + function emitImportChunk(request, id, clientReferenceMetadata, debug) { + clientReferenceMetadata = stringify(clientReferenceMetadata); + id = id.toString(16) + ":I" + clientReferenceMetadata + "\n"; + debug + ? request.completedDebugChunks.push(id) + : request.completedImportChunks.push(id); } function emitSymbolChunk(request, id, name) { id = encodeReferenceChunk(request, id, "$S" + name); @@ -2357,12 +2451,12 @@ } function emitDebugHaltChunk(request, id) { id = id.toString(16) + ":\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function emitDebugChunk(request, id, debugInfo) { debugInfo = serializeDebugModel(request, 500, debugInfo); id = id.toString(16) + ":D" + debugInfo + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineComponentInfo(request, componentInfo) { if (!request.writtenDebugObjects.has(componentInfo)) { @@ -2398,7 +2492,7 @@ request.writtenObjects.set(componentInfo, objectLimit); } } - function emitTypedArrayChunk(request, id, tag, typedArray) { + function emitTypedArrayChunk(request, id, tag, typedArray, debug) { request.pendingChunks++; typedArray = new Uint8Array( typedArray.buffer, @@ -2407,9 +2501,11 @@ ); var binaryLength = typedArray.byteLength; id = id.toString(16) + ":" + tag + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, typedArray); + debug + ? request.completedDebugChunks.push(id, typedArray) + : request.completedRegularChunks.push(id, typedArray); } - function emitTextChunk(request, id, text) { + function emitTextChunk(request, id, text, debug) { if (null === byteLengthOfChunk) throw Error( "Existence of byteLengthOfChunk should have already been checked. This is a bug in React." @@ -2417,7 +2513,9 @@ request.pendingChunks++; var binaryLength = byteLengthOfChunk(text); id = id.toString(16) + ":T" + binaryLength.toString(16) + ","; - request.completedRegularChunks.push(id, text); + debug + ? request.completedDebugChunks.push(id, text) + : request.completedRegularChunks.push(id, text); } function renderDebugModel( request, @@ -2430,7 +2528,7 @@ if (value === REACT_ELEMENT_TYPE) return "$"; if ("object" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2541,67 +2639,94 @@ if (value instanceof Map) { value = Array.from(value); counter.objectLimit++; - for (ref = 0; ref < value.length; ref++) - (parentPropertyName = value[ref]), - doNotLimit.add(parentPropertyName), - (parent = parentPropertyName[0]), - (parentPropertyName = parentPropertyName[1]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent), - "object" === typeof parentPropertyName && - null !== parentPropertyName && - doNotLimit.add(parentPropertyName); + for (ref = 0; ref < value.length; ref++) { + var entry = value[ref]; + doNotLimit.add(entry); + var key = entry[0]; + entry = entry[1]; + "object" === typeof key && null !== key && doNotLimit.add(key); + "object" === typeof entry && + null !== entry && + doNotLimit.add(entry); + } return "$Q" + outlineDebugModel(request, counter, value).toString(16); } if (value instanceof Set) { value = Array.from(value); counter.objectLimit++; for (ref = 0; ref < value.length; ref++) - (parent = value[ref]), - "object" === typeof parent && - null !== parent && - doNotLimit.add(parent); + (key = value[ref]), + "object" === typeof key && null !== key && doNotLimit.add(key); return "$W" + outlineDebugModel(request, counter, value).toString(16); } if ("function" === typeof FormData && value instanceof FormData) - return serializeFormData(request, value); - if (value instanceof Error) return serializeErrorValue(request, value); + return ( + (value = Array.from(value.entries())), + "$K" + + outlineDebugModel( + request, + { objectLimit: 2 * value.length + 1 }, + value + ).toString(16) + ); + if (value instanceof Error) { + counter = "Error"; + var env = (0, request.environmentName)(); + try { + (counter = value.name), + (ref = String(value.message)), + (key = filterStackTrace(request, parseStackTrace(value, 0))), + (entry = value.environmentName), + "string" === typeof entry && (env = entry); + } catch (x) { + (ref = + "An error occurred but serializing the error message failed."), + (key = []); + } + request = + "$Z" + + outlineDebugModel( + request, + { objectLimit: 2 * key.length + 1 }, + { name: counter, message: ref, stack: key, env: env } + ).toString(16); + return request; + } if (value instanceof ArrayBuffer) - return serializeTypedArray(request, "A", new Uint8Array(value)); + return serializeDebugTypedArray(request, "A", new Uint8Array(value)); if (value instanceof Int8Array) - return serializeTypedArray(request, "O", value); + return serializeDebugTypedArray(request, "O", value); if (value instanceof Uint8Array) - return serializeTypedArray(request, "o", value); + return serializeDebugTypedArray(request, "o", value); if (value instanceof Uint8ClampedArray) - return serializeTypedArray(request, "U", value); + return serializeDebugTypedArray(request, "U", value); if (value instanceof Int16Array) - return serializeTypedArray(request, "S", value); + return serializeDebugTypedArray(request, "S", value); if (value instanceof Uint16Array) - return serializeTypedArray(request, "s", value); + return serializeDebugTypedArray(request, "s", value); if (value instanceof Int32Array) - return serializeTypedArray(request, "L", value); + return serializeDebugTypedArray(request, "L", value); if (value instanceof Uint32Array) - return serializeTypedArray(request, "l", value); + return serializeDebugTypedArray(request, "l", value); if (value instanceof Float32Array) - return serializeTypedArray(request, "G", value); + return serializeDebugTypedArray(request, "G", value); if (value instanceof Float64Array) - return serializeTypedArray(request, "g", value); + return serializeDebugTypedArray(request, "g", value); if (value instanceof BigInt64Array) - return serializeTypedArray(request, "M", value); + return serializeDebugTypedArray(request, "M", value); if (value instanceof BigUint64Array) - return serializeTypedArray(request, "m", value); + return serializeDebugTypedArray(request, "m", value); if (value instanceof DataView) - return serializeTypedArray(request, "V", value); + return serializeDebugTypedArray(request, "V", value); if ("function" === typeof Blob && value instanceof Blob) - return serializeBlob(request, value); + return serializeDebugBlob(request, value); if (getIteratorFn(value)) return Array.from(value); request = getPrototypeOf(value); if (request !== ObjectPrototype && null !== request) { counter = Object.create(null); - for (ref in value) - if (hasOwnProperty.call(value, ref) || isGetter(request, ref)) - counter[ref] = value[ref]; + for (env in value) + if (hasOwnProperty.call(value, env) || isGetter(request, env)) + counter[env] = value[env]; ref = request.constructor; "function" !== typeof ref || ref.prototype !== request || @@ -2622,7 +2747,10 @@ if (0 >= counter.objectLimit) return serializeDeferredObject(request, value); counter.objectLimit--; - return serializeLargeTextString(request, value); + request.pendingChunks++; + counter = request.nextChunkId++; + emitTextChunk(request, counter, value, !0); + return serializeByValueID(counter); } return "$" === value[0] ? "$" + value : value; } @@ -2631,7 +2759,7 @@ if ("undefined" === typeof value) return "$undefined"; if ("function" === typeof value) { if (isClientReference(value)) - return serializeClientReference( + return serializeDebugClientReference( request, parent, parentPropertyName, @@ -2646,11 +2774,11 @@ counter = request.writtenDebugObjects; ref = counter.get(value); if (void 0 !== ref) return ref; - parent = "$E(" + (Function.prototype.toString.call(value) + ")"); + key = "$E(" + (Function.prototype.toString.call(value) + ")"); request.pendingChunks++; ref = request.nextChunkId++; - parent = encodeReferenceChunk(request, ref, parent); - request.completedRegularChunks.push(parent); + key = encodeReferenceChunk(request, ref, key); + request.completedDebugChunks.push(key); request = serializeByValueID(ref); counter.set(value, request); return request; @@ -2735,7 +2863,7 @@ debugModelRoot = prevModelRoot; } id = id.toString(16) + ":" + json + "\n"; - request.completedRegularChunks.push(id); + request.completedDebugChunks.push(id); } function outlineDebugModel(request, counter, model) { var id = request.nextChunkId++; @@ -2791,7 +2919,7 @@ debugIOInfo ); id$jscomp$0 = id$jscomp$0.toString(16) + ":J" + value + "\n"; - request$jscomp$0.completedRegularChunks.push(id$jscomp$0); + request$jscomp$0.completedDebugChunks.push(id$jscomp$0); request.writtenDebugObjects.set( ioInfo$jscomp$0, serializeByValueID(id) @@ -2827,33 +2955,45 @@ function emitChunk(request, task, value) { var id = task.id; "string" === typeof value && null !== byteLengthOfChunk - ? emitTextChunk(request, id, value) + ? emitTextChunk(request, id, value, !1) : value instanceof ArrayBuffer - ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value)) + ? emitTypedArrayChunk(request, id, "A", new Uint8Array(value), !1) : value instanceof Int8Array - ? emitTypedArrayChunk(request, id, "O", value) + ? emitTypedArrayChunk(request, id, "O", value, !1) : value instanceof Uint8Array - ? emitTypedArrayChunk(request, id, "o", value) + ? emitTypedArrayChunk(request, id, "o", value, !1) : value instanceof Uint8ClampedArray - ? emitTypedArrayChunk(request, id, "U", value) + ? emitTypedArrayChunk(request, id, "U", value, !1) : value instanceof Int16Array - ? emitTypedArrayChunk(request, id, "S", value) + ? emitTypedArrayChunk(request, id, "S", value, !1) : value instanceof Uint16Array - ? emitTypedArrayChunk(request, id, "s", value) + ? emitTypedArrayChunk(request, id, "s", value, !1) : value instanceof Int32Array - ? emitTypedArrayChunk(request, id, "L", value) + ? emitTypedArrayChunk(request, id, "L", value, !1) : value instanceof Uint32Array - ? emitTypedArrayChunk(request, id, "l", value) + ? emitTypedArrayChunk(request, id, "l", value, !1) : value instanceof Float32Array - ? emitTypedArrayChunk(request, id, "G", value) + ? emitTypedArrayChunk(request, id, "G", value, !1) : value instanceof Float64Array - ? emitTypedArrayChunk(request, id, "g", value) + ? emitTypedArrayChunk(request, id, "g", value, !1) : value instanceof BigInt64Array - ? emitTypedArrayChunk(request, id, "M", value) + ? emitTypedArrayChunk(request, id, "M", value, !1) : value instanceof BigUint64Array - ? emitTypedArrayChunk(request, id, "m", value) + ? emitTypedArrayChunk( + request, + id, + "m", + value, + !1 + ) : value instanceof DataView - ? emitTypedArrayChunk(request, id, "V", value) + ? emitTypedArrayChunk( + request, + id, + "V", + value, + !1 + ) : ((value = stringify(value, task.toJSON)), (task = task.id.toString(16) + @@ -2863,16 +3003,16 @@ request.completedRegularChunks.push(task)); } function erroredTask(request, task, error) { - task.status = ERRORED$1; + task.status = 4; var digest = logRecoverableError(request, error, task); - emitErrorChunk(request, task.id, digest, error); + emitErrorChunk(request, task.id, digest, error, !1); request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } function retryTask(request, task) { - if (task.status === PENDING$1) { + if (0 === task.status) { var prevCanEmitDebugInfo = canEmitDebugInfo; - task.status = RENDERING; + task.status = 5; var parentSerializedSize = serializedSize; try { modelRoot = task.model; @@ -2903,13 +3043,13 @@ processedChunk = task.id.toString(16) + ":" + json + "\n"; request.completedRegularChunks.push(processedChunk); } - task.status = COMPLETED; + task.status = 1; request.abortableTasks.delete(task); callOnAllReadyIfReady(request); } catch (thrownValue) { if (request.status === ABORTING) request.abortableTasks.delete(task), - (task.status = PENDING$1), + (task.status = 0), abortTask(task, request, request.fatalError); else { var x = @@ -2921,7 +3061,7 @@ null !== x && "function" === typeof x.then ) { - task.status = PENDING$1; + task.status = 0; task.thenableState = getThenableStateAfterSuspending(); var ping = task.ping; x.then(ping, ping); @@ -2965,8 +3105,8 @@ } } function abortTask(task, request, errorId) { - if (task.status !== RENDERING) { - task.status = ABORTED; + if (5 !== task.status) { + task.status = 3; var model = task.model; "object" === typeof model && null !== model && @@ -3004,6 +3144,17 @@ break; } hintChunks.splice(0, i); + var debugChunks = request.completedDebugChunks; + for (i = 0; i < debugChunks.length; i++) + if ( + (request.pendingChunks--, + !writeChunkAndReturn(destination, debugChunks[i])) + ) { + request.destination = null; + i++; + break; + } + debugChunks.splice(0, i); var regularChunks = request.completedRegularChunks; for (i = 0; i < regularChunks.length; i++) if ( @@ -3053,7 +3204,7 @@ requestStorage.run(request, performWork, request); }); setImmediate(function () { - request.status === OPENING && (request.status = 11); + 10 === request.status && (request.status = 11); }); } function enqueueFlush(request) { @@ -3072,7 +3223,7 @@ ((request = request.onAllReady), request()); } function startFlowing(request, destination) { - if (request.status === CLOSING) + if (13 === request.status) (request.status = CLOSED), destination.destroy(request.fatalError); else if (request.status !== CLOSED && null === request.destination) { request.destination = destination; @@ -3107,7 +3258,7 @@ _errorId2 = request.nextChunkId++; request.fatalError = _errorId2; request.pendingChunks++; - emitErrorChunk(request, _errorId2, digest, error); + emitErrorChunk(request, _errorId2, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, _errorId2); }); @@ -4449,16 +4600,8 @@ patchConsole(console, "warn")); var ObjectPrototype = Object.prototype, stringify = JSON.stringify, - PENDING$1 = 0, - COMPLETED = 1, - ABORTED = 3, - ERRORED$1 = 4, - RENDERING = 5, - OPENING = 10, ABORTING = 12, - CLOSING = 13, CLOSED = 14, - PRERENDER = 21, defaultPostponeHandler = noop, currentRequest = null, canEmitDebugInfo = !1, @@ -4617,12 +4760,12 @@ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_188 = []; + var JSCompiler_object_inline_chunks_200 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_188.push(chunk); + JSCompiler_object_inline_chunks_200.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_188, { + var blob = new Blob(JSCompiler_object_inline_chunks_200, { type: mimeType }); response._formData.append(name, blob, filename); diff --git a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js index 71609d30e18ccf..a482acd157cde8 100644 --- a/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +++ b/packages/next/src/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js @@ -1438,8 +1438,11 @@ function renderModelDestructive( return request; } if (void 0 !== writtenObjects) - if (modelRoot === value) modelRoot = null; - else return writtenObjects; + if (modelRoot === value) { + if (writtenObjects !== serializeByValueID(task.id)) + return writtenObjects; + modelRoot = null; + } else return writtenObjects; else if ( -1 === parentPropertyName.indexOf(":") && ((writtenObjects = elementReference.get(parent)), @@ -1965,7 +1968,7 @@ function abort(request, reason) { errorId = request.nextChunkId++; request.fatalError = errorId; request.pendingChunks++; - emitErrorChunk(request, errorId, digest, error); + emitErrorChunk(request, errorId, digest, error, !1); abortableTasks.forEach(function (task) { return abortTask(task, request, errorId); }); @@ -2822,12 +2825,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) { "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it." ); pendingFiles++; - var JSCompiler_object_inline_chunks_244 = []; + var JSCompiler_object_inline_chunks_245 = []; value.on("data", function (chunk) { - JSCompiler_object_inline_chunks_244.push(chunk); + JSCompiler_object_inline_chunks_245.push(chunk); }); value.on("end", function () { - var blob = new Blob(JSCompiler_object_inline_chunks_244, { + var blob = new Blob(JSCompiler_object_inline_chunks_245, { type: mimeType }); response._formData.append(name, blob, filename); 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 529b6c050c1be5..51acae2fc29069 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-4db4b21c-20250626", - "react-dom": "19.2.0-canary-4db4b21c-20250626", + "react": "19.2.0-canary-65c4decb-20250630", + "react-dom": "19.2.0-canary-65c4decb-20250630", "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 15a54fb56edc6c..dfe089158639cf 100644 --- a/packages/next/src/compiled/react/cjs/react.development.js +++ b/packages/next/src/compiled/react/cjs/react.development.js @@ -1243,7 +1243,7 @@ exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.2.0-canary-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; "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 3861aadd04aea4..9efebc31f222aa 100644 --- a/packages/next/src/compiled/react/cjs/react.production.js +++ b/packages/next/src/compiled/react/cjs/react.production.js @@ -543,4 +543,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; 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 6d6ac71e412135..f184716d27001c 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 @@ -814,5 +814,5 @@ exports.useMemo = function (create, deps) { return resolveDispatcher().useMemo(create, deps); }; - exports.version = "19.2.0-canary-4db4b21c-20250626"; + exports.version = "19.2.0-canary-65c4decb-20250630"; })(); 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 113a9f0a787c7d..8a1911bb1ac6e5 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 @@ -430,4 +430,4 @@ exports.useId = function () { exports.useMemo = function (create, deps) { return ReactSharedInternals.H.useMemo(create, deps); }; -exports.version = "19.2.0-canary-4db4b21c-20250626"; +exports.version = "19.2.0-canary-65c4decb-20250630"; diff --git a/packages/next/src/compiled/unistore/unistore.js b/packages/next/src/compiled/unistore/unistore.js index b978e5e23783ee..14a8a315481b4b 100644 --- a/packages/next/src/compiled/unistore/unistore.js +++ b/packages/next/src/compiled/unistore/unistore.js @@ -1 +1 @@ -(()=>{var t={322: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={924: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: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 '@storybook/instrumenter@8.6.0': resolution: {integrity: sha512-eEY/Hfa3Vj5Nv4vHRHlSqjoyW6oAKNK3rKIXfL/eawQwb7rKhzijDLG5YBH44Hh7dEPIqUp0LEdgpyIY7GXezg==} @@ -5085,8 +5085,8 @@ packages: resolution: {integrity: sha512-04T86VG0UJtiozgZkTR5sY1qM3E0Rgwqwllvyy7kFFdkV+Sv/VsPjW9sC38s9C8FtCYRL8pJZz81ey3oylpIMA==} engines: {node: '>=18.0.0'} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 storybook: ^8.6.0 typescript: '*' peerDependenciesMeta: @@ -5107,16 +5107,16 @@ packages: '@storybook/react-dom-shim@8.6.0': resolution: {integrity: sha512-5Y+vMHhcx0xnaNsLQMbkmjc3zkDn/fGBNsiLH2e4POvW3ZQvOxjoyxAsEQaKwLtFgsdCFSd2tR89F6ItYrA2JQ==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 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-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 storybook: ^8.6.0 typescript: '>= 4.2.x' peerDependenciesMeta: @@ -5128,8 +5128,8 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: '@storybook/test': 8.6.0 - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 storybook: ^8.6.0 typescript: '>= 4.2.x' peerDependenciesMeta: @@ -5309,8 +5309,8 @@ packages: engines: {node: '>=18'} peerDependencies: '@types/react': ^19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true @@ -11424,7 +11424,7 @@ packages: lucide-react@0.383.0: resolution: {integrity: sha512-13xlG0CQCJtzjSQYwwJ3WRqMHtRj3EXmLlorrARt7y+IHnxUCp3XyFNL1DfaGySWxHObDvnu1u1dV+0VMKHUSg==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} @@ -13938,23 +13938,23 @@ packages: resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} - react-dom@0.0.0-experimental-4db4b21c-20250626: - resolution: {integrity: sha512-fV4l2JeSA8coAUupZIAQMLE+ctJGRE7guVu3YpOm0cPFQfN5vxnd2pFMZYRNP54cVZxhvPpA/BMIQA46H59rwg==} + react-dom@0.0.0-experimental-65c4decb-20250630: + resolution: {integrity: sha512-lsNyRFwuCHvC4WjRN5/DK3rMr/JBBChGWIcx780GgE+cwNYL8tQOcM0aQg1VDsEkLMzKkZ/dIYIgfcRCliwz/g==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 - react-dom@19.2.0-canary-4db4b21c-20250626: - resolution: {integrity: sha512-SdP8DVFqelQJaDBlWuvlAcVZZ386pwFBnz3/lnLlGyVdewowse4ueFLs0pPwWKPrVDu5YI7q7Z/VKXzgrEfNcw==} + react-dom@19.2.0-canary-65c4decb-20250630: + resolution: {integrity: sha512-DQAw7caIKKfMR6OjHD+6EP9p+u8fHUqcFy3NH+k8XUvo0a2xT7NVN/9WX38CvG1O7sKCiCx/+bCUbOJDtL2nIA==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 react-dom@19.2.0-canary-fa3feba6-20250623: resolution: {integrity: sha512-a/OyVKA4wJo1eBL82KJOBho8x2p2rZe/pubH94hGCBMfsty+x0xyB8KbE/YtNhXzMJaJ28PvvPceZ6WbqbDQlg==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 - react-is@19.2.0-canary-4db4b21c-20250626: - resolution: {integrity: sha512-Wr9qyeiwajWX1QNkXlMCvJhuJjTdvFoFxsen6TdZ2X6ktLizGEPJbOFNpLc2woYKF/No/g9sexuXsBcMC0OvPA==} + react-is@19.2.0-canary-65c4decb-20250630: + resolution: {integrity: sha512-3Z26zD8B5e+VLppvEeaEFPBfv47kC6xt7RD2s/84+IHYqdZOqR0b3xGVaguPaZd8oCevpviZcwTWzSf3xYygRA==} react-is@19.2.0-canary-fa3feba6-20250623: resolution: {integrity: sha512-BktwFemMIkQdqE8Ijv9BzB7rx0yAk4xndThBAi8cLnkMOd6Imm+XBeTweHHuMhehtTK623DIsWT1roVRBUby8Q==} @@ -13965,8 +13965,8 @@ packages: react-number-format@5.4.0: resolution: {integrity: sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 react-refresh@0.12.0: resolution: {integrity: sha512-suLIhrU2IHKL5JEKR/fAwJv7bbeq4kJ+pJopf77jHwuR+HmJS/HbrPIGsTBUVfw7tXPOmYv7UJ7PCaN49e8x4A==} @@ -13977,7 +13977,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': ^19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true @@ -13987,58 +13987,58 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': ^19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true - react-server-dom-turbopack@0.0.0-experimental-4db4b21c-20250626: - resolution: {integrity: sha512-eq2XUjsKE2EqywsZSUPbXWDV3IywxaAycd1rXpVxaXjguHqZz+RwTcurZ70YGRStoXNMOIMJETzN/KeTa+jeyA==} + react-server-dom-turbopack@0.0.0-experimental-65c4decb-20250630: + resolution: {integrity: sha512-cZJ0C+uN6GrzJ7I5HyvLf981EM5ZXO9q4Oqc1kJts9i8qSrj7f7Rw6KK0c12ZygycooqJfhwPiEBVMBWXlMRbg==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 - react-server-dom-turbopack@19.2.0-canary-4db4b21c-20250626: - resolution: {integrity: sha512-VK73pDlflXg7m4fEl36vtvjv/Q8L8tVIgV/E1l2YMhtwm311XQRpQWxU1tvj3P+Hsevu/MbtUUq3VjNOWErglw==} + react-server-dom-turbopack@19.2.0-canary-65c4decb-20250630: + resolution: {integrity: sha512-UMz1952Wjl+FRxZIIzu2Oa73bu6NiDiUOGU7qm51eyn1ANkWk+Y31/3ItHPIeGqws8fIWaIFkGMRrNGNOkR4pw==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 - react-server-dom-webpack@0.0.0-experimental-4db4b21c-20250626: - resolution: {integrity: sha512-666d1eDSJZwKBQs6ks6WGihNhlfZ2w4Z6DZYY7rYpJcVOriM5g9uOP0MkcW+wlwTdnJCb9adTt8Sw9vSBlgh4w==} + react-server-dom-webpack@0.0.0-experimental-65c4decb-20250630: + resolution: {integrity: sha512-HVLEJI0t4HNU+PFjnTxe6nwemYvm2xAGCFkLjVagiKBN5ZyOyYNrLbnzH5+ocB7XyIFRGG/x+TUA/FxKC8VNrw==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 webpack: 5.98.0 - react-server-dom-webpack@19.2.0-canary-4db4b21c-20250626: - resolution: {integrity: sha512-f8clf4V3BGVe1pvmC8zncS61KvrZnEDEIJPOjiaatANDzx5099pQDIVqcbyeGp7+TQYJoWig0vufCu4ueVrQYw==} + react-server-dom-webpack@19.2.0-canary-65c4decb-20250630: + resolution: {integrity: sha512-TES98dQv+WzEi75aofVEJgwnXcXbm4/O8EEBexyuvQYeC3QkxsHmfTXBY+jlWxGNSKo0cR5V4Uv1QemD3EKF5g==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 webpack: 5.98.0 react-shallow-renderer@16.15.0: resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 react-ssr-prepass@1.0.8: resolution: {integrity: sha512-O0gfRA1SaK+9ITKxqfnXsej2jF+OHGP/+GxD4unROQaM/0/UczGF9fuF+wTboxaQoKdIf4FvS3h/OigWh704VA==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-is: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-is: 19.2.0-canary-65c4decb-20250630 react-style-singleton@2.2.1: resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: '@types/react': ^19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true @@ -14046,26 +14046,26 @@ packages: react-test-renderer@18.2.0: resolution: {integrity: sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 react-textarea-autosize@8.5.3: resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} engines: {node: '>=10'} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 react-virtualized@9.22.3: resolution: {integrity: sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630 - react@0.0.0-experimental-4db4b21c-20250626: - resolution: {integrity: sha512-YivprI9ERW2XWRW8ETwZo35w1klHkctTkV0bx4jXZgMxvxnLDcU4dW9rQYCt8y1j1qK74L6EMCU6fPxlaGm+sA==} + react@0.0.0-experimental-65c4decb-20250630: + resolution: {integrity: sha512-9yt49Gbz6AGIur9WZNkbMXjGJLFl126wLiYl9Y/kWXjftnzHN5LO28FpEU6G8qqtcm6S6244gOpD74BUjORnDg==} engines: {node: '>=0.10.0'} - react@19.2.0-canary-4db4b21c-20250626: - resolution: {integrity: sha512-Z0TlZXIeh0ol16/lIWV9W6QyNpj6aBwSRQvw17VNyHes22qH+A+slo0Y8MdrQ2WeAcEkh005ZcPAWkzVVxvmBA==} + react@19.2.0-canary-65c4decb-20250630: + resolution: {integrity: sha512-4frUG6sL4Db0usqmeitCGNS1JM03Dfo86tRcPohM9vJ8hCKX12vBTHohjrc3bPLYT63vv93v/a3ofo2tIkvtPw==} engines: {node: '>=0.10.0'} react@19.2.0-canary-fa3feba6-20250623: @@ -14615,11 +14615,11 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.0.0-experimental-4db4b21c-20250626: - resolution: {integrity: sha512-842Ho4JjOpPyZNq55KZzAjwBx5Ioc3gm9a4RBukhGjj83x0nDrKu6o5buFGAbP+G3M+vKT+oixGV31BHKZRbmA==} + scheduler@0.0.0-experimental-65c4decb-20250630: + resolution: {integrity: sha512-qCtDlrKuIGKfiefEMJ9pfMI+Mawnw8QjE8KTfIIuKNDCsJccTJaCqEeC2TYzTpUTnuA7EYLPdI0mgWawRLOHZg==} - scheduler@0.27.0-canary-4db4b21c-20250626: - resolution: {integrity: sha512-NQSP9wC7fLshNbg665KTS/OXgpdVuWUg9cxVhVARLY0Ip7u3qn21JlfzcH2irRSuNVwufDpzXi3ddk7AQRO3dA==} + scheduler@0.27.0-canary-65c4decb-20250630: + resolution: {integrity: sha512-1kpTpNuGAXvSvlIv+iPScf0PReVs6iiYyAdMbfT3o3a6suQskGzRDjGchsIReWdIMkLtWDQFo3XWEPeCRC0Hbg==} schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} @@ -15269,7 +15269,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@babel/core': optional: true @@ -15350,7 +15350,7 @@ packages: swr@2.2.4: resolution: {integrity: sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 symbol-observable@1.0.1: resolution: {integrity: sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==} @@ -16142,7 +16142,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': ^19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true @@ -16150,13 +16150,13 @@ packages: use-composed-ref@1.3.0: resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 use-isomorphic-layout-effect@1.1.2: resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true @@ -16165,7 +16165,7 @@ packages: resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true @@ -16175,7 +16175,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': ^19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 peerDependenciesMeta: '@types/react': optional: true @@ -16183,7 +16183,7 @@ packages: use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -18184,17 +18184,17 @@ snapshots: '@emotion/memoize@0.8.1': {} - '@emotion/react@11.11.1(@types/react@19.1.1)(react@19.2.0-canary-4db4b21c-20250626)': + '@emotion/react@11.11.1(@types/react@19.1.1)(react@19.2.0-canary-65c4decb-20250630)': 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-4db4b21c-20250626) + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@19.2.0-canary-65c4decb-20250630) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 hoist-non-react-statics: 3.3.2 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 optionalDependencies: '@types/react': 19.1.1 transitivePeerDependencies: @@ -18212,9 +18212,9 @@ snapshots: '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.2.0-canary-4db4b21c-20250626)': + '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@19.2.0-canary-65c4decb-20250630)': dependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 '@emotion/utils@1.2.1': {} @@ -19865,11 +19865,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@2.2.1(react@19.2.0-canary-4db4b21c-20250626)': + '@mdx-js/react@2.2.1(react@19.2.0-canary-65c4decb-20250630)': dependencies: '@types/mdx': 2.0.3 '@types/react': 19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 '@mdx-js/react@2.2.1(react@19.2.0-canary-fa3feba6-20250623)': dependencies: @@ -19877,11 +19877,11 @@ snapshots: '@types/react': 19.1.1 react: 19.2.0-canary-fa3feba6-20250623 - '@mdx-js/react@3.1.0(@types/react@19.1.1)(react@19.2.0-canary-4db4b21c-20250626)': + '@mdx-js/react@3.1.0(@types/react@19.1.1)(react@19.2.0-canary-65c4decb-20250630)': dependencies: '@types/mdx': 2.0.3 '@types/react': 19.1.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 '@module-federation/error-codes@0.14.0': {} @@ -20629,12 +20629,12 @@ snapshots: '@storybook/addon-docs@8.6.0(@types/react@19.1.1)(storybook@8.6.0(prettier@3.3.3))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.1.1)(react@19.2.0-canary-4db4b21c-20250626) - '@storybook/blocks': 8.6.0(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3)) + '@mdx-js/react': 3.1.0(@types/react@19.1.1)(react@19.2.0-canary-65c4decb-20250630) + '@storybook/blocks': 8.6.0(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3)) '@storybook/csf-plugin': 8.6.0(storybook@8.6.0(prettier@3.3.3)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3)) - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3)) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) storybook: 8.6.0(prettier@3.3.3) ts-dedent: 2.2.0 transitivePeerDependencies: @@ -20699,14 +20699,14 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/blocks@8.6.0(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))': + '@storybook/blocks@8.6.0(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))': dependencies: - '@storybook/icons': 1.3.0(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626) + '@storybook/icons': 1.3.0(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630) storybook: 8.6.0(prettier@3.3.3) ts-dedent: 2.2.0 optionalDependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) '@storybook/builder-webpack5@8.6.0(@rspack/core@1.3.12(@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.3.3))(typescript@5.8.2)': dependencies: @@ -20785,10 +20785,10 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.0(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)': + '@storybook/icons@1.3.0(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)': dependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) '@storybook/instrumenter@8.6.0(storybook@8.6.0(prettier@3.3.3))': dependencies: @@ -20800,17 +20800,17 @@ snapshots: dependencies: storybook: 8.6.0(prettier@3.3.3) - '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2)': + '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2)': dependencies: '@storybook/core-webpack': 8.6.0(storybook@8.6.0(prettier@3.3.3)) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))(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-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 react-docgen: 7.1.0 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) resolve: 1.22.8 semver: 7.6.3 storybook: 8.6.0(prettier@3.3.3) @@ -20844,19 +20844,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.6.0(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))': + '@storybook/react-dom-shim@8.6.0(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))': dependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) storybook: 8.6.0(prettier@3.3.3) - '@storybook/react-webpack5@8.6.0(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2)': + '@storybook/react-webpack5@8.6.0(@rspack/core@1.3.12(@swc/helpers@0.5.15))(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2)': dependencies: '@storybook/builder-webpack5': 8.6.0(@rspack/core@1.3.12(@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.3.3))(typescript@5.8.2) - '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2) - '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2) - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(@swc/core@1.11.24(@swc/helpers@0.5.15))(esbuild@0.24.2)(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2) + '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) storybook: 8.6.0(prettier@3.3.3) optionalDependencies: typescript: 5.8.2 @@ -20869,16 +20869,16 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2)': + '@storybook/react@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(prettier@3.3.3)))(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3))(typescript@5.8.2)': dependencies: '@storybook/components': 8.6.0(storybook@8.6.0(prettier@3.3.3)) '@storybook/global': 5.0.0 '@storybook/manager-api': 8.6.0(storybook@8.6.0(prettier@3.3.3)) '@storybook/preview-api': 8.6.0(storybook@8.6.0(prettier@3.3.3)) - '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(storybook@8.6.0(prettier@3.3.3)) + '@storybook/react-dom-shim': 8.6.0(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(storybook@8.6.0(prettier@3.3.3)) '@storybook/theming': 8.6.0(storybook@8.6.0(prettier@3.3.3)) - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) storybook: 8.6.0(prettier@3.3.3) optionalDependencies: '@storybook/test': 8.6.0(storybook@8.6.0(prettier@3.3.3)) @@ -21085,13 +21085,13 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@15.0.7(@types/react@19.1.1)(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)': + '@testing-library/react@15.0.7(@types/react@19.1.1)(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)': dependencies: '@babel/runtime': 7.27.0 '@testing-library/dom': 10.1.0 '@types/react-dom': 19.1.2(@types/react@19.1.1) - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) optionalDependencies: '@types/react': 19.1.1 @@ -26817,7 +26817,7 @@ snapshots: hoist-non-react-statics@3.3.2: dependencies: - react-is: 19.2.0-canary-4db4b21c-20250626 + react-is: 19.2.0-canary-65c4decb-20250630 homedir-polyfill@1.0.3: dependencies: @@ -31743,25 +31743,25 @@ snapshots: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 - react-is: 19.2.0-canary-4db4b21c-20250626 + react-is: 19.2.0-canary-65c4decb-20250630 pretty-format@29.5.0: dependencies: '@jest/schemas': 29.4.3 ansi-styles: 5.2.0 - react-is: 19.2.0-canary-4db4b21c-20250626 + react-is: 19.2.0-canary-65c4decb-20250630 pretty-format@29.7.0: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 19.2.0-canary-4db4b21c-20250626 + react-is: 19.2.0-canary-65c4decb-20250630 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-4db4b21c-20250626 + react-is: 19.2.0-canary-65c4decb-20250630 pretty-ms@7.0.0: dependencies: @@ -31824,7 +31824,7 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 - react-is: 19.2.0-canary-4db4b21c-20250626 + react-is: 19.2.0-canary-65c4decb-20250630 property-information@5.6.0: dependencies: @@ -32033,22 +32033,22 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@0.0.0-experimental-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626): + react-dom@0.0.0-experimental-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630): dependencies: - react: 19.2.0-canary-4db4b21c-20250626 - scheduler: 0.27.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + scheduler: 0.27.0-canary-65c4decb-20250630 - react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626): + react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630): dependencies: - react: 19.2.0-canary-4db4b21c-20250626 - scheduler: 0.27.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + scheduler: 0.27.0-canary-65c4decb-20250630 react-dom@19.2.0-canary-fa3feba6-20250623(react@19.2.0-canary-fa3feba6-20250623): dependencies: react: 19.2.0-canary-fa3feba6-20250623 - scheduler: 0.27.0-canary-4db4b21c-20250626 + scheduler: 0.27.0-canary-65c4decb-20250630 - react-is@19.2.0-canary-4db4b21c-20250626: {} + react-is@19.2.0-canary-65c4decb-20250630: {} react-is@19.2.0-canary-fa3feba6-20250623: {} @@ -32081,48 +32081,48 @@ snapshots: optionalDependencies: '@types/react': 19.1.1 - react-server-dom-turbopack@0.0.0-experimental-4db4b21c-20250626(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626): + react-server-dom-turbopack@0.0.0-experimental-65c4decb-20250630(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) - react-server-dom-turbopack@19.2.0-canary-4db4b21c-20250626(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626): + react-server-dom-turbopack@19.2.0-canary-65c4decb-20250630(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630): dependencies: acorn-loose: 8.3.0 neo-async: 2.6.1 - react: 19.2.0-canary-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) - react-server-dom-webpack@0.0.0-experimental-4db4b21c-20250626(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): + react-server-dom-webpack@0.0.0-experimental-65c4decb-20250630(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(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-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) 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-4db4b21c-20250626(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626)(webpack@5.98.0(@swc/core@1.11.24(@swc/helpers@0.5.15))): + react-server-dom-webpack@19.2.0-canary-65c4decb-20250630(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630)(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-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) 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-4db4b21c-20250626): + react-shallow-renderer@16.15.0(react@19.2.0-canary-65c4decb-20250630): dependencies: object-assign: 4.1.1 - react: 19.2.0-canary-4db4b21c-20250626 - react-is: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-is: 19.2.0-canary-65c4decb-20250630 - react-ssr-prepass@1.0.8(react-is@19.2.0-canary-fa3feba6-20250623)(react@19.2.0-canary-4db4b21c-20250626): + react-ssr-prepass@1.0.8(react-is@19.2.0-canary-fa3feba6-20250623)(react@19.2.0-canary-65c4decb-20250630): dependencies: object-is: 1.0.2 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 react-is: 19.2.0-canary-fa3feba6-20250623 react-style-singleton@2.2.1(@types/react@19.1.1)(react@19.2.0-canary-fa3feba6-20250623): @@ -32134,12 +32134,12 @@ snapshots: optionalDependencies: '@types/react': 19.1.1 - react-test-renderer@18.2.0(react@19.2.0-canary-4db4b21c-20250626): + react-test-renderer@18.2.0(react@19.2.0-canary-65c4decb-20250630): dependencies: - react: 19.2.0-canary-4db4b21c-20250626 - react-is: 19.2.0-canary-4db4b21c-20250626 - react-shallow-renderer: 16.15.0(react@19.2.0-canary-4db4b21c-20250626) - scheduler: 0.27.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 + react-is: 19.2.0-canary-65c4decb-20250630 + react-shallow-renderer: 16.15.0(react@19.2.0-canary-65c4decb-20250630) + scheduler: 0.27.0-canary-65c4decb-20250630 react-textarea-autosize@8.5.3(@types/react@19.1.1)(react@19.2.0-canary-fa3feba6-20250623): dependencies: @@ -32150,20 +32150,20 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-virtualized@9.22.3(react-dom@19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626))(react@19.2.0-canary-4db4b21c-20250626): + react-virtualized@9.22.3(react-dom@19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630))(react@19.2.0-canary-65c4decb-20250630): 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-4db4b21c-20250626 - react-dom: 19.2.0-canary-4db4b21c-20250626(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + react-dom: 19.2.0-canary-65c4decb-20250630(react@19.2.0-canary-65c4decb-20250630) react-lifecycles-compat: 3.0.4 - react@0.0.0-experimental-4db4b21c-20250626: {} + react@0.0.0-experimental-65c4decb-20250630: {} - react@19.2.0-canary-4db4b21c-20250626: {} + react@19.2.0-canary-65c4decb-20250630: {} react@19.2.0-canary-fa3feba6-20250623: {} @@ -32924,9 +32924,9 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.0.0-experimental-4db4b21c-20250626: {} + scheduler@0.0.0-experimental-65c4decb-20250630: {} - scheduler@0.27.0-canary-4db4b21c-20250626: {} + scheduler@0.27.0-canary-65c4decb-20250630: {} schema-utils@2.7.1: dependencies: @@ -33711,10 +33711,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-4db4b21c-20250626): + styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@19.2.0-canary-65c4decb-20250630): dependencies: client-only: 0.0.1 - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 optionalDependencies: '@babel/core': 7.26.10 babel-plugin-macros: 3.1.0 @@ -33808,11 +33808,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-4db4b21c-20250626): + swr@2.2.4(react@19.2.0-canary-65c4decb-20250630): dependencies: client-only: 0.0.1 - react: 19.2.0-canary-4db4b21c-20250626 - use-sync-external-store: 1.2.0(react@19.2.0-canary-4db4b21c-20250626) + react: 19.2.0-canary-65c4decb-20250630 + use-sync-external-store: 1.2.0(react@19.2.0-canary-65c4decb-20250630) symbol-observable@1.0.1: {} @@ -34609,9 +34609,9 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - unistore@3.4.1(react@19.2.0-canary-4db4b21c-20250626): + unistore@3.4.1(react@19.2.0-canary-65c4decb-20250630): optionalDependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 universal-github-app-jwt@1.1.1: dependencies: @@ -34737,9 +34737,9 @@ snapshots: optionalDependencies: '@types/react': 19.1.1 - use-sync-external-store@1.2.0(react@19.2.0-canary-4db4b21c-20250626): + use-sync-external-store@1.2.0(react@19.2.0-canary-65c4decb-20250630): dependencies: - react: 19.2.0-canary-4db4b21c-20250626 + react: 19.2.0-canary-65c4decb-20250630 util-deprecate@1.0.2: {}