react-server-dom-webpack 19.0.0-rc.1 → 19.1.0-canary-130095f7-20241212

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.
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  "use strict";
12
- var util = require("util");
12
+ var stream = require("stream"),
13
+ util = require("util");
13
14
  require("crypto");
14
15
  var async_hooks = require("async_hooks"),
15
16
  ReactDOM = require("react-dom"),
@@ -461,7 +462,7 @@ function getIteratorFn(maybeIterable) {
461
462
  }
462
463
  var ASYNC_ITERATOR = Symbol.asyncIterator,
463
464
  SuspenseException = Error(
464
- "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`"
465
+ "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`."
465
466
  );
466
467
  function noop$1() {}
467
468
  function trackUsedThenable(thenableState, thenable, index) {
@@ -798,13 +799,7 @@ function serializeThenable(request, task, thenable) {
798
799
  (newTask.model = thenable.value), pingTask(request, newTask), newTask.id
799
800
  );
800
801
  case "rejected":
801
- return (
802
- (task = logRecoverableError(request, thenable.reason, null)),
803
- emitErrorChunk(request, newTask.id, task),
804
- (newTask.status = 4),
805
- request.abortableTasks.delete(newTask),
806
- newTask.id
807
- );
802
+ return erroredTask(request, newTask, thenable.reason), newTask.id;
808
803
  default:
809
804
  if (12 === request.status)
810
805
  return (
@@ -835,11 +830,7 @@ function serializeThenable(request, task, thenable) {
835
830
  },
836
831
  function (reason) {
837
832
  0 === newTask.status &&
838
- ((reason = logRecoverableError(request, reason, newTask)),
839
- emitErrorChunk(request, newTask.id, reason),
840
- (newTask.status = 4),
841
- request.abortableTasks.delete(newTask),
842
- enqueueFlush(request));
833
+ (erroredTask(request, newTask, reason), enqueueFlush(request));
843
834
  }
844
835
  );
845
836
  return newTask.id;
@@ -860,29 +851,25 @@ function serializeReadableStream(request, task, stream) {
860
851
  emitChunk(request, streamTask, streamTask.model),
861
852
  enqueueFlush(request),
862
853
  reader.read().then(progress, error);
863
- } catch (x$8) {
864
- error(x$8);
854
+ } catch (x$7) {
855
+ error(x$7);
865
856
  }
866
857
  }
867
858
  function error(reason) {
868
- if (!aborted) {
869
- aborted = !0;
870
- request.abortListeners.delete(abortStream);
871
- var digest = logRecoverableError(request, reason, streamTask);
872
- emitErrorChunk(request, streamTask.id, digest);
873
- enqueueFlush(request);
874
- reader.cancel(reason).then(error, error);
875
- }
859
+ aborted ||
860
+ ((aborted = !0),
861
+ request.abortListeners.delete(abortStream),
862
+ erroredTask(request, streamTask, reason),
863
+ enqueueFlush(request),
864
+ reader.cancel(reason).then(error, error));
876
865
  }
877
866
  function abortStream(reason) {
878
- if (!aborted) {
879
- aborted = !0;
880
- request.abortListeners.delete(abortStream);
881
- var digest = logRecoverableError(request, reason, streamTask);
882
- emitErrorChunk(request, streamTask.id, digest);
883
- enqueueFlush(request);
884
- reader.cancel(reason).then(error, error);
885
- }
867
+ aborted ||
868
+ ((aborted = !0),
869
+ request.abortListeners.delete(abortStream),
870
+ erroredTask(request, streamTask, reason),
871
+ enqueueFlush(request),
872
+ reader.cancel(reason).then(error, error));
886
873
  }
887
874
  var supportsBYOB = stream.supportsBYOB;
888
875
  if (void 0 === supportsBYOB)
@@ -937,31 +924,27 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
937
924
  emitChunk(request, streamTask, streamTask.model),
938
925
  enqueueFlush(request),
939
926
  iterator.next().then(progress, error);
940
- } catch (x$9) {
941
- error(x$9);
927
+ } catch (x$8) {
928
+ error(x$8);
942
929
  }
943
930
  }
