From f4ccb1f263a0f998dd94da01b2450143cb9fc647 Mon Sep 17 00:00:00 2001 From: sebmarkbage Date: Wed, 10 Jul 2024 16:22:14 +0000 Subject: [PATCH] Format DOM Nesting Warning as Diff View + An Additional Log for Stack Trace (#30302) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently we're printing parent stacks at the end of DOM nesting even with owner stacks enabled. That's because the context of parent tree is relevant for determining why two things are nested. It might not be sufficient to see the owner stack alone. I'm trying to get rid of parent stacks and rely on more of the plain owner stacks or ideally console.createTask. These are generally better anyway since the exact line for creating the JSX is available. It also lets you find a parent stack frame that is most relevant e.g. if it's hidden inside internals. For DOM nesting there's really only two stacks that are relevant. The creation of the parent and the creation of the child. Sometimes they're close enough to be the same thing. Such as for parents that can't have text children or when the ancestor is the direct parent created at the same place (same owner). Sometimes they're far apart. In this case I add a second console.error within the context of the ancestor. That way the second stack trace can be used to read the stack trace for where it was created. To preserve some parent context I now print the parent stack in a diff view format using the logic from hydration diffs. This includes some siblings and props for context. Screenshot 2024-07-10 at 12 21 38 AM Text Nodes: Screenshot 2024-07-10 at 12 37 40 AM --------- Co-authored-by: tjallingt DiffTrain build for [2d3f81bb6a650386832d885d7b63a7d0d517ba15](https://github.com/facebook/react/commit/2d3f81bb6a650386832d885d7b63a7d0d517ba15) --- compiled/facebook-www/REVISION | 2 +- compiled/facebook-www/REVISION_TRANSFORMS | 2 +- compiled/facebook-www/React-dev.classic.js | 2 +- compiled/facebook-www/React-dev.modern.js | 2 +- compiled/facebook-www/React-prod.classic.js | 2 +- compiled/facebook-www/React-prod.modern.js | 2 +- .../facebook-www/React-profiling.classic.js | 2 +- .../facebook-www/React-profiling.modern.js | 2 +- compiled/facebook-www/ReactART-dev.classic.js | 32 +- compiled/facebook-www/ReactART-dev.modern.js | 32 +- .../facebook-www/ReactART-prod.classic.js | 4 +- compiled/facebook-www/ReactART-prod.modern.js | 4 +- compiled/facebook-www/ReactDOM-dev.classic.js | 992 +++++++++--------- compiled/facebook-www/ReactDOM-dev.modern.js | 992 +++++++++--------- .../facebook-www/ReactDOM-prod.classic.js | 10 +- compiled/facebook-www/ReactDOM-prod.modern.js | 10 +- .../ReactDOM-profiling.classic.js | 10 +- .../facebook-www/ReactDOM-profiling.modern.js | 10 +- .../ReactDOMServer-dev.classic.js | 2 +- .../facebook-www/ReactDOMServer-dev.modern.js | 2 +- .../ReactDOMServer-prod.classic.js | 2 +- .../ReactDOMServer-prod.modern.js | 2 +- .../ReactDOMTesting-dev.classic.js | 992 +++++++++--------- .../ReactDOMTesting-dev.modern.js | 992 +++++++++--------- .../ReactDOMTesting-prod.classic.js | 10 +- .../ReactDOMTesting-prod.modern.js | 10 +- .../ReactReconciler-dev.classic.js | 30 +- .../ReactReconciler-dev.modern.js | 30 +- .../ReactReconciler-prod.classic.js | 2 +- .../ReactReconciler-prod.modern.js | 2 +- .../ReactTestRenderer-dev.classic.js | 32 +- .../ReactTestRenderer-dev.modern.js | 32 +- compiled/facebook-www/VERSION_CLASSIC | 2 +- compiled/facebook-www/VERSION_MODERN | 2 +- .../__test_utils__/ReactAllWarnings.js | 5 + 35 files changed, 2277 insertions(+), 1984 deletions(-) diff --git a/compiled/facebook-www/REVISION b/compiled/facebook-www/REVISION index c27a54b9b8..1a599a66f5 100644 --- a/compiled/facebook-www/REVISION +++ b/compiled/facebook-www/REVISION @@ -1 +1 @@ -378b305958eb7259cacfce8ad0e66eec07e07074 +2d3f81bb6a650386832d885d7b63a7d0d517ba15 diff --git a/compiled/facebook-www/REVISION_TRANSFORMS b/compiled/facebook-www/REVISION_TRANSFORMS index c27a54b9b8..1a599a66f5 100644 --- a/compiled/facebook-www/REVISION_TRANSFORMS +++ b/compiled/facebook-www/REVISION_TRANSFORMS @@ -1 +1 @@ -378b305958eb7259cacfce8ad0e66eec07e07074 +2d3f81bb6a650386832d885d7b63a7d0d517ba15 diff --git a/compiled/facebook-www/React-dev.classic.js b/compiled/facebook-www/React-dev.classic.js index 122e0a1fdb..9ee3bff376 100644 --- a/compiled/facebook-www/React-dev.classic.js +++ b/compiled/facebook-www/React-dev.classic.js @@ -1998,7 +1998,7 @@ __DEV__ && exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.0.0-www-classic-378b305958-20240710"; + exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/React-dev.modern.js b/compiled/facebook-www/React-dev.modern.js index 0a8a286714..12c906bd5c 100644 --- a/compiled/facebook-www/React-dev.modern.js +++ b/compiled/facebook-www/React-dev.modern.js @@ -1978,7 +1978,7 @@ __DEV__ && exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.0.0-www-modern-378b305958-20240710"; + exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/React-prod.classic.js b/compiled/facebook-www/React-prod.classic.js index 95909487be..7f8e2c96a6 100644 --- a/compiled/facebook-www/React-prod.classic.js +++ b/compiled/facebook-www/React-prod.classic.js @@ -669,4 +669,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.0.0-www-classic-378b305958-20240710"; +exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/React-prod.modern.js b/compiled/facebook-www/React-prod.modern.js index ddd1f0a312..67cf32d990 100644 --- a/compiled/facebook-www/React-prod.modern.js +++ b/compiled/facebook-www/React-prod.modern.js @@ -669,4 +669,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.0.0-www-modern-378b305958-20240710"; +exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/React-profiling.classic.js b/compiled/facebook-www/React-profiling.classic.js index 055baf8cbf..62f6c60633 100644 --- a/compiled/facebook-www/React-profiling.classic.js +++ b/compiled/facebook-www/React-profiling.classic.js @@ -673,7 +673,7 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.0.0-www-classic-378b305958-20240710"; +exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/React-profiling.modern.js b/compiled/facebook-www/React-profiling.modern.js index a3171184da..50f31b01b5 100644 --- a/compiled/facebook-www/React-profiling.modern.js +++ b/compiled/facebook-www/React-profiling.modern.js @@ -673,7 +673,7 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.0.0-www-modern-378b305958-20240710"; +exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactART-dev.classic.js b/compiled/facebook-www/ReactART-dev.classic.js index e18c9cd4ba..994996aa58 100644 --- a/compiled/facebook-www/ReactART-dev.classic.js +++ b/compiled/facebook-www/ReactART-dev.classic.js @@ -1991,7 +1991,10 @@ __DEV__ && "number" === typeof clientProps || "bigint" === typeof clientProps ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); return content; } function describeSiblingFiber(fiber, indent) { @@ -2027,7 +2030,7 @@ __DEV__ && debugInfo = ""; i = node.fiber.pendingProps; if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; else if ( ((serverComponentName = describeFiberType(node.fiber)), null !== serverComponentName) @@ -2055,11 +2058,12 @@ __DEV__ && indent++; } else null === node.serverProps - ? (debugInfo = describeExpandedElement( + ? ((debugInfo = describeExpandedElement( serverComponentName, i, added(indent) - )) + )), + indent++) : "string" === typeof node.serverProps ? error$jscomp$0( "Should not have matched a non HostText fiber to a Text node. This is a bug in React." @@ -2087,9 +2091,10 @@ __DEV__ && i && 0 < node.children.length && (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), (propName = "string" === typeof serverComponentName ? propName + @@ -2982,6 +2987,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -3055,6 +3061,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -3076,6 +3083,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -3122,6 +3130,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -3654,6 +3663,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -3825,6 +3835,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -15050,7 +15062,7 @@ __DEV__ && _currentValue2: null, _threadCount: 0 }, - needsEscaping = /["'&<>\n\t]/, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, hydrationDiffRootDEV = null, hydrationErrors = null, concurrentQueues = [], @@ -16962,14 +16974,14 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: function () { return null; }, bundleType: 1, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-art" }); var ClippingRectangle = TYPES.CLIPPING_RECTANGLE, diff --git a/compiled/facebook-www/ReactART-dev.modern.js b/compiled/facebook-www/ReactART-dev.modern.js index 130fd63ec4..d35f12db32 100644 --- a/compiled/facebook-www/ReactART-dev.modern.js +++ b/compiled/facebook-www/ReactART-dev.modern.js @@ -1894,7 +1894,10 @@ __DEV__ && "number" === typeof clientProps || "bigint" === typeof clientProps ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); return content; } function describeSiblingFiber(fiber, indent) { @@ -1930,7 +1933,7 @@ __DEV__ && debugInfo = ""; i = node.fiber.pendingProps; if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; else if ( ((serverComponentName = describeFiberType(node.fiber)), null !== serverComponentName) @@ -1958,11 +1961,12 @@ __DEV__ && indent++; } else null === node.serverProps - ? (debugInfo = describeExpandedElement( + ? ((debugInfo = describeExpandedElement( serverComponentName, i, added(indent) - )) + )), + indent++) : "string" === typeof node.serverProps ? error$jscomp$0( "Should not have matched a non HostText fiber to a Text node. This is a bug in React." @@ -1990,9 +1994,10 @@ __DEV__ && i && 0 < node.children.length && (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), (propName = "string" === typeof serverComponentName ? propName + @@ -2881,6 +2886,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -2954,6 +2960,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -2975,6 +2982,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -3021,6 +3029,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -3553,6 +3562,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -3724,6 +3734,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -14467,7 +14479,7 @@ __DEV__ && _currentValue2: null, _threadCount: 0 }, - needsEscaping = /["'&<>\n\t]/, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, hydrationDiffRootDEV = null, hydrationErrors = null, concurrentQueues = [], @@ -16377,14 +16389,14 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: function () { return null; }, bundleType: 1, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-art" }); var ClippingRectangle = TYPES.CLIPPING_RECTANGLE, diff --git a/compiled/facebook-www/ReactART-prod.classic.js b/compiled/facebook-www/ReactART-prod.classic.js index 37bfbd06f7..836494fbfa 100644 --- a/compiled/facebook-www/ReactART-prod.classic.js +++ b/compiled/facebook-www/ReactART-prod.classic.js @@ -10718,7 +10718,7 @@ var slice = Array.prototype.slice, return null; }, bundleType: 0, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-art" }; var internals$jscomp$inline_1386 = { @@ -10749,7 +10749,7 @@ var internals$jscomp$inline_1386 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1387 = __REACT_DEVTOOLS_GLOBAL_HOOK__; diff --git a/compiled/facebook-www/ReactART-prod.modern.js b/compiled/facebook-www/ReactART-prod.modern.js index 9beb731f3d..197360c97f 100644 --- a/compiled/facebook-www/ReactART-prod.modern.js +++ b/compiled/facebook-www/ReactART-prod.modern.js @@ -10171,7 +10171,7 @@ var slice = Array.prototype.slice, return null; }, bundleType: 0, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-art" }; var internals$jscomp$inline_1372 = { @@ -10202,7 +10202,7 @@ var internals$jscomp$inline_1372 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1373 = __REACT_DEVTOOLS_GLOBAL_HOOK__; diff --git a/compiled/facebook-www/ReactDOM-dev.classic.js b/compiled/facebook-www/ReactDOM-dev.classic.js index 53e7818e76..7606e81dbb 100644 --- a/compiled/facebook-www/ReactDOM-dev.classic.js +++ b/compiled/facebook-www/ReactDOM-dev.classic.js @@ -610,9 +610,6 @@ __DEV__ && var owner = current._debugOwner; return null != owner ? getComponentNameFromOwner(owner) : null; } - function getCurrentParentStackInDev() { - return null === current ? "" : getStackByFiberInDevAndProd(current); - } function getCurrentFiberStackInDev() { return null === current ? "" : getStackByFiberInDevAndProd(current); } @@ -1951,6 +1948,475 @@ __DEV__ && null !== children && (element.value = children); } + function findNotableNode(node, indent) { + return void 0 === node.serverProps && + 0 === node.serverTail.length && + 1 === node.children.length && + 3 < node.distanceFromLeaf && + node.distanceFromLeaf > 15 - indent + ? findNotableNode(node.children[0], indent) + : node; + } + function indentation(indent) { + return " " + " ".repeat(indent); + } + function added(indent) { + return "+ " + " ".repeat(indent); + } + function removed(indent) { + return "- " + " ".repeat(indent); + } + function describeFiberType(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return fiber.type; + case 16: + return "Lazy"; + case 13: + return "Suspense"; + case 19: + return "SuspenseList"; + case 0: + case 15: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + case 11: + return ( + (fiber = fiber.type.render), fiber.displayName || fiber.name || null + ); + case 1: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + default: + return null; + } + } + function describeTextNode(content, maxLength) { + return needsEscaping.test(content) + ? ((content = JSON.stringify(content)), + content.length > maxLength - 2 + ? 8 > maxLength + ? '{"..."}' + : "{" + content.slice(0, maxLength - 7) + '..."}' + : "{" + content + "}") + : content.length > maxLength + ? 5 > maxLength + ? '{"..."}' + : content.slice(0, maxLength - 3) + "..." + : content; + } + function describeTextDiff(clientText, serverProps, indent) { + var maxLength = 120 - 2 * indent; + if (null === serverProps) + return added(indent) + describeTextNode(clientText, maxLength) + "\n"; + if ("string" === typeof serverProps) { + for ( + var firstDiff = 0; + firstDiff < serverProps.length && + firstDiff < clientText.length && + serverProps.charCodeAt(firstDiff) === + clientText.charCodeAt(firstDiff); + firstDiff++ + ); + firstDiff > maxLength - 8 && + 10 < firstDiff && + ((clientText = "..." + clientText.slice(firstDiff - 8)), + (serverProps = "..." + serverProps.slice(firstDiff - 8))); + return ( + added(indent) + + describeTextNode(clientText, maxLength) + + "\n" + + removed(indent) + + describeTextNode(serverProps, maxLength) + + "\n" + ); + } + return ( + indentation(indent) + describeTextNode(clientText, maxLength) + "\n" + ); + } + function objectName(object) { + return Object.prototype.toString + .call(object) + .replace(/^\[object (.*)\]$/, function (m, p0) { + return p0; + }); + } + function describeValue(value, maxLength) { + switch (typeof value) { + case "string": + return ( + (value = JSON.stringify(value)), + value.length > maxLength + ? 5 > maxLength + ? '"..."' + : value.slice(0, maxLength - 4) + '..."' + : value + ); + case "object": + if (null === value) return "null"; + if (isArrayImpl(value)) return "[...]"; + if (value.$$typeof === REACT_ELEMENT_TYPE) + return (maxLength = getComponentNameFromType(value.type)) + ? "<" + maxLength + ">" + : "<...>"; + var name = objectName(value); + if ("Object" === name) { + name = ""; + maxLength -= 2; + for (var propName in value) + if (value.hasOwnProperty(propName)) { + var jsonPropName = JSON.stringify(propName); + jsonPropName !== '"' + propName + '"' && + (propName = jsonPropName); + maxLength -= propName.length - 2; + jsonPropName = describeValue( + value[propName], + 15 > maxLength ? maxLength : 15 + ); + maxLength -= jsonPropName.length; + if (0 > maxLength) { + name += "" === name ? "..." : ", ..."; + break; + } + name += + ("" === name ? "" : ",") + propName + ":" + jsonPropName; + } + return "{" + name + "}"; + } + return name; + case "function": + return (maxLength = value.displayName || value.name) + ? "function " + maxLength + : "function"; + default: + return String(value); + } + } + function describePropValue(value, maxLength) { + return "string" !== typeof value || needsEscaping.test(value) + ? "{" + describeValue(value, maxLength - 2) + "}" + : value.length > maxLength - 2 + ? 5 > maxLength + ? '"..."' + : '"' + value.slice(0, maxLength - 5) + '..."' + : '"' + value + '"'; + } + function describeExpandedElement(type, props, rowPrefix) { + var remainingRowLength = 120 - rowPrefix.length - type.length, + properties = [], + propName; + for (propName in props) + if (props.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue( + props[propName], + 120 - rowPrefix.length - propName.length - 1 + ); + remainingRowLength -= propName.length + propValue.length + 2; + properties.push(propName + "=" + propValue); + } + return 0 === properties.length + ? rowPrefix + "<" + type + ">\n" + : 0 < remainingRowLength + ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" + : rowPrefix + + "<" + + type + + "\n" + + rowPrefix + + " " + + properties.join("\n" + rowPrefix + " ") + + "\n" + + rowPrefix + + ">\n"; + } + function describePropertiesDiff(clientObject, serverObject, indent) { + var properties = "", + remainingServerProperties = assign({}, serverObject), + propName; + for (propName in clientObject) + if (clientObject.hasOwnProperty(propName)) { + delete remainingServerProperties[propName]; + var maxLength = 120 - 2 * indent - propName.length - 2, + clientPropValue = describeValue(clientObject[propName], maxLength); + serverObject.hasOwnProperty(propName) + ? ((maxLength = describeValue(serverObject[propName], maxLength)), + (properties += + added(indent) + propName + ": " + clientPropValue + "\n"), + (properties += + removed(indent) + propName + ": " + maxLength + "\n")) + : (properties += + added(indent) + propName + ": " + clientPropValue + "\n"); + } + for (var _propName in remainingServerProperties) + remainingServerProperties.hasOwnProperty(_propName) && + ((clientObject = describeValue( + remainingServerProperties[_propName], + 120 - 2 * indent - _propName.length - 2 + )), + (properties += + removed(indent) + _propName + ": " + clientObject + "\n")); + return properties; + } + function describeElementDiff(type, clientProps, serverProps, indent) { + var content = "", + serverPropNames = new Map(); + for (propName$jscomp$0 in serverProps) + serverProps.hasOwnProperty(propName$jscomp$0) && + serverPropNames.set( + propName$jscomp$0.toLowerCase(), + propName$jscomp$0 + ); + if (1 === serverPropNames.size && serverPropNames.has("children")) + content += describeExpandedElement( + type, + clientProps, + indentation(indent) + ); + else { + for (var _propName2 in clientProps) + if ( + clientProps.hasOwnProperty(_propName2) && + "children" !== _propName2 + ) { + var maxLength$jscomp$0 = + 120 - 2 * (indent + 1) - _propName2.length - 1, + serverPropName = serverPropNames.get(_propName2.toLowerCase()); + if (void 0 !== serverPropName) { + serverPropNames.delete(_propName2.toLowerCase()); + var propName$jscomp$0 = clientProps[_propName2]; + serverPropName = serverProps[serverPropName]; + var clientPropValue = describePropValue( + propName$jscomp$0, + maxLength$jscomp$0 + ); + maxLength$jscomp$0 = describePropValue( + serverPropName, + maxLength$jscomp$0 + ); + "object" === typeof propName$jscomp$0 && + null !== propName$jscomp$0 && + "object" === typeof serverPropName && + null !== serverPropName && + "Object" === objectName(propName$jscomp$0) && + "Object" === objectName(serverPropName) && + (2 < Object.keys(propName$jscomp$0).length || + 2 < Object.keys(serverPropName).length || + -1 < clientPropValue.indexOf("...") || + -1 < maxLength$jscomp$0.indexOf("...")) + ? (content += + indentation(indent + 1) + + _propName2 + + "={{\n" + + describePropertiesDiff( + propName$jscomp$0, + serverPropName, + indent + 2 + ) + + indentation(indent + 1) + + "}}\n") + : ((content += + added(indent + 1) + + _propName2 + + "=" + + clientPropValue + + "\n"), + (content += + removed(indent + 1) + + _propName2 + + "=" + + maxLength$jscomp$0 + + "\n")); + } else + content += + indentation(indent + 1) + + _propName2 + + "=" + + describePropValue(clientProps[_propName2], maxLength$jscomp$0) + + "\n"; + } + serverPropNames.forEach(function (propName) { + if ("children" !== propName) { + var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; + content += + removed(indent + 1) + + propName + + "=" + + describePropValue(serverProps[propName], maxLength) + + "\n"; + } + }); + content = + "" === content + ? indentation(indent) + "<" + type + ">\n" + : indentation(indent) + + "<" + + type + + "\n" + + content + + indentation(indent) + + ">\n"; + } + type = serverProps.children; + clientProps = clientProps.children; + if ( + "string" === typeof type || + "number" === typeof type || + "bigint" === typeof type + ) { + serverPropNames = ""; + if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + serverPropNames = "" + clientProps; + content += describeTextDiff(serverPropNames, "" + type, indent + 1); + } else if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); + return content; + } + function describeSiblingFiber(fiber, indent) { + var type = describeFiberType(fiber); + if (null === type) { + type = ""; + for (fiber = fiber.child; fiber; ) + (type += describeSiblingFiber(fiber, indent)), + (fiber = fiber.sibling); + return type; + } + return indentation(indent) + "<" + type + ">\n"; + } + function describeNode(node, indent) { + var skipToNode = findNotableNode(node, indent); + if ( + skipToNode !== node && + (1 !== node.children.length || node.children[0] !== skipToNode) + ) + return ( + indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) + ); + skipToNode = ""; + var debugInfo = node.fiber._debugInfo; + if (debugInfo) + for (var i = 0; i < debugInfo.length; i++) { + var serverComponentName = debugInfo[i].name; + "string" === typeof serverComponentName && + ((skipToNode += + indentation(indent) + "<" + serverComponentName + ">\n"), + indent++); + } + debugInfo = ""; + i = node.fiber.pendingProps; + if (6 === node.fiber.tag) + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; + else if ( + ((serverComponentName = describeFiberType(node.fiber)), + null !== serverComponentName) + ) + if (void 0 === node.serverProps) { + debugInfo = indent; + var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, + content = ""; + for (propName in i) + if (i.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue(i[propName], 15); + maxLength -= propName.length + propValue.length + 2; + if (0 > maxLength) { + content += " ..."; + break; + } + content += " " + propName + "=" + propValue; + } + debugInfo = + indentation(debugInfo) + + "<" + + serverComponentName + + content + + ">\n"; + indent++; + } else + null === node.serverProps + ? ((debugInfo = describeExpandedElement( + serverComponentName, + i, + added(indent) + )), + indent++) + : "string" === typeof node.serverProps + ? error$jscomp$0( + "Should not have matched a non HostText fiber to a Text node. This is a bug in React." + ) + : ((debugInfo = describeElementDiff( + serverComponentName, + i, + node.serverProps, + indent + )), + indent++); + var propName = ""; + i = node.fiber.child; + for ( + serverComponentName = 0; + i && serverComponentName < node.children.length; + + ) + (maxLength = node.children[serverComponentName]), + maxLength.fiber === i + ? ((propName += describeNode(maxLength, indent)), + serverComponentName++) + : (propName += describeSiblingFiber(i, indent)), + (i = i.sibling); + i && + 0 < node.children.length && + (propName += indentation(indent) + "...\n"); + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), + (propName = + "string" === typeof serverComponentName + ? propName + + (removed(indent) + + describeTextNode(serverComponentName, 120 - 2 * indent) + + "\n") + : propName + + describeExpandedElement( + serverComponentName.type, + serverComponentName.props, + removed(indent) + )); + return skipToNode + debugInfo + propName; + } + function describeDiff(rootNode) { + try { + return "\n\n" + describeNode(rootNode, 0); + } catch (x) { + return ""; + } + } + function describeAncestors(ancestor, child, props) { + for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; ) + fiber === ancestor && (distanceFromLeaf = 0), + (node = { + fiber: fiber, + children: null !== node ? [node] : [], + serverProps: + fiber === child ? props : fiber === ancestor ? null : void 0, + serverTail: [], + distanceFromLeaf: distanceFromLeaf + }), + distanceFromLeaf++, + (fiber = fiber.return); + return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, ">") : ""; + } function updatedAncestorInfoDev(oldInfo, tag) { oldInfo = assign({}, oldInfo || emptyAncestorInfoDev); var info = { tag: tag }; @@ -2132,6 +2598,18 @@ __DEV__ && } return null; } + function findAncestor(parent, tagName) { + for (; parent; ) { + switch (parent.tag) { + case 5: + case 26: + case 27: + if (parent.type === tagName) return parent; + } + parent = parent.return; + } + return null; + } function validateDOMNesting(childTag, ancestorInfo) { ancestorInfo = ancestorInfo || emptyAncestorInfoDev; var parentInfo = ancestorInfo.current; @@ -2149,25 +2627,32 @@ __DEV__ && var warnKey = String(!!parentInfo) + "|" + childTag + "|" + ancestorInfo; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; - warnKey = "<" + childTag + ">"; + var ancestor = (warnKey = current) + ? findAncestor(warnKey.return, ancestorInfo) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors(ancestor, warnKey, null) + : ""; + ancestor = "<" + childTag + ">"; parentInfo ? ((parentInfo = ""), "table" === ancestorInfo && "tr" === childTag && (parentInfo += " Add a , or to your code to match the DOM tree generated by the browser."), - console.error( + error$jscomp$0( "In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, parentInfo, - getCurrentParentStackInDev() + warnKey )) - : console.error( + : error$jscomp$0( "In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -2176,16 +2661,27 @@ __DEV__ && var warnKey = "#text|" + parentTag; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; + var ancestor = (warnKey = current) + ? findAncestor(warnKey, parentTag) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors( + ancestor, + warnKey, + 6 !== warnKey.tag ? { children: null } : null + ) + : ""; /\S/.test(childText) - ? console.error( + ? error$jscomp$0( "In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ) - : console.error( + : error$jscomp$0( "In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -3059,455 +3555,6 @@ __DEV__ && "Expected to be hydrating. This is a bug in React. Please file an issue." ); } - function findNotableNode(node, indent) { - return void 0 === node.serverProps && - 0 === node.serverTail.length && - 1 === node.children.length && - 3 < node.distanceFromLeaf && - node.distanceFromLeaf > 15 - indent - ? findNotableNode(node.children[0], indent) - : node; - } - function indentation(indent) { - return " " + " ".repeat(indent); - } - function added(indent) { - return "+ " + " ".repeat(indent); - } - function removed(indent) { - return "- " + " ".repeat(indent); - } - function describeFiberType(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return fiber.type; - case 16: - return "Lazy"; - case 13: - return "Suspense"; - case 19: - return "SuspenseList"; - case 0: - case 15: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - case 11: - return ( - (fiber = fiber.type.render), fiber.displayName || fiber.name || null - ); - case 1: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - default: - return null; - } - } - function describeTextNode(content, maxLength) { - return needsEscaping.test(content) - ? ((content = JSON.stringify(content)), - content.length > maxLength - 2 - ? 8 > maxLength - ? '{"..."}' - : "{" + content.slice(0, maxLength - 7) + '..."}' - : "{" + content + "}") - : content.length > maxLength - ? 5 > maxLength - ? '{"..."}' - : content.slice(0, maxLength - 3) + "..." - : content; - } - function describeTextDiff(clientText, serverProps, indent) { - var maxLength = 120 - 2 * indent; - if (null === serverProps) - return added(indent) + describeTextNode(clientText, maxLength) + "\n"; - if ("string" === typeof serverProps) { - for ( - var firstDiff = 0; - firstDiff < serverProps.length && - firstDiff < clientText.length && - serverProps.charCodeAt(firstDiff) === - clientText.charCodeAt(firstDiff); - firstDiff++ - ); - firstDiff > maxLength - 8 && - 10 < firstDiff && - ((clientText = "..." + clientText.slice(firstDiff - 8)), - (serverProps = "..." + serverProps.slice(firstDiff - 8))); - return ( - added(indent) + - describeTextNode(clientText, maxLength) + - "\n" + - removed(indent) + - describeTextNode(serverProps, maxLength) + - "\n" - ); - } - return ( - indentation(indent) + describeTextNode(clientText, maxLength) + "\n" - ); - } - function objectName(object) { - return Object.prototype.toString - .call(object) - .replace(/^\[object (.*)\]$/, function (m, p0) { - return p0; - }); - } - function describeValue(value, maxLength) { - switch (typeof value) { - case "string": - return ( - (value = JSON.stringify(value)), - value.length > maxLength - ? 5 > maxLength - ? '"..."' - : value.slice(0, maxLength - 4) + '..."' - : value - ); - case "object": - if (null === value) return "null"; - if (isArrayImpl(value)) return "[...]"; - if (value.$$typeof === REACT_ELEMENT_TYPE) - return (maxLength = getComponentNameFromType(value.type)) - ? "<" + maxLength + ">" - : "<...>"; - var name = objectName(value); - if ("Object" === name) { - name = ""; - maxLength -= 2; - for (var propName in value) - if (value.hasOwnProperty(propName)) { - var jsonPropName = JSON.stringify(propName); - jsonPropName !== '"' + propName + '"' && - (propName = jsonPropName); - maxLength -= propName.length - 2; - jsonPropName = describeValue( - value[propName], - 15 > maxLength ? maxLength : 15 - ); - maxLength -= jsonPropName.length; - if (0 > maxLength) { - name += "" === name ? "..." : ", ..."; - break; - } - name += - ("" === name ? "" : ",") + propName + ":" + jsonPropName; - } - return "{" + name + "}"; - } - return name; - case "function": - return (maxLength = value.displayName || value.name) - ? "function " + maxLength - : "function"; - default: - return String(value); - } - } - function describePropValue(value, maxLength) { - return "string" !== typeof value || needsEscaping.test(value) - ? "{" + describeValue(value, maxLength - 2) + "}" - : value.length > maxLength - 2 - ? 5 > maxLength - ? '"..."' - : '"' + value.slice(0, maxLength - 5) + '..."' - : '"' + value + '"'; - } - function describeExpandedElement(type, props, rowPrefix) { - var remainingRowLength = 120 - rowPrefix.length - type.length, - properties = [], - propName; - for (propName in props) - if (props.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue( - props[propName], - 120 - rowPrefix.length - propName.length - 1 - ); - remainingRowLength -= propName.length + propValue.length + 2; - properties.push(propName + "=" + propValue); - } - return 0 === properties.length - ? rowPrefix + "<" + type + ">\n" - : 0 < remainingRowLength - ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" - : rowPrefix + - "<" + - type + - "\n" + - rowPrefix + - " " + - properties.join("\n" + rowPrefix + " ") + - "\n" + - rowPrefix + - ">\n"; - } - function describePropertiesDiff(clientObject, serverObject, indent) { - var properties = "", - remainingServerProperties = assign({}, serverObject), - propName; - for (propName in clientObject) - if (clientObject.hasOwnProperty(propName)) { - delete remainingServerProperties[propName]; - var maxLength = 120 - 2 * indent - propName.length - 2, - clientPropValue = describeValue(clientObject[propName], maxLength); - serverObject.hasOwnProperty(propName) - ? ((maxLength = describeValue(serverObject[propName], maxLength)), - (properties += - added(indent) + propName + ": " + clientPropValue + "\n"), - (properties += - removed(indent) + propName + ": " + maxLength + "\n")) - : (properties += - added(indent) + propName + ": " + clientPropValue + "\n"); - } - for (var _propName in remainingServerProperties) - remainingServerProperties.hasOwnProperty(_propName) && - ((clientObject = describeValue( - remainingServerProperties[_propName], - 120 - 2 * indent - _propName.length - 2 - )), - (properties += - removed(indent) + _propName + ": " + clientObject + "\n")); - return properties; - } - function describeElementDiff(type, clientProps, serverProps, indent) { - var content = "", - serverPropNames = new Map(); - for (propName$jscomp$0 in serverProps) - serverProps.hasOwnProperty(propName$jscomp$0) && - serverPropNames.set( - propName$jscomp$0.toLowerCase(), - propName$jscomp$0 - ); - if (1 === serverPropNames.size && serverPropNames.has("children")) - content += describeExpandedElement( - type, - clientProps, - indentation(indent) - ); - else { - for (var _propName2 in clientProps) - if ( - clientProps.hasOwnProperty(_propName2) && - "children" !== _propName2 - ) { - var maxLength$jscomp$0 = - 120 - 2 * (indent + 1) - _propName2.length - 1, - serverPropName = serverPropNames.get(_propName2.toLowerCase()); - if (void 0 !== serverPropName) { - serverPropNames.delete(_propName2.toLowerCase()); - var propName$jscomp$0 = clientProps[_propName2]; - serverPropName = serverProps[serverPropName]; - var clientPropValue = describePropValue( - propName$jscomp$0, - maxLength$jscomp$0 - ); - maxLength$jscomp$0 = describePropValue( - serverPropName, - maxLength$jscomp$0 - ); - "object" === typeof propName$jscomp$0 && - null !== propName$jscomp$0 && - "object" === typeof serverPropName && - null !== serverPropName && - "Object" === objectName(propName$jscomp$0) && - "Object" === objectName(serverPropName) && - (2 < Object.keys(propName$jscomp$0).length || - 2 < Object.keys(serverPropName).length || - -1 < clientPropValue.indexOf("...") || - -1 < maxLength$jscomp$0.indexOf("...")) - ? (content += - indentation(indent + 1) + - _propName2 + - "={{\n" + - describePropertiesDiff( - propName$jscomp$0, - serverPropName, - indent + 2 - ) + - indentation(indent + 1) + - "}}\n") - : ((content += - added(indent + 1) + - _propName2 + - "=" + - clientPropValue + - "\n"), - (content += - removed(indent + 1) + - _propName2 + - "=" + - maxLength$jscomp$0 + - "\n")); - } else - content += - indentation(indent + 1) + - _propName2 + - "=" + - describePropValue(clientProps[_propName2], maxLength$jscomp$0) + - "\n"; - } - serverPropNames.forEach(function (propName) { - if ("children" !== propName) { - var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; - content += - removed(indent + 1) + - propName + - "=" + - describePropValue(serverProps[propName], maxLength) + - "\n"; - } - }); - content = - "" === content - ? indentation(indent) + "<" + type + ">\n" - : indentation(indent) + - "<" + - type + - "\n" + - content + - indentation(indent) + - ">\n"; - } - type = serverProps.children; - clientProps = clientProps.children; - if ( - "string" === typeof type || - "number" === typeof type || - "bigint" === typeof type - ) { - serverPropNames = ""; - if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - serverPropNames = "" + clientProps; - content += describeTextDiff(serverPropNames, "" + type, indent + 1); - } else if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); - return content; - } - function describeSiblingFiber(fiber, indent) { - var type = describeFiberType(fiber); - if (null === type) { - type = ""; - for (fiber = fiber.child; fiber; ) - (type += describeSiblingFiber(fiber, indent)), - (fiber = fiber.sibling); - return type; - } - return indentation(indent) + "<" + type + ">\n"; - } - function describeNode(node, indent) { - var skipToNode = findNotableNode(node, indent); - if ( - skipToNode !== node && - (1 !== node.children.length || node.children[0] !== skipToNode) - ) - return ( - indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) - ); - skipToNode = ""; - var debugInfo = node.fiber._debugInfo; - if (debugInfo) - for (var i = 0; i < debugInfo.length; i++) { - var serverComponentName = debugInfo[i].name; - "string" === typeof serverComponentName && - ((skipToNode += - indentation(indent) + "<" + serverComponentName + ">\n"), - indent++); - } - debugInfo = ""; - i = node.fiber.pendingProps; - if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); - else if ( - ((serverComponentName = describeFiberType(node.fiber)), - null !== serverComponentName) - ) - if (void 0 === node.serverProps) { - debugInfo = indent; - var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, - content = ""; - for (propName in i) - if (i.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue(i[propName], 15); - maxLength -= propName.length + propValue.length + 2; - if (0 > maxLength) { - content += " ..."; - break; - } - content += " " + propName + "=" + propValue; - } - debugInfo = - indentation(debugInfo) + - "<" + - serverComponentName + - content + - ">\n"; - indent++; - } else - null === node.serverProps - ? (debugInfo = describeExpandedElement( - serverComponentName, - i, - added(indent) - )) - : "string" === typeof node.serverProps - ? error$jscomp$0( - "Should not have matched a non HostText fiber to a Text node. This is a bug in React." - ) - : ((debugInfo = describeElementDiff( - serverComponentName, - i, - node.serverProps, - indent - )), - indent++); - var propName = ""; - i = node.fiber.child; - for ( - serverComponentName = 0; - i && serverComponentName < node.children.length; - - ) - (maxLength = node.children[serverComponentName]), - maxLength.fiber === i - ? ((propName += describeNode(maxLength, indent)), - serverComponentName++) - : (propName += describeSiblingFiber(i, indent)), - (i = i.sibling); - i && - 0 < node.children.length && - (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), - (propName = - "string" === typeof serverComponentName - ? propName + - (removed(indent) + - describeTextNode(serverComponentName, 120 - 2 * indent) + - "\n") - : propName + - describeExpandedElement( - serverComponentName.type, - serverComponentName.props, - removed(indent) - )); - return skipToNode + debugInfo + propName; - } - function describeDiff(rootNode) { - try { - return "\n\n" + describeNode(rootNode, 0); - } catch (x) { - return ""; - } - } function buildHydrationDiffNode(fiber, distanceFromLeaf) { if (null === fiber.return) { if (null === hydrationDiffRootDEV) @@ -4637,6 +4684,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4710,6 +4758,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4731,6 +4780,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -4777,6 +4827,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -5317,6 +5368,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -5488,6 +5540,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -24066,6 +24120,7 @@ __DEV__ && var didWarnValueDefaultValue = !1; var valuePropNames = ["value", "defaultValue"], didWarnValDefaultVal = !1, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, specialTags = "address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp".split( " " @@ -24912,7 +24967,6 @@ __DEV__ && treeContextProvider = null, treeContextId = 1, treeContextOverflow = "", - needsEscaping = /["'&<>\n\t]/, hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = !1, @@ -27459,11 +27513,11 @@ __DEV__ && : flushSyncErrorInBuildsThatSupportLegacyMode; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.0.0-www-classic-378b305958-20240710" !== isomorphicReactPackageVersion) + if ("19.0.0-www-classic-2d3f81bb6a-20240710" !== 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.0.0-www-classic-378b305958-20240710\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.0.0-www-classic-2d3f81bb6a-20240710\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -27529,12 +27583,12 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 1, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }) && canUseDOM && @@ -28177,7 +28231,7 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.0.0-www-classic-378b305958-20240710"; + exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOM-dev.modern.js b/compiled/facebook-www/ReactDOM-dev.modern.js index fcd4e3cab8..6b685c31ca 100644 --- a/compiled/facebook-www/ReactDOM-dev.modern.js +++ b/compiled/facebook-www/ReactDOM-dev.modern.js @@ -607,9 +607,6 @@ __DEV__ && var owner = current._debugOwner; return null != owner ? getComponentNameFromOwner(owner) : null; } - function getCurrentParentStackInDev() { - return null === current ? "" : getStackByFiberInDevAndProd(current); - } function getCurrentFiberStackInDev() { return null === current ? "" : getStackByFiberInDevAndProd(current); } @@ -1921,6 +1918,475 @@ __DEV__ && null !== value && (element.value = value); } + function findNotableNode(node, indent) { + return void 0 === node.serverProps && + 0 === node.serverTail.length && + 1 === node.children.length && + 3 < node.distanceFromLeaf && + node.distanceFromLeaf > 15 - indent + ? findNotableNode(node.children[0], indent) + : node; + } + function indentation(indent) { + return " " + " ".repeat(indent); + } + function added(indent) { + return "+ " + " ".repeat(indent); + } + function removed(indent) { + return "- " + " ".repeat(indent); + } + function describeFiberType(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return fiber.type; + case 16: + return "Lazy"; + case 13: + return "Suspense"; + case 19: + return "SuspenseList"; + case 0: + case 15: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + case 11: + return ( + (fiber = fiber.type.render), fiber.displayName || fiber.name || null + ); + case 1: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + default: + return null; + } + } + function describeTextNode(content, maxLength) { + return needsEscaping.test(content) + ? ((content = JSON.stringify(content)), + content.length > maxLength - 2 + ? 8 > maxLength + ? '{"..."}' + : "{" + content.slice(0, maxLength - 7) + '..."}' + : "{" + content + "}") + : content.length > maxLength + ? 5 > maxLength + ? '{"..."}' + : content.slice(0, maxLength - 3) + "..." + : content; + } + function describeTextDiff(clientText, serverProps, indent) { + var maxLength = 120 - 2 * indent; + if (null === serverProps) + return added(indent) + describeTextNode(clientText, maxLength) + "\n"; + if ("string" === typeof serverProps) { + for ( + var firstDiff = 0; + firstDiff < serverProps.length && + firstDiff < clientText.length && + serverProps.charCodeAt(firstDiff) === + clientText.charCodeAt(firstDiff); + firstDiff++ + ); + firstDiff > maxLength - 8 && + 10 < firstDiff && + ((clientText = "..." + clientText.slice(firstDiff - 8)), + (serverProps = "..." + serverProps.slice(firstDiff - 8))); + return ( + added(indent) + + describeTextNode(clientText, maxLength) + + "\n" + + removed(indent) + + describeTextNode(serverProps, maxLength) + + "\n" + ); + } + return ( + indentation(indent) + describeTextNode(clientText, maxLength) + "\n" + ); + } + function objectName(object) { + return Object.prototype.toString + .call(object) + .replace(/^\[object (.*)\]$/, function (m, p0) { + return p0; + }); + } + function describeValue(value, maxLength) { + switch (typeof value) { + case "string": + return ( + (value = JSON.stringify(value)), + value.length > maxLength + ? 5 > maxLength + ? '"..."' + : value.slice(0, maxLength - 4) + '..."' + : value + ); + case "object": + if (null === value) return "null"; + if (isArrayImpl(value)) return "[...]"; + if (value.$$typeof === REACT_ELEMENT_TYPE) + return (maxLength = getComponentNameFromType(value.type)) + ? "<" + maxLength + ">" + : "<...>"; + var name = objectName(value); + if ("Object" === name) { + name = ""; + maxLength -= 2; + for (var propName in value) + if (value.hasOwnProperty(propName)) { + var jsonPropName = JSON.stringify(propName); + jsonPropName !== '"' + propName + '"' && + (propName = jsonPropName); + maxLength -= propName.length - 2; + jsonPropName = describeValue( + value[propName], + 15 > maxLength ? maxLength : 15 + ); + maxLength -= jsonPropName.length; + if (0 > maxLength) { + name += "" === name ? "..." : ", ..."; + break; + } + name += + ("" === name ? "" : ",") + propName + ":" + jsonPropName; + } + return "{" + name + "}"; + } + return name; + case "function": + return (maxLength = value.displayName || value.name) + ? "function " + maxLength + : "function"; + default: + return String(value); + } + } + function describePropValue(value, maxLength) { + return "string" !== typeof value || needsEscaping.test(value) + ? "{" + describeValue(value, maxLength - 2) + "}" + : value.length > maxLength - 2 + ? 5 > maxLength + ? '"..."' + : '"' + value.slice(0, maxLength - 5) + '..."' + : '"' + value + '"'; + } + function describeExpandedElement(type, props, rowPrefix) { + var remainingRowLength = 120 - rowPrefix.length - type.length, + properties = [], + propName; + for (propName in props) + if (props.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue( + props[propName], + 120 - rowPrefix.length - propName.length - 1 + ); + remainingRowLength -= propName.length + propValue.length + 2; + properties.push(propName + "=" + propValue); + } + return 0 === properties.length + ? rowPrefix + "<" + type + ">\n" + : 0 < remainingRowLength + ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" + : rowPrefix + + "<" + + type + + "\n" + + rowPrefix + + " " + + properties.join("\n" + rowPrefix + " ") + + "\n" + + rowPrefix + + ">\n"; + } + function describePropertiesDiff(clientObject, serverObject, indent) { + var properties = "", + remainingServerProperties = assign({}, serverObject), + propName; + for (propName in clientObject) + if (clientObject.hasOwnProperty(propName)) { + delete remainingServerProperties[propName]; + var maxLength = 120 - 2 * indent - propName.length - 2, + clientPropValue = describeValue(clientObject[propName], maxLength); + serverObject.hasOwnProperty(propName) + ? ((maxLength = describeValue(serverObject[propName], maxLength)), + (properties += + added(indent) + propName + ": " + clientPropValue + "\n"), + (properties += + removed(indent) + propName + ": " + maxLength + "\n")) + : (properties += + added(indent) + propName + ": " + clientPropValue + "\n"); + } + for (var _propName in remainingServerProperties) + remainingServerProperties.hasOwnProperty(_propName) && + ((clientObject = describeValue( + remainingServerProperties[_propName], + 120 - 2 * indent - _propName.length - 2 + )), + (properties += + removed(indent) + _propName + ": " + clientObject + "\n")); + return properties; + } + function describeElementDiff(type, clientProps, serverProps, indent) { + var content = "", + serverPropNames = new Map(); + for (propName$jscomp$0 in serverProps) + serverProps.hasOwnProperty(propName$jscomp$0) && + serverPropNames.set( + propName$jscomp$0.toLowerCase(), + propName$jscomp$0 + ); + if (1 === serverPropNames.size && serverPropNames.has("children")) + content += describeExpandedElement( + type, + clientProps, + indentation(indent) + ); + else { + for (var _propName2 in clientProps) + if ( + clientProps.hasOwnProperty(_propName2) && + "children" !== _propName2 + ) { + var maxLength$jscomp$0 = + 120 - 2 * (indent + 1) - _propName2.length - 1, + serverPropName = serverPropNames.get(_propName2.toLowerCase()); + if (void 0 !== serverPropName) { + serverPropNames.delete(_propName2.toLowerCase()); + var propName$jscomp$0 = clientProps[_propName2]; + serverPropName = serverProps[serverPropName]; + var clientPropValue = describePropValue( + propName$jscomp$0, + maxLength$jscomp$0 + ); + maxLength$jscomp$0 = describePropValue( + serverPropName, + maxLength$jscomp$0 + ); + "object" === typeof propName$jscomp$0 && + null !== propName$jscomp$0 && + "object" === typeof serverPropName && + null !== serverPropName && + "Object" === objectName(propName$jscomp$0) && + "Object" === objectName(serverPropName) && + (2 < Object.keys(propName$jscomp$0).length || + 2 < Object.keys(serverPropName).length || + -1 < clientPropValue.indexOf("...") || + -1 < maxLength$jscomp$0.indexOf("...")) + ? (content += + indentation(indent + 1) + + _propName2 + + "={{\n" + + describePropertiesDiff( + propName$jscomp$0, + serverPropName, + indent + 2 + ) + + indentation(indent + 1) + + "}}\n") + : ((content += + added(indent + 1) + + _propName2 + + "=" + + clientPropValue + + "\n"), + (content += + removed(indent + 1) + + _propName2 + + "=" + + maxLength$jscomp$0 + + "\n")); + } else + content += + indentation(indent + 1) + + _propName2 + + "=" + + describePropValue(clientProps[_propName2], maxLength$jscomp$0) + + "\n"; + } + serverPropNames.forEach(function (propName) { + if ("children" !== propName) { + var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; + content += + removed(indent + 1) + + propName + + "=" + + describePropValue(serverProps[propName], maxLength) + + "\n"; + } + }); + content = + "" === content + ? indentation(indent) + "<" + type + ">\n" + : indentation(indent) + + "<" + + type + + "\n" + + content + + indentation(indent) + + ">\n"; + } + type = serverProps.children; + clientProps = clientProps.children; + if ( + "string" === typeof type || + "number" === typeof type || + "bigint" === typeof type + ) { + serverPropNames = ""; + if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + serverPropNames = "" + clientProps; + content += describeTextDiff(serverPropNames, "" + type, indent + 1); + } else if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); + return content; + } + function describeSiblingFiber(fiber, indent) { + var type = describeFiberType(fiber); + if (null === type) { + type = ""; + for (fiber = fiber.child; fiber; ) + (type += describeSiblingFiber(fiber, indent)), + (fiber = fiber.sibling); + return type; + } + return indentation(indent) + "<" + type + ">\n"; + } + function describeNode(node, indent) { + var skipToNode = findNotableNode(node, indent); + if ( + skipToNode !== node && + (1 !== node.children.length || node.children[0] !== skipToNode) + ) + return ( + indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) + ); + skipToNode = ""; + var debugInfo = node.fiber._debugInfo; + if (debugInfo) + for (var i = 0; i < debugInfo.length; i++) { + var serverComponentName = debugInfo[i].name; + "string" === typeof serverComponentName && + ((skipToNode += + indentation(indent) + "<" + serverComponentName + ">\n"), + indent++); + } + debugInfo = ""; + i = node.fiber.pendingProps; + if (6 === node.fiber.tag) + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; + else if ( + ((serverComponentName = describeFiberType(node.fiber)), + null !== serverComponentName) + ) + if (void 0 === node.serverProps) { + debugInfo = indent; + var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, + content = ""; + for (propName in i) + if (i.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue(i[propName], 15); + maxLength -= propName.length + propValue.length + 2; + if (0 > maxLength) { + content += " ..."; + break; + } + content += " " + propName + "=" + propValue; + } + debugInfo = + indentation(debugInfo) + + "<" + + serverComponentName + + content + + ">\n"; + indent++; + } else + null === node.serverProps + ? ((debugInfo = describeExpandedElement( + serverComponentName, + i, + added(indent) + )), + indent++) + : "string" === typeof node.serverProps + ? error$jscomp$0( + "Should not have matched a non HostText fiber to a Text node. This is a bug in React." + ) + : ((debugInfo = describeElementDiff( + serverComponentName, + i, + node.serverProps, + indent + )), + indent++); + var propName = ""; + i = node.fiber.child; + for ( + serverComponentName = 0; + i && serverComponentName < node.children.length; + + ) + (maxLength = node.children[serverComponentName]), + maxLength.fiber === i + ? ((propName += describeNode(maxLength, indent)), + serverComponentName++) + : (propName += describeSiblingFiber(i, indent)), + (i = i.sibling); + i && + 0 < node.children.length && + (propName += indentation(indent) + "...\n"); + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), + (propName = + "string" === typeof serverComponentName + ? propName + + (removed(indent) + + describeTextNode(serverComponentName, 120 - 2 * indent) + + "\n") + : propName + + describeExpandedElement( + serverComponentName.type, + serverComponentName.props, + removed(indent) + )); + return skipToNode + debugInfo + propName; + } + function describeDiff(rootNode) { + try { + return "\n\n" + describeNode(rootNode, 0); + } catch (x) { + return ""; + } + } + function describeAncestors(ancestor, child, props) { + for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; ) + fiber === ancestor && (distanceFromLeaf = 0), + (node = { + fiber: fiber, + children: null !== node ? [node] : [], + serverProps: + fiber === child ? props : fiber === ancestor ? null : void 0, + serverTail: [], + distanceFromLeaf: distanceFromLeaf + }), + distanceFromLeaf++, + (fiber = fiber.return); + return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, ">") : ""; + } function updatedAncestorInfoDev(oldInfo, tag) { oldInfo = assign({}, oldInfo || emptyAncestorInfoDev); var info = { tag: tag }; @@ -2102,6 +2568,18 @@ __DEV__ && } return null; } + function findAncestor(parent, tagName) { + for (; parent; ) { + switch (parent.tag) { + case 5: + case 26: + case 27: + if (parent.type === tagName) return parent; + } + parent = parent.return; + } + return null; + } function validateDOMNesting(childTag, ancestorInfo) { ancestorInfo = ancestorInfo || emptyAncestorInfoDev; var parentInfo = ancestorInfo.current; @@ -2119,25 +2597,32 @@ __DEV__ && var warnKey = String(!!parentInfo) + "|" + childTag + "|" + ancestorInfo; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; - warnKey = "<" + childTag + ">"; + var ancestor = (warnKey = current) + ? findAncestor(warnKey.return, ancestorInfo) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors(ancestor, warnKey, null) + : ""; + ancestor = "<" + childTag + ">"; parentInfo ? ((parentInfo = ""), "table" === ancestorInfo && "tr" === childTag && (parentInfo += " Add a , or to your code to match the DOM tree generated by the browser."), - console.error( + error$jscomp$0( "In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, parentInfo, - getCurrentParentStackInDev() + warnKey )) - : console.error( + : error$jscomp$0( "In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -2146,16 +2631,27 @@ __DEV__ && var warnKey = "#text|" + parentTag; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; + var ancestor = (warnKey = current) + ? findAncestor(warnKey, parentTag) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors( + ancestor, + warnKey, + 6 !== warnKey.tag ? { children: null } : null + ) + : ""; /\S/.test(childText) - ? console.error( + ? error$jscomp$0( "In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ) - : console.error( + : error$jscomp$0( "In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -2935,455 +3431,6 @@ __DEV__ && "Expected to be hydrating. This is a bug in React. Please file an issue." ); } - function findNotableNode(node, indent) { - return void 0 === node.serverProps && - 0 === node.serverTail.length && - 1 === node.children.length && - 3 < node.distanceFromLeaf && - node.distanceFromLeaf > 15 - indent - ? findNotableNode(node.children[0], indent) - : node; - } - function indentation(indent) { - return " " + " ".repeat(indent); - } - function added(indent) { - return "+ " + " ".repeat(indent); - } - function removed(indent) { - return "- " + " ".repeat(indent); - } - function describeFiberType(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return fiber.type; - case 16: - return "Lazy"; - case 13: - return "Suspense"; - case 19: - return "SuspenseList"; - case 0: - case 15: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - case 11: - return ( - (fiber = fiber.type.render), fiber.displayName || fiber.name || null - ); - case 1: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - default: - return null; - } - } - function describeTextNode(content, maxLength) { - return needsEscaping.test(content) - ? ((content = JSON.stringify(content)), - content.length > maxLength - 2 - ? 8 > maxLength - ? '{"..."}' - : "{" + content.slice(0, maxLength - 7) + '..."}' - : "{" + content + "}") - : content.length > maxLength - ? 5 > maxLength - ? '{"..."}' - : content.slice(0, maxLength - 3) + "..." - : content; - } - function describeTextDiff(clientText, serverProps, indent) { - var maxLength = 120 - 2 * indent; - if (null === serverProps) - return added(indent) + describeTextNode(clientText, maxLength) + "\n"; - if ("string" === typeof serverProps) { - for ( - var firstDiff = 0; - firstDiff < serverProps.length && - firstDiff < clientText.length && - serverProps.charCodeAt(firstDiff) === - clientText.charCodeAt(firstDiff); - firstDiff++ - ); - firstDiff > maxLength - 8 && - 10 < firstDiff && - ((clientText = "..." + clientText.slice(firstDiff - 8)), - (serverProps = "..." + serverProps.slice(firstDiff - 8))); - return ( - added(indent) + - describeTextNode(clientText, maxLength) + - "\n" + - removed(indent) + - describeTextNode(serverProps, maxLength) + - "\n" - ); - } - return ( - indentation(indent) + describeTextNode(clientText, maxLength) + "\n" - ); - } - function objectName(object) { - return Object.prototype.toString - .call(object) - .replace(/^\[object (.*)\]$/, function (m, p0) { - return p0; - }); - } - function describeValue(value, maxLength) { - switch (typeof value) { - case "string": - return ( - (value = JSON.stringify(value)), - value.length > maxLength - ? 5 > maxLength - ? '"..."' - : value.slice(0, maxLength - 4) + '..."' - : value - ); - case "object": - if (null === value) return "null"; - if (isArrayImpl(value)) return "[...]"; - if (value.$$typeof === REACT_ELEMENT_TYPE) - return (maxLength = getComponentNameFromType(value.type)) - ? "<" + maxLength + ">" - : "<...>"; - var name = objectName(value); - if ("Object" === name) { - name = ""; - maxLength -= 2; - for (var propName in value) - if (value.hasOwnProperty(propName)) { - var jsonPropName = JSON.stringify(propName); - jsonPropName !== '"' + propName + '"' && - (propName = jsonPropName); - maxLength -= propName.length - 2; - jsonPropName = describeValue( - value[propName], - 15 > maxLength ? maxLength : 15 - ); - maxLength -= jsonPropName.length; - if (0 > maxLength) { - name += "" === name ? "..." : ", ..."; - break; - } - name += - ("" === name ? "" : ",") + propName + ":" + jsonPropName; - } - return "{" + name + "}"; - } - return name; - case "function": - return (maxLength = value.displayName || value.name) - ? "function " + maxLength - : "function"; - default: - return String(value); - } - } - function describePropValue(value, maxLength) { - return "string" !== typeof value || needsEscaping.test(value) - ? "{" + describeValue(value, maxLength - 2) + "}" - : value.length > maxLength - 2 - ? 5 > maxLength - ? '"..."' - : '"' + value.slice(0, maxLength - 5) + '..."' - : '"' + value + '"'; - } - function describeExpandedElement(type, props, rowPrefix) { - var remainingRowLength = 120 - rowPrefix.length - type.length, - properties = [], - propName; - for (propName in props) - if (props.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue( - props[propName], - 120 - rowPrefix.length - propName.length - 1 - ); - remainingRowLength -= propName.length + propValue.length + 2; - properties.push(propName + "=" + propValue); - } - return 0 === properties.length - ? rowPrefix + "<" + type + ">\n" - : 0 < remainingRowLength - ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" - : rowPrefix + - "<" + - type + - "\n" + - rowPrefix + - " " + - properties.join("\n" + rowPrefix + " ") + - "\n" + - rowPrefix + - ">\n"; - } - function describePropertiesDiff(clientObject, serverObject, indent) { - var properties = "", - remainingServerProperties = assign({}, serverObject), - propName; - for (propName in clientObject) - if (clientObject.hasOwnProperty(propName)) { - delete remainingServerProperties[propName]; - var maxLength = 120 - 2 * indent - propName.length - 2, - clientPropValue = describeValue(clientObject[propName], maxLength); - serverObject.hasOwnProperty(propName) - ? ((maxLength = describeValue(serverObject[propName], maxLength)), - (properties += - added(indent) + propName + ": " + clientPropValue + "\n"), - (properties += - removed(indent) + propName + ": " + maxLength + "\n")) - : (properties += - added(indent) + propName + ": " + clientPropValue + "\n"); - } - for (var _propName in remainingServerProperties) - remainingServerProperties.hasOwnProperty(_propName) && - ((clientObject = describeValue( - remainingServerProperties[_propName], - 120 - 2 * indent - _propName.length - 2 - )), - (properties += - removed(indent) + _propName + ": " + clientObject + "\n")); - return properties; - } - function describeElementDiff(type, clientProps, serverProps, indent) { - var content = "", - serverPropNames = new Map(); - for (propName$jscomp$0 in serverProps) - serverProps.hasOwnProperty(propName$jscomp$0) && - serverPropNames.set( - propName$jscomp$0.toLowerCase(), - propName$jscomp$0 - ); - if (1 === serverPropNames.size && serverPropNames.has("children")) - content += describeExpandedElement( - type, - clientProps, - indentation(indent) - ); - else { - for (var _propName2 in clientProps) - if ( - clientProps.hasOwnProperty(_propName2) && - "children" !== _propName2 - ) { - var maxLength$jscomp$0 = - 120 - 2 * (indent + 1) - _propName2.length - 1, - serverPropName = serverPropNames.get(_propName2.toLowerCase()); - if (void 0 !== serverPropName) { - serverPropNames.delete(_propName2.toLowerCase()); - var propName$jscomp$0 = clientProps[_propName2]; - serverPropName = serverProps[serverPropName]; - var clientPropValue = describePropValue( - propName$jscomp$0, - maxLength$jscomp$0 - ); - maxLength$jscomp$0 = describePropValue( - serverPropName, - maxLength$jscomp$0 - ); - "object" === typeof propName$jscomp$0 && - null !== propName$jscomp$0 && - "object" === typeof serverPropName && - null !== serverPropName && - "Object" === objectName(propName$jscomp$0) && - "Object" === objectName(serverPropName) && - (2 < Object.keys(propName$jscomp$0).length || - 2 < Object.keys(serverPropName).length || - -1 < clientPropValue.indexOf("...") || - -1 < maxLength$jscomp$0.indexOf("...")) - ? (content += - indentation(indent + 1) + - _propName2 + - "={{\n" + - describePropertiesDiff( - propName$jscomp$0, - serverPropName, - indent + 2 - ) + - indentation(indent + 1) + - "}}\n") - : ((content += - added(indent + 1) + - _propName2 + - "=" + - clientPropValue + - "\n"), - (content += - removed(indent + 1) + - _propName2 + - "=" + - maxLength$jscomp$0 + - "\n")); - } else - content += - indentation(indent + 1) + - _propName2 + - "=" + - describePropValue(clientProps[_propName2], maxLength$jscomp$0) + - "\n"; - } - serverPropNames.forEach(function (propName) { - if ("children" !== propName) { - var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; - content += - removed(indent + 1) + - propName + - "=" + - describePropValue(serverProps[propName], maxLength) + - "\n"; - } - }); - content = - "" === content - ? indentation(indent) + "<" + type + ">\n" - : indentation(indent) + - "<" + - type + - "\n" + - content + - indentation(indent) + - ">\n"; - } - type = serverProps.children; - clientProps = clientProps.children; - if ( - "string" === typeof type || - "number" === typeof type || - "bigint" === typeof type - ) { - serverPropNames = ""; - if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - serverPropNames = "" + clientProps; - content += describeTextDiff(serverPropNames, "" + type, indent + 1); - } else if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); - return content; - } - function describeSiblingFiber(fiber, indent) { - var type = describeFiberType(fiber); - if (null === type) { - type = ""; - for (fiber = fiber.child; fiber; ) - (type += describeSiblingFiber(fiber, indent)), - (fiber = fiber.sibling); - return type; - } - return indentation(indent) + "<" + type + ">\n"; - } - function describeNode(node, indent) { - var skipToNode = findNotableNode(node, indent); - if ( - skipToNode !== node && - (1 !== node.children.length || node.children[0] !== skipToNode) - ) - return ( - indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) - ); - skipToNode = ""; - var debugInfo = node.fiber._debugInfo; - if (debugInfo) - for (var i = 0; i < debugInfo.length; i++) { - var serverComponentName = debugInfo[i].name; - "string" === typeof serverComponentName && - ((skipToNode += - indentation(indent) + "<" + serverComponentName + ">\n"), - indent++); - } - debugInfo = ""; - i = node.fiber.pendingProps; - if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); - else if ( - ((serverComponentName = describeFiberType(node.fiber)), - null !== serverComponentName) - ) - if (void 0 === node.serverProps) { - debugInfo = indent; - var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, - content = ""; - for (propName in i) - if (i.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue(i[propName], 15); - maxLength -= propName.length + propValue.length + 2; - if (0 > maxLength) { - content += " ..."; - break; - } - content += " " + propName + "=" + propValue; - } - debugInfo = - indentation(debugInfo) + - "<" + - serverComponentName + - content + - ">\n"; - indent++; - } else - null === node.serverProps - ? (debugInfo = describeExpandedElement( - serverComponentName, - i, - added(indent) - )) - : "string" === typeof node.serverProps - ? error$jscomp$0( - "Should not have matched a non HostText fiber to a Text node. This is a bug in React." - ) - : ((debugInfo = describeElementDiff( - serverComponentName, - i, - node.serverProps, - indent - )), - indent++); - var propName = ""; - i = node.fiber.child; - for ( - serverComponentName = 0; - i && serverComponentName < node.children.length; - - ) - (maxLength = node.children[serverComponentName]), - maxLength.fiber === i - ? ((propName += describeNode(maxLength, indent)), - serverComponentName++) - : (propName += describeSiblingFiber(i, indent)), - (i = i.sibling); - i && - 0 < node.children.length && - (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), - (propName = - "string" === typeof serverComponentName - ? propName + - (removed(indent) + - describeTextNode(serverComponentName, 120 - 2 * indent) + - "\n") - : propName + - describeExpandedElement( - serverComponentName.type, - serverComponentName.props, - removed(indent) - )); - return skipToNode + debugInfo + propName; - } - function describeDiff(rootNode) { - try { - return "\n\n" + describeNode(rootNode, 0); - } catch (x) { - return ""; - } - } function buildHydrationDiffNode(fiber, distanceFromLeaf) { if (null === fiber.return) { if (null === hydrationDiffRootDEV) @@ -4504,6 +4551,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4577,6 +4625,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4598,6 +4647,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -4644,6 +4694,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -5184,6 +5235,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -5355,6 +5407,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -23204,6 +23258,7 @@ __DEV__ && var didWarnValueDefaultValue = !1; var valuePropNames = ["value", "defaultValue"], didWarnValDefaultVal = !1, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, specialTags = "address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp".split( " " @@ -24046,7 +24101,6 @@ __DEV__ && treeContextProvider = null, treeContextId = 1, treeContextOverflow = "", - needsEscaping = /["'&<>\n\t]/, hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = !1, @@ -26591,11 +26645,11 @@ __DEV__ && return_targetInst = null; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.0.0-www-modern-378b305958-20240710" !== isomorphicReactPackageVersion) + if ("19.0.0-www-modern-2d3f81bb6a-20240710" !== 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.0.0-www-modern-378b305958-20240710\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.0.0-www-modern-2d3f81bb6a-20240710\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -26660,12 +26714,12 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 1, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }) && canUseDOM && @@ -27261,7 +27315,7 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.0.0-www-modern-378b305958-20240710"; + exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOM-prod.classic.js b/compiled/facebook-www/ReactDOM-prod.classic.js index 8eab73be30..057ea26775 100644 --- a/compiled/facebook-www/ReactDOM-prod.classic.js +++ b/compiled/facebook-www/ReactDOM-prod.classic.js @@ -17163,14 +17163,14 @@ function getCrossOriginStringAs(as, input) { } var isomorphicReactPackageVersion$jscomp$inline_1769 = React.version; if ( - "19.0.0-www-classic-378b305958-20240710" !== + "19.0.0-www-classic-2d3f81bb6a-20240710" !== isomorphicReactPackageVersion$jscomp$inline_1769 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1769, - "19.0.0-www-classic-378b305958-20240710" + "19.0.0-www-classic-2d3f81bb6a-20240710" ) ); function flushSyncFromReconciler(fn) { @@ -17216,7 +17216,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1776 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2220 = { @@ -17246,7 +17246,7 @@ var internals$jscomp$inline_2220 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2221 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17710,4 +17710,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-classic-378b305958-20240710"; +exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/ReactDOM-prod.modern.js b/compiled/facebook-www/ReactDOM-prod.modern.js index 5e46cca921..ed4aeacfb4 100644 --- a/compiled/facebook-www/ReactDOM-prod.modern.js +++ b/compiled/facebook-www/ReactDOM-prod.modern.js @@ -16478,14 +16478,14 @@ function getCrossOriginStringAs(as, input) { } var isomorphicReactPackageVersion$jscomp$inline_1740 = React.version; if ( - "19.0.0-www-modern-378b305958-20240710" !== + "19.0.0-www-modern-2d3f81bb6a-20240710" !== isomorphicReactPackageVersion$jscomp$inline_1740 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1740, - "19.0.0-www-modern-378b305958-20240710" + "19.0.0-www-modern-2d3f81bb6a-20240710" ) ); Internals.findDOMNode = function (componentOrElement) { @@ -16504,7 +16504,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1742 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2211 = { @@ -16534,7 +16534,7 @@ var internals$jscomp$inline_2211 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2212 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -16905,4 +16905,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-modern-378b305958-20240710"; +exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/ReactDOM-profiling.classic.js b/compiled/facebook-www/ReactDOM-profiling.classic.js index 05f3b9ffe0..02f1579168 100644 --- a/compiled/facebook-www/ReactDOM-profiling.classic.js +++ b/compiled/facebook-www/ReactDOM-profiling.classic.js @@ -17930,14 +17930,14 @@ function getCrossOriginStringAs(as, input) { } var isomorphicReactPackageVersion$jscomp$inline_1856 = React.version; if ( - "19.0.0-www-classic-378b305958-20240710" !== + "19.0.0-www-classic-2d3f81bb6a-20240710" !== isomorphicReactPackageVersion$jscomp$inline_1856 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1856, - "19.0.0-www-classic-378b305958-20240710" + "19.0.0-www-classic-2d3f81bb6a-20240710" ) ); function flushSyncFromReconciler(fn) { @@ -17983,7 +17983,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1863 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }; (function (internals) { @@ -18027,7 +18027,7 @@ var devToolsConfig$jscomp$inline_1863 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }); function ReactDOMRoot(internalRoot) { this._internalRoot = internalRoot; @@ -18478,7 +18478,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-classic-378b305958-20240710"; +exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOM-profiling.modern.js b/compiled/facebook-www/ReactDOM-profiling.modern.js index 7e33859b9b..8a2a78fcbd 100644 --- a/compiled/facebook-www/ReactDOM-profiling.modern.js +++ b/compiled/facebook-www/ReactDOM-profiling.modern.js @@ -17228,14 +17228,14 @@ function getCrossOriginStringAs(as, input) { } var isomorphicReactPackageVersion$jscomp$inline_1827 = React.version; if ( - "19.0.0-www-modern-378b305958-20240710" !== + "19.0.0-www-modern-2d3f81bb6a-20240710" !== isomorphicReactPackageVersion$jscomp$inline_1827 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1827, - "19.0.0-www-modern-378b305958-20240710" + "19.0.0-www-modern-2d3f81bb6a-20240710" ) ); Internals.findDOMNode = function (componentOrElement) { @@ -17254,7 +17254,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1829 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }; (function (internals) { @@ -17298,7 +17298,7 @@ var devToolsConfig$jscomp$inline_1829 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }); function ReactDOMRoot(internalRoot) { this._internalRoot = internalRoot; @@ -17656,7 +17656,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-modern-378b305958-20240710"; +exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled/facebook-www/ReactDOMServer-dev.classic.js b/compiled/facebook-www/ReactDOMServer-dev.classic.js index 5171843b4c..c2371dbe5d 100644 --- a/compiled/facebook-www/ReactDOMServer-dev.classic.js +++ b/compiled/facebook-www/ReactDOMServer-dev.classic.js @@ -8842,5 +8842,5 @@ __DEV__ && '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.0.0-www-classic-378b305958-20240710"; + exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; })(); diff --git a/compiled/facebook-www/ReactDOMServer-dev.modern.js b/compiled/facebook-www/ReactDOMServer-dev.modern.js index b4f89f2b0a..0b5be93895 100644 --- a/compiled/facebook-www/ReactDOMServer-dev.modern.js +++ b/compiled/facebook-www/ReactDOMServer-dev.modern.js @@ -8671,5 +8671,5 @@ __DEV__ && '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.0.0-www-modern-378b305958-20240710"; + exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; })(); diff --git a/compiled/facebook-www/ReactDOMServer-prod.classic.js b/compiled/facebook-www/ReactDOMServer-prod.classic.js index 106139a2d8..b802be0683 100644 --- a/compiled/facebook-www/ReactDOMServer-prod.classic.js +++ b/compiled/facebook-www/ReactDOMServer-prod.classic.js @@ -5799,4 +5799,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.0.0-www-classic-378b305958-20240710"; +exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/ReactDOMServer-prod.modern.js b/compiled/facebook-www/ReactDOMServer-prod.modern.js index 58f6d01ed0..0328e05f80 100644 --- a/compiled/facebook-www/ReactDOMServer-prod.modern.js +++ b/compiled/facebook-www/ReactDOMServer-prod.modern.js @@ -5722,4 +5722,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.0.0-www-modern-378b305958-20240710"; +exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/ReactDOMTesting-dev.classic.js b/compiled/facebook-www/ReactDOMTesting-dev.classic.js index 64358c15d1..b26e4776c7 100644 --- a/compiled/facebook-www/ReactDOMTesting-dev.classic.js +++ b/compiled/facebook-www/ReactDOMTesting-dev.classic.js @@ -610,9 +610,6 @@ __DEV__ && var owner = current._debugOwner; return null != owner ? getComponentNameFromOwner(owner) : null; } - function getCurrentParentStackInDev() { - return null === current ? "" : getStackByFiberInDevAndProd(current); - } function getCurrentFiberStackInDev() { return null === current ? "" : getStackByFiberInDevAndProd(current); } @@ -1992,6 +1989,475 @@ __DEV__ && null !== children && (element.value = children); } + function findNotableNode(node, indent) { + return void 0 === node.serverProps && + 0 === node.serverTail.length && + 1 === node.children.length && + 3 < node.distanceFromLeaf && + node.distanceFromLeaf > 15 - indent + ? findNotableNode(node.children[0], indent) + : node; + } + function indentation(indent) { + return " " + " ".repeat(indent); + } + function added(indent) { + return "+ " + " ".repeat(indent); + } + function removed(indent) { + return "- " + " ".repeat(indent); + } + function describeFiberType(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return fiber.type; + case 16: + return "Lazy"; + case 13: + return "Suspense"; + case 19: + return "SuspenseList"; + case 0: + case 15: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + case 11: + return ( + (fiber = fiber.type.render), fiber.displayName || fiber.name || null + ); + case 1: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + default: + return null; + } + } + function describeTextNode(content, maxLength) { + return needsEscaping.test(content) + ? ((content = JSON.stringify(content)), + content.length > maxLength - 2 + ? 8 > maxLength + ? '{"..."}' + : "{" + content.slice(0, maxLength - 7) + '..."}' + : "{" + content + "}") + : content.length > maxLength + ? 5 > maxLength + ? '{"..."}' + : content.slice(0, maxLength - 3) + "..." + : content; + } + function describeTextDiff(clientText, serverProps, indent) { + var maxLength = 120 - 2 * indent; + if (null === serverProps) + return added(indent) + describeTextNode(clientText, maxLength) + "\n"; + if ("string" === typeof serverProps) { + for ( + var firstDiff = 0; + firstDiff < serverProps.length && + firstDiff < clientText.length && + serverProps.charCodeAt(firstDiff) === + clientText.charCodeAt(firstDiff); + firstDiff++ + ); + firstDiff > maxLength - 8 && + 10 < firstDiff && + ((clientText = "..." + clientText.slice(firstDiff - 8)), + (serverProps = "..." + serverProps.slice(firstDiff - 8))); + return ( + added(indent) + + describeTextNode(clientText, maxLength) + + "\n" + + removed(indent) + + describeTextNode(serverProps, maxLength) + + "\n" + ); + } + return ( + indentation(indent) + describeTextNode(clientText, maxLength) + "\n" + ); + } + function objectName(object) { + return Object.prototype.toString + .call(object) + .replace(/^\[object (.*)\]$/, function (m, p0) { + return p0; + }); + } + function describeValue(value, maxLength) { + switch (typeof value) { + case "string": + return ( + (value = JSON.stringify(value)), + value.length > maxLength + ? 5 > maxLength + ? '"..."' + : value.slice(0, maxLength - 4) + '..."' + : value + ); + case "object": + if (null === value) return "null"; + if (isArrayImpl(value)) return "[...]"; + if (value.$$typeof === REACT_ELEMENT_TYPE) + return (maxLength = getComponentNameFromType(value.type)) + ? "<" + maxLength + ">" + : "<...>"; + var name = objectName(value); + if ("Object" === name) { + name = ""; + maxLength -= 2; + for (var propName in value) + if (value.hasOwnProperty(propName)) { + var jsonPropName = JSON.stringify(propName); + jsonPropName !== '"' + propName + '"' && + (propName = jsonPropName); + maxLength -= propName.length - 2; + jsonPropName = describeValue( + value[propName], + 15 > maxLength ? maxLength : 15 + ); + maxLength -= jsonPropName.length; + if (0 > maxLength) { + name += "" === name ? "..." : ", ..."; + break; + } + name += + ("" === name ? "" : ",") + propName + ":" + jsonPropName; + } + return "{" + name + "}"; + } + return name; + case "function": + return (maxLength = value.displayName || value.name) + ? "function " + maxLength + : "function"; + default: + return String(value); + } + } + function describePropValue(value, maxLength) { + return "string" !== typeof value || needsEscaping.test(value) + ? "{" + describeValue(value, maxLength - 2) + "}" + : value.length > maxLength - 2 + ? 5 > maxLength + ? '"..."' + : '"' + value.slice(0, maxLength - 5) + '..."' + : '"' + value + '"'; + } + function describeExpandedElement(type, props, rowPrefix) { + var remainingRowLength = 120 - rowPrefix.length - type.length, + properties = [], + propName; + for (propName in props) + if (props.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue( + props[propName], + 120 - rowPrefix.length - propName.length - 1 + ); + remainingRowLength -= propName.length + propValue.length + 2; + properties.push(propName + "=" + propValue); + } + return 0 === properties.length + ? rowPrefix + "<" + type + ">\n" + : 0 < remainingRowLength + ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" + : rowPrefix + + "<" + + type + + "\n" + + rowPrefix + + " " + + properties.join("\n" + rowPrefix + " ") + + "\n" + + rowPrefix + + ">\n"; + } + function describePropertiesDiff(clientObject, serverObject, indent) { + var properties = "", + remainingServerProperties = assign({}, serverObject), + propName; + for (propName in clientObject) + if (clientObject.hasOwnProperty(propName)) { + delete remainingServerProperties[propName]; + var maxLength = 120 - 2 * indent - propName.length - 2, + clientPropValue = describeValue(clientObject[propName], maxLength); + serverObject.hasOwnProperty(propName) + ? ((maxLength = describeValue(serverObject[propName], maxLength)), + (properties += + added(indent) + propName + ": " + clientPropValue + "\n"), + (properties += + removed(indent) + propName + ": " + maxLength + "\n")) + : (properties += + added(indent) + propName + ": " + clientPropValue + "\n"); + } + for (var _propName in remainingServerProperties) + remainingServerProperties.hasOwnProperty(_propName) && + ((clientObject = describeValue( + remainingServerProperties[_propName], + 120 - 2 * indent - _propName.length - 2 + )), + (properties += + removed(indent) + _propName + ": " + clientObject + "\n")); + return properties; + } + function describeElementDiff(type, clientProps, serverProps, indent) { + var content = "", + serverPropNames = new Map(); + for (propName$jscomp$0 in serverProps) + serverProps.hasOwnProperty(propName$jscomp$0) && + serverPropNames.set( + propName$jscomp$0.toLowerCase(), + propName$jscomp$0 + ); + if (1 === serverPropNames.size && serverPropNames.has("children")) + content += describeExpandedElement( + type, + clientProps, + indentation(indent) + ); + else { + for (var _propName2 in clientProps) + if ( + clientProps.hasOwnProperty(_propName2) && + "children" !== _propName2 + ) { + var maxLength$jscomp$0 = + 120 - 2 * (indent + 1) - _propName2.length - 1, + serverPropName = serverPropNames.get(_propName2.toLowerCase()); + if (void 0 !== serverPropName) { + serverPropNames.delete(_propName2.toLowerCase()); + var propName$jscomp$0 = clientProps[_propName2]; + serverPropName = serverProps[serverPropName]; + var clientPropValue = describePropValue( + propName$jscomp$0, + maxLength$jscomp$0 + ); + maxLength$jscomp$0 = describePropValue( + serverPropName, + maxLength$jscomp$0 + ); + "object" === typeof propName$jscomp$0 && + null !== propName$jscomp$0 && + "object" === typeof serverPropName && + null !== serverPropName && + "Object" === objectName(propName$jscomp$0) && + "Object" === objectName(serverPropName) && + (2 < Object.keys(propName$jscomp$0).length || + 2 < Object.keys(serverPropName).length || + -1 < clientPropValue.indexOf("...") || + -1 < maxLength$jscomp$0.indexOf("...")) + ? (content += + indentation(indent + 1) + + _propName2 + + "={{\n" + + describePropertiesDiff( + propName$jscomp$0, + serverPropName, + indent + 2 + ) + + indentation(indent + 1) + + "}}\n") + : ((content += + added(indent + 1) + + _propName2 + + "=" + + clientPropValue + + "\n"), + (content += + removed(indent + 1) + + _propName2 + + "=" + + maxLength$jscomp$0 + + "\n")); + } else + content += + indentation(indent + 1) + + _propName2 + + "=" + + describePropValue(clientProps[_propName2], maxLength$jscomp$0) + + "\n"; + } + serverPropNames.forEach(function (propName) { + if ("children" !== propName) { + var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; + content += + removed(indent + 1) + + propName + + "=" + + describePropValue(serverProps[propName], maxLength) + + "\n"; + } + }); + content = + "" === content + ? indentation(indent) + "<" + type + ">\n" + : indentation(indent) + + "<" + + type + + "\n" + + content + + indentation(indent) + + ">\n"; + } + type = serverProps.children; + clientProps = clientProps.children; + if ( + "string" === typeof type || + "number" === typeof type || + "bigint" === typeof type + ) { + serverPropNames = ""; + if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + serverPropNames = "" + clientProps; + content += describeTextDiff(serverPropNames, "" + type, indent + 1); + } else if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); + return content; + } + function describeSiblingFiber(fiber, indent) { + var type = describeFiberType(fiber); + if (null === type) { + type = ""; + for (fiber = fiber.child; fiber; ) + (type += describeSiblingFiber(fiber, indent)), + (fiber = fiber.sibling); + return type; + } + return indentation(indent) + "<" + type + ">\n"; + } + function describeNode(node, indent) { + var skipToNode = findNotableNode(node, indent); + if ( + skipToNode !== node && + (1 !== node.children.length || node.children[0] !== skipToNode) + ) + return ( + indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) + ); + skipToNode = ""; + var debugInfo = node.fiber._debugInfo; + if (debugInfo) + for (var i = 0; i < debugInfo.length; i++) { + var serverComponentName = debugInfo[i].name; + "string" === typeof serverComponentName && + ((skipToNode += + indentation(indent) + "<" + serverComponentName + ">\n"), + indent++); + } + debugInfo = ""; + i = node.fiber.pendingProps; + if (6 === node.fiber.tag) + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; + else if ( + ((serverComponentName = describeFiberType(node.fiber)), + null !== serverComponentName) + ) + if (void 0 === node.serverProps) { + debugInfo = indent; + var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, + content = ""; + for (propName in i) + if (i.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue(i[propName], 15); + maxLength -= propName.length + propValue.length + 2; + if (0 > maxLength) { + content += " ..."; + break; + } + content += " " + propName + "=" + propValue; + } + debugInfo = + indentation(debugInfo) + + "<" + + serverComponentName + + content + + ">\n"; + indent++; + } else + null === node.serverProps + ? ((debugInfo = describeExpandedElement( + serverComponentName, + i, + added(indent) + )), + indent++) + : "string" === typeof node.serverProps + ? error$jscomp$0( + "Should not have matched a non HostText fiber to a Text node. This is a bug in React." + ) + : ((debugInfo = describeElementDiff( + serverComponentName, + i, + node.serverProps, + indent + )), + indent++); + var propName = ""; + i = node.fiber.child; + for ( + serverComponentName = 0; + i && serverComponentName < node.children.length; + + ) + (maxLength = node.children[serverComponentName]), + maxLength.fiber === i + ? ((propName += describeNode(maxLength, indent)), + serverComponentName++) + : (propName += describeSiblingFiber(i, indent)), + (i = i.sibling); + i && + 0 < node.children.length && + (propName += indentation(indent) + "...\n"); + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), + (propName = + "string" === typeof serverComponentName + ? propName + + (removed(indent) + + describeTextNode(serverComponentName, 120 - 2 * indent) + + "\n") + : propName + + describeExpandedElement( + serverComponentName.type, + serverComponentName.props, + removed(indent) + )); + return skipToNode + debugInfo + propName; + } + function describeDiff(rootNode) { + try { + return "\n\n" + describeNode(rootNode, 0); + } catch (x) { + return ""; + } + } + function describeAncestors(ancestor, child, props) { + for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; ) + fiber === ancestor && (distanceFromLeaf = 0), + (node = { + fiber: fiber, + children: null !== node ? [node] : [], + serverProps: + fiber === child ? props : fiber === ancestor ? null : void 0, + serverTail: [], + distanceFromLeaf: distanceFromLeaf + }), + distanceFromLeaf++, + (fiber = fiber.return); + return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, ">") : ""; + } function updatedAncestorInfoDev(oldInfo, tag) { oldInfo = assign({}, oldInfo || emptyAncestorInfoDev); var info = { tag: tag }; @@ -2173,6 +2639,18 @@ __DEV__ && } return null; } + function findAncestor(parent, tagName) { + for (; parent; ) { + switch (parent.tag) { + case 5: + case 26: + case 27: + if (parent.type === tagName) return parent; + } + parent = parent.return; + } + return null; + } function validateDOMNesting(childTag, ancestorInfo) { ancestorInfo = ancestorInfo || emptyAncestorInfoDev; var parentInfo = ancestorInfo.current; @@ -2190,25 +2668,32 @@ __DEV__ && var warnKey = String(!!parentInfo) + "|" + childTag + "|" + ancestorInfo; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; - warnKey = "<" + childTag + ">"; + var ancestor = (warnKey = current) + ? findAncestor(warnKey.return, ancestorInfo) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors(ancestor, warnKey, null) + : ""; + ancestor = "<" + childTag + ">"; parentInfo ? ((parentInfo = ""), "table" === ancestorInfo && "tr" === childTag && (parentInfo += " Add a , or to your code to match the DOM tree generated by the browser."), - console.error( + error$jscomp$0( "In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, parentInfo, - getCurrentParentStackInDev() + warnKey )) - : console.error( + : error$jscomp$0( "In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -2217,16 +2702,27 @@ __DEV__ && var warnKey = "#text|" + parentTag; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; + var ancestor = (warnKey = current) + ? findAncestor(warnKey, parentTag) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors( + ancestor, + warnKey, + 6 !== warnKey.tag ? { children: null } : null + ) + : ""; /\S/.test(childText) - ? console.error( + ? error$jscomp$0( "In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ) - : console.error( + : error$jscomp$0( "In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -3100,455 +3596,6 @@ __DEV__ && "Expected to be hydrating. This is a bug in React. Please file an issue." ); } - function findNotableNode(node, indent) { - return void 0 === node.serverProps && - 0 === node.serverTail.length && - 1 === node.children.length && - 3 < node.distanceFromLeaf && - node.distanceFromLeaf > 15 - indent - ? findNotableNode(node.children[0], indent) - : node; - } - function indentation(indent) { - return " " + " ".repeat(indent); - } - function added(indent) { - return "+ " + " ".repeat(indent); - } - function removed(indent) { - return "- " + " ".repeat(indent); - } - function describeFiberType(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return fiber.type; - case 16: - return "Lazy"; - case 13: - return "Suspense"; - case 19: - return "SuspenseList"; - case 0: - case 15: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - case 11: - return ( - (fiber = fiber.type.render), fiber.displayName || fiber.name || null - ); - case 1: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - default: - return null; - } - } - function describeTextNode(content, maxLength) { - return needsEscaping.test(content) - ? ((content = JSON.stringify(content)), - content.length > maxLength - 2 - ? 8 > maxLength - ? '{"..."}' - : "{" + content.slice(0, maxLength - 7) + '..."}' - : "{" + content + "}") - : content.length > maxLength - ? 5 > maxLength - ? '{"..."}' - : content.slice(0, maxLength - 3) + "..." - : content; - } - function describeTextDiff(clientText, serverProps, indent) { - var maxLength = 120 - 2 * indent; - if (null === serverProps) - return added(indent) + describeTextNode(clientText, maxLength) + "\n"; - if ("string" === typeof serverProps) { - for ( - var firstDiff = 0; - firstDiff < serverProps.length && - firstDiff < clientText.length && - serverProps.charCodeAt(firstDiff) === - clientText.charCodeAt(firstDiff); - firstDiff++ - ); - firstDiff > maxLength - 8 && - 10 < firstDiff && - ((clientText = "..." + clientText.slice(firstDiff - 8)), - (serverProps = "..." + serverProps.slice(firstDiff - 8))); - return ( - added(indent) + - describeTextNode(clientText, maxLength) + - "\n" + - removed(indent) + - describeTextNode(serverProps, maxLength) + - "\n" - ); - } - return ( - indentation(indent) + describeTextNode(clientText, maxLength) + "\n" - ); - } - function objectName(object) { - return Object.prototype.toString - .call(object) - .replace(/^\[object (.*)\]$/, function (m, p0) { - return p0; - }); - } - function describeValue(value, maxLength) { - switch (typeof value) { - case "string": - return ( - (value = JSON.stringify(value)), - value.length > maxLength - ? 5 > maxLength - ? '"..."' - : value.slice(0, maxLength - 4) + '..."' - : value - ); - case "object": - if (null === value) return "null"; - if (isArrayImpl(value)) return "[...]"; - if (value.$$typeof === REACT_ELEMENT_TYPE) - return (maxLength = getComponentNameFromType(value.type)) - ? "<" + maxLength + ">" - : "<...>"; - var name = objectName(value); - if ("Object" === name) { - name = ""; - maxLength -= 2; - for (var propName in value) - if (value.hasOwnProperty(propName)) { - var jsonPropName = JSON.stringify(propName); - jsonPropName !== '"' + propName + '"' && - (propName = jsonPropName); - maxLength -= propName.length - 2; - jsonPropName = describeValue( - value[propName], - 15 > maxLength ? maxLength : 15 - ); - maxLength -= jsonPropName.length; - if (0 > maxLength) { - name += "" === name ? "..." : ", ..."; - break; - } - name += - ("" === name ? "" : ",") + propName + ":" + jsonPropName; - } - return "{" + name + "}"; - } - return name; - case "function": - return (maxLength = value.displayName || value.name) - ? "function " + maxLength - : "function"; - default: - return String(value); - } - } - function describePropValue(value, maxLength) { - return "string" !== typeof value || needsEscaping.test(value) - ? "{" + describeValue(value, maxLength - 2) + "}" - : value.length > maxLength - 2 - ? 5 > maxLength - ? '"..."' - : '"' + value.slice(0, maxLength - 5) + '..."' - : '"' + value + '"'; - } - function describeExpandedElement(type, props, rowPrefix) { - var remainingRowLength = 120 - rowPrefix.length - type.length, - properties = [], - propName; - for (propName in props) - if (props.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue( - props[propName], - 120 - rowPrefix.length - propName.length - 1 - ); - remainingRowLength -= propName.length + propValue.length + 2; - properties.push(propName + "=" + propValue); - } - return 0 === properties.length - ? rowPrefix + "<" + type + ">\n" - : 0 < remainingRowLength - ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" - : rowPrefix + - "<" + - type + - "\n" + - rowPrefix + - " " + - properties.join("\n" + rowPrefix + " ") + - "\n" + - rowPrefix + - ">\n"; - } - function describePropertiesDiff(clientObject, serverObject, indent) { - var properties = "", - remainingServerProperties = assign({}, serverObject), - propName; - for (propName in clientObject) - if (clientObject.hasOwnProperty(propName)) { - delete remainingServerProperties[propName]; - var maxLength = 120 - 2 * indent - propName.length - 2, - clientPropValue = describeValue(clientObject[propName], maxLength); - serverObject.hasOwnProperty(propName) - ? ((maxLength = describeValue(serverObject[propName], maxLength)), - (properties += - added(indent) + propName + ": " + clientPropValue + "\n"), - (properties += - removed(indent) + propName + ": " + maxLength + "\n")) - : (properties += - added(indent) + propName + ": " + clientPropValue + "\n"); - } - for (var _propName in remainingServerProperties) - remainingServerProperties.hasOwnProperty(_propName) && - ((clientObject = describeValue( - remainingServerProperties[_propName], - 120 - 2 * indent - _propName.length - 2 - )), - (properties += - removed(indent) + _propName + ": " + clientObject + "\n")); - return properties; - } - function describeElementDiff(type, clientProps, serverProps, indent) { - var content = "", - serverPropNames = new Map(); - for (propName$jscomp$0 in serverProps) - serverProps.hasOwnProperty(propName$jscomp$0) && - serverPropNames.set( - propName$jscomp$0.toLowerCase(), - propName$jscomp$0 - ); - if (1 === serverPropNames.size && serverPropNames.has("children")) - content += describeExpandedElement( - type, - clientProps, - indentation(indent) - ); - else { - for (var _propName2 in clientProps) - if ( - clientProps.hasOwnProperty(_propName2) && - "children" !== _propName2 - ) { - var maxLength$jscomp$0 = - 120 - 2 * (indent + 1) - _propName2.length - 1, - serverPropName = serverPropNames.get(_propName2.toLowerCase()); - if (void 0 !== serverPropName) { - serverPropNames.delete(_propName2.toLowerCase()); - var propName$jscomp$0 = clientProps[_propName2]; - serverPropName = serverProps[serverPropName]; - var clientPropValue = describePropValue( - propName$jscomp$0, - maxLength$jscomp$0 - ); - maxLength$jscomp$0 = describePropValue( - serverPropName, - maxLength$jscomp$0 - ); - "object" === typeof propName$jscomp$0 && - null !== propName$jscomp$0 && - "object" === typeof serverPropName && - null !== serverPropName && - "Object" === objectName(propName$jscomp$0) && - "Object" === objectName(serverPropName) && - (2 < Object.keys(propName$jscomp$0).length || - 2 < Object.keys(serverPropName).length || - -1 < clientPropValue.indexOf("...") || - -1 < maxLength$jscomp$0.indexOf("...")) - ? (content += - indentation(indent + 1) + - _propName2 + - "={{\n" + - describePropertiesDiff( - propName$jscomp$0, - serverPropName, - indent + 2 - ) + - indentation(indent + 1) + - "}}\n") - : ((content += - added(indent + 1) + - _propName2 + - "=" + - clientPropValue + - "\n"), - (content += - removed(indent + 1) + - _propName2 + - "=" + - maxLength$jscomp$0 + - "\n")); - } else - content += - indentation(indent + 1) + - _propName2 + - "=" + - describePropValue(clientProps[_propName2], maxLength$jscomp$0) + - "\n"; - } - serverPropNames.forEach(function (propName) { - if ("children" !== propName) { - var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; - content += - removed(indent + 1) + - propName + - "=" + - describePropValue(serverProps[propName], maxLength) + - "\n"; - } - }); - content = - "" === content - ? indentation(indent) + "<" + type + ">\n" - : indentation(indent) + - "<" + - type + - "\n" + - content + - indentation(indent) + - ">\n"; - } - type = serverProps.children; - clientProps = clientProps.children; - if ( - "string" === typeof type || - "number" === typeof type || - "bigint" === typeof type - ) { - serverPropNames = ""; - if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - serverPropNames = "" + clientProps; - content += describeTextDiff(serverPropNames, "" + type, indent + 1); - } else if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); - return content; - } - function describeSiblingFiber(fiber, indent) { - var type = describeFiberType(fiber); - if (null === type) { - type = ""; - for (fiber = fiber.child; fiber; ) - (type += describeSiblingFiber(fiber, indent)), - (fiber = fiber.sibling); - return type; - } - return indentation(indent) + "<" + type + ">\n"; - } - function describeNode(node, indent) { - var skipToNode = findNotableNode(node, indent); - if ( - skipToNode !== node && - (1 !== node.children.length || node.children[0] !== skipToNode) - ) - return ( - indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) - ); - skipToNode = ""; - var debugInfo = node.fiber._debugInfo; - if (debugInfo) - for (var i = 0; i < debugInfo.length; i++) { - var serverComponentName = debugInfo[i].name; - "string" === typeof serverComponentName && - ((skipToNode += - indentation(indent) + "<" + serverComponentName + ">\n"), - indent++); - } - debugInfo = ""; - i = node.fiber.pendingProps; - if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); - else if ( - ((serverComponentName = describeFiberType(node.fiber)), - null !== serverComponentName) - ) - if (void 0 === node.serverProps) { - debugInfo = indent; - var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, - content = ""; - for (propName in i) - if (i.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue(i[propName], 15); - maxLength -= propName.length + propValue.length + 2; - if (0 > maxLength) { - content += " ..."; - break; - } - content += " " + propName + "=" + propValue; - } - debugInfo = - indentation(debugInfo) + - "<" + - serverComponentName + - content + - ">\n"; - indent++; - } else - null === node.serverProps - ? (debugInfo = describeExpandedElement( - serverComponentName, - i, - added(indent) - )) - : "string" === typeof node.serverProps - ? error$jscomp$0( - "Should not have matched a non HostText fiber to a Text node. This is a bug in React." - ) - : ((debugInfo = describeElementDiff( - serverComponentName, - i, - node.serverProps, - indent - )), - indent++); - var propName = ""; - i = node.fiber.child; - for ( - serverComponentName = 0; - i && serverComponentName < node.children.length; - - ) - (maxLength = node.children[serverComponentName]), - maxLength.fiber === i - ? ((propName += describeNode(maxLength, indent)), - serverComponentName++) - : (propName += describeSiblingFiber(i, indent)), - (i = i.sibling); - i && - 0 < node.children.length && - (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), - (propName = - "string" === typeof serverComponentName - ? propName + - (removed(indent) + - describeTextNode(serverComponentName, 120 - 2 * indent) + - "\n") - : propName + - describeExpandedElement( - serverComponentName.type, - serverComponentName.props, - removed(indent) - )); - return skipToNode + debugInfo + propName; - } - function describeDiff(rootNode) { - try { - return "\n\n" + describeNode(rootNode, 0); - } catch (x) { - return ""; - } - } function buildHydrationDiffNode(fiber, distanceFromLeaf) { if (null === fiber.return) { if (null === hydrationDiffRootDEV) @@ -4678,6 +4725,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4751,6 +4799,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4772,6 +4821,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -4818,6 +4868,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -5358,6 +5409,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -5529,6 +5581,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -24395,6 +24449,7 @@ __DEV__ && var didWarnValueDefaultValue = !1; var valuePropNames = ["value", "defaultValue"], didWarnValDefaultVal = !1, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, specialTags = "address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp".split( " " @@ -25241,7 +25296,6 @@ __DEV__ && treeContextProvider = null, treeContextId = 1, treeContextOverflow = "", - needsEscaping = /["'&<>\n\t]/, hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = !1, @@ -27793,11 +27847,11 @@ __DEV__ && : flushSyncErrorInBuildsThatSupportLegacyMode; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.0.0-www-classic-378b305958-20240710" !== isomorphicReactPackageVersion) + if ("19.0.0-www-classic-2d3f81bb6a-20240710" !== 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.0.0-www-classic-378b305958-20240710\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.0.0-www-classic-2d3f81bb6a-20240710\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -27863,12 +27917,12 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 1, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }) && canUseDOM && @@ -28677,5 +28731,5 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.0.0-www-classic-378b305958-20240710"; + exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; })(); diff --git a/compiled/facebook-www/ReactDOMTesting-dev.modern.js b/compiled/facebook-www/ReactDOMTesting-dev.modern.js index 5cf8cd97bf..db4e11f986 100644 --- a/compiled/facebook-www/ReactDOMTesting-dev.modern.js +++ b/compiled/facebook-www/ReactDOMTesting-dev.modern.js @@ -607,9 +607,6 @@ __DEV__ && var owner = current._debugOwner; return null != owner ? getComponentNameFromOwner(owner) : null; } - function getCurrentParentStackInDev() { - return null === current ? "" : getStackByFiberInDevAndProd(current); - } function getCurrentFiberStackInDev() { return null === current ? "" : getStackByFiberInDevAndProd(current); } @@ -1962,6 +1959,475 @@ __DEV__ && null !== value && (element.value = value); } + function findNotableNode(node, indent) { + return void 0 === node.serverProps && + 0 === node.serverTail.length && + 1 === node.children.length && + 3 < node.distanceFromLeaf && + node.distanceFromLeaf > 15 - indent + ? findNotableNode(node.children[0], indent) + : node; + } + function indentation(indent) { + return " " + " ".repeat(indent); + } + function added(indent) { + return "+ " + " ".repeat(indent); + } + function removed(indent) { + return "- " + " ".repeat(indent); + } + function describeFiberType(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return fiber.type; + case 16: + return "Lazy"; + case 13: + return "Suspense"; + case 19: + return "SuspenseList"; + case 0: + case 15: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + case 11: + return ( + (fiber = fiber.type.render), fiber.displayName || fiber.name || null + ); + case 1: + return (fiber = fiber.type), fiber.displayName || fiber.name || null; + default: + return null; + } + } + function describeTextNode(content, maxLength) { + return needsEscaping.test(content) + ? ((content = JSON.stringify(content)), + content.length > maxLength - 2 + ? 8 > maxLength + ? '{"..."}' + : "{" + content.slice(0, maxLength - 7) + '..."}' + : "{" + content + "}") + : content.length > maxLength + ? 5 > maxLength + ? '{"..."}' + : content.slice(0, maxLength - 3) + "..." + : content; + } + function describeTextDiff(clientText, serverProps, indent) { + var maxLength = 120 - 2 * indent; + if (null === serverProps) + return added(indent) + describeTextNode(clientText, maxLength) + "\n"; + if ("string" === typeof serverProps) { + for ( + var firstDiff = 0; + firstDiff < serverProps.length && + firstDiff < clientText.length && + serverProps.charCodeAt(firstDiff) === + clientText.charCodeAt(firstDiff); + firstDiff++ + ); + firstDiff > maxLength - 8 && + 10 < firstDiff && + ((clientText = "..." + clientText.slice(firstDiff - 8)), + (serverProps = "..." + serverProps.slice(firstDiff - 8))); + return ( + added(indent) + + describeTextNode(clientText, maxLength) + + "\n" + + removed(indent) + + describeTextNode(serverProps, maxLength) + + "\n" + ); + } + return ( + indentation(indent) + describeTextNode(clientText, maxLength) + "\n" + ); + } + function objectName(object) { + return Object.prototype.toString + .call(object) + .replace(/^\[object (.*)\]$/, function (m, p0) { + return p0; + }); + } + function describeValue(value, maxLength) { + switch (typeof value) { + case "string": + return ( + (value = JSON.stringify(value)), + value.length > maxLength + ? 5 > maxLength + ? '"..."' + : value.slice(0, maxLength - 4) + '..."' + : value + ); + case "object": + if (null === value) return "null"; + if (isArrayImpl(value)) return "[...]"; + if (value.$$typeof === REACT_ELEMENT_TYPE) + return (maxLength = getComponentNameFromType(value.type)) + ? "<" + maxLength + ">" + : "<...>"; + var name = objectName(value); + if ("Object" === name) { + name = ""; + maxLength -= 2; + for (var propName in value) + if (value.hasOwnProperty(propName)) { + var jsonPropName = JSON.stringify(propName); + jsonPropName !== '"' + propName + '"' && + (propName = jsonPropName); + maxLength -= propName.length - 2; + jsonPropName = describeValue( + value[propName], + 15 > maxLength ? maxLength : 15 + ); + maxLength -= jsonPropName.length; + if (0 > maxLength) { + name += "" === name ? "..." : ", ..."; + break; + } + name += + ("" === name ? "" : ",") + propName + ":" + jsonPropName; + } + return "{" + name + "}"; + } + return name; + case "function": + return (maxLength = value.displayName || value.name) + ? "function " + maxLength + : "function"; + default: + return String(value); + } + } + function describePropValue(value, maxLength) { + return "string" !== typeof value || needsEscaping.test(value) + ? "{" + describeValue(value, maxLength - 2) + "}" + : value.length > maxLength - 2 + ? 5 > maxLength + ? '"..."' + : '"' + value.slice(0, maxLength - 5) + '..."' + : '"' + value + '"'; + } + function describeExpandedElement(type, props, rowPrefix) { + var remainingRowLength = 120 - rowPrefix.length - type.length, + properties = [], + propName; + for (propName in props) + if (props.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue( + props[propName], + 120 - rowPrefix.length - propName.length - 1 + ); + remainingRowLength -= propName.length + propValue.length + 2; + properties.push(propName + "=" + propValue); + } + return 0 === properties.length + ? rowPrefix + "<" + type + ">\n" + : 0 < remainingRowLength + ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" + : rowPrefix + + "<" + + type + + "\n" + + rowPrefix + + " " + + properties.join("\n" + rowPrefix + " ") + + "\n" + + rowPrefix + + ">\n"; + } + function describePropertiesDiff(clientObject, serverObject, indent) { + var properties = "", + remainingServerProperties = assign({}, serverObject), + propName; + for (propName in clientObject) + if (clientObject.hasOwnProperty(propName)) { + delete remainingServerProperties[propName]; + var maxLength = 120 - 2 * indent - propName.length - 2, + clientPropValue = describeValue(clientObject[propName], maxLength); + serverObject.hasOwnProperty(propName) + ? ((maxLength = describeValue(serverObject[propName], maxLength)), + (properties += + added(indent) + propName + ": " + clientPropValue + "\n"), + (properties += + removed(indent) + propName + ": " + maxLength + "\n")) + : (properties += + added(indent) + propName + ": " + clientPropValue + "\n"); + } + for (var _propName in remainingServerProperties) + remainingServerProperties.hasOwnProperty(_propName) && + ((clientObject = describeValue( + remainingServerProperties[_propName], + 120 - 2 * indent - _propName.length - 2 + )), + (properties += + removed(indent) + _propName + ": " + clientObject + "\n")); + return properties; + } + function describeElementDiff(type, clientProps, serverProps, indent) { + var content = "", + serverPropNames = new Map(); + for (propName$jscomp$0 in serverProps) + serverProps.hasOwnProperty(propName$jscomp$0) && + serverPropNames.set( + propName$jscomp$0.toLowerCase(), + propName$jscomp$0 + ); + if (1 === serverPropNames.size && serverPropNames.has("children")) + content += describeExpandedElement( + type, + clientProps, + indentation(indent) + ); + else { + for (var _propName2 in clientProps) + if ( + clientProps.hasOwnProperty(_propName2) && + "children" !== _propName2 + ) { + var maxLength$jscomp$0 = + 120 - 2 * (indent + 1) - _propName2.length - 1, + serverPropName = serverPropNames.get(_propName2.toLowerCase()); + if (void 0 !== serverPropName) { + serverPropNames.delete(_propName2.toLowerCase()); + var propName$jscomp$0 = clientProps[_propName2]; + serverPropName = serverProps[serverPropName]; + var clientPropValue = describePropValue( + propName$jscomp$0, + maxLength$jscomp$0 + ); + maxLength$jscomp$0 = describePropValue( + serverPropName, + maxLength$jscomp$0 + ); + "object" === typeof propName$jscomp$0 && + null !== propName$jscomp$0 && + "object" === typeof serverPropName && + null !== serverPropName && + "Object" === objectName(propName$jscomp$0) && + "Object" === objectName(serverPropName) && + (2 < Object.keys(propName$jscomp$0).length || + 2 < Object.keys(serverPropName).length || + -1 < clientPropValue.indexOf("...") || + -1 < maxLength$jscomp$0.indexOf("...")) + ? (content += + indentation(indent + 1) + + _propName2 + + "={{\n" + + describePropertiesDiff( + propName$jscomp$0, + serverPropName, + indent + 2 + ) + + indentation(indent + 1) + + "}}\n") + : ((content += + added(indent + 1) + + _propName2 + + "=" + + clientPropValue + + "\n"), + (content += + removed(indent + 1) + + _propName2 + + "=" + + maxLength$jscomp$0 + + "\n")); + } else + content += + indentation(indent + 1) + + _propName2 + + "=" + + describePropValue(clientProps[_propName2], maxLength$jscomp$0) + + "\n"; + } + serverPropNames.forEach(function (propName) { + if ("children" !== propName) { + var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; + content += + removed(indent + 1) + + propName + + "=" + + describePropValue(serverProps[propName], maxLength) + + "\n"; + } + }); + content = + "" === content + ? indentation(indent) + "<" + type + ">\n" + : indentation(indent) + + "<" + + type + + "\n" + + content + + indentation(indent) + + ">\n"; + } + type = serverProps.children; + clientProps = clientProps.children; + if ( + "string" === typeof type || + "number" === typeof type || + "bigint" === typeof type + ) { + serverPropNames = ""; + if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + serverPropNames = "" + clientProps; + content += describeTextDiff(serverPropNames, "" + type, indent + 1); + } else if ( + "string" === typeof clientProps || + "number" === typeof clientProps || + "bigint" === typeof clientProps + ) + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); + return content; + } + function describeSiblingFiber(fiber, indent) { + var type = describeFiberType(fiber); + if (null === type) { + type = ""; + for (fiber = fiber.child; fiber; ) + (type += describeSiblingFiber(fiber, indent)), + (fiber = fiber.sibling); + return type; + } + return indentation(indent) + "<" + type + ">\n"; + } + function describeNode(node, indent) { + var skipToNode = findNotableNode(node, indent); + if ( + skipToNode !== node && + (1 !== node.children.length || node.children[0] !== skipToNode) + ) + return ( + indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) + ); + skipToNode = ""; + var debugInfo = node.fiber._debugInfo; + if (debugInfo) + for (var i = 0; i < debugInfo.length; i++) { + var serverComponentName = debugInfo[i].name; + "string" === typeof serverComponentName && + ((skipToNode += + indentation(indent) + "<" + serverComponentName + ">\n"), + indent++); + } + debugInfo = ""; + i = node.fiber.pendingProps; + if (6 === node.fiber.tag) + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; + else if ( + ((serverComponentName = describeFiberType(node.fiber)), + null !== serverComponentName) + ) + if (void 0 === node.serverProps) { + debugInfo = indent; + var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, + content = ""; + for (propName in i) + if (i.hasOwnProperty(propName) && "children" !== propName) { + var propValue = describePropValue(i[propName], 15); + maxLength -= propName.length + propValue.length + 2; + if (0 > maxLength) { + content += " ..."; + break; + } + content += " " + propName + "=" + propValue; + } + debugInfo = + indentation(debugInfo) + + "<" + + serverComponentName + + content + + ">\n"; + indent++; + } else + null === node.serverProps + ? ((debugInfo = describeExpandedElement( + serverComponentName, + i, + added(indent) + )), + indent++) + : "string" === typeof node.serverProps + ? error$jscomp$0( + "Should not have matched a non HostText fiber to a Text node. This is a bug in React." + ) + : ((debugInfo = describeElementDiff( + serverComponentName, + i, + node.serverProps, + indent + )), + indent++); + var propName = ""; + i = node.fiber.child; + for ( + serverComponentName = 0; + i && serverComponentName < node.children.length; + + ) + (maxLength = node.children[serverComponentName]), + maxLength.fiber === i + ? ((propName += describeNode(maxLength, indent)), + serverComponentName++) + : (propName += describeSiblingFiber(i, indent)), + (i = i.sibling); + i && + 0 < node.children.length && + (propName += indentation(indent) + "...\n"); + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), + (propName = + "string" === typeof serverComponentName + ? propName + + (removed(indent) + + describeTextNode(serverComponentName, 120 - 2 * indent) + + "\n") + : propName + + describeExpandedElement( + serverComponentName.type, + serverComponentName.props, + removed(indent) + )); + return skipToNode + debugInfo + propName; + } + function describeDiff(rootNode) { + try { + return "\n\n" + describeNode(rootNode, 0); + } catch (x) { + return ""; + } + } + function describeAncestors(ancestor, child, props) { + for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; ) + fiber === ancestor && (distanceFromLeaf = 0), + (node = { + fiber: fiber, + children: null !== node ? [node] : [], + serverProps: + fiber === child ? props : fiber === ancestor ? null : void 0, + serverTail: [], + distanceFromLeaf: distanceFromLeaf + }), + distanceFromLeaf++, + (fiber = fiber.return); + return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, ">") : ""; + } function updatedAncestorInfoDev(oldInfo, tag) { oldInfo = assign({}, oldInfo || emptyAncestorInfoDev); var info = { tag: tag }; @@ -2143,6 +2609,18 @@ __DEV__ && } return null; } + function findAncestor(parent, tagName) { + for (; parent; ) { + switch (parent.tag) { + case 5: + case 26: + case 27: + if (parent.type === tagName) return parent; + } + parent = parent.return; + } + return null; + } function validateDOMNesting(childTag, ancestorInfo) { ancestorInfo = ancestorInfo || emptyAncestorInfoDev; var parentInfo = ancestorInfo.current; @@ -2160,25 +2638,32 @@ __DEV__ && var warnKey = String(!!parentInfo) + "|" + childTag + "|" + ancestorInfo; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; - warnKey = "<" + childTag + ">"; + var ancestor = (warnKey = current) + ? findAncestor(warnKey.return, ancestorInfo) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors(ancestor, warnKey, null) + : ""; + ancestor = "<" + childTag + ">"; parentInfo ? ((parentInfo = ""), "table" === ancestorInfo && "tr" === childTag && (parentInfo += " Add a , or to your code to match the DOM tree generated by the browser."), - console.error( + error$jscomp$0( "In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, parentInfo, - getCurrentParentStackInDev() + warnKey )) - : console.error( + : error$jscomp$0( "In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s", - warnKey, + ancestor, ancestorInfo, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -2187,16 +2672,27 @@ __DEV__ && var warnKey = "#text|" + parentTag; if (didWarn[warnKey]) return !1; didWarn[warnKey] = !0; + var ancestor = (warnKey = current) + ? findAncestor(warnKey, parentTag) + : null; + warnKey = + null !== warnKey && null !== ancestor + ? describeAncestors( + ancestor, + warnKey, + 6 !== warnKey.tag ? { children: null } : null + ) + : ""; /\S/.test(childText) - ? console.error( + ? error$jscomp$0( "In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ) - : console.error( + : error$jscomp$0( "In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s", parentTag, - getCurrentParentStackInDev() + warnKey ); return !1; } @@ -2976,455 +3472,6 @@ __DEV__ && "Expected to be hydrating. This is a bug in React. Please file an issue." ); } - function findNotableNode(node, indent) { - return void 0 === node.serverProps && - 0 === node.serverTail.length && - 1 === node.children.length && - 3 < node.distanceFromLeaf && - node.distanceFromLeaf > 15 - indent - ? findNotableNode(node.children[0], indent) - : node; - } - function indentation(indent) { - return " " + " ".repeat(indent); - } - function added(indent) { - return "+ " + " ".repeat(indent); - } - function removed(indent) { - return "- " + " ".repeat(indent); - } - function describeFiberType(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return fiber.type; - case 16: - return "Lazy"; - case 13: - return "Suspense"; - case 19: - return "SuspenseList"; - case 0: - case 15: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - case 11: - return ( - (fiber = fiber.type.render), fiber.displayName || fiber.name || null - ); - case 1: - return (fiber = fiber.type), fiber.displayName || fiber.name || null; - default: - return null; - } - } - function describeTextNode(content, maxLength) { - return needsEscaping.test(content) - ? ((content = JSON.stringify(content)), - content.length > maxLength - 2 - ? 8 > maxLength - ? '{"..."}' - : "{" + content.slice(0, maxLength - 7) + '..."}' - : "{" + content + "}") - : content.length > maxLength - ? 5 > maxLength - ? '{"..."}' - : content.slice(0, maxLength - 3) + "..." - : content; - } - function describeTextDiff(clientText, serverProps, indent) { - var maxLength = 120 - 2 * indent; - if (null === serverProps) - return added(indent) + describeTextNode(clientText, maxLength) + "\n"; - if ("string" === typeof serverProps) { - for ( - var firstDiff = 0; - firstDiff < serverProps.length && - firstDiff < clientText.length && - serverProps.charCodeAt(firstDiff) === - clientText.charCodeAt(firstDiff); - firstDiff++ - ); - firstDiff > maxLength - 8 && - 10 < firstDiff && - ((clientText = "..." + clientText.slice(firstDiff - 8)), - (serverProps = "..." + serverProps.slice(firstDiff - 8))); - return ( - added(indent) + - describeTextNode(clientText, maxLength) + - "\n" + - removed(indent) + - describeTextNode(serverProps, maxLength) + - "\n" - ); - } - return ( - indentation(indent) + describeTextNode(clientText, maxLength) + "\n" - ); - } - function objectName(object) { - return Object.prototype.toString - .call(object) - .replace(/^\[object (.*)\]$/, function (m, p0) { - return p0; - }); - } - function describeValue(value, maxLength) { - switch (typeof value) { - case "string": - return ( - (value = JSON.stringify(value)), - value.length > maxLength - ? 5 > maxLength - ? '"..."' - : value.slice(0, maxLength - 4) + '..."' - : value - ); - case "object": - if (null === value) return "null"; - if (isArrayImpl(value)) return "[...]"; - if (value.$$typeof === REACT_ELEMENT_TYPE) - return (maxLength = getComponentNameFromType(value.type)) - ? "<" + maxLength + ">" - : "<...>"; - var name = objectName(value); - if ("Object" === name) { - name = ""; - maxLength -= 2; - for (var propName in value) - if (value.hasOwnProperty(propName)) { - var jsonPropName = JSON.stringify(propName); - jsonPropName !== '"' + propName + '"' && - (propName = jsonPropName); - maxLength -= propName.length - 2; - jsonPropName = describeValue( - value[propName], - 15 > maxLength ? maxLength : 15 - ); - maxLength -= jsonPropName.length; - if (0 > maxLength) { - name += "" === name ? "..." : ", ..."; - break; - } - name += - ("" === name ? "" : ",") + propName + ":" + jsonPropName; - } - return "{" + name + "}"; - } - return name; - case "function": - return (maxLength = value.displayName || value.name) - ? "function " + maxLength - : "function"; - default: - return String(value); - } - } - function describePropValue(value, maxLength) { - return "string" !== typeof value || needsEscaping.test(value) - ? "{" + describeValue(value, maxLength - 2) + "}" - : value.length > maxLength - 2 - ? 5 > maxLength - ? '"..."' - : '"' + value.slice(0, maxLength - 5) + '..."' - : '"' + value + '"'; - } - function describeExpandedElement(type, props, rowPrefix) { - var remainingRowLength = 120 - rowPrefix.length - type.length, - properties = [], - propName; - for (propName in props) - if (props.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue( - props[propName], - 120 - rowPrefix.length - propName.length - 1 - ); - remainingRowLength -= propName.length + propValue.length + 2; - properties.push(propName + "=" + propValue); - } - return 0 === properties.length - ? rowPrefix + "<" + type + ">\n" - : 0 < remainingRowLength - ? rowPrefix + "<" + type + " " + properties.join(" ") + ">\n" - : rowPrefix + - "<" + - type + - "\n" + - rowPrefix + - " " + - properties.join("\n" + rowPrefix + " ") + - "\n" + - rowPrefix + - ">\n"; - } - function describePropertiesDiff(clientObject, serverObject, indent) { - var properties = "", - remainingServerProperties = assign({}, serverObject), - propName; - for (propName in clientObject) - if (clientObject.hasOwnProperty(propName)) { - delete remainingServerProperties[propName]; - var maxLength = 120 - 2 * indent - propName.length - 2, - clientPropValue = describeValue(clientObject[propName], maxLength); - serverObject.hasOwnProperty(propName) - ? ((maxLength = describeValue(serverObject[propName], maxLength)), - (properties += - added(indent) + propName + ": " + clientPropValue + "\n"), - (properties += - removed(indent) + propName + ": " + maxLength + "\n")) - : (properties += - added(indent) + propName + ": " + clientPropValue + "\n"); - } - for (var _propName in remainingServerProperties) - remainingServerProperties.hasOwnProperty(_propName) && - ((clientObject = describeValue( - remainingServerProperties[_propName], - 120 - 2 * indent - _propName.length - 2 - )), - (properties += - removed(indent) + _propName + ": " + clientObject + "\n")); - return properties; - } - function describeElementDiff(type, clientProps, serverProps, indent) { - var content = "", - serverPropNames = new Map(); - for (propName$jscomp$0 in serverProps) - serverProps.hasOwnProperty(propName$jscomp$0) && - serverPropNames.set( - propName$jscomp$0.toLowerCase(), - propName$jscomp$0 - ); - if (1 === serverPropNames.size && serverPropNames.has("children")) - content += describeExpandedElement( - type, - clientProps, - indentation(indent) - ); - else { - for (var _propName2 in clientProps) - if ( - clientProps.hasOwnProperty(_propName2) && - "children" !== _propName2 - ) { - var maxLength$jscomp$0 = - 120 - 2 * (indent + 1) - _propName2.length - 1, - serverPropName = serverPropNames.get(_propName2.toLowerCase()); - if (void 0 !== serverPropName) { - serverPropNames.delete(_propName2.toLowerCase()); - var propName$jscomp$0 = clientProps[_propName2]; - serverPropName = serverProps[serverPropName]; - var clientPropValue = describePropValue( - propName$jscomp$0, - maxLength$jscomp$0 - ); - maxLength$jscomp$0 = describePropValue( - serverPropName, - maxLength$jscomp$0 - ); - "object" === typeof propName$jscomp$0 && - null !== propName$jscomp$0 && - "object" === typeof serverPropName && - null !== serverPropName && - "Object" === objectName(propName$jscomp$0) && - "Object" === objectName(serverPropName) && - (2 < Object.keys(propName$jscomp$0).length || - 2 < Object.keys(serverPropName).length || - -1 < clientPropValue.indexOf("...") || - -1 < maxLength$jscomp$0.indexOf("...")) - ? (content += - indentation(indent + 1) + - _propName2 + - "={{\n" + - describePropertiesDiff( - propName$jscomp$0, - serverPropName, - indent + 2 - ) + - indentation(indent + 1) + - "}}\n") - : ((content += - added(indent + 1) + - _propName2 + - "=" + - clientPropValue + - "\n"), - (content += - removed(indent + 1) + - _propName2 + - "=" + - maxLength$jscomp$0 + - "\n")); - } else - content += - indentation(indent + 1) + - _propName2 + - "=" + - describePropValue(clientProps[_propName2], maxLength$jscomp$0) + - "\n"; - } - serverPropNames.forEach(function (propName) { - if ("children" !== propName) { - var maxLength = 120 - 2 * (indent + 1) - propName.length - 1; - content += - removed(indent + 1) + - propName + - "=" + - describePropValue(serverProps[propName], maxLength) + - "\n"; - } - }); - content = - "" === content - ? indentation(indent) + "<" + type + ">\n" - : indentation(indent) + - "<" + - type + - "\n" + - content + - indentation(indent) + - ">\n"; - } - type = serverProps.children; - clientProps = clientProps.children; - if ( - "string" === typeof type || - "number" === typeof type || - "bigint" === typeof type - ) { - serverPropNames = ""; - if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - serverPropNames = "" + clientProps; - content += describeTextDiff(serverPropNames, "" + type, indent + 1); - } else if ( - "string" === typeof clientProps || - "number" === typeof clientProps || - "bigint" === typeof clientProps - ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); - return content; - } - function describeSiblingFiber(fiber, indent) { - var type = describeFiberType(fiber); - if (null === type) { - type = ""; - for (fiber = fiber.child; fiber; ) - (type += describeSiblingFiber(fiber, indent)), - (fiber = fiber.sibling); - return type; - } - return indentation(indent) + "<" + type + ">\n"; - } - function describeNode(node, indent) { - var skipToNode = findNotableNode(node, indent); - if ( - skipToNode !== node && - (1 !== node.children.length || node.children[0] !== skipToNode) - ) - return ( - indentation(indent) + "...\n" + describeNode(skipToNode, indent + 1) - ); - skipToNode = ""; - var debugInfo = node.fiber._debugInfo; - if (debugInfo) - for (var i = 0; i < debugInfo.length; i++) { - var serverComponentName = debugInfo[i].name; - "string" === typeof serverComponentName && - ((skipToNode += - indentation(indent) + "<" + serverComponentName + ">\n"), - indent++); - } - debugInfo = ""; - i = node.fiber.pendingProps; - if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); - else if ( - ((serverComponentName = describeFiberType(node.fiber)), - null !== serverComponentName) - ) - if (void 0 === node.serverProps) { - debugInfo = indent; - var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2, - content = ""; - for (propName in i) - if (i.hasOwnProperty(propName) && "children" !== propName) { - var propValue = describePropValue(i[propName], 15); - maxLength -= propName.length + propValue.length + 2; - if (0 > maxLength) { - content += " ..."; - break; - } - content += " " + propName + "=" + propValue; - } - debugInfo = - indentation(debugInfo) + - "<" + - serverComponentName + - content + - ">\n"; - indent++; - } else - null === node.serverProps - ? (debugInfo = describeExpandedElement( - serverComponentName, - i, - added(indent) - )) - : "string" === typeof node.serverProps - ? error$jscomp$0( - "Should not have matched a non HostText fiber to a Text node. This is a bug in React." - ) - : ((debugInfo = describeElementDiff( - serverComponentName, - i, - node.serverProps, - indent - )), - indent++); - var propName = ""; - i = node.fiber.child; - for ( - serverComponentName = 0; - i && serverComponentName < node.children.length; - - ) - (maxLength = node.children[serverComponentName]), - maxLength.fiber === i - ? ((propName += describeNode(maxLength, indent)), - serverComponentName++) - : (propName += describeSiblingFiber(i, indent)), - (i = i.sibling); - i && - 0 < node.children.length && - (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), - (propName = - "string" === typeof serverComponentName - ? propName + - (removed(indent) + - describeTextNode(serverComponentName, 120 - 2 * indent) + - "\n") - : propName + - describeExpandedElement( - serverComponentName.type, - serverComponentName.props, - removed(indent) - )); - return skipToNode + debugInfo + propName; - } - function describeDiff(rootNode) { - try { - return "\n\n" + describeNode(rootNode, 0); - } catch (x) { - return ""; - } - } function buildHydrationDiffNode(fiber, distanceFromLeaf) { if (null === fiber.return) { if (null === hydrationDiffRootDEV) @@ -4545,6 +4592,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4618,6 +4666,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -4639,6 +4688,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -4685,6 +4735,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -5225,6 +5276,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -5396,6 +5448,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -23533,6 +23587,7 @@ __DEV__ && var didWarnValueDefaultValue = !1; var valuePropNames = ["value", "defaultValue"], didWarnValDefaultVal = !1, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, specialTags = "address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp".split( " " @@ -24375,7 +24430,6 @@ __DEV__ && treeContextProvider = null, treeContextId = 1, treeContextOverflow = "", - needsEscaping = /["'&<>\n\t]/, hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = !1, @@ -26925,11 +26979,11 @@ __DEV__ && return_targetInst = null; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.0.0-www-modern-378b305958-20240710" !== isomorphicReactPackageVersion) + if ("19.0.0-www-modern-2d3f81bb6a-20240710" !== 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.0.0-www-modern-378b305958-20240710\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.0.0-www-modern-2d3f81bb6a-20240710\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -26994,12 +27048,12 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 1, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }) && canUseDOM && @@ -27761,5 +27815,5 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.0.0-www-modern-378b305958-20240710"; + exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; })(); diff --git a/compiled/facebook-www/ReactDOMTesting-prod.classic.js b/compiled/facebook-www/ReactDOMTesting-prod.classic.js index a937ac535f..7757c3fc5c 100644 --- a/compiled/facebook-www/ReactDOMTesting-prod.classic.js +++ b/compiled/facebook-www/ReactDOMTesting-prod.classic.js @@ -17492,14 +17492,14 @@ function getCrossOriginStringAs(as, input) { } var isomorphicReactPackageVersion$jscomp$inline_1799 = React.version; if ( - "19.0.0-www-classic-378b305958-20240710" !== + "19.0.0-www-classic-2d3f81bb6a-20240710" !== isomorphicReactPackageVersion$jscomp$inline_1799 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1799, - "19.0.0-www-classic-378b305958-20240710" + "19.0.0-www-classic-2d3f81bb6a-20240710" ) ); function flushSyncFromReconciler(fn) { @@ -17545,7 +17545,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1806 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2255 = { @@ -17575,7 +17575,7 @@ var internals$jscomp$inline_2255 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2256 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -18190,4 +18190,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-classic-378b305958-20240710"; +exports.version = "19.0.0-www-classic-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/ReactDOMTesting-prod.modern.js b/compiled/facebook-www/ReactDOMTesting-prod.modern.js index 9294633660..b0f825b858 100644 --- a/compiled/facebook-www/ReactDOMTesting-prod.modern.js +++ b/compiled/facebook-www/ReactDOMTesting-prod.modern.js @@ -16866,14 +16866,14 @@ function getCrossOriginStringAs(as, input) { } var isomorphicReactPackageVersion$jscomp$inline_1770 = React.version; if ( - "19.0.0-www-modern-378b305958-20240710" !== + "19.0.0-www-modern-2d3f81bb6a-20240710" !== isomorphicReactPackageVersion$jscomp$inline_1770 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_1770, - "19.0.0-www-modern-378b305958-20240710" + "19.0.0-www-modern-2d3f81bb6a-20240710" ) ); Internals.findDOMNode = function (componentOrElement) { @@ -16892,7 +16892,7 @@ Internals.Events = [ var devToolsConfig$jscomp$inline_1772 = { findFiberByHostInstance: getClosestInstanceFromNode, bundleType: 0, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-dom" }; var internals$jscomp$inline_2246 = { @@ -16922,7 +16922,7 @@ var internals$jscomp$inline_2246 = { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2247 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17444,4 +17444,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.0.0-www-modern-378b305958-20240710"; +exports.version = "19.0.0-www-modern-2d3f81bb6a-20240710"; diff --git a/compiled/facebook-www/ReactReconciler-dev.classic.js b/compiled/facebook-www/ReactReconciler-dev.classic.js index 6d2360aa62..26c212c2cd 100644 --- a/compiled/facebook-www/ReactReconciler-dev.classic.js +++ b/compiled/facebook-www/ReactReconciler-dev.classic.js @@ -1853,7 +1853,10 @@ __DEV__ && "number" === typeof clientProps || "bigint" === typeof clientProps ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); return content; } function describeSiblingFiber(fiber, indent) { @@ -1889,7 +1892,7 @@ __DEV__ && debugInfo = ""; i = node.fiber.pendingProps; if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; else if ( ((serverComponentName = describeFiberType(node.fiber)), null !== serverComponentName) @@ -1917,11 +1920,12 @@ __DEV__ && indent++; } else null === node.serverProps - ? (debugInfo = describeExpandedElement( + ? ((debugInfo = describeExpandedElement( serverComponentName, i, added(indent) - )) + )), + indent++) : "string" === typeof node.serverProps ? error$jscomp$0( "Should not have matched a non HostText fiber to a Text node. This is a bug in React." @@ -1949,9 +1953,10 @@ __DEV__ && i && 0 < node.children.length && (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), (propName = "string" === typeof serverComponentName ? propName + @@ -3028,6 +3033,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -3101,6 +3107,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -3122,6 +3129,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -3168,6 +3176,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -3708,6 +3717,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -3879,6 +3889,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -16725,7 +16737,7 @@ __DEV__ && _currentValue2: null, _threadCount: 0 }, - needsEscaping = /["'&<>\n\t]/, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = !1, @@ -19046,7 +19058,7 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }); }; exports.isAlreadyRendering = function () { diff --git a/compiled/facebook-www/ReactReconciler-dev.modern.js b/compiled/facebook-www/ReactReconciler-dev.modern.js index d3d650f7d6..9ca01d4c76 100644 --- a/compiled/facebook-www/ReactReconciler-dev.modern.js +++ b/compiled/facebook-www/ReactReconciler-dev.modern.js @@ -1756,7 +1756,10 @@ __DEV__ && "number" === typeof clientProps || "bigint" === typeof clientProps ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); return content; } function describeSiblingFiber(fiber, indent) { @@ -1792,7 +1795,7 @@ __DEV__ && debugInfo = ""; i = node.fiber.pendingProps; if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; else if ( ((serverComponentName = describeFiberType(node.fiber)), null !== serverComponentName) @@ -1820,11 +1823,12 @@ __DEV__ && indent++; } else null === node.serverProps - ? (debugInfo = describeExpandedElement( + ? ((debugInfo = describeExpandedElement( serverComponentName, i, added(indent) - )) + )), + indent++) : "string" === typeof node.serverProps ? error$jscomp$0( "Should not have matched a non HostText fiber to a Text node. This is a bug in React." @@ -1852,9 +1856,10 @@ __DEV__ && i && 0 < node.children.length && (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), (propName = "string" === typeof serverComponentName ? propName + @@ -2927,6 +2932,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -3000,6 +3006,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -3021,6 +3028,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -3067,6 +3075,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -3607,6 +3616,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -3778,6 +3788,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -16103,7 +16115,7 @@ __DEV__ && _currentValue2: null, _threadCount: 0 }, - needsEscaping = /["'&<>\n\t]/, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, hydrationParentFiber = null, nextHydratableInstance = null, isHydrating = !1, @@ -18410,7 +18422,7 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }); }; exports.isAlreadyRendering = function () { diff --git a/compiled/facebook-www/ReactReconciler-prod.classic.js b/compiled/facebook-www/ReactReconciler-prod.classic.js index a026324a0f..eb78a8fc8f 100644 --- a/compiled/facebook-www/ReactReconciler-prod.classic.js +++ b/compiled/facebook-www/ReactReconciler-prod.classic.js @@ -12705,7 +12705,7 @@ module.exports = function ($$$config) { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }; if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) devToolsConfig = !1; diff --git a/compiled/facebook-www/ReactReconciler-prod.modern.js b/compiled/facebook-www/ReactReconciler-prod.modern.js index aa6cc1837f..1f2bb5f8d6 100644 --- a/compiled/facebook-www/ReactReconciler-prod.modern.js +++ b/compiled/facebook-www/ReactReconciler-prod.modern.js @@ -12197,7 +12197,7 @@ module.exports = function ($$$config) { scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }; if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) devToolsConfig = !1; diff --git a/compiled/facebook-www/ReactTestRenderer-dev.classic.js b/compiled/facebook-www/ReactTestRenderer-dev.classic.js index 44e59bbb26..90d8bdca4a 100644 --- a/compiled/facebook-www/ReactTestRenderer-dev.classic.js +++ b/compiled/facebook-www/ReactTestRenderer-dev.classic.js @@ -1572,7 +1572,10 @@ __DEV__ && "number" === typeof clientProps || "bigint" === typeof clientProps ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); return content; } function describeSiblingFiber(fiber, indent) { @@ -1608,7 +1611,7 @@ __DEV__ && debugInfo = ""; i = node.fiber.pendingProps; if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; else if ( ((serverComponentName = describeFiberType(node.fiber)), null !== serverComponentName) @@ -1636,11 +1639,12 @@ __DEV__ && indent++; } else null === node.serverProps - ? (debugInfo = describeExpandedElement( + ? ((debugInfo = describeExpandedElement( serverComponentName, i, added(indent) - )) + )), + indent++) : "string" === typeof node.serverProps ? error$jscomp$0( "Should not have matched a non HostText fiber to a Text node. This is a bug in React." @@ -1668,9 +1672,10 @@ __DEV__ && i && 0 < node.children.length && (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), (propName = "string" === typeof serverComponentName ? propName + @@ -2544,6 +2549,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -2617,6 +2623,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -2638,6 +2645,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -2684,6 +2692,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -3216,6 +3225,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -3387,6 +3397,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -12959,7 +12971,7 @@ __DEV__ && _currentValue2: null, _threadCount: 0 }, - needsEscaping = /["'&<>\n\t]/, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, hydrationDiffRootDEV = null, hydrationErrors = null, concurrentQueues = [], @@ -14792,14 +14804,14 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-classic-378b305958-20240710" + reconcilerVersion: "19.0.0-www-classic-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: function () { throw Error("TestRenderer does not support findFiberByHostInstance()"); }, bundleType: 1, - version: "19.0.0-www-classic-378b305958-20240710", + version: "19.0.0-www-classic-2d3f81bb6a-20240710", rendererPackageName: "react-test-renderer" }); exports._Scheduler = Scheduler; diff --git a/compiled/facebook-www/ReactTestRenderer-dev.modern.js b/compiled/facebook-www/ReactTestRenderer-dev.modern.js index 8374b5ce6e..4e8f380e2e 100644 --- a/compiled/facebook-www/ReactTestRenderer-dev.modern.js +++ b/compiled/facebook-www/ReactTestRenderer-dev.modern.js @@ -1572,7 +1572,10 @@ __DEV__ && "number" === typeof clientProps || "bigint" === typeof clientProps ) - content += describeTextDiff("" + clientProps, void 0, indent + 1); + content = + null == type + ? content + describeTextDiff("" + clientProps, null, indent + 1) + : content + describeTextDiff("" + clientProps, void 0, indent + 1); return content; } function describeSiblingFiber(fiber, indent) { @@ -1608,7 +1611,7 @@ __DEV__ && debugInfo = ""; i = node.fiber.pendingProps; if (6 === node.fiber.tag) - debugInfo = describeTextDiff(i, node.serverProps, indent); + (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++; else if ( ((serverComponentName = describeFiberType(node.fiber)), null !== serverComponentName) @@ -1636,11 +1639,12 @@ __DEV__ && indent++; } else null === node.serverProps - ? (debugInfo = describeExpandedElement( + ? ((debugInfo = describeExpandedElement( serverComponentName, i, added(indent) - )) + )), + indent++) : "string" === typeof node.serverProps ? error$jscomp$0( "Should not have matched a non HostText fiber to a Text node. This is a bug in React." @@ -1668,9 +1672,10 @@ __DEV__ && i && 0 < node.children.length && (propName += indentation(indent) + "...\n"); - node = node.serverTail; - for (i = 0; i < node.length; i++) - (serverComponentName = node[i]), + i = node.serverTail; + null === node.serverProps && indent--; + for (node = 0; node < i.length; node++) + (serverComponentName = i[node]), (propName = "string" === typeof serverComponentName ? propName + @@ -2544,6 +2549,7 @@ __DEV__ && lanes )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -2617,6 +2623,7 @@ __DEV__ && key )), (current.return = returnFiber), + (current._debugOwner = returnFiber), (current._debugInfo = currentDebugInfo), current ); @@ -2638,6 +2645,7 @@ __DEV__ && lanes )), (newChild.return = returnFiber), + (newChild._debugOwner = returnFiber), (newChild._debugInfo = currentDebugInfo), newChild ); @@ -2684,6 +2692,7 @@ __DEV__ && null )), (lanes.return = returnFiber), + (lanes._debugOwner = returnFiber), (returnFiber = pushDebugInfo(newChild._debugInfo)), (lanes._debugInfo = currentDebugInfo), (currentDebugInfo = returnFiber), @@ -3216,6 +3225,7 @@ __DEV__ && newChild.key )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), (currentFirstChild._debugInfo = currentDebugInfo), validateFragmentProps( newChild, @@ -3387,6 +3397,8 @@ __DEV__ && lanes )), (currentFirstChild.return = returnFiber), + (currentFirstChild._debugOwner = returnFiber), + (currentFirstChild._debugInfo = currentDebugInfo), (returnFiber = currentFirstChild)), placeSingleChild(returnFiber) ); @@ -12959,7 +12971,7 @@ __DEV__ && _currentValue2: null, _threadCount: 0 }, - needsEscaping = /["'&<>\n\t]/, + needsEscaping = /["'&<>\n\t]|^\s|\s$/, hydrationDiffRootDEV = null, hydrationErrors = null, concurrentQueues = [], @@ -14792,14 +14804,14 @@ __DEV__ && scheduleRoot: scheduleRoot, setRefreshHandler: setRefreshHandler, getCurrentFiber: getCurrentFiberForDevTools, - reconcilerVersion: "19.0.0-www-modern-378b305958-20240710" + reconcilerVersion: "19.0.0-www-modern-2d3f81bb6a-20240710" }); })({ findFiberByHostInstance: function () { throw Error("TestRenderer does not support findFiberByHostInstance()"); }, bundleType: 1, - version: "19.0.0-www-modern-378b305958-20240710", + version: "19.0.0-www-modern-2d3f81bb6a-20240710", rendererPackageName: "react-test-renderer" }); exports._Scheduler = Scheduler; diff --git a/compiled/facebook-www/VERSION_CLASSIC b/compiled/facebook-www/VERSION_CLASSIC index 209fe23cee..811ecc704f 100644 --- a/compiled/facebook-www/VERSION_CLASSIC +++ b/compiled/facebook-www/VERSION_CLASSIC @@ -1 +1 @@ -19.0.0-www-classic-378b305958-20240710 \ No newline at end of file +19.0.0-www-classic-2d3f81bb6a-20240710 \ No newline at end of file diff --git a/compiled/facebook-www/VERSION_MODERN b/compiled/facebook-www/VERSION_MODERN index 3943afd341..f0e33d2164 100644 --- a/compiled/facebook-www/VERSION_MODERN +++ b/compiled/facebook-www/VERSION_MODERN @@ -1 +1 @@ -19.0.0-www-modern-378b305958-20240710 \ No newline at end of file +19.0.0-www-modern-2d3f81bb6a-20240710 \ No newline at end of file diff --git a/compiled/facebook-www/__test_utils__/ReactAllWarnings.js b/compiled/facebook-www/__test_utils__/ReactAllWarnings.js index a591ef9fb3..a9694181ba 100644 --- a/compiled/facebook-www/__test_utils__/ReactAllWarnings.js +++ b/compiled/facebook-www/__test_utils__/ReactAllWarnings.js @@ -68,6 +68,7 @@ export default [ "%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.", "%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.", "<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.", + "<%s> cannot contain a nested %s.\nSee this log for the ancestor stack trace.", " is only valid if revealOrder is \"forwards\" or \"backwards\". Did you mean to specify revealOrder=\"forwards\"?", "A button can only specify a formAction along with type=\"submit\" or no type.", "A cache instance was released after it was already freed. This likely indicates a bug in React.", @@ -169,6 +170,10 @@ export default [ "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.", "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n <%s>{%s}", "Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\n root.render(%s)", + "In HTML, %s cannot be a child of <%s>.%s\nThis will cause a hydration error.%s", + "In HTML, %s cannot be a descendant of <%s>.\nThis will cause a hydration error.%s", + "In HTML, text nodes cannot be a child of <%s>.\nThis will cause a hydration error.%s", + "In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\nThis will cause a hydration error.%s", "Injected module is missing getNodeFromInstance or getInstanceFromNode.", "Internal React Error: React expected bootstrap script or module with src \"%s\" to not have been preloaded already. please file an issue", "Internal React error: A listener was unexpectedly attached to a \"noop\" thenable. This is a bug in React. Please file an issue.",