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