react-server-dom-webpack 19.0.0-rc-3edc000d-20240926 → 19.0.0-rc-d8c90fa4-20241001

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1045,6 +1045,8 @@ function parseModelString(response, parentObject, key, value) {
1045
1045
  (value = value.slice(2)),
1046
1046
  getOutlinedModel(response, value, parentObject, key, createFormData)
1047
1047
  );
1048
+ case "Z":
1049
+ return resolveErrorProd();
1048
1050
  case "i":
1049
1051
  return (
1050
1052
  (value = value.slice(2)),
@@ -1323,6 +1325,13 @@ function startAsyncIterable(response, id, iterator) {
1323
1325
  }
1324
1326
  );
1325
1327
  }
1328
+ function resolveErrorProd() {
1329
+ var error = Error(
1330
+ "An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error."
1331
+ );
1332
+ error.stack = "Error: " + error.message;
1333
+ return error;
1334
+ }
1326
1335
  function mergeBuffer(buffer, lastChunk) {
1327
1336
  for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)
1328
1337
  byteLength += buffer[i].byteLength;
@@ -1459,12 +1468,9 @@ function processFullStringRow(response, id, tag, row) {
1459
1468
  }
1460
1469
  break;
1461
1470
  case 69:
1462
- tag = JSON.parse(row).digest;
1463
- row = Error(
1464
- "An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error."
1465
- );
1466
- row.stack = "Error: " + row.message;
1467
- row.digest = tag;
1471
+ tag = JSON.parse(row);
1472
+ row = resolveErrorProd();
1473
+ row.digest = tag.digest;
1468
1474
  tag = response._chunks;
1469
1475
  var chunk = tag.get(id);
1470
1476
  chunk
@@ -1524,6 +1524,17 @@
1524
1524
  createFormData
1525
1525
  )
1526
1526
  );
1527
+ case "Z":
1528
+ return (
1529
+ (value = value.slice(2)),
1530
+ getOutlinedModel(
1531
+ response,
1532
+ value,
1533
+ parentObject,
1534
+ key,
1535
+ resolveErrorDev
1536
+ )
1537
+ );
1527
1538
  case "i":
1528
1539
  return (
1529
1540
  (value = value.slice(2)),
@@ -1614,6 +1625,23 @@
1614
1625
  void 0 === environmentName ? "Server" : environmentName;
1615
1626
  this._fromJSON = createFromJSONCallback(this);
1616
1627
  }
1628
+ function resolveModel(response, id, model) {
1629
+ var chunks = response._chunks,
1630
+ chunk = chunks.get(id);
1631
+ chunk
1632
+ ? resolveModelChunk(chunk, model)
1633
+ : chunks.set(
1634
+ id,
1635
+ new ReactPromise("resolved_model", model, null, response)
1636
+ );
1637
+ }
1638
+ function resolveText(response, id, text) {
1639
+ var chunks = response._chunks,
1640
+ chunk = chunks.get(id);
1641
+ chunk && "pending" !== chunk.status
1642
+ ? chunk.reason.enqueueValue(text)
1643
+ : chunks.set(id, new ReactPromise("fulfilled", text, null, response));
1644
+ }
1617
1645
  function resolveBuffer(response, id, buffer) {
1618
1646
  var chunks = response._chunks,
1619
1647
  chunk = chunks.get(id);
@@ -1853,6 +1881,88 @@
1853
1881
  }
1854
1882
  );
1855
1883
  }