944
931
  function error(reason) {
945
- if (!aborted) {
946
- aborted = !0;
947
- request.abortListeners.delete(abortIterable);
948
- var digest = logRecoverableError(request, reason, streamTask);
949
- emitErrorChunk(request, streamTask.id, digest);
950
- enqueueFlush(request);
932
+ aborted ||
933
+ ((aborted = !0),
934
+ request.abortListeners.delete(abortIterable),
935
+ erroredTask(request, streamTask, reason),
936
+ enqueueFlush(request),
951
937
  "function" === typeof iterator.throw &&
952
- iterator.throw(reason).then(error, error);
953
- }
938
+ iterator.throw(reason).then(error, error));
954
939
  }
955
940
  function abortIterable(reason) {
956
- if (!aborted) {
957
- aborted = !0;
958
- request.abortListeners.delete(abortIterable);
959
- var digest = logRecoverableError(request, reason, streamTask);
960
- emitErrorChunk(request, streamTask.id, digest);
961
- enqueueFlush(request);
941
+ aborted ||
942
+ ((aborted = !0),
943
+ request.abortListeners.delete(abortIterable),
944
+ erroredTask(request, streamTask, reason),
945
+ enqueueFlush(request),
962
946
  "function" === typeof iterator.throw &&
963
- iterator.throw(reason).then(error, error);
964
- }
947
+ iterator.throw(reason).then(error, error));
965
948
  }
966
949
  iterable = iterable === iterator;
967
950
  var streamTask = createTask(
@@ -982,10 +965,7 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
982
965
  }
983
966
  function emitHint(request, code, model) {
984
967
  model = stringify(model);
985
- var id = request.nextChunkId++;
986
- code = "H" + code;
987
- code = id.toString(16) + ":" + code;
988
- request.completedHintChunks.push(code + model + "\n");
968
+ request.completedHintChunks.push(":H" + code + model + "\n");
989
969
  enqueueFlush(request);
990
970
  }
