react-server-dom-webpack 19.0.0-rc-99da76f23a-20240606 → 19.0.0-rc-cc1ec60d0d-20240607

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.
@@ -14,6 +14,7 @@ require("crypto");
14
14
  var async_hooks = require("async_hooks"),
15
15
  ReactDOM = require("react-dom"),
16
16
  React = require("react"),
17
+ scheduleMicrotask = queueMicrotask,
17
18
  currentView = null,
18
19
  writtenBytes = 0,
19
20
  destinationHasCapacity = !0;
@@ -707,7 +708,8 @@ if (!ReactSharedInternalsServer)
707
708
  'The "react" package in this environment is not configured correctly. The "react-server" condition must be enabled in any environment that runs React Server Components.'
708
709
  );
709
710
  var ObjectPrototype = Object.prototype,
710
- stringify = JSON.stringify;
711
+ stringify = JSON.stringify,
712
+ AbortSigil = {};
711
713
  function defaultErrorHandler(error) {
712
714
  console.error(error);
713
715
  }
@@ -788,6 +790,14 @@ function serializeThenable(request, task, thenable) {
788
790
  newTask.id
789
791
  );
790
792
  default:
793
+ if (1 === request.status)
794
+ return (
795
+ (newTask.status = 3),
796
+ (task = stringify(serializeByValueID(request.fatalError))),
797
+ emitModelChunk(request, newTask.id, task),
798
+ request.abortableTasks.delete(newTask),
799
+ newTask.id
800
+ );
791
801
  "string" !== typeof thenable.status &&