1884
+ function stopStream(response, id, row) {
1885
+ (response = response._chunks.get(id)) &&
1886
+ "fulfilled" === response.status &&
1887
+ response.reason.close("" === row ? '"$undefined"' : row);
1888
+ }
1889
+ function resolveErrorDev(response, errorInfo) {
1890
+ response = errorInfo.stack;
1891
+ var env = errorInfo.env;
1892
+ errorInfo = Error(
1893
+ errorInfo.message ||
1894
+ "An error occurred in the Server Components render but no message was provided"
1895
+ );
1896
+ var v8StyleStack = errorInfo.name + ": " + errorInfo.message;
1897
+ if (response)
1898
+ for (var i = 0; i < response.length; i++) {
1899
+ var frame = response[i],
1900
+ name = frame[0],
1901
+ filename = frame[1],
1902
+ line = frame[2];
1903
+ frame = frame[3];
1904
+ v8StyleStack = name
1905
+ ? v8StyleStack +
1906
+ ("\n at " +
1907
+ name +
1908
+ " (" +
1909
+ filename +
1910
+ ":" +
1911
+ line +
1912
+ ":" +
1913
+ frame +
1914
+ ")")
1915
+ : v8StyleStack +
1916
+ ("\n at " + filename + ":" + line + ":" + frame);
1917
+ }
1918
+ errorInfo.stack = v8StyleStack;
1919
+ errorInfo.environmentName = env;
1920
+ return errorInfo;
1921
+ }
1922
+ function resolveHint(response, code, model) {
1923
+ response = JSON.parse(model, response._fromJSON);
1924
+ model = ReactDOMSharedInternals.d;
1925
+ switch (code) {
1926
+ case "D":
1927
+ model.D(response);
1928
+ break;
1929
+ case "C":
1930
+ "string" === typeof response
1931
+ ? model.C(response)
1932
+ : model.C(response[0], response[1]);
1933
+ break;
1934
+ case "L":
1935
+ code = response[0];
1936
+ var as = response[1];
1937
+ 3 === response.length
1938
+ ? model.L(code, as, response[2])
1939
+ : model.L(code, as);
1940
+ break;
1941
+ case "m":
1942
+ "string" === typeof response
1943
+ ? model.m(response)
1944
+ : model.m(response[0], response[1]);
1945
+ break;
1946
+ case "X":
1947
+ "string" === typeof response
1948
+ ? model.X(response)
1949
+ : model.X(response[0], response[1]);
1950
+ break;
1951
+ case "S":
1952
+ "string" === typeof response
1953
+ ? model.S(response)
1954
+ : model.S(
1955
+ response[0],
1956
+ 0 === response[1] ? void 0 : response[1],
1957
+ 3 === response.length ? response[2] : void 0
1958
+ );
1959
+ break;
1960
+ case "M":
1961
+ "string" === typeof response
1962
+ ? model.M(response)
1963
+ : model.M(response[0], response[1]);
1964
+ }
1965
+ }
1856
1966
  function createFakeFunction(
1857
1967
  name,
1858
1968
  filename,
@@ -1941,9 +2051,26 @@
1941
2051
  null != debugInfo.owner &&
1942
2052
  initializeFakeStack(response, debugInfo.owner));
1943
2053
  }
2054
+ function resolveDebugInfo(response, id, debugInfo) {
2055
+ null === debugInfo.owner && null != response._debugRootOwner
2056
+ ? ((debugInfo.owner = response._debugRootOwner),
2057
+ (debugInfo.debugStack = response._debugRootStack))
2058
+ : initializeFakeStack(response, debugInfo);
2059
+ response = getChunk(response, id);
2060
+ (response._debugInfo || (response._debugInfo = [])).push(debugInfo);
2061
+ }
1944
2062
  function getCurrentStackInDEV() {
1945
2063
  return "";
1946
2064
  }
