react-server-dom-webpack 19.0.0-canary-33a32441e9-20240418 → 19.0.0-canary-cb151849e1-20240424

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.
Files changed (46) hide show
  1. package/cjs/react-server-dom-webpack-client.browser.development.js +36 -8
  2. package/cjs/react-server-dom-webpack-client.browser.production.js +768 -1652
  3. package/cjs/react-server-dom-webpack-client.edge.development.js +36 -8
  4. package/cjs/react-server-dom-webpack-client.edge.production.js +894 -1863
  5. package/cjs/react-server-dom-webpack-client.node.development.js +36 -8
  6. package/cjs/react-server-dom-webpack-client.node.production.js +870 -1818
  7. package/cjs/react-server-dom-webpack-client.node.unbundled.development.js +36 -8
  8. package/cjs/react-server-dom-webpack-client.node.unbundled.production.js +854 -1776
  9. package/cjs/react-server-dom-webpack-node-register.js +68 -13
  10. package/cjs/react-server-dom-webpack-plugin.js +398 -23
  11. package/cjs/react-server-dom-webpack-server.browser.development.js +87 -15
  12. package/cjs/react-server-dom-webpack-server.browser.production.js +1590 -3050
  13. package/cjs/react-server-dom-webpack-server.edge.development.js +87 -15
  14. package/cjs/react-server-dom-webpack-server.edge.production.js +1586 -3029
  15. package/cjs/react-server-dom-webpack-server.node.development.js +87 -15
  16. package/cjs/react-server-dom-webpack-server.node.production.js +1720 -3239
  17. package/cjs/react-server-dom-webpack-server.node.unbundled.development.js +87 -15
  18. package/cjs/react-server-dom-webpack-server.node.unbundled.production.js +1702 -3180
  19. package/client.browser.js +1 -1
  20. package/client.edge.js +1 -1
  21. package/client.node.js +1 -1
  22. package/client.node.unbundled.js +1 -1
  23. package/esm/{react-server-dom-webpack-node-loader.production.min.js → react-server-dom-webpack-node-loader.production.js} +1 -1
  24. package/package.json +4 -4
  25. package/server.browser.js +1 -1
  26. package/server.edge.js +1 -1
  27. package/server.node.js +1 -1
  28. package/server.node.unbundled.js +1 -1
  29. package/cjs/react-server-dom-webpack-client.browser.production.min.js +0 -40
  30. package/cjs/react-server-dom-webpack-client.browser.production.min.js.map +0 -1
  31. package/cjs/react-server-dom-webpack-client.edge.production.min.js +0 -46
  32. package/cjs/react-server-dom-webpack-client.edge.production.min.js.map +0 -1
  33. package/cjs/react-server-dom-webpack-client.node.production.min.js +0 -45
  34. package/cjs/react-server-dom-webpack-client.node.production.min.js.map +0 -1
  35. package/cjs/react-server-dom-webpack-client.node.unbundled.production.min.js +0 -44
  36. package/cjs/react-server-dom-webpack-client.node.unbundled.production.min.js.map +0 -1
  37. package/cjs/react-server-dom-webpack-node-register.js.map +0 -1
  38. package/cjs/react-server-dom-webpack-plugin.js.map +0 -1
  39. package/cjs/react-server-dom-webpack-server.browser.production.min.js +0 -82
  40. package/cjs/react-server-dom-webpack-server.browser.production.min.js.map +0 -1
  41. package/cjs/react-server-dom-webpack-server.edge.production.min.js +0 -83
  42. package/cjs/react-server-dom-webpack-server.edge.production.min.js.map +0 -1
  43. package/cjs/react-server-dom-webpack-server.node.production.min.js +0 -86
  44. package/cjs/react-server-dom-webpack-server.node.production.min.js.map +0 -1
  45. package/cjs/react-server-dom-webpack-server.node.unbundled.production.min.js +0 -84
  46. package/cjs/react-server-dom-webpack-server.node.unbundled.production.min.js.map +0 -1
@@ -17,6 +17,21 @@ if (process.env.NODE_ENV !== "production") {
17
17
  var React = require('react');
18
18
  var ReactDOM = require('react-dom');
19
19
 
20
+ function _defineProperty(obj, key, value) {
21
+ if (key in obj) {
22
+ Object.defineProperty(obj, key, {
23
+ value: value,
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true
27
+ });
28
+ } else {
29
+ obj[key] = value;
30
+ }
31
+
32
+ return obj;
33
+ }
34
+
20
35
  var ReactSharedInternalsServer = // $FlowFixMe: It's defined in the one we resolve to.
21
36
  React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
22
37
 
@@ -831,11 +846,7 @@ function createTemporaryReference(id) {
831
846
  return new Proxy(reference, proxyHandlers);
832
847
  }
833
848
 
834
- // ATTENTION
835
- // When adding new symbols to this file,
836
- // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
837
- // The Symbol used to tag the ReactElement-like types.
838
- var REACT_ELEMENT_TYPE = Symbol.for('react.element');
849
+ var REACT_ELEMENT_TYPE = Symbol.for('react.transitional.element') ;
839
850
  var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
840
851
  var REACT_CONTEXT_TYPE = Symbol.for('react.context');
841
852
  var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
@@ -1759,18 +1770,56 @@ function renderFunctionComponent(request, task, key, Component, props, owner) {
1759
1770
  }
1760
1771
  }