991
971
  function readThenable(thenable) {
@@ -1016,63 +996,57 @@ function createLazyWrapperAroundWakeable(wakeable) {
1016
996
  return { $$typeof: REACT_LAZY_TYPE, _payload: wakeable, _init: readThenable };
1017
997
  }
1018
998
  function voidHandler() {}
999
+ function processServerComponentReturnValue(request, task, Component, result) {
1000
+ if (
1001
+ "object" !== typeof result ||
1002
+ null === result ||
1003
+ result.$$typeof === CLIENT_REFERENCE_TAG$1
1004
+ )
1005
+ return result;
1006
+ if ("function" === typeof result.then)
1007
+ return "fulfilled" === result.status
1008
+ ? result.value
1009
+ : createLazyWrapperAroundWakeable(result);
1010
+ var iteratorFn = getIteratorFn(result);
1011
+ return iteratorFn
1012
+ ? ((request = {}),
1013
+ (request[Symbol.iterator] = function () {
1014
+ return iteratorFn.call(result);
1015
+ }),
1016
+ request)
1017
+ : "function" !== typeof result[ASYNC_ITERATOR] ||
1018
+ ("function" === typeof ReadableStream &&
1019
+ result instanceof ReadableStream)
1020
+ ? result
1021
+ : ((request = {}),
1022
+ (request[ASYNC_ITERATOR] = function () {
1023
+ return result[ASYNC_ITERATOR]();
1024
+ }),
1025
+ request);
1026
+ }
1019
1027
  function renderFunctionComponent(request, task, key, Component, props) {
1020
1028
  var prevThenableState = task.thenableState;
1021
1029
  task.thenableState = null;
1022
1030
  thenableIndexCounter = 0;
1023
1031
  thenableState = prevThenableState;
1024
- Component = Component(props, void 0);
1032
+ props = Component(props, void 0);
1025
1033
  if (12 === request.status)
1026
1034
  throw (
1027
- ("object" === typeof Component &&
1028
- null !== Component &&
1029
- "function" === typeof Component.then &&
1030
- Component.$$typeof !== CLIENT_REFERENCE_TAG$1 &&
1031
- Component.then(voidHandler, voidHandler),
1035
+ ("object" === typeof props &&
1036
+ null !== props &&
1037
+ "function" === typeof props.then &&
1038
+ props.$$typeof !== CLIENT_REFERENCE_TAG$1 &&
1039
+ props.then(voidHandler, voidHandler),
1032
1040
  null)
1033
1041
  );
1034
- if (
1035
- "object" === typeof Component &&
1036
- null !== Component &&
1037
- Component.$$typeof !== CLIENT_REFERENCE_TAG$1
1038
- ) {
1039
- if ("function" === typeof Component.then) {
1040
- props = Component;
1041
- if ("fulfilled" === props.status) return props.value;
1042
- Component = createLazyWrapperAroundWakeable(Component);
1043
- }
1044
- var iteratorFn = getIteratorFn(Component);
1045
- if (iteratorFn) {
1046
- var iterableChild = Component;
1047
- Component = {};
1048
- Component =
1049
- ((Component[Symbol.iterator] = function () {
1050
- return iteratorFn.call(iterableChild);
1051
- }),
1052
- Component);
1053
- } else if (
1054
- !(
1055
- "function" !== typeof Component[ASYNC_ITERATOR] ||
1056
- ("function" === typeof ReadableStream &&
1057
- Component instanceof ReadableStream)
1058
- )
1059
- ) {
1060
- var iterableChild$10 = Component;
1061
- Component = {};
1062
- Component =
1063
- ((Component[ASYNC_ITERATOR] = function () {
1064
- return iterableChild$10[ASYNC_ITERATOR]();
1065
- }),
1066
- Component);
1067
- }
1068
- }
1069
- props = task.keyPath;
1042
+ props = processServerComponentReturnValue(request, task, Component, props);
1043
+ Component = task.keyPath;
1070
1044
  prevThenableState = task.implicitSlot;
1071
1045
  null !== key
1072
- ? (task.keyPath = null === props ? key : props + "," + key)
1073
- : null === props && (task.implicitSlot = !0);
1074
- request = renderModelDestructive(request, task, emptyRoot, "", Component);
1075
- task.keyPath = props;
1046
+ ? (task.keyPath = null === Component ? key : Component + "," + key)
1047
+ : null === Component && (task.implicitSlot = !0);
1048
+ request = renderModelDestructive(request, task, emptyRoot, "", props);
1049
+ task.keyPath = Component;
1076
1050
  task.implicitSlot = prevThenableState;
1077
1051
  return request;
1078
1052
  }
@@ -1329,24 +1303,20 @@ function serializeBlob(request, blob) {
1329
1303
  );
1330
1304
  }
1331
1305
  function error(reason) {
1332
- if (!aborted) {
1333
- aborted = !0;
1334
- request.abortListeners.delete(abortBlob);
1335
- var digest = logRecoverableError(request, reason, newTask);
1336
- emitErrorChunk(request, newTask.id, digest);
1337
- enqueueFlush(request);
1338
- reader.cancel(reason).then(error, error);
1339
- }
1306
+ aborted ||
1307
+ ((aborted = !0),
1308
+ request.abortListeners.delete(abortBlob),
1309
+ erroredTask(request, newTask, reason),
1310
+ enqueueFlush(request),
1311
+ reader.cancel(reason).then(error, error));
1340
1312
  }
1341
1313
  function abortBlob(reason) {
1342
- if (!aborted) {
1343
- aborted = !0;
1344
- request.abortListeners.delete(abortBlob);
1345
- var digest = logRecoverableError(request, reason, newTask);
1346
- emitErrorChunk(request, newTask.id, digest);
1347
- enqueueFlush(request);
1348
- reader.cancel(reason).then(error, error);
1349
- }
1314
+ aborted ||
1315
+ ((aborted = !0),
1316
+ request.abortListeners.delete(abortBlob),
1317
+ erroredTask(request, newTask, reason),
1318
+ enqueueFlush(request),
1319
+ reader.cancel(reason).then(error, error));
1350
1320
  }
1351
1321
  var model = [blob.type],
1352
1322
  newTask = createTask(request, model, null, !1, request.abortableTasks),
@@ -1741,6 +1711,12 @@ function emitChunk(request, task, value) {
1741
1711
  : ((value = stringify(value, task.toJSON)),
1742
1712
  emitModelChunk(request, task.id, value));
1743
1713
  }
1714
+ function erroredTask(request, task, error) {
1715
+ request.abortableTasks.delete(task);
1716
+ task.status = 4;
1717
+ error = logRecoverableError(request, error, task);
1718
+ emitErrorChunk(request, task.id, error);
1719
+ }
1744
1720
  var emptyRoot = {};
1745
1721
  function retryTask(request, task) {
1746
1722
  if (0 === task.status) {
@@ -1786,12 +1762,7 @@ function retryTask(request, task) {
1786
1762
  task.thenableState = getThenableStateAfterSuspending();
1787
1763
  var ping = task.ping;
1788
1764
  x.then(ping, ping);
1789
- } else {
1790
- request.abortableTasks.delete(task);
1791
- task.status = 4;
1792
- var digest = logRecoverableError(request, x, task);
1793
- emitErrorChunk(request, task.id, digest);
1794
- }
1765
+ } else erroredTask(request, task, x);
1795
1766
  }
1796
1767
  } finally {
1797
1768
  }