2065
+ function resolveConsoleEntry(response, value) {
2066
+ if (response._replayConsole) {
2067
+ var payload = JSON.parse(value, response._fromJSON);
2068
+ response = payload[0];
2069
+ value = payload[3];
2070
+ payload = payload.slice(4);
2071
+ bindToConsole(response, payload, value)();
2072
+ }
2073
+ }
1947
2074
  function mergeBuffer(buffer, lastChunk) {
1948
2075
  for (
1949
2076
  var l = buffer.length, byteLength = lastChunk.length, i = 0;
@@ -2040,112 +2167,35 @@
2040
2167
  resolveModule(response, id, row);
2041
2168
  break;
2042
2169
  case 72:
2043
- id = row[0];
2044
- row = row.slice(1);
2045
- response = JSON.parse(row, response._fromJSON);
2046
- row = ReactDOMSharedInternals.d;
2047
- switch (id) {
2048
- case "D":
2049
- row.D(response);
2050
- break;
2051
- case "C":
2052
- "string" === typeof response
2053
- ? row.C(response)
2054
- : row.C(response[0], response[1]);
2055
- break;
2056
- case "L":
2057
- id = response[0];
2058
- tag = response[1];
2059
- 3 === response.length
2060
- ? row.L(id, tag, response[2])
2061
- : row.L(id, tag);
2062
- break;
2063
- case "m":
2064
- "string" === typeof response
2065
- ? row.m(response)
2066
- : row.m(response[0], response[1]);
2067
- break;
2068
- case "X":
2069
- "string" === typeof response
2070
- ? row.X(response)
2071
- : row.X(response[0], response[1]);
2072
- break;
2073
- case "S":
2074
- "string" === typeof response
2075
- ? row.S(response)
2076
- : row.S(
2077
- response[0],
2078
- 0 === response[1] ? void 0 : response[1],
2079
- 3 === response.length ? response[2] : void 0
2080
- );
2081
- break;
2082
- case "M":
2083
- "string" === typeof response
2084
- ? row.M(response)
2085
- : row.M(response[0], response[1]);
2086
- }
2170
+ resolveHint(response, row[0], row.slice(1));
2087
2171
  break;
2088
2172
  case 69:
2089
- var errorInfo = JSON.parse(row);
2090
- tag = errorInfo.digest;
2091
- var env = errorInfo.env;
2092
- row = Error(
2093
- errorInfo.message ||
2094
- "An error occurred in the Server Components render but no message was provided"
2095
- );
2096
- errorInfo = errorInfo.stack;
2097
- var v8StyleStack = row.name + ": " + row.message;
2098
- if (errorInfo)
2099
- for (var i = 0; i < errorInfo.length; i++) {
2100
- var frame = errorInfo[i],
2101
- name = frame[0],
2102
- filename = frame[1],
2103
- line = frame[2];
2104
- frame = frame[3];
2105
- v8StyleStack = name
2106
- ? v8StyleStack +
2107
- ("\n at " +
2108
- name +
2109
- " (" +
2110
- filename +
2111
- ":" +
2112
- line +
2113
- ":" +
2114
- frame +
2115
- ")")
2116
- : v8StyleStack +
2117
- ("\n at " + filename + ":" + line + ":" + frame);
2118
- }
2119
- row.stack = v8StyleStack;
2120
- row.digest = tag;
2121
- row.environmentName = env;
2122
- tag = response._chunks;
2123
- (env = tag.get(id))
2124
- ? triggerErrorOnChunk(env, row)
2125
- : tag.set(id, new ReactPromise("rejected", null, row, response));
2173
+ row = JSON.parse(row);
2174
+ tag = resolveErrorDev(response, row);
2175
+ tag.digest = row.digest;
2176
+ row = response._chunks;
2177
+ var chunk = row.get(id);
2178
+ chunk
2179
+ ? triggerErrorOnChunk(chunk, tag)
2180
+ : row.set(id, new ReactPromise("rejected", null, tag, response));
2126
2181
  break;
2127
2182
  case 84:
2128
- tag = response._chunks;
2129
- (env = tag.get(id)) && "pending" !== env.status
2130
- ? env.reason.enqueueValue(row)
2131
- : tag.set(id, new ReactPromise("fulfilled", row, null, response));
2183
+ resolveText(response, id, row);
2132
2184
  break;
2133
2185
  case 68:
2134
- row = JSON.parse(row, response._fromJSON);
2135
- null === row.owner && null != response._debugRootOwner
2136
- ? ((row.owner = response._debugRootOwner),
2137
- (row.debugStack = response._debugRootStack))
2138
- : initializeFakeStack(response, row);
2139
- response = getChunk(response, id);
2140
- (response._debugInfo || (response._debugInfo = [])).push(row);
2186
+ tag = new ReactPromise("resolved_model", row, null, response);
2187
+ initializeModelChunk(tag);
2188
+ "fulfilled" === tag.status
2189
+ ? resolveDebugInfo(response, id, tag.value)
2190
+ : tag.then(
2191
+ function (v) {
2192
+ return resolveDebugInfo(response, id, v);
2193
+ },
2194
+ function () {}
2195
+ );
2141
2196
  break;
2142
2197
  case 87:
2143
- response._replayConsole &&
2144
- ((row = JSON.parse(row, response._fromJSON)),
2145
- (response = row[0]),
2146
- (id = row[3]),
2147
- (row = row.slice(4)),
2148
- bindToConsole(response, row, id)());
2198
+ resolveConsoleEntry(response, row);
2149
2199
  break;
2150
2200
  case 82:
2151
2201
  startReadableStream(response, id, void 0);
@@ -2160,18 +2210,10 @@
2160
2210
  startAsyncIterable(response, id, !0);
2161
2211
  break;
2162
2212
  case 67:
2163
- (response = response._chunks.get(id)) &&
2164
- "fulfilled" === response.status &&
2165
- response.reason.close("" === row ? '"$undefined"' : row);
2213
+ stopStream(response, id, row);
2166
2214
  break;
2167
2215
  default:
2168
- (tag = response._chunks),
2169
- (env = tag.get(id))
2170
- ? resolveModelChunk(env, row)
2171
- : tag.set(
2172
- id,
2173
- new ReactPromise("resolved_model", row, null, response)
2174
- );
2216
+ resolveModel(response, id, row);
2175
2217
  }
2176
2218
  }
