react-server-dom-parcel 19.1.0 → 19.1.2

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.
@@ -12,7 +12,8 @@
12
12
  var ReactDOM = require("react-dom"),
13
13
  React = require("react"),
14
14
  ReactDOMSharedInternals =
15
- ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
15
+ ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
16
+ hasOwnProperty = Object.prototype.hasOwnProperty;
16
17
  function resolveServerReference(bundlerConfig, ref) {
17
18
  var idx = ref.lastIndexOf("#"),
18
19
  id = ref.slice(0, idx);
@@ -32,7 +33,9 @@ function preloadModule$1(metadata) {
32
33
  );
33
34
  }
34
35
  function requireModule(metadata) {
35
- return parcelRequire(metadata[0])[metadata[1]];
36
+ var moduleExports = parcelRequire(metadata[0]);
37
+ if (hasOwnProperty.call(moduleExports, metadata[1]))
38
+ return moduleExports[metadata[1]];
36
39
  }
37
40
  var channel = new MessageChannel(),
38
41
  taskQueue = [];
@@ -712,8 +715,8 @@ function serializeReadableStream(request, task, stream) {
712
715
  emitChunk(request, streamTask, streamTask.model),
713
716
  enqueueFlush(request),
714
717
  reader.read().then(progress, error);
715
- } catch (x$7) {
716
- error(x$7);
718
+ } catch (x$10) {
719
+ error(x$10);
717
720
  }
718
721
  }
719
722
  function error(reason) {
@@ -785,8 +788,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
785
788
  emitChunk(request, streamTask, streamTask.model),
786
789
  enqueueFlush(request),
787
790
  iterator.next().then(progress, error);
788
- } catch (x$8) {
789
- error(x$8);
791
+ } catch (x$11) {
792
+ error(x$11);
790
793
  }
791
794
  }
792
795
  function error(reason) {
@@ -1749,7 +1752,7 @@ function abort(request, reason) {
1749
1752
  }
1750
1753
  var abortListeners = request.abortListeners;
1751
1754
  if (0 < abortListeners.size) {
1752
- var error$22 =
1755
+ var error$25 =
1753
1756
  void 0 === reason
1754
1757
  ? Error("The render was aborted by the server without a reason.")
1755
1758
  : "object" === typeof reason &&
@@ -1758,62 +1761,101 @@ function abort(request, reason) {
1758
1761
  ? Error("The render was aborted by the server with a promise.")
1759
1762
  : reason;
1760
1763
  abortListeners.forEach(function (callback) {
1761
- return callback(error$22);
1764
+ return callback(error$25);
1762
1765
  });
1763
1766
  abortListeners.clear();
1764
1767
  }
1765
1768
  null !== request.destination &&
1766
1769
  flushCompletedChunks(request, request.destination);
1767
- } catch (error$23) {
1768
- logRecoverableError(request, error$23, null), fatalError(request, error$23);
1770
+ } catch (error$26) {
1771
+ logRecoverableError(request, error$26, null), fatalError(request, error$26);
1769
1772
  }
1770
1773
  }