1761
1772
 
1762
- if (typeof result === 'object' && result !== null && typeof result.then === 'function') {
1763
- // When the return value is in children position we can resolve it immediately,
1764
- // to its value without a wrapper if it's synchronously available.
1765
- var thenable = result;
1773
+ if (typeof result === 'object' && result !== null) {
1774
+ if (typeof result.then === 'function') {
1775
+ // When the return value is in children position we can resolve it immediately,
1776
+ // to its value without a wrapper if it's synchronously available.
1777
+ var thenable = result;
1778
+
1779
+ if (thenable.status === 'fulfilled') {
1780
+ return thenable.value;
1781
+ } // TODO: Once we accept Promises as children on the client, we can just return
1782
+ // the thenable here.
1783
+
1766
1784
 
1767
- if (thenable.status === 'fulfilled') {
1768
- return thenable.value;
1769
- } // TODO: Once we accept Promises as children on the client, we can just return
1770
- // the thenable here.
1785
+ result = createLazyWrapperAroundWakeable(result);
1786
+ } // Normally we'd serialize an Iterator/AsyncIterator as a single-shot which is not compatible
1787
+ // to be rendered as a React Child. However, because we have the function to recreate
1788
+ // an iterable from rendering the element again, we can effectively treat it as multi-
1789
+ // shot. Therefore we treat this as an Iterable/AsyncIterable, whether it was one or not, by
1790
+ // adding a wrapper so that this component effectively renders down to an AsyncIterable.
1771
1791
 
1772
1792
 
1773
- result = createLazyWrapperAroundWakeable(result);
1793
+ var iteratorFn = getIteratorFn(result);
1794
+
1795
+ if (iteratorFn) {
1796
+ var iterableChild = result;
1797
+ result = _defineProperty({}, Symbol.iterator, function () {
1798
+ var iterator = iteratorFn.call(iterableChild);
1799
+
1800
+ {
1801
+ // If this was an Iterator but not a GeneratorFunction we warn because
1802
+ // it might have been a mistake. Technically you can make this mistake with
1803
+ // GeneratorFunctions and even single-shot Iterables too but it's extra
1804
+ // tempting to try to return the value from a generator.
1805
+ if (iterator === iterableChild) {
1806
+ var isGeneratorComponent = // $FlowIgnore[method-unbinding]
1807
+ Object.prototype.toString.call(Component) === '[object GeneratorFunction]' && // $FlowIgnore[method-unbinding]
1808
+ Object.prototype.toString.call(iterableChild) === '[object Generator]';
1809
+
1810
+ if (!isGeneratorComponent) {
1811
+ error('Returning an Iterator from a Server Component is not supported ' + 'since it cannot be looped over more than once. ');
1812
+ }
1813
+ }
1814
+ }
1815
+
1816
+ return iterator;
1817
+ });
1818
+
1819
+ {
1820
+ result._debugInfo = iterableChild._debugInfo;
1821
+ }
1822
+ }
1774
1823
  } // Track this element's key on the Server Component on the keyPath context..
1775
1824
 
1776
1825
 
@@ -2242,6 +2291,11 @@ function serializeSet(request, set) {
2242
2291
  return '$W' + id.toString(16);
2243
2292
  }
2244
2293
 
2294
+ function serializeIterator(request, iterator) {
2295
+ var id = outlineModel(request, Array.from(iterator));
2296
+ return '$i' + id.toString(16);
2297
+ }
2298
+
2245
2299
  function escapeStringValue(value) {
2246
2300
  if (value[0] === '$') {
2247
2301
  // We need to escape $ prefixed strings since we use those to encode
@@ -2506,7 +2560,15 @@ function renderModelDestructive(request, task, parent, parentPropertyName, value
2506
2560
  var iteratorFn = getIteratorFn(value);
2507
2561
 
2508
2562
  if (iteratorFn) {
2509
- return renderFragment(request, task, Array.from(value));
2563
+ // TODO: Should we serialize the return value as well like we do for AsyncIterables?
2564
+ var iterator = iteratorFn.call(value);
2565
+
2566
+ if (iterator === value) {
2567
+ // Iterator, not Iterable
2568
+ return serializeIterator(request, iterator);
2569
+ }
2570
+
2571
+ return renderFragment(request, task, Array.from(iterator));
2510
2572
  }
2511
2573
 
2512
2574
 
@@ -3798,6 +3860,16 @@ function parseModelString(response, obj, key, value) {
3798
3860
  return _data2;
3799
3861
  }
3800
3862
 
3863
+ case 'i':
3864
+ {
3865
+ // Iterator
3866
+ var _id5 = parseInt(value.slice(2), 16);
3867
+
3868
+ var _data3 = getOutlinedModel(response, _id5);
3869
+
3870
+ return _data3[Symbol.iterator]();
3871
+ }
3872
+
3801
3873
  case 'I':
3802
3874
  {
3803
3875
  // $Infinity