2177
2219
  function createFromJSONCallback(response) {
@@ -1024,6 +1024,8 @@ function parseModelString(response, parentObject, key, value) {
1024
1024
  (value = value.slice(2)),
1025
1025
  getOutlinedModel(response, value, parentObject, key, createFormData)
1026
1026
  );
1027
+ case "Z":
1028
+ return resolveErrorProd();
1027
1029
  case "i":
1028
1030
  return (
1029
1031
  (value = value.slice(2)),
@@ -1302,6 +1304,13 @@ function startAsyncIterable(response, id, iterator) {
1302
1304
  }
1303
1305
  );
1304
1306
  }
1307
+ function resolveErrorProd() {
1308
+ var error = Error(
1309
+ "An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error."
1310
+ );
1311
+ error.stack = "Error: " + error.message;
1312
+ return error;
1313
+ }
1305
1314
  function mergeBuffer(buffer, lastChunk) {
1306
1315
  for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)
1307
1316
  byteLength += buffer[i].byteLength;
@@ -1438,12 +1447,9 @@ function processFullStringRow(response, id, tag, row) {
1438
1447
  }
1439
1448
  break;
1440
1449
  case 69:
1441
- tag = JSON.parse(row).digest;
1442
- row = Error(
1443
- "An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error."
1444
- );
1445
- row.stack = "Error: " + row.message;
1446
- row.digest = tag;
1450
+ tag = JSON.parse(row);
1451
+ row = resolveErrorProd();
1452
+ row.digest = tag.digest;
1447
1453
  tag = response._chunks;
1448
1454
  var chunk = tag.get(id);
1449
1455
  chunk
@@ -927,7 +927,8 @@
927
927
  key: key,
928
928
  owner: task.debugOwner
929
929
  };
930
- outlineModel(request, componentDebugInfo);
930
+ componentDebugInfo.props = props;
931
+ outlineComponentInfo(request, componentDebugInfo);
931
932
  emitDebugChunk(request, componentDebugID, componentDebugInfo);
932
933
  task.environmentName = componentEnv;
933
934
  }