@@ -1948,7 +1919,7 @@ function abort(request, reason) {
1948
1919
  }
1949
1920
  var abortListeners = request.abortListeners;
1950
1921
  if (0 < abortListeners.size) {
1951
- var error$23 =
1922
+ var error$22 =
1952
1923
  void 0 === reason
1953
1924
  ? Error("The render was aborted by the server without a reason.")
1954
1925
  : "object" === typeof reason &&
@@ -1957,14 +1928,14 @@ function abort(request, reason) {
1957
1928
  ? Error("The render was aborted by the server with a promise.")
1958
1929
  : reason;
1959
1930
  abortListeners.forEach(function (callback) {
1960
- return callback(error$23);
1931
+ return callback(error$22);
1961
1932
  });
1962
1933
  abortListeners.clear();
1963
1934
  }
1964
1935
  null !== request.destination &&
1965
1936
  flushCompletedChunks(request, request.destination);
1966
- } catch (error$24) {
1967
- logRecoverableError(request, error$24, null), fatalError(request, error$24);
1937
+ } catch (error$23) {
1938
+ logRecoverableError(request, error$23, null), fatalError(request, error$23);
1968
1939
  }
1969
1940
  }
1970
1941
  function resolveServerReference(bundlerConfig, id) {
@@ -2375,8 +2346,8 @@ function parseReadableStream(response, reference, type) {
2375
2346
  (previousBlockedChunk = chunk));
2376
2347
  } else {
2377
2348
  chunk = previousBlockedChunk;
2378
- var chunk$27 = createPendingChunk(response);
2379
- chunk$27.then(
2349
+ var chunk$26 = createPendingChunk(response);
2350
+ chunk$26.then(
2380
2351
  function (v) {
2381
2352
  return controller.enqueue(v);
2382
2353
  },
@@ -2384,10 +2355,10 @@ function parseReadableStream(response, reference, type) {
2384
2355
  return controller.error(e);
2385
2356
  }
2386
2357
  );
2387
- previousBlockedChunk = chunk$27;
2358
+ previousBlockedChunk = chunk$26;
2388
2359
  chunk.then(function () {
2389
- previousBlockedChunk === chunk$27 && (previousBlockedChunk = null);
2390
- resolveModelChunk(chunk$27, json, -1);
2360
+ previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2361
+ resolveModelChunk(chunk$26, json, -1);
2391
2362
  });
2392
2363
  }
2393
2364
  },
@@ -2664,6 +2635,19 @@ function createCancelHandler(request, reason) {
2664
2635
  abort(request, Error(reason));
2665
2636
  };
2666
2637
  }
2638
+ function createFakeWritable(readable) {
2639
+ return {
2640
+ write: function (chunk) {
2641
+ return readable.push(chunk);
2642
+ },
2643
+ end: function () {
2644
+ readable.push(null);
2645
+ },
2646
+ destroy: function (error) {
2647
+ readable.destroy(error);
2648
+ }
2649
+ };
2650
+ }
2667
2651
  exports.createClientModuleProxy = function (moduleId) {
2668
2652
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
2669
2653
  return new Proxy(moduleId, proxyHandlers$1);
@@ -2745,12 +2729,12 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
2745
2729
  "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."
2746
2730
  );
2747
2731
  pendingFiles++;
2748
- var JSCompiler_object_inline_chunks_216 = [];
2732
+ var JSCompiler_object_inline_chunks_214 = [];
2749
2733
  value.on("data", function (chunk) {
2750
- JSCompiler_object_inline_chunks_216.push(chunk);
2734
+ JSCompiler_object_inline_chunks_214.push(chunk);
2751
2735
  });