1771
- var hasOwnProperty = Object.prototype.hasOwnProperty;
1772
- function Chunk(status, value, reason, response) {
1774
+ var RESPONSE_SYMBOL = Symbol();
1775
+ function ReactPromise(status, value, reason) {
1773
1776
  this.status = status;
1774
1777
  this.value = value;
1775
1778
  this.reason = reason;
1776
- this._response = response;
1777
1779
  }
1778
- Chunk.prototype = Object.create(Promise.prototype);
1779
- Chunk.prototype.then = function (resolve, reject) {
1780
+ ReactPromise.prototype = Object.create(Promise.prototype);
1781
+ ReactPromise.prototype.then = function (resolve, reject) {
1780
1782
  switch (this.status) {
1781
1783
  case "resolved_model":
1782
1784
  initializeModelChunk(this);
1783
1785
  }
1784
1786
  switch (this.status) {
1785
1787
  case "fulfilled":
1786
- resolve(this.value);
1788
+ "function" === typeof resolve && resolve(this.value);
1787
1789
  break;
1788
1790
  case "pending":
1789
1791
  case "blocked":
1790
- case "cyclic":
1791
- resolve &&
1792
+ "function" === typeof resolve &&
1792
1793
  (null === this.value && (this.value = []), this.value.push(resolve));
1793
- reject &&
1794
+ "function" === typeof reject &&
1794
1795
  (null === this.reason && (this.reason = []), this.reason.push(reject));
1795
1796
  break;
1796
1797
  default:
1797
- reject(this.reason);
1798
+ "function" === typeof reject && reject(this.reason);
1798
1799
  }
1799
1800
  };
1800
- function createPendingChunk(response) {
1801
- return new Chunk("pending", null, null, response);
1801
+ function wakeChunk(response, listeners, value) {
1802
+ for (var i = 0; i < listeners.length; i++) {
1803
+ var listener = listeners[i];
1804
+ "function" === typeof listener
1805
+ ? listener(value)
1806
+ : fulfillReference(response, listener, value);
1807
+ }
1808
+ }
1809
+ function rejectChunk(response, listeners, error) {
1810
+ for (var i = 0; i < listeners.length; i++) {
1811
+ var listener = listeners[i];
1812
+ "function" === typeof listener
1813
+ ? listener(error)
1814
+ : rejectReference(response, listener.handler, error);
1815
+ }
1802
1816
  }
1803
- function wakeChunk(listeners, value) {
1804
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
1817
+ function resolveBlockedCycle(resolvedChunk, reference) {
1818
+ var referencedChunk = reference.handler.chunk;
1819
+ if (null === referencedChunk) return null;
1820
+ if (referencedChunk === resolvedChunk) return reference.handler;
1821
+ reference = referencedChunk.value;
1822
+ if (null !== reference)
1823
+ for (
1824
+ referencedChunk = 0;
1825
+ referencedChunk < reference.length;
1826
+ referencedChunk++
1827
+ ) {
1828
+ var listener = reference[referencedChunk];
1829
+ if (
1830
+ "function" !== typeof listener &&
1831
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
1832
+ null !== listener)
1833
+ )
1834
+ return listener;
1835
+ }
1836
+ return null;
1805
1837
  }
1806
- function triggerErrorOnChunk(chunk, error) {
1838
+ function triggerErrorOnChunk(response, chunk, error) {
1807
1839
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
1808
1840
  chunk.reason.error(error);
1809
1841
  else {
1810
1842
  var listeners = chunk.reason;
1811
1843
  chunk.status = "rejected";
1812
1844
  chunk.reason = error;
1813
- null !== listeners && wakeChunk(listeners, error);
1845
+ null !== listeners && rejectChunk(response, listeners, error);
1814
1846
  }
1815
1847
  }
1816
- function resolveModelChunk(chunk, value, id) {
1848
+ function createResolvedModelChunk(response, value, id) {
1849
+ var $jscomp$compprop2 = {};
1850
+ return new ReactPromise(
1851
+ "resolved_model",
1852
+ value,
1853
+ (($jscomp$compprop2.id = id),
1854
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
1855
+ $jscomp$compprop2)
1856
+ );
1857
+ }
1858
+ function resolveModelChunk(response, chunk, value, id) {
1817
1859
  if ("pending" !== chunk.status)
1818
1860
  (chunk = chunk.reason),
1819
1861
  "C" === value[0]
@@ -1824,77 +1866,129 @@ function resolveModelChunk(chunk, value, id) {
1824
1866
  rejectListeners = chunk.reason;
1825
1867
  chunk.status = "resolved_model";
1826
1868
  chunk.value = value;
1827
- chunk.reason = id;
1869
+ value = {};
1870
+ chunk.reason =
1871
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
1828
1872
  if (null !== resolveListeners)
1829
- switch ((initializeModelChunk(chunk), chunk.status)) {
1873
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
1830
1874
  case "fulfilled":
1831
- wakeChunk(resolveListeners, chunk.value);
1875
+ wakeChunk(response, resolveListeners, chunk.value);
1832
1876
  break;
1833
- case "pending":
1834
1877
  case "blocked":
1835
- case "cyclic":
1878
+ for (value = 0; value < resolveListeners.length; value++)
1879
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
1880
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
1881
+ if (null !== cyclicHandler)
1882
+ switch (
1883
+ (fulfillReference(response, id, cyclicHandler.value),
1884
+ resolveListeners.splice(value, 1),
1885
+ value--,
1886
+ null !== rejectListeners &&
1887
+ ((id = rejectListeners.indexOf(id)),
1888
+ -1 !== id && rejectListeners.splice(id, 1)),
1889
+ chunk.status)
1890
+ ) {
1891
+ case "fulfilled":
1892
+ wakeChunk(response, resolveListeners, chunk.value);
1893
+ break a;
1894
+ case "rejected":
1895
+ null !== rejectListeners &&
1896
+ rejectChunk(response, rejectListeners, chunk.reason);
1897
+ break a;
1898
+ }
1899
+ }
1900
+ case "pending":
1836
1901
  if (chunk.value)
1837
- for (value = 0; value < resolveListeners.length; value++)
1838
- chunk.value.push(resolveListeners[value]);
1902
+ for (response = 0; response < resolveListeners.length; response++)
1903
+ chunk.value.push(resolveListeners[response]);
1839
1904
  else chunk.value = resolveListeners;
1840
1905
  if (chunk.reason) {
1841
1906
  if (rejectListeners)
1842
- for (value = 0; value < rejectListeners.length; value++)
1843
- chunk.reason.push(rejectListeners[value]);
1907
+ for (
1908
+ resolveListeners = 0;
1909
+ resolveListeners < rejectListeners.length;
1910
+ resolveListeners++
1911
+ )
1912
+ chunk.reason.push(rejectListeners[resolveListeners]);
1844
1913
  } else chunk.reason = rejectListeners;
1845
1914
  break;
1846
1915
  case "rejected":
1847
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
1916
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
1848
1917
  }
1849
1918
  }
1850
1919
  }
1851
1920
  function createResolvedIteratorResultChunk(response, value, done) {
1852
- return new Chunk(
1921
+ var $jscomp$compprop4 = {};
1922
+ return new ReactPromise(
1853
1923
  "resolved_model",
1854
1924
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
1855
- -1,
1856
- response
1925
+ (($jscomp$compprop4.id = -1),
1926
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
1927
+ $jscomp$compprop4)
1857
1928
  );
1858
1929
  }
1859
- function resolveIteratorResultChunk(chunk, value, done) {
1930
+ function resolveIteratorResultChunk(response, chunk, value, done) {
1860
1931
  resolveModelChunk(
1932
+ response,
1861
1933
  chunk,
1862
1934
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
1863
1935
  -1
1864
1936
  );
1865
1937
  }
1866
- function loadServerReference$1(
1867
- response,
1868
- id,
1869
- bound,
1870
- parentChunk,
1871
- parentObject,
1872
- key
1873
- ) {
1938
+ function loadServerReference$1(response, metaData, parentObject, key) {
1939
+ var id = metaData.id;
1940
+ if ("string" !== typeof id) return null;
1874
1941
  var serverReference = resolveServerReference(response._bundlerConfig, id);
1875
- id = preloadModule$1(serverReference);
1876
- if (bound)
1877
- bound = Promise.all([bound, id]).then(function (_ref) {
1878
- _ref = _ref[0];
1879
- var fn = requireModule(serverReference);
1880
- return fn.bind.apply(fn, [null].concat(_ref));
1881
- });
1882
- else if (id)
1883
- bound = Promise.resolve(id).then(function () {
1884
- return requireModule(serverReference);
1885
- });
1942
+ id = metaData.bound;
1943
+ var promise = preloadModule$1(serverReference);
1944
+ if (promise)
1945
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
1946
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
1886
1947
  else return requireModule(serverReference);
1887
- bound.then(
1888
- createModelResolver(
1889
- parentChunk,
1890
- parentObject,
1891
- key,
1892
- !1,
1893
- response,
1894
- createModel,
1895
- []
1896
- ),
1897
- createModelReject(parentChunk)
1948
+ if (initializingHandler) {
1949
+ var handler = initializingHandler;
1950
+ handler.deps++;
1951
+ } else
1952
+ handler = initializingHandler = {
1953
+ chunk: null,
1954
+ value: null,
1955
+ reason: null,
1956
+ deps: 1,
1957
+ errored: !1
1958
+ };
1959
+ promise.then(
1960
+ function () {
1961
+ var resolvedValue = requireModule(serverReference);
1962
+ if (metaData.bound) {
1963
+ var promiseValue = metaData.bound.value;
1964
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
1965
+ promiseValue.unshift(null);
1966
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
1967
+ }
1968
+ parentObject[key] = resolvedValue;
1969
+ "" === key && null === handler.value && (handler.value = resolvedValue);
1970
+ handler.deps--;
1971
+ 0 === handler.deps &&
1972
+ ((resolvedValue = handler.chunk),
1973
+ null !== resolvedValue &&
1974
+ "blocked" === resolvedValue.status &&
1975
+ ((promiseValue = resolvedValue.value),
1976
+ (resolvedValue.status = "fulfilled"),
1977
+ (resolvedValue.value = handler.value),
1978
+ null !== promiseValue &&
1979
+ wakeChunk(response, promiseValue, handler.value)));
1980
+ },
1981
+ function (error) {
1982
+ if (!handler.errored) {
1983
+ handler.errored = !0;
1984
+ handler.value = null;
1985
+ handler.reason = error;
1986
+ var chunk = handler.chunk;
1987
+ null !== chunk &&
1988
+ "blocked" === chunk.status &&
1989
+ triggerErrorOnChunk(response, chunk, error);
1990
+ }
1991
+ }
1898
1992
  );
1899
1993
  return null;
1900
1994
  }
@@ -1924,53 +2018,65 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
1924
2018
  ? reference + ":" + i
1925
2019
  : void 0),
1926
2020
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
1927
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2021
+ void 0 !== parentObj || "__proto__" === i
2022
+ ? (value[i] = parentObj)
2023
+ : delete value[i]);
1928
2024
  return value;
1929
2025
  }
1930
- var initializingChunk = null,
1931
- initializingChunkBlockedModel = null;
2026
+ var initializingHandler = null;
1932
2027
  function initializeModelChunk(chunk) {
1933
- var prevChunk = initializingChunk,
1934
- prevBlocked = initializingChunkBlockedModel;
1935
- initializingChunk = chunk;
1936
- initializingChunkBlockedModel = null;
1937
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
1938
- resolvedModel = chunk.value;
1939
- chunk.status = "cyclic";
2028
+ var prevHandler = initializingHandler;
2029
+ initializingHandler = null;
2030
+ var _chunk$reason = chunk.reason,
2031
+ response = _chunk$reason[RESPONSE_SYMBOL];
2032
+ _chunk$reason = _chunk$reason.id;
2033
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2034
+ var resolvedModel = chunk.value;
2035
+ chunk.status = "blocked";
1940
2036
  chunk.value = null;
1941
2037
  chunk.reason = null;
1942
2038
  try {
1943
2039
  var rawModel = JSON.parse(resolvedModel),
1944
2040
  value = reviveModel(
1945
- chunk._response,
2041
+ response,
1946
2042
  { "": rawModel },
1947
2043
  "",
1948
2044
  rawModel,
1949
- rootReference
1950
- );
1951
- if (
1952
- null !== initializingChunkBlockedModel &&
1953
- 0 < initializingChunkBlockedModel.deps
1954
- )
1955
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
1956
- else {
1957
- var resolveListeners = chunk.value;
1958
- chunk.status = "fulfilled";
1959
- chunk.value = value;
1960
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2045
+ _chunk$reason
2046
+ ),
2047
+ resolveListeners = chunk.value;
2048
+ if (null !== resolveListeners)
2049
+ for (
2050
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2051
+ rawModel < resolveListeners.length;
2052
+ rawModel++
2053
+ ) {
2054
+ var listener = resolveListeners[rawModel];
2055
+ "function" === typeof listener
2056
+ ? listener(value)
2057
+ : fulfillReference(response, listener, value);
2058
+ }
2059
+ if (null !== initializingHandler) {
2060
+ if (initializingHandler.errored) throw initializingHandler.reason;
2061
+ if (0 < initializingHandler.deps) {
2062
+ initializingHandler.value = value;
2063
+ initializingHandler.chunk = chunk;
2064
+ return;
2065
+ }
1961
2066
  }
2067
+ chunk.status = "fulfilled";
2068
+ chunk.value = value;
1962
2069
  } catch (error) {
1963
2070
  (chunk.status = "rejected"), (chunk.reason = error);
1964
2071
  } finally {
1965
- (initializingChunk = prevChunk),
1966
- (initializingChunkBlockedModel = prevBlocked);
2072
+ initializingHandler = prevHandler;
1967
2073
  }
1968
2074
  }
1969
2075
  function reportGlobalError(response, error) {
1970
2076
  response._closed = !0;
1971
2077
  response._closedReason = error;
1972
2078
  response._chunks.forEach(function (chunk) {
1973
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2079
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
1974
2080
  });
1975
2081
  }
1976
2082
  function getChunk(response, id) {
@@ -1979,48 +2085,104 @@ function getChunk(response, id) {
1979
2085
  chunk ||
1980
2086
  ((chunk = response._formData.get(response._prefix + id)),
1981
2087
  (chunk =
1982
- null != chunk
1983
- ? new Chunk("resolved_model", chunk, id, response)
2088
+ "string" === typeof chunk
2089
+ ? createResolvedModelChunk(response, chunk, id)
1984
2090
  : response._closed
1985
- ? new Chunk("rejected", null, response._closedReason, response)
1986
- : createPendingChunk(response)),
2091
+ ? new ReactPromise("rejected", null, response._closedReason)
2092
+ : new ReactPromise("pending", null, null)),
1987
2093
  chunks.set(id, chunk));
1988
2094
  return chunk;
1989
2095
  }
1990
- function createModelResolver(
1991
- chunk,
2096
+ function fulfillReference(response, reference, value) {
2097
+ for (
2098
+ var handler = reference.handler,
2099
+ parentObject = reference.parentObject,
2100
+ key = reference.key,
2101
+ map = reference.map,
2102
+ path = reference.path,
2103
+ i = 1;
2104
+ i < path.length;
2105
+ i++
2106
+ ) {
2107
+ for (; value instanceof ReactPromise; ) {
2108
+ switch (value.status) {
2109
+ case "resolved_model":
2110
+ initializeModelChunk(value);
2111
+ }
2112
+ switch (value.status) {
2113
+ case "fulfilled":
2114
+ value = value.value;
2115
+ continue;
2116
+ case "blocked":
2117
+ case "pending":
2118
+ path.splice(0, i - 1);
2119
+ null === value.value
2120
+ ? (value.value = [reference])
2121
+ : value.value.push(reference);
2122
+ null === value.reason
2123
+ ? (value.reason = [reference])
2124
+ : value.reason.push(reference);
2125
+ return;
2126
+ default:
2127
+ rejectReference(response, reference.handler, value.reason);
2128
+ return;
2129
+ }
2130
+ }
2131
+ var name = path[i];
2132
+ "object" === typeof value &&
2133
+ hasOwnProperty.call(value, name) &&
2134
+ (value = value[name]);
2135
+ }
2136
+ reference = map(response, value, parentObject, key);
2137
+ parentObject[key] = reference;
2138
+ "" === key && null === handler.value && (handler.value = reference);
2139
+ handler.deps--;
2140
+ 0 === handler.deps &&
2141
+ ((parentObject = handler.chunk),
2142
+ null !== parentObject &&
2143
+ "blocked" === parentObject.status &&
2144
+ ((key = parentObject.value),
2145
+ (parentObject.status = "fulfilled"),
2146
+ (parentObject.value = handler.value),
2147
+ (parentObject.reason = handler.reason),
2148
+ null !== key && wakeChunk(response, key, handler.value)));
2149
+ }
2150
+ function rejectReference(response, handler, error) {
2151
+ handler.errored ||
2152
+ ((handler.errored = !0),
2153
+ (handler.value = null),
2154
+ (handler.reason = error),
2155
+ (handler = handler.chunk),
2156
+ null !== handler &&
2157
+ "blocked" === handler.status &&
2158
+ triggerErrorOnChunk(response, handler, error));
2159
+ }
2160
+ function waitForReference(
2161
+ referencedChunk,
1992
2162
  parentObject,
1993
2163
  key,
1994
- cyclic,
1995
2164
  response,
1996
2165
  map,
1997
2166
  path
1998
2167
  ) {
1999
- if (initializingChunkBlockedModel) {
2000
- var blocked = initializingChunkBlockedModel;
2001
- cyclic || blocked.deps++;
2002
- } else
2003
- blocked = initializingChunkBlockedModel = {
2004
- deps: cyclic ? 0 : 1,
2005
- value: null
2006
- };
2007
- return function (value) {
2008
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2009
- parentObject[key] = map(response, value);
2010
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2011
- blocked.deps--;
2012
- 0 === blocked.deps &&
2013
- "blocked" === chunk.status &&
2014
- ((value = chunk.value),
2015
- (chunk.status = "fulfilled"),
2016
- (chunk.value = blocked.value),
2017
- null !== value && wakeChunk(value, blocked.value));
2018
- };
2019
- }
2020
- function createModelReject(chunk) {
2021
- return function (error) {
2022
- return triggerErrorOnChunk(chunk, error);
2168
+ initializingHandler
2169
+ ? ((response = initializingHandler), response.deps++)
2170
+ : (response = initializingHandler =
2171
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2172
+ parentObject = {
2173
+ handler: response,
2174
+ parentObject: parentObject,
2175
+ key: key,
2176
+ map: map,
2177
+ path: path
2023
2178
  };
2179
+ null === referencedChunk.value
2180
+ ? (referencedChunk.value = [parentObject])
2181
+ : referencedChunk.value.push(parentObject);
2182
+ null === referencedChunk.reason
2183
+ ? (referencedChunk.reason = [parentObject])
2184
+ : referencedChunk.reason.push(parentObject);
2185
+ return null;
2024
2186
  }
2025
2187
  function getOutlinedModel(response, reference, parentObject, key, map) {
2026
2188
  reference = reference.split(":");
@@ -2032,29 +2194,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2032
2194
  }
2033
2195
  switch (id.status) {
2034
2196
  case "fulfilled":
2035
- parentObject = id.value;
2036
- for (key = 1; key < reference.length; key++)
2037
- parentObject = parentObject[reference[key]];
2038
- return map(response, parentObject);
2197
+ var value = id.value;
2198
+ for (id = 1; id < reference.length; id++) {
2199
+ for (; value instanceof ReactPromise; ) {
2200
+ switch (value.status) {
2201
+ case "resolved_model":
2202
+ initializeModelChunk(value);
2203
+ }
2204
+ switch (value.status) {
2205
+ case "fulfilled":
2206
+ value = value.value;
2207
+ break;
2208
+ case "blocked":
2209
+ case "pending":
2210
+ return waitForReference(
2211
+ value,
2212
+ parentObject,
2213
+ key,
2214
+ response,
2215
+ map,
2216
+ reference.slice(id - 1)
2217
+ );
2218
+ default:
2219
+ return (
2220
+ initializingHandler
2221
+ ? ((initializingHandler.errored = !0),
2222
+ (initializingHandler.value = null),
2223
+ (initializingHandler.reason = value.reason))
2224
+ : (initializingHandler = {
2225
+ chunk: null,
2226
+ value: null,
2227
+ reason: value.reason,
2228
+ deps: 0,
2229
+ errored: !0
2230
+ }),
2231
+ null
2232
+ );
2233
+ }
2234
+ }
2235
+ var name = reference[id];
2236
+ "object" === typeof value &&
2237
+ hasOwnProperty.call(value, name) &&
2238
+ (value = value[name]);
2239
+ }
2240
+ return map(response, value, parentObject, key);
2039
2241
  case "pending":
2040
2242
  case "blocked":
2041
- case "cyclic":
2042
- var parentChunk = initializingChunk;
2043
- id.then(
2044
- createModelResolver(
2045
- parentChunk,
2046
- parentObject,
2047
- key,
2048
- "cyclic" === id.status,
2049
- response,
2050
- map,
2051
- reference
2052
- ),
2053
- createModelReject(parentChunk)
2054
- );
2055
- return null;
2243
+ return waitForReference(id, parentObject, key, response, map, reference);
2056
2244
  default:
2057
- throw id.reason;
2245
+ return (
2246
+ initializingHandler
2247
+ ? ((initializingHandler.errored = !0),
2248
+ (initializingHandler.value = null),
2249
+ (initializingHandler.reason = id.reason))
2250
+ : (initializingHandler = {
2251
+ chunk: null,
2252
+ value: null,
2253
+ reason: id.reason,
2254
+ deps: 0,
2255
+ errored: !0
2256
+ }),
2257
+ null
2258
+ );
2058
2259
  }
2059
2260
  }
2060
2261
  function createMap(response, model) {
@@ -2078,38 +2279,63 @@ function parseTypedArray(
2078
2279
  parentKey
2079
2280
  ) {
2080
2281
  reference = parseInt(reference.slice(2), 16);
2081
- reference = response._formData.get(response._prefix + reference);
2082
- reference =
2083
- constructor === ArrayBuffer
2084
- ? reference.arrayBuffer()
2085
- : reference.arrayBuffer().then(function (buffer) {
2086
- return new constructor(buffer);
2087
- });
2088
- bytesPerElement = initializingChunk;
2282
+ reference = response._formData
2283
+ .get(response._prefix + reference)
2284
+ .arrayBuffer();
2285
+ if (initializingHandler) {
2286
+ var handler = initializingHandler;
2287
+ handler.deps++;
2288
+ } else
2289
+ handler = initializingHandler = {
2290
+ chunk: null,
2291
+ value: null,
2292
+ reason: null,
2293
+ deps: 1,
2294
+ errored: !1
2295
+ };
2089
2296
  reference.then(
2090
- createModelResolver(
2091
- bytesPerElement,
2092
- parentObject,
2093
- parentKey,
2094
- !1,
2095
- response,
2096
- createModel,
2097
- []
2098
- ),
2099
- createModelReject(bytesPerElement)
2297
+ function (buffer) {
2298
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2299
+ parentObject[parentKey] = buffer;
2300
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2301
+ handler.deps--;
2302
+ if (
2303
+ 0 === handler.deps &&
2304
+ ((buffer = handler.chunk),
2305
+ null !== buffer && "blocked" === buffer.status)
2306
+ ) {
2307
+ var resolveListeners = buffer.value;
2308
+ buffer.status = "fulfilled";
2309
+ buffer.value = handler.value;
2310
+ null !== resolveListeners &&
2311
+ wakeChunk(response, resolveListeners, handler.value);
2312
+ }
2313
+ },
2314
+ function (error) {
2315
+ if (!handler.errored) {
2316
+ handler.errored = !0;
2317
+ handler.value = null;
2318
+ handler.reason = error;
2319
+ var chunk = handler.chunk;
2320
+ null !== chunk &&
2321
+ "blocked" === chunk.status &&
2322
+ triggerErrorOnChunk(response, chunk, error);
2323
+ }
2324
+ }
2100
2325
  );
2101
2326
  return null;
2102
2327
  }
2103
2328
  function resolveStream(response, id, stream, controller) {
2104
2329
  var chunks = response._chunks;
2105
- stream = new Chunk("fulfilled", stream, controller, response);
2330
+ stream = new ReactPromise("fulfilled", stream, controller);
2106
2331
  chunks.set(id, stream);
2107
2332
  response = response._formData.getAll(response._prefix + id);
2108
2333
  for (id = 0; id < response.length; id++)
2109
2334
  (chunks = response[id]),
2110
- "C" === chunks[0]
2111
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2112
- : controller.enqueueModel(chunks);
2335
+ "string" === typeof chunks &&
2336
+ ("C" === chunks[0]
2337
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2338
+ : controller.enqueueModel(chunks));
2113
2339
  }
2114
2340
  function parseReadableStream(response, reference, type) {
2115
2341
  reference = parseInt(reference.slice(2), 16);
@@ -2124,7 +2350,7 @@ function parseReadableStream(response, reference, type) {
2124
2350
  resolveStream(response, reference, type, {
2125
2351
  enqueueModel: function (json) {
2126
2352
  if (null === previousBlockedChunk) {
2127
- var chunk = new Chunk("resolved_model", json, -1, response);
2353
+ var chunk = createResolvedModelChunk(response, json, -1);
2128
2354
  initializeModelChunk(chunk);
2129
2355
  "fulfilled" === chunk.status
2130
2356
  ? controller.enqueue(chunk.value)
@@ -2139,8 +2365,8 @@ function parseReadableStream(response, reference, type) {
2139
2365
  (previousBlockedChunk = chunk));
2140
2366
  } else {
2141
2367
  chunk = previousBlockedChunk;
2142
- var chunk$26 = createPendingChunk(response);
2143
- chunk$26.then(
2368
+ var chunk$30 = new ReactPromise("pending", null, null);
2369
+ chunk$30.then(
2144
2370
  function (v) {
2145
2371
  return controller.enqueue(v);
2146
2372
  },
@@ -2148,10 +2374,10 @@ function parseReadableStream(response, reference, type) {
2148
2374
  return controller.error(e);
2149
2375
  }
2150
2376
  );
2151
- previousBlockedChunk = chunk$26;
2377
+ previousBlockedChunk = chunk$30;
2152
2378
  chunk.then(function () {
2153
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2154
- resolveModelChunk(chunk$26, json, -1);
2379
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2380
+ resolveModelChunk(response, chunk$30, json, -1);
2155
2381
  });
2156
2382
  }
2157
2383
  },
@@ -2191,9 +2417,9 @@ function parseAsyncIterable(response, reference, iterator) {
2191
2417
  var buffer = [],
2192
2418
  closed = !1,
2193
2419
  nextWriteIndex = 0,
2194
- $jscomp$compprop2 = {};
2195
- $jscomp$compprop2 =
2196
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2420
+ $jscomp$compprop5 = {};
2421
+ $jscomp$compprop5 =
2422
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2197
2423
  var nextReadIndex = 0;
2198
2424
  return createIterator(function (arg) {
2199
2425
  if (void 0 !== arg)
@@ -2202,19 +2428,18 @@ function parseAsyncIterable(response, reference, iterator) {
2202
2428
  );
2203
2429
  if (nextReadIndex === buffer.length) {
2204
2430
  if (closed)
2205
- return new Chunk(
2431
+ return new ReactPromise(
2206
2432
  "fulfilled",
2207
2433
  { done: !0, value: void 0 },
2208
- null,
2209
- response
2434
+ null
2210
2435
  );
2211
- buffer[nextReadIndex] = createPendingChunk(response);
2436
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2212
2437
  }
2213
2438
  return buffer[nextReadIndex++];
2214
2439
  });
2215
2440
  }),
2216
- $jscomp$compprop2);
2217
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2441
+ $jscomp$compprop5);
2442
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2218
2443
  resolveStream(response, reference, iterator, {
2219
2444
  enqueueModel: function (value) {
2220
2445
  nextWriteIndex === buffer.length
@@ -2223,7 +2448,12 @@ function parseAsyncIterable(response, reference, iterator) {
2223
2448
  value,
2224
2449
  !1
2225
2450
  ))
2226
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2451
+ : resolveIteratorResultChunk(
2452
+ response,
2453
+ buffer[nextWriteIndex],
2454
+ value,
2455
+ !1
2456
+ );
2227
2457
  nextWriteIndex++;
2228
2458
  },
2229
2459
  close: function (value) {
@@ -2234,9 +2464,15 @@ function parseAsyncIterable(response, reference, iterator) {
2234
2464
  value,
2235
2465
  !0
2236
2466
  ))
2237
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2467
+ : resolveIteratorResultChunk(
2468
+ response,
2469
+ buffer[nextWriteIndex],
2470
+ value,
2471
+ !0
2472
+ );
2238
2473
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2239
2474
  resolveIteratorResultChunk(
2475
+ response,
2240
2476
  buffer[nextWriteIndex++],
2241
2477
  '"$undefined"',
2242
2478
  !0
@@ -2246,11 +2482,11 @@ function parseAsyncIterable(response, reference, iterator) {
2246
2482
  closed = !0;
2247
2483
  for (
2248
2484
  nextWriteIndex === buffer.length &&
2249
- (buffer[nextWriteIndex] = createPendingChunk(response));
2485
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2250
2486
  nextWriteIndex < buffer.length;
2251
2487
 
2252
2488
  )
2253
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2489
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2254
2490
  }
2255
2491
  });
2256
2492
  return iterator;
@@ -2265,15 +2501,7 @@ function parseModelString(response, obj, key, value, reference) {
2265
2501
  case "F":
2266
2502
  return (
2267
2503
  (value = value.slice(2)),
2268
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2269
- loadServerReference$1(
2270
- response,
2271
- value.id,
2272
- value.bound,
2273
- initializingChunk,
2274
- obj,
2275
- key
2276
- )
2504
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2277
2505
  );
2278
2506
  case "T":
2279
2507
  if (void 0 === reference || void 0 === response._temporaryReferences)