@@ -1088,7 +1089,7 @@
1088
1089
  return (
1089
1090
  (type = task.implicitSlot),
1090
1091
  null === task.keyPath && (task.implicitSlot = !0),
1091
- (props = renderModelDestructive(
1092
+ (request = renderModelDestructive(
1092
1093
  request,
1093
1094
  task,
1094
1095
  emptyRoot,
@@ -1096,7 +1097,7 @@
1096
1097
  props.children
1097
1098
  )),
1098
1099
  (task.implicitSlot = type),
1099
- props
1100
+ request
1100
1101
  );
1101
1102
  if (
1102
1103
  null != type &&
@@ -1122,13 +1123,12 @@
1122
1123
  type._store.validated = 1;
1123
1124
  }
1124
1125
  } else return renderFunctionComponent(request, task, key, type, props);
1125
- request = key;
1126
- key = task.keyPath;
1127
- null === request
1128
- ? (request = key)
1129
- : null !== key && (request = key + "," + request);
1130
- props = [REACT_ELEMENT_TYPE, type, request, props, task.debugOwner];
1131
- task = task.implicitSlot && null !== request ? [props] : props;
1126
+ ref = task.keyPath;
1127
+ null === key ? (key = ref) : null !== ref && (key = ref + "," + key);
1128
+ null !== task.debugOwner &&
1129
+ outlineComponentInfo(request, task.debugOwner);
1130
+ request = [REACT_ELEMENT_TYPE, type, key, props, task.debugOwner];
1131
+ task = task.implicitSlot && null !== key ? [request] : request;
1132
1132
  return task;
1133
1133
  }
1134
1134
  function pingTask(request, task) {
@@ -1398,18 +1398,6 @@
1398
1398
  reader.read().then(progress).catch(error);
1399
1399
  return "$B" + newTask.id.toString(16);
1400
1400
  }
1401
- function isReactComponentInfo(value) {
1402
- return (
1403
- (("object" === typeof value.debugTask &&
1404
- null !== value.debugTask &&
1405
- "function" === typeof value.debugTask.run) ||
1406
- value.debugStack instanceof Error) &&
1407
- "undefined" === typeof value.stack &&
1408
- "string" === typeof value.name &&
1409
- "string" === typeof value.env &&
1410
- void 0 !== value.owner
1411
- );
1412
- }
1413
1401
  function renderModel(request, task, parent, key, value) {
1414
1402
  var prevKeyPath = task.keyPath,
1415
1403
  prevImplicitSlot = task.implicitSlot;
@@ -1596,6 +1584,7 @@
1596
1584
  if (value instanceof Set) return serializeSet(request, value);
1597
1585
  if ("function" === typeof FormData && value instanceof FormData)
1598
1586
  return serializeFormData(request, value);
1587
+ if (value instanceof Error) return serializeErrorValue(request, value);
1599
1588
  if (value instanceof ArrayBuffer)
1600
1589
  return serializeTypedArray(request, "A", new Uint8Array(value));
1601
1590
  if (value instanceof Int8Array)
@@ -1650,13 +1639,6 @@
1650
1639
  "Only plain objects, and a few built-ins, can be passed to Client Components from Server Components. Classes or null prototypes are not supported." +
1651
1640
  describeObjectForErrorMessage(parent, parentPropertyName)
1652
1641
  );
1653
- if (isReactComponentInfo(value))
1654
- return {
1655
- name: value.name,
1656
- env: value.env,
1657
- key: value.key,
1658
- owner: value.owner
1659
- };
1660
1642
  if ("Object" !== objectName(value))