2752
2736
  value.on("end", function () {
2753
- var blob = new Blob(JSCompiler_object_inline_chunks_216, {
2737
+ var blob = new Blob(JSCompiler_object_inline_chunks_214, {
2754
2738
  type: mimeType
2755
2739
  });
2756
2740
  response._formData.append(name, blob, filename);
@@ -2835,3 +2819,40 @@ exports.renderToPipeableStream = function (model, webpackMap, options) {
2835
2819
  }
2836
2820
  };
2837
2821
  };
2822
+ exports.unstable_prerenderToNodeStream = function (model, webpackMap, options) {
2823
+ return new Promise(function (resolve, reject) {
2824
+ var request = new RequestInstance(
2825
+ 21,
2826
+ model,
2827
+ webpackMap,
2828
+ options ? options.onError : void 0,
2829
+ options ? options.identifierPrefix : void 0,
2830
+ options ? options.onPostpone : void 0,
2831
+ options ? options.temporaryReferences : void 0,
2832
+ void 0,
2833
+ void 0,
2834
+ function () {
2835
+ var readable = new stream.Readable({
2836
+ read: function () {
2837
+ startFlowing(request, writable);
2838
+ }
2839
+ }),
2840
+ writable = createFakeWritable(readable);
2841
+ resolve({ prelude: readable });
2842
+ },
2843
+ reject
2844
+ );
2845
+ if (options && options.signal) {
2846
+ var signal = options.signal;
2847
+ if (signal.aborted) abort(request, signal.reason);
2848
+ else {
2849
+ var listener = function () {
2850
+ abort(request, signal.reason);
2851
+ signal.removeEventListener("abort", listener);
2852
+ };
2853
+ signal.addEventListener("abort", listener);
2854
+ }
2855
+ }
2856
+ startWork(request);
2857
+ });
2858
+ };
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.1",
4
+ "version": "19.1.0-canary-130095f7-20241212",
5
5
  "keywords": [
6
6
  "react"
7
7
  ],
@@ -99,8 +99,8 @@
99
99
  "node": ">=0.10.0"
100
100
  },
101
101
  "peerDependencies": {
102
- "react": "19.0.0-rc.1",
103
- "react-dom": "19.0.0-rc.1",
102
+ "react": "19.1.0-canary-130095f7-20241212",
103
+ "react-dom": "19.1.0-canary-130095f7-20241212",
104
104
  "webpack": "^5.59.0"
105
105
  },
106
106
  "dependencies": {
package/static.browser.js CHANGED
@@ -7,6 +7,6 @@ if (process.env.NODE_ENV === 'production') {
7
7
  s = require('./cjs/react-server-dom-webpack-server.browser.development.js');
8
8
  }
9
9
 
10
- if (s.prerender) {
11
- exports.prerender = s.prerender;
10
+ if (s.unstable_prerender) {
11
+ exports.unstable_prerender = s.unstable_prerender;
12
12
  }
package/static.edge.js CHANGED
@@ -7,6 +7,6 @@ if (process.env.NODE_ENV === 'production') {
7
7
  s = require('./cjs/react-server-dom-webpack-server.edge.development.js');
8
8
  }
9
9
 
10
- if (s.prerender) {
11
- exports.prerender = s.prerender;
10
+ if (s.unstable_prerender) {
11
+ exports.unstable_prerender = s.unstable_prerender;
12
12
  }
package/static.node.js CHANGED
@@ -7,6 +7,6 @@ if (process.env.NODE_ENV === 'production') {
7
7
  s = require('./cjs/react-server-dom-webpack-server.node.development.js');
8
8
  }
9
9
 
10
- if (s.prerenderToNodeStream) {
11
- exports.prerenderToNodeStream = s.prerenderToNodeStream;
10
+ if (s.unstable_prerenderToNodeStream) {
11
+ exports.unstable_prerenderToNodeStream = s.unstable_prerenderToNodeStream;
12
12
  }
@@ -7,6 +7,6 @@ if (process.env.NODE_ENV === 'production') {
7
7
  s = require('./cjs/react-server-dom-webpack-server.node.unbundled.development.js');
8
8
  }
9
9
 
10
- if (s.prerenderToNodeStream) {
11
- exports.prerenderToNodeStream = s.prerenderToNodeStream;
10
+ if (s.unstable_prerenderToNodeStream) {
11
+ exports.unstable_prerenderToNodeStream = s.unstable_prerenderToNodeStream;
12
12
  }