792
802
  ((thenable.status = "pending"),
793
803
  thenable.then(
@@ -973,6 +983,7 @@ function renderFunctionComponent(request, task, key, Component, props) {
973
983
  thenableIndexCounter = 0;
974
984
  thenableState = prevThenableState;
975
985
  Component = Component(props, void 0);
986
+ if (1 === request.status) throw AbortSigil;
976
987
  if (
977
988
  "object" === typeof Component &&
978
989
  null !== Component &&
@@ -1070,6 +1081,7 @@ function renderElement(request, task, type, key, ref, props) {
1070
1081
  case REACT_LAZY_TYPE:
1071
1082
  var init = type._init;
1072
1083
  type = init(type._payload);
1084
+ if (1 === request.status) throw AbortSigil;
1073
1085
  return renderElement(request, task, type, key, ref, props);
1074
1086
  case REACT_FORWARD_REF_TYPE:
1075
1087
  return renderFunctionComponent(request, task, key, type.render, props);
@@ -1086,7 +1098,7 @@ function pingTask(request, task) {
1086
1098
  pingedTasks.push(task);
1087
1099
  1 === pingedTasks.length &&
1088
1100
  ((request.flushScheduled = null !== request.destination),
1089
- setImmediate(function () {
1101
+ scheduleMicrotask(function () {
1090
1102
  return performWork(request);
1091
1103
  }));
1092
1104
  }
@@ -1120,50 +1132,61 @@ function createTask(request, model, keyPath, implicitSlot, abortSet) {
1120
1132
  );
1121
1133
  } catch (thrownValue) {
1122
1134
  if (
1123
- ((parentPropertyName =
1135
+ ((parentPropertyName = task.model),
1136
+ (parentPropertyName =
1137
+ "object" === typeof parentPropertyName &&
1138
+ null !== parentPropertyName &&
1139
+ (parentPropertyName.$$typeof === REACT_ELEMENT_TYPE ||
1140
+ parentPropertyName.$$typeof === REACT_LAZY_TYPE)),
1141
+ (value =
1124
1142
  thrownValue === SuspenseException
1125
1143
  ? getSuspendedThenable()
1126
1144
  : thrownValue),
1127
- (value = task.model),
1128
- (value =
1129
- "object" === typeof value &&
1145
+ "object" === typeof value &&
1130
1146
  null !== value &&
1131
- (value.$$typeof === REACT_ELEMENT_TYPE ||
1132
- value.$$typeof === REACT_LAZY_TYPE)),
1133
- "object" === typeof parentPropertyName &&
1134
- null !== parentPropertyName &&
1135
- "function" === typeof parentPropertyName.then)
1136
- ) {
1137
- JSCompiler_inline_result = createTask(
1138
- request,
1139
- task.model,
1140
- task.keyPath,
1141
- task.implicitSlot,
1142
- request.abortableTasks
1143
- );
1144
- var ping = JSCompiler_inline_result.ping;
1145
- parentPropertyName.then(ping, ping);
1146
- JSCompiler_inline_result.thenableState =
1147
- getThenableStateAfterSuspending();
1148
- task.keyPath = prevKeyPath;
1149
- task.implicitSlot = prevImplicitSlot;
1150
- JSCompiler_inline_result = value
1151
- ? "$L" + JSCompiler_inline_result.id.toString(16)
1152
- : serializeByValueID(JSCompiler_inline_result.id);
1153
- } else if (
1147
+ "function" === typeof value.then)
1148
+ )
1149
+ if (1 === request.status)
1150
+ (task.status = 3),
1151
+ (prevKeyPath = request.fatalError),
1152
+ (JSCompiler_inline_result = parentPropertyName
1153
+ ? "$L" + prevKeyPath.toString(16)
1154
+ : serializeByValueID(prevKeyPath));
1155
+ else {
1156
+ JSCompiler_inline_result = createTask(
1157
+ request,
1158
+ task.model,
1159
+ task.keyPath,
1160
+ task.implicitSlot,
1161
+ request.abortableTasks
1162
+ );
1163
+ var ping = JSCompiler_inline_result.ping;
1164
+ value.then(ping, ping);
1165
+ JSCompiler_inline_result.thenableState =
1166
+ getThenableStateAfterSuspending();
1167
+ task.keyPath = prevKeyPath;
1168
+ task.implicitSlot = prevImplicitSlot;
1169
+ JSCompiler_inline_result = parentPropertyName
1170
+ ? "$L" + JSCompiler_inline_result.id.toString(16)
1171
+ : serializeByValueID(JSCompiler_inline_result.id);
1172
+ }
1173
+ else if (thrownValue === AbortSigil)
1174
+ (task.status = 3),
1175
+ (prevKeyPath = request.fatalError),
1176
+ (JSCompiler_inline_result = parentPropertyName
1177
+ ? "$L" + prevKeyPath.toString(16)
1178
+ : serializeByValueID(prevKeyPath));
1179
+ else if (
1154
1180
  ((task.keyPath = prevKeyPath),
1155
1181
  (task.implicitSlot = prevImplicitSlot),
1156
- value)
1182
+ parentPropertyName)
1157
1183
  )
1158
1184
  request.pendingChunks++,
1159
1185
  (prevKeyPath = request.nextChunkId++),
1160
- (prevImplicitSlot = logRecoverableError(
1161
- request,
1162
- parentPropertyName
1163
- )),
1186
+ (prevImplicitSlot = logRecoverableError(request, value)),
1164
1187
  emitErrorChunk(request, prevKeyPath, prevImplicitSlot),
1165
1188
  (JSCompiler_inline_result = "$L" + prevKeyPath.toString(16));
1166
- else throw parentPropertyName;
1189
+ else throw value;
1167
1190
  }
1168
1191
  return JSCompiler_inline_result;
1169
1192
  },
@@ -1314,12 +1337,11 @@ function renderModelDestructive(
1314
1337
  parentPropertyName
1315
1338
  );
1316
1339
  case REACT_LAZY_TYPE:
1317
- return (
1318
- (task.thenableState = null),
1319
- (parentPropertyName = value._init),
1320
- (value = parentPropertyName(value._payload)),
1321
- renderModelDestructive(request, task, emptyRoot, "", value)
1322
- );
1340
+ task.thenableState = null;
1341
+ parentPropertyName = value._init;
1342
+ value = parentPropertyName(value._payload);
1343
+ if (1 === request.status) throw AbortSigil;
1344
+ return renderModelDestructive(request, task, emptyRoot, "", value);
1323
1345
  case REACT_LEGACY_ELEMENT_TYPE:
1324
1346
  throw Error(
1325
1347
  'A React Element from an older version of React was rendered. This is not supported. It can happen if:\n- Multiple copies of the "react" package is used.\n- A library pre-bundled an old copy of "react" or "react/jsx-runtime".\n- A compiler tries to "inline" JSX instead of using the runtime.'
@@ -1579,14 +1601,18 @@ function logRecoverableError(request, error) {
1579
1601
  }
1580
1602
  function fatalError(request, error) {
1581
1603
  null !== request.destination
1582
- ? ((request.status = 2), request.destination.destroy(error))
1583
- : ((request.status = 1), (request.fatalError = error));
1604
+ ? ((request.status = 3), request.destination.destroy(error))
1605
+ : ((request.status = 2), (request.fatalError = error));
1584
1606
  }
1585
1607
  function emitErrorChunk(request, id, digest) {
1586
1608
  digest = { digest: digest };
1587
1609
  id = id.toString(16) + ":E" + stringify(digest) + "\n";
1588
1610
  request.completedErrorChunks.push(id);
1589
1611
  }
1612
+ function emitModelChunk(request, id, json) {
1613
+ id = id.toString(16) + ":" + json + "\n";
1614
+ request.completedRegularChunks.push(id);
1615
+ }
1590
1616
  function emitTypedArrayChunk(request, id, tag, typedArray) {
1591
1617
  request.pendingChunks++;
1592
1618
  typedArray = new Uint8Array(
@@ -1638,12 +1664,12 @@ function emitChunk(request, task, value) {
1638
1664
  : value instanceof DataView
1639
1665
  ? emitTypedArrayChunk(request, id, "V", value)
1640
1666
  : ((value = stringify(value, task.toJSON)),
1641
- (task = task.id.toString(16) + ":" + value + "\n"),
1642
- request.completedRegularChunks.push(task));
1667
+ emitModelChunk(request, task.id, value));
1643
1668
  }
1644
1669
  var emptyRoot = {};
1645
1670
  function retryTask(request, task) {
1646
- if (0 === task.status)
1671
+ if (0 === task.status) {
1672
+ task.status = 5;
1647
1673
  try {
1648
1674
  modelRoot = task.model;
1649
1675
  var resolvedModel = renderModelDestructive(
@@ -1660,9 +1686,8 @@ function retryTask(request, task) {
1660
1686
  request.writtenObjects.set(resolvedModel, serializeByValueID(task.id)),
1661
1687
  emitChunk(request, task, resolvedModel);
1662
1688
  else {
1663
- var json = stringify(resolvedModel),
1664
- processedChunk = task.id.toString(16) + ":" + json + "\n";
1665
- request.completedRegularChunks.push(processedChunk);
1689
+ var json = stringify(resolvedModel);
1690
+ emitModelChunk(request, task.id, json);
1666
1691
  }
1667
1692
  request.abortableTasks.delete(task);
1668
1693
  task.status = 1;
@@ -1671,10 +1696,23 @@ function retryTask(request, task) {
1671
1696
  thrownValue === SuspenseException
1672
1697
  ? getSuspendedThenable()
1673
1698
  : thrownValue;
1674
- if ("object" === typeof x && null !== x && "function" === typeof x.then) {
1675
- var ping = task.ping;
1676
- x.then(ping, ping);
1677
- task.thenableState = getThenableStateAfterSuspending();
1699
+ if ("object" === typeof x && null !== x && "function" === typeof x.then)
1700
+ if (1 === request.status) {
1701
+ request.abortableTasks.delete(task);
1702
+ task.status = 3;
1703
+ var model = stringify(serializeByValueID(request.fatalError));
1704
+ emitModelChunk(request, task.id, model);
1705
+ } else {
1706
+ task.status = 0;
1707
+ task.thenableState = getThenableStateAfterSuspending();
1708
+ var ping = task.ping;
1709
+ x.then(ping, ping);
1710
+ }
1711
+ else if (x === AbortSigil) {
1712
+ request.abortableTasks.delete(task);
1713
+ task.status = 3;
1714
+ var model$19 = stringify(serializeByValueID(request.fatalError));
1715
+ emitModelChunk(request, task.id, model$19);
1678
1716
  } else {
1679
1717
  request.abortableTasks.delete(task);
1680
1718
  task.status = 4;
@@ -1683,6 +1721,7 @@ function retryTask(request, task) {
1683
1721
  }
1684
1722
  } finally {
1685
1723
  }
1724
+ }
1686
1725
  }
1687
1726
  function performWork(request) {
1688
1727
  var prevDispatcher = ReactSharedInternalsServer.H;
@@ -1764,7 +1803,7 @@ function flushCompletedChunks(request, destination) {
1764
1803
  }
1765
1804
  "function" === typeof destination.flush && destination.flush();
1766
1805
  0 === request.pendingChunks &&
1767
- (destination.end(), (request.destination = null));
1806
+ ((request.status = 3), destination.end(), (request.destination = null));
1768
1807
  }
1769
1808
  function startWork(request) {
1770
1809
  request.flushScheduled = null !== request.destination;
@@ -1773,22 +1812,20 @@ function startWork(request) {
1773
1812
  });
1774
1813
  }
1775
1814
  function enqueueFlush(request) {
1776
- if (
1777
- !1 === request.flushScheduled &&
1815
+ !1 === request.flushScheduled &&
1778
1816
  0 === request.pingedTasks.length &&
1779
- null !== request.destination
1780
- ) {
1781
- var destination = request.destination;
1782
- request.flushScheduled = !0;
1817
+ null !== request.destination &&
1818
+ ((request.flushScheduled = !0),
1783
1819
  setImmediate(function () {
1784
- return flushCompletedChunks(request, destination);
1785
- });
1786
- }
1820
+ request.flushScheduled = !1;
1821
+ var destination = request.destination;
1822
+ destination && flushCompletedChunks(request, destination);
1823
+ }));
1787
1824
  }
1788
1825
  function startFlowing(request, destination) {
1789
- if (1 === request.status)
1790
- (request.status = 2), destination.destroy(request.fatalError);
1791
- else if (2 !== request.status && null === request.destination) {
1826
+ if (2 === request.status)
1827
+ (request.status = 3), destination.destroy(request.fatalError);
1828
+ else if (3 !== request.status && null === request.destination) {
1792
1829
  request.destination = destination;
1793
1830
  try {
1794
1831
  flushCompletedChunks(request, destination);
@@ -1799,39 +1836,51 @@ function startFlowing(request, destination) {
1799
1836
  }
1800
1837
  function abort(request, reason) {
1801
1838
  try {
1839
+ request.status = 1;
1802
1840
  var abortableTasks = request.abortableTasks;
1803
1841
  if (0 < abortableTasks.size) {
1804
1842
  request.pendingChunks++;
1805
- var errorId = request.nextChunkId++,
1806
- error =
1843
+ var errorId = request.nextChunkId++;
1844
+ request.fatalError = errorId;
1845
+ var error =
1807
1846
  void 0 === reason
1808
1847
  ? Error("The render was aborted by the server without a reason.")
1848
+ : "object" === typeof reason &&
1849
+ null !== reason &&
1850
+ "function" === typeof reason.then
1851
+ ? Error("The render was aborted by the server with a promise.")
1809
1852
  : reason,
1810
1853
  digest = logRecoverableError(request, error);
1811
1854
  emitErrorChunk(request, errorId, digest, error);
1812
1855
  abortableTasks.forEach(function (task) {
1813
- task.status = 3;
1814
- var ref = serializeByValueID(errorId);
1815
- task = encodeReferenceChunk(request, task.id, ref);
1816
- request.completedErrorChunks.push(task);
1856
+ if (5 !== task.status) {
1857
+ task.status = 3;
1858
+ var ref = serializeByValueID(errorId);
1859
+ task = encodeReferenceChunk(request, task.id, ref);
1860
+ request.completedErrorChunks.push(task);
1861
+ }
1817
1862
  });
1818
1863
  abortableTasks.clear();
1819
1864
  }
1820
1865
  var abortListeners = request.abortListeners;
1821
1866
  if (0 < abortListeners.size) {
1822
- var error$22 =
1867
+ var error$26 =
1823
1868
  void 0 === reason
1824
1869
  ? Error("The render was aborted by the server without a reason.")
1870
+ : "object" === typeof reason &&
1871
+ null !== reason &&
1872
+ "function" === typeof reason.then
1873
+ ? Error("The render was aborted by the server with a promise.")
1825
1874
  : reason;
1826
1875
  abortListeners.forEach(function (callback) {
1827
- return callback(error$22);
1876
+ return callback(error$26);
1828
1877
  });
1829
1878
  abortListeners.clear();
1830
1879
  }
1831
1880
  null !== request.destination &&
1832
1881
  flushCompletedChunks(request, request.destination);
1833
- } catch (error$23) {
1834
- logRecoverableError(request, error$23), fatalError(request, error$23);
1882
+ } catch (error$27) {
1883
+ logRecoverableError(request, error$27), fatalError(request, error$27);
1835
1884
  }
1836
1885
  }
1837
1886
  function resolveServerReference(bundlerConfig, id) {
@@ -2242,8 +2291,8 @@ function parseReadableStream(response, reference, type) {
2242
2291
  (previousBlockedChunk = chunk));
2243
2292
  } else {
2244
2293
  chunk = previousBlockedChunk;
2245
- var chunk$26 = createPendingChunk(response);
2246
- chunk$26.then(
2294
+ var chunk$30 = createPendingChunk(response);
2295
+ chunk$30.then(
2247
2296
  function (v) {
2248
2297
  return controller.enqueue(v);
2249
2298
  },
@@ -2251,10 +2300,10 @@ function parseReadableStream(response, reference, type) {
2251
2300
  return controller.error(e);
2252
2301
  }
2253
2302
  );
2254
- previousBlockedChunk = chunk$26;
2303
+ previousBlockedChunk = chunk$30;
2255
2304
  chunk.then(function () {
2256
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2257
- resolveModelChunk(chunk$26, json, -1);
2305
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2306
+ resolveModelChunk(chunk$30, json, -1);
2258
2307
  });
2259
2308
  }
2260
2309
  },
@@ -2612,12 +2661,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
2612
2661
  "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
2613
2662
  );
2614
2663
  pendingFiles++;
2615
- var JSCompiler_object_inline_chunks_216 = [];
2664
+ var JSCompiler_object_inline_chunks_201 = [];
2616
2665
  value.on("data", function (chunk) {
2617
- JSCompiler_object_inline_chunks_216.push(chunk);
2666
+ JSCompiler_object_inline_chunks_201.push(chunk);
2618
2667
  });
2619
2668
  value.on("end", function () {
2620
- var blob = new Blob(JSCompiler_object_inline_chunks_216, {
2669
+ var blob = new Blob(JSCompiler_object_inline_chunks_201, {
2621
2670
  type: mimeType
2622
2671
  });
2623
2672
  response._formData.append(name, blob, filename);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-server-dom-webpack",
3
3
  "description": "React Server Components bindings for DOM using Webpack. This is intended to be integrated into meta-frameworks. It is not intended to be imported directly.",
4
- "version": "19.0.0-rc-99da76f23a-20240606",
4
+ "version": "19.0.0-rc-cc1ec60d0d-20240607",
5
5
  "keywords": [
6
6
  "react"
7
7
  ],
@@ -77,8 +77,8 @@
77
77
  "node": ">=0.10.0"
78
78
  },
79
79
  "peerDependencies": {
80
- "react": "19.0.0-rc-99da76f23a-20240606",
81
- "react-dom": "19.0.0-rc-99da76f23a-20240606",
80
+ "react": "19.0.0-rc-cc1ec60d0d-20240607",
81
+ "react-dom": "19.0.0-rc-cc1ec60d0d-20240607",
82
82
  "webpack": "^5.59.0"
83
83
  },
84
84
  "dependencies": {