1661
1643
  callWithDebugContextInDEV(request, task, function () {
1662
1644
  console.error(
@@ -1797,6 +1779,27 @@
1797
1779
  closeWithError(request.destination, error))
1798
1780
  : ((request.status = CLOSING), (request.fatalError = error));
1799
1781
  }
1782
+ function serializeErrorValue(request, error) {
1783
+ var env = (0, request.environmentName)();
1784
+ try {
1785
+ var message = String(error.message);
1786
+ var stack = filterStackTrace(request, error, 0);
1787
+ var errorEnv = error.environmentName;
1788
+ "string" === typeof errorEnv && (env = errorEnv);
1789
+ } catch (x) {
1790
+ (message =
1791
+ "An error occurred but serializing the error message failed."),
1792
+ (stack = []);
1793
+ }
1794
+ return (
1795
+ "$Z" +
1796
+ outlineModel(request, {
1797
+ message: message,
1798
+ stack: stack,
1799
+ env: env
1800
+ }).toString(16)
1801
+ );
1802
+ }
1800
1803
  function emitErrorChunk(request, id, digest, error) {
1801
1804
  var env = (0, request.environmentName)();
1802
1805
  try {
@@ -1831,7 +1834,7 @@
1831
1834
  request.completedRegularChunks.push(id);
1832
1835
  }
1833
1836
  function emitDebugChunk(request, id, debugInfo) {
1834
- var counter = { objectCount: 0 };
1837
+ var counter = { objectLimit: 500 };
1835
1838
  debugInfo = stringify(debugInfo, function (parentPropertyName, value) {
1836
1839
  return renderConsoleValue(
1837
1840
  request,
@@ -1845,6 +1848,32 @@
1845
1848
  id = stringToChunk(id);
1846
1849
  request.completedRegularChunks.push(id);
1847
1850
  }
1851
+ function outlineComponentInfo(request, componentInfo) {
1852
+ if (!request.writtenObjects.has(componentInfo)) {
1853
+ null != componentInfo.owner &&
1854
+ outlineComponentInfo(request, componentInfo.owner);
1855
+ var objectLimit = 10;
1856
+ null != componentInfo.stack &&
1857
+ (objectLimit += componentInfo.stack.length);
1858
+ objectLimit = { objectLimit: objectLimit };
1859
+ var componentDebugInfo = {
1860
+ name: componentInfo.name,
1861
+ env: componentInfo.env,
1862
+ key: componentInfo.key,
1863
+ owner: componentInfo.owner
1864
+ };
1865
+ componentDebugInfo.props = componentInfo.props;
1866
+ objectLimit = outlineConsoleValue(
1867
+ request,
1868
+ objectLimit,
1869
+ componentDebugInfo
1870
+ );
1871
+ request.writtenObjects.set(
1872
+ componentInfo,
1873
+ serializeByValueID(objectLimit)
1874
+ );
1875
+ }
1876
+ }
1848
1877
  function emitTypedArrayChunk(request, id, tag, typedArray) {
1849
1878
  request.pendingChunks++;
1850
1879
  var buffer = new Uint8Array(
@@ -1892,11 +1921,25 @@
1892
1921
  ((parent = request.temporaryReferences.get(value)), void 0 !== parent)
1893
1922
  )
1894
1923
  return "$T" + parent;
1895
- if (500 < counter.objectCount) return "$Y";
1896
- counter.objectCount++;
1897
1924
  parent = request.writtenObjects.get(value);
1925
+ if (void 0 !== parent) return parent;
1926
+ if (0 >= counter.objectLimit) return "$Y";
1927
+ counter.objectLimit--;
1928
+ switch (value.$$typeof) {
1929
+ case REACT_ELEMENT_TYPE:
1930
+ return (
1931
+ null != value._owner &&
1932
+ outlineComponentInfo(request, value._owner),
1933
+ [
1934
+ REACT_ELEMENT_TYPE,
1935
+ value.type,
1936
+ value.key,
1937
+ value.props,
1938
+ value._owner
1939
+ ]
1940
+ );
1941
+ }
1898
1942
  if ("function" === typeof value.then) {
1899
- if (void 0 !== parent) return parent;
1900
1943
  switch (value.status) {
1901
1944
  case "fulfilled":
1902
1945
  return (
@@ -1914,20 +1957,19 @@
1914
1957
  }
1915
1958
  return "$@";
1916
1959
  }
1917
- return void 0 !== parent
1918
- ? parent
1919
- : isArrayImpl(value)
1920
- ? value
1921
- : value instanceof Map
1960
+ return isArrayImpl(value)
1961
+ ? value
1962
+ : value instanceof Map
1963
+ ? ((value = Array.from(value)),
1964
+ "$Q" + outlineConsoleValue(request, counter, value).toString(16))
1965
+ : value instanceof Set
1922
1966
  ? ((value = Array.from(value)),
1923
- "$Q" +
1967
+ "$W" +
1924
1968
  outlineConsoleValue(request, counter, value).toString(16))
1925
- : value instanceof Set
1926
- ? ((value = Array.from(value)),
1927
- "$W" +
1928
- outlineConsoleValue(request, counter, value).toString(16))
1929
- : "function" === typeof FormData && value instanceof FormData
1930
- ? serializeFormData(request, value)
1969
+ : "function" === typeof FormData && value instanceof FormData
1970
+ ? serializeFormData(request, value)
1971
+ : value instanceof Error
1972
+ ? serializeErrorValue(request, value)
1931
1973
  : value instanceof ArrayBuffer
1932
1974
  ? serializeTypedArray(request, "A", new Uint8Array(value))
1933
1975
  : value instanceof Int8Array
@@ -1971,14 +2013,7 @@
1971
2013
  ? serializeBlob(request, value)
1972
2014
  : getIteratorFn(value)
1973
2015
  ? Array.from(value)
1974
- : isReactComponentInfo(value)
1975
- ? {
1976
- name: value.name,
1977
- env: value.env,
1978
- key: value.key,
1979
- owner: value.owner
1980
- }
1981
- : value;
2016
+ : value;
1982
2017
  }
1983
2018
  if ("string" === typeof value)
1984
2019
  return "Z" === value[value.length - 1] && originalValue instanceof Date
@@ -2023,7 +2058,10 @@
2023
2058
  value
2024
2059
  );
2025
2060
  } catch (x) {
2026
- return "unknown value";
2061
+ return (
2062
+ "Unknown Value: React could not send it from the server.\n" +
2063
+ x.message
2064
+ );
2027
2065
  }
2028
2066
  });
2029
2067
  request.pendingChunks++;
@@ -2041,8 +2079,9 @@
2041
2079
  stackTrace,
2042
2080
  args
2043
2081
  ) {
2044
- var counter = { objectCount: 0 },
2045
- env = (0, request.environmentName)();
2082
+ var counter = { objectLimit: 500 };
2083
+ null != owner && outlineComponentInfo(request, owner);
2084
+ var env = (0, request.environmentName)();
2046
2085
  methodName = [methodName, stackTrace, owner, env];
2047
2086
  methodName.push.apply(methodName, args);
2048
2087
  args = stringify(methodName, function (parentPropertyName, value) {
@@ -2055,7 +2094,10 @@
2055
2094
  value
2056
2095
  );
2057
2096
  } catch (x) {
2058
- return "unknown value";
2097
+ return (
2098
+ "Unknown Value: React could not send it from the server.\n" +
2099
+ x.message
2100
+ );
2059
2101
  }
2060
2102
  });
2061
2103
  id = serializeRowHeader("W", id) + args + "\n";
@@ -2066,7 +2108,7 @@
2066
2108
  for (var i = 0; i < debugInfo.length; i++)
2067
2109
  request.pendingChunks++,
2068
2110
  "string" === typeof debugInfo[i].name &&
2069
- outlineModel(request, debugInfo[i]),
2111
+ outlineComponentInfo(request, debugInfo[i]),
2070
2112
  emitDebugChunk(request, id, debugInfo[i]);
2071
2113
  }
2072
2114
  function emitChunk(request, task, value) {
@@ -1459,6 +1459,7 @@ function renderModelDestructive(
1459
1459
  (value = Array.from(value.entries())),
1460
1460
  "$K" + outlineModel(request, value).toString(16)
1461
1461
  );
1462
+ if (value instanceof Error) return "$Z";
1462
1463
  if (value instanceof ArrayBuffer)
1463
1464
  return serializeTypedArray(request, "A", new Uint8Array(value));
1464
1465
  if (value instanceof Int8Array)