@modern-js/utils 2.69.1 → 2.69.3

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 (18) hide show
  1. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +8 -9
  2. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +7 -8
  3. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +6 -7
  4. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +7 -8
  5. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +6 -7
  6. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +7 -8
  7. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +5 -5
  8. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +6 -6
  9. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +430 -197
  10. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +428 -204
  11. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +431 -198
  12. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +429 -205
  13. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +474 -227
  14. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +472 -230
  15. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +472 -224
  16. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +470 -227
  17. package/dist/compiled/react-server-dom-webpack/package.json +5 -5
  18. package/package.json +5 -5
@@ -844,8 +844,8 @@ function serializeReadableStream(request, task, stream) {
844
844
  emitChunk(request, streamTask, streamTask.model),
845
845
  enqueueFlush(request),
846
846
  reader.read().then(progress, error);
847
- } catch (x$8) {
848
- error(x$8);
847
+ } catch (x$11) {
848
+ error(x$11);
849
849
  }
850
850
  }
851
851
  function error(reason) {
@@ -921,8 +921,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
921
921
  emitChunk(request, streamTask, streamTask.model),
922
922
  enqueueFlush(request),
923
923
  iterator.next().then(progress, error);
924
- } catch (x$9) {
925
- error(x$9);
924
+ } catch (x$12) {
925
+ error(x$12);
926
926
  }
927
927
  }
928
928
  function error(reason) {
@@ -1042,11 +1042,11 @@ function renderFunctionComponent(request, task, key, Component, props) {
1042
1042
  Component instanceof ReadableStream)
1043
1043
  )
1044
1044
  ) {
1045
- var iterableChild$10 = Component;
1045
+ var iterableChild$13 = Component;
1046
1046
  Component = {};
1047
1047
  Component =
1048
1048
  ((Component[ASYNC_ITERATOR] = function () {
1049
- return iterableChild$10[ASYNC_ITERATOR]();
1049
+ return iterableChild$13[ASYNC_ITERATOR]();
1050
1050
  }),
1051
1051
  Component);
1052
1052
  }
@@ -1912,7 +1912,7 @@ function abort(request, reason) {
1912
1912
  }
1913
1913
  var abortListeners = request.abortListeners;
1914
1914
  if (0 < abortListeners.size) {
1915
- var error$23 =
1915
+ var error$26 =
1916
1916
  void 0 === reason
1917
1917
  ? Error("The render was aborted by the server without a reason.")
1918
1918
  : "object" === typeof reason &&
@@ -1921,16 +1921,17 @@ function abort(request, reason) {
1921
1921
  ? Error("The render was aborted by the server with a promise.")
1922
1922
  : reason;
1923
1923
  abortListeners.forEach(function (callback) {
1924
- return callback(error$23);
1924
+ return callback(error$26);
1925
1925
  });
1926
1926
  abortListeners.clear();
1927
1927
  }
1928
1928
  null !== request.destination &&
1929
1929
  flushCompletedChunks(request, request.destination);
1930
- } catch (error$24) {
1931
- logRecoverableError(request, error$24, null), fatalError(request, error$24);
1930
+ } catch (error$27) {
1931
+ logRecoverableError(request, error$27, null), fatalError(request, error$27);
1932
1932
  }
1933
1933
  }
1934
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
1934
1935
  function resolveServerReference(bundlerConfig, id) {
1935
1936
  var name = "",
1936
1937
  resolvedModuleData = bundlerConfig[id];
@@ -1998,60 +1999,97 @@ function requireModule(metadata) {
1998
1999
  if ("fulfilled" === moduleExports.status)
1999
2000
  moduleExports = moduleExports.value;
2000
2001
  else throw moduleExports.reason;
2001
- return "*" === metadata[2]
2002
- ? moduleExports
2003
- : "" === metadata[2]
2004
- ? moduleExports.__esModule
2005
- ? moduleExports.default
2006
- : moduleExports
2007
- : moduleExports[metadata[2]];
2008
- }
2009
- var hasOwnProperty = Object.prototype.hasOwnProperty;
2010
- function Chunk(status, value, reason, response) {
2002
+ if ("*" === metadata[2]) return moduleExports;
2003
+ if ("" === metadata[2])
2004
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2005
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2006
+ return moduleExports[metadata[2]];
2007
+ }
2008
+ var RESPONSE_SYMBOL = Symbol();
2009
+ function ReactPromise(status, value, reason) {
2011
2010
  this.status = status;
2012
2011
  this.value = value;
2013
2012
  this.reason = reason;
2014
- this._response = response;
2015
2013
  }
2016
- Chunk.prototype = Object.create(Promise.prototype);
2017
- Chunk.prototype.then = function (resolve, reject) {
2014
+ ReactPromise.prototype = Object.create(Promise.prototype);
2015
+ ReactPromise.prototype.then = function (resolve, reject) {
2018
2016
  switch (this.status) {
2019
2017
  case "resolved_model":
2020
2018
  initializeModelChunk(this);
2021
2019
  }
2022
2020
  switch (this.status) {
2023
2021
  case "fulfilled":
2024
- resolve(this.value);
2022
+ "function" === typeof resolve && resolve(this.value);
2025
2023
  break;
2026
2024
  case "pending":
2027
2025
  case "blocked":
2028
- case "cyclic":
2029
- resolve &&
2026
+ "function" === typeof resolve &&
2030
2027
  (null === this.value && (this.value = []), this.value.push(resolve));
2031
- reject &&
2028
+ "function" === typeof reject &&
2032
2029
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2033
2030
  break;
2034
2031
  default:
2035
- reject(this.reason);
2032
+ "function" === typeof reject && reject(this.reason);
2036
2033
  }
2037
2034
  };
2038
- function createPendingChunk(response) {
2039
- return new Chunk("pending", null, null, response);
2035
+ function wakeChunk(response, listeners, value) {
2036
+ for (var i = 0; i < listeners.length; i++) {
2037
+ var listener = listeners[i];
2038
+ "function" === typeof listener
2039
+ ? listener(value)
2040
+ : fulfillReference(response, listener, value);
2041
+ }
2042
+ }
2043
+ function rejectChunk(response, listeners, error) {
2044
+ for (var i = 0; i < listeners.length; i++) {
2045
+ var listener = listeners[i];
2046
+ "function" === typeof listener
2047
+ ? listener(error)
2048
+ : rejectReference(response, listener.handler, error);
2049
+ }
2040
2050
  }
2041
- function wakeChunk(listeners, value) {
2042
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2051
+ function resolveBlockedCycle(resolvedChunk, reference) {
2052
+ var referencedChunk = reference.handler.chunk;
2053
+ if (null === referencedChunk) return null;
2054
+ if (referencedChunk === resolvedChunk) return reference.handler;
2055
+ reference = referencedChunk.value;
2056
+ if (null !== reference)
2057
+ for (
2058
+ referencedChunk = 0;
2059
+ referencedChunk < reference.length;
2060
+ referencedChunk++
2061
+ ) {
2062
+ var listener = reference[referencedChunk];
2063
+ if (
2064
+ "function" !== typeof listener &&
2065
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2066
+ null !== listener)
2067
+ )
2068
+ return listener;
2069
+ }
2070
+ return null;
2043
2071
  }
2044
- function triggerErrorOnChunk(chunk, error) {
2072
+ function triggerErrorOnChunk(response, chunk, error) {
2045
2073
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2046
2074
  chunk.reason.error(error);
2047
2075
  else {
2048
2076
  var listeners = chunk.reason;
2049
2077
  chunk.status = "rejected";
2050
2078
  chunk.reason = error;
2051
- null !== listeners && wakeChunk(listeners, error);
2079
+ null !== listeners && rejectChunk(response, listeners, error);
2052
2080
  }
2053
2081
  }
2054
- function resolveModelChunk(chunk, value, id) {
2082
+ function createResolvedModelChunk(response, value, id) {
2083
+ var $jscomp$compprop2 = {};
2084
+ return new ReactPromise(
2085
+ "resolved_model",
2086
+ value,
2087
+ (($jscomp$compprop2.id = id),
2088
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2089
+ $jscomp$compprop2)
2090
+ );
2091
+ }
2092
+ function resolveModelChunk(response, chunk, value, id) {
2055
2093
  if ("pending" !== chunk.status)
2056
2094
  (chunk = chunk.reason),
2057
2095
  "C" === value[0]
@@ -2062,77 +2100,129 @@ function resolveModelChunk(chunk, value, id) {
2062
2100
  rejectListeners = chunk.reason;
2063
2101
  chunk.status = "resolved_model";
2064
2102
  chunk.value = value;
2065
- chunk.reason = id;
2103
+ value = {};
2104
+ chunk.reason =
2105
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2066
2106
  if (null !== resolveListeners)
2067
- switch ((initializeModelChunk(chunk), chunk.status)) {
2107
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2068
2108
  case "fulfilled":
2069
- wakeChunk(resolveListeners, chunk.value);
2109
+ wakeChunk(response, resolveListeners, chunk.value);
2070
2110
  break;
2071
- case "pending":
2072
2111
  case "blocked":
2073
- case "cyclic":
2112
+ for (value = 0; value < resolveListeners.length; value++)
2113
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2114
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2115
+ if (null !== cyclicHandler)
2116
+ switch (
2117
+ (fulfillReference(response, id, cyclicHandler.value),
2118
+ resolveListeners.splice(value, 1),
2119
+ value--,
2120
+ null !== rejectListeners &&
2121
+ ((id = rejectListeners.indexOf(id)),
2122
+ -1 !== id && rejectListeners.splice(id, 1)),
2123
+ chunk.status)
2124
+ ) {
2125
+ case "fulfilled":
2126
+ wakeChunk(response, resolveListeners, chunk.value);
2127
+ break a;
2128
+ case "rejected":
2129
+ null !== rejectListeners &&
2130
+ rejectChunk(response, rejectListeners, chunk.reason);
2131
+ break a;
2132
+ }
2133
+ }
2134
+ case "pending":
2074
2135
  if (chunk.value)
2075
- for (value = 0; value < resolveListeners.length; value++)
2076
- chunk.value.push(resolveListeners[value]);
2136
+ for (response = 0; response < resolveListeners.length; response++)
2137
+ chunk.value.push(resolveListeners[response]);
2077
2138
  else chunk.value = resolveListeners;
2078
2139
  if (chunk.reason) {
2079
2140
  if (rejectListeners)
2080
- for (value = 0; value < rejectListeners.length; value++)
2081
- chunk.reason.push(rejectListeners[value]);
2141
+ for (
2142
+ resolveListeners = 0;
2143
+ resolveListeners < rejectListeners.length;
2144
+ resolveListeners++
2145
+ )
2146
+ chunk.reason.push(rejectListeners[resolveListeners]);
2082
2147
  } else chunk.reason = rejectListeners;
2083
2148
  break;
2084
2149
  case "rejected":
2085
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2150
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2086
2151
  }
2087
2152
  }
2088
2153
  }
2089
2154
  function createResolvedIteratorResultChunk(response, value, done) {
2090
- return new Chunk(
2155
+ var $jscomp$compprop4 = {};
2156
+ return new ReactPromise(
2091
2157
  "resolved_model",
2092
2158
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2093
- -1,
2094
- response
2159
+ (($jscomp$compprop4.id = -1),
2160
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2161
+ $jscomp$compprop4)
2095
2162
  );
2096
2163
  }
2097
- function resolveIteratorResultChunk(chunk, value, done) {
2164
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2098
2165
  resolveModelChunk(
2166
+ response,
2099
2167
  chunk,
2100
2168
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2101
2169
  -1
2102
2170
  );
2103
2171
  }
2104
- function loadServerReference$1(
2105
- response,
2106
- id,
2107
- bound,
2108
- parentChunk,
2109
- parentObject,
2110
- key
2111
- ) {
2172
+ function loadServerReference$1(response, metaData, parentObject, key) {
2173
+ var id = metaData.id;
2174
+ if ("string" !== typeof id) return null;
2112
2175
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2113
- id = preloadModule(serverReference);
2114
- if (bound)
2115
- bound = Promise.all([bound, id]).then(function (_ref) {
2116
- _ref = _ref[0];
2117
- var fn = requireModule(serverReference);
2118
- return fn.bind.apply(fn, [null].concat(_ref));
2119
- });
2120
- else if (id)
2121
- bound = Promise.resolve(id).then(function () {
2122
- return requireModule(serverReference);
2123
- });
2176
+ id = metaData.bound;
2177
+ var promise = preloadModule(serverReference);
2178
+ if (promise)
2179
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2180
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2124
2181
  else return requireModule(serverReference);
2125
- bound.then(
2126
- createModelResolver(
2127
- parentChunk,
2128
- parentObject,
2129
- key,
2130
- !1,
2131
- response,
2132
- createModel,
2133
- []
2134
- ),
2135
- createModelReject(parentChunk)
2182
+ if (initializingHandler) {
2183
+ var handler = initializingHandler;
2184
+ handler.deps++;
2185
+ } else
2186
+ handler = initializingHandler = {
2187
+ chunk: null,
2188
+ value: null,
2189
+ reason: null,
2190
+ deps: 1,
2191
+ errored: !1
2192
+ };
2193
+ promise.then(
2194
+ function () {
2195
+ var resolvedValue = requireModule(serverReference);
2196
+ if (metaData.bound) {
2197
+ var promiseValue = metaData.bound.value;
2198
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2199
+ promiseValue.unshift(null);
2200
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2201
+ }
2202
+ parentObject[key] = resolvedValue;
2203
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2204
+ handler.deps--;
2205
+ 0 === handler.deps &&
2206
+ ((resolvedValue = handler.chunk),
2207
+ null !== resolvedValue &&
2208
+ "blocked" === resolvedValue.status &&
2209
+ ((promiseValue = resolvedValue.value),
2210
+ (resolvedValue.status = "fulfilled"),
2211
+ (resolvedValue.value = handler.value),
2212
+ null !== promiseValue &&
2213
+ wakeChunk(response, promiseValue, handler.value)));
2214
+ },
2215
+ function (error) {
2216
+ if (!handler.errored) {
2217
+ handler.errored = !0;
2218
+ handler.value = null;
2219
+ handler.reason = error;
2220
+ var chunk = handler.chunk;
2221
+ null !== chunk &&
2222
+ "blocked" === chunk.status &&
2223
+ triggerErrorOnChunk(response, chunk, error);
2224
+ }
2225
+ }
2136
2226
  );
2137
2227
  return null;
2138
2228
  }
@@ -2162,51 +2252,63 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2162
2252
  ? reference + ":" + i
2163
2253
  : void 0),
2164
2254
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2165
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2255
+ void 0 !== parentObj || "__proto__" === i
2256
+ ? (value[i] = parentObj)
2257
+ : delete value[i]);
2166
2258
  return value;
2167
2259
  }
2168
- var initializingChunk = null,
2169
- initializingChunkBlockedModel = null;
2260
+ var initializingHandler = null;
2170
2261
  function initializeModelChunk(chunk) {
2171
- var prevChunk = initializingChunk,
2172
- prevBlocked = initializingChunkBlockedModel;
2173
- initializingChunk = chunk;
2174
- initializingChunkBlockedModel = null;
2175
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2176
- resolvedModel = chunk.value;
2177
- chunk.status = "cyclic";
2262
+ var prevHandler = initializingHandler;
2263
+ initializingHandler = null;
2264
+ var _chunk$reason = chunk.reason,
2265
+ response = _chunk$reason[RESPONSE_SYMBOL];
2266
+ _chunk$reason = _chunk$reason.id;
2267
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2268
+ var resolvedModel = chunk.value;
2269
+ chunk.status = "blocked";
2178
2270
  chunk.value = null;
2179
2271
  chunk.reason = null;
2180
2272
  try {
2181
2273
  var rawModel = JSON.parse(resolvedModel),
2182
2274
  value = reviveModel(
2183
- chunk._response,
2275
+ response,
2184
2276
  { "": rawModel },
2185
2277
  "",
2186
2278
  rawModel,
2187
- rootReference
2188
- );
2189
- if (
2190
- null !== initializingChunkBlockedModel &&
2191
- 0 < initializingChunkBlockedModel.deps
2192
- )
2193
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2194
- else {
2195
- var resolveListeners = chunk.value;
2196
- chunk.status = "fulfilled";
2197
- chunk.value = value;
2198
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2279
+ _chunk$reason
2280
+ ),
2281
+ resolveListeners = chunk.value;
2282
+ if (null !== resolveListeners)
2283
+ for (
2284
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2285
+ rawModel < resolveListeners.length;
2286
+ rawModel++
2287
+ ) {
2288
+ var listener = resolveListeners[rawModel];
2289
+ "function" === typeof listener
2290
+ ? listener(value)
2291
+ : fulfillReference(response, listener, value);
2292
+ }
2293
+ if (null !== initializingHandler) {
2294
+ if (initializingHandler.errored) throw initializingHandler.reason;
2295
+ if (0 < initializingHandler.deps) {
2296
+ initializingHandler.value = value;
2297
+ initializingHandler.chunk = chunk;
2298
+ return;
2299
+ }
2199
2300
  }
2301
+ chunk.status = "fulfilled";
2302
+ chunk.value = value;
2200
2303
  } catch (error) {
2201
2304
  (chunk.status = "rejected"), (chunk.reason = error);
2202
2305
  } finally {
2203
- (initializingChunk = prevChunk),
2204
- (initializingChunkBlockedModel = prevBlocked);
2306
+ initializingHandler = prevHandler;
2205
2307
  }
2206
2308
  }
2207
2309
  function reportGlobalError(response, error) {
2208
2310
  response._chunks.forEach(function (chunk) {
2209
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2311
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2210
2312
  });
2211
2313
  }
2212
2314
  function getChunk(response, id) {
@@ -2215,46 +2317,102 @@ function getChunk(response, id) {
2215
2317
  chunk ||
2216
2318
  ((chunk = response._formData.get(response._prefix + id)),
2217
2319
  (chunk =
2218
- null != chunk
2219
- ? new Chunk("resolved_model", chunk, id, response)
2220
- : createPendingChunk(response)),
2320
+ "string" === typeof chunk
2321
+ ? createResolvedModelChunk(response, chunk, id)
2322
+ : new ReactPromise("pending", null, null)),
2221
2323
  chunks.set(id, chunk));
2222
2324
  return chunk;
2223
2325
  }
2224
- function createModelResolver(
2225
- chunk,
2326
+ function fulfillReference(response, reference, value) {
2327
+ for (
2328
+ var handler = reference.handler,
2329
+ parentObject = reference.parentObject,
2330
+ key = reference.key,
2331
+ map = reference.map,
2332
+ path = reference.path,
2333
+ i = 1;
2334
+ i < path.length;
2335
+ i++
2336
+ ) {
2337
+ for (; value instanceof ReactPromise; ) {
2338
+ switch (value.status) {
2339
+ case "resolved_model":
2340
+ initializeModelChunk(value);
2341
+ }
2342
+ switch (value.status) {
2343
+ case "fulfilled":
2344
+ value = value.value;
2345
+ continue;
2346
+ case "blocked":
2347
+ case "pending":
2348
+ path.splice(0, i - 1);
2349
+ null === value.value
2350
+ ? (value.value = [reference])
2351
+ : value.value.push(reference);
2352
+ null === value.reason
2353
+ ? (value.reason = [reference])
2354
+ : value.reason.push(reference);
2355
+ return;
2356
+ default:
2357
+ rejectReference(response, reference.handler, value.reason);
2358
+ return;
2359
+ }
2360
+ }
2361
+ var name = path[i];
2362
+ "object" === typeof value &&
2363
+ hasOwnProperty.call(value, name) &&
2364
+ (value = value[name]);
2365
+ }
2366
+ reference = map(response, value, parentObject, key);
2367
+ parentObject[key] = reference;
2368
+ "" === key && null === handler.value && (handler.value = reference);
2369
+ handler.deps--;
2370
+ 0 === handler.deps &&
2371
+ ((parentObject = handler.chunk),
2372
+ null !== parentObject &&
2373
+ "blocked" === parentObject.status &&
2374
+ ((key = parentObject.value),
2375
+ (parentObject.status = "fulfilled"),
2376
+ (parentObject.value = handler.value),
2377
+ (parentObject.reason = handler.reason),
2378
+ null !== key && wakeChunk(response, key, handler.value)));
2379
+ }
2380
+ function rejectReference(response, handler, error) {
2381
+ handler.errored ||
2382
+ ((handler.errored = !0),
2383
+ (handler.value = null),
2384
+ (handler.reason = error),
2385
+ (handler = handler.chunk),
2386
+ null !== handler &&
2387
+ "blocked" === handler.status &&
2388
+ triggerErrorOnChunk(response, handler, error));
2389
+ }
2390
+ function waitForReference(
2391
+ referencedChunk,
2226
2392
  parentObject,
2227
2393
  key,
2228
- cyclic,
2229
2394
  response,
2230
2395
  map,
2231
2396
  path
2232
2397
  ) {
2233
- if (initializingChunkBlockedModel) {
2234
- var blocked = initializingChunkBlockedModel;
2235
- cyclic || blocked.deps++;
2236
- } else
2237
- blocked = initializingChunkBlockedModel = {
2238
- deps: cyclic ? 0 : 1,
2239
- value: null
2240
- };
2241
- return function (value) {
2242
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2243
- parentObject[key] = map(response, value);
2244
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2245
- blocked.deps--;
2246
- 0 === blocked.deps &&
2247
- "blocked" === chunk.status &&
2248
- ((value = chunk.value),
2249
- (chunk.status = "fulfilled"),
2250
- (chunk.value = blocked.value),
2251
- null !== value && wakeChunk(value, blocked.value));
2252
- };
2253
- }
2254
- function createModelReject(chunk) {
2255
- return function (error) {
2256
- return triggerErrorOnChunk(chunk, error);
2398
+ initializingHandler
2399
+ ? ((response = initializingHandler), response.deps++)
2400
+ : (response = initializingHandler =
2401
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2402
+ parentObject = {
2403
+ handler: response,
2404
+ parentObject: parentObject,
2405
+ key: key,
2406
+ map: map,
2407
+ path: path
2257
2408
  };
2409
+ null === referencedChunk.value
2410
+ ? (referencedChunk.value = [parentObject])
2411
+ : referencedChunk.value.push(parentObject);
2412
+ null === referencedChunk.reason
2413
+ ? (referencedChunk.reason = [parentObject])
2414
+ : referencedChunk.reason.push(parentObject);
2415
+ return null;
2258
2416
  }
2259
2417
  function getOutlinedModel(response, reference, parentObject, key, map) {
2260
2418
  reference = reference.split(":");
@@ -2266,29 +2424,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2266
2424
  }
2267
2425
  switch (id.status) {
2268
2426
  case "fulfilled":
2269
- parentObject = id.value;
2270
- for (key = 1; key < reference.length; key++)
2271
- parentObject = parentObject[reference[key]];
2272
- return map(response, parentObject);
2427
+ var value = id.value;
2428
+ for (id = 1; id < reference.length; id++) {
2429
+ for (; value instanceof ReactPromise; ) {
2430
+ switch (value.status) {
2431
+ case "resolved_model":
2432
+ initializeModelChunk(value);
2433
+ }
2434
+ switch (value.status) {
2435
+ case "fulfilled":
2436
+ value = value.value;
2437
+ break;
2438
+ case "blocked":
2439
+ case "pending":
2440
+ return waitForReference(
2441
+ value,
2442
+ parentObject,
2443
+ key,
2444
+ response,
2445
+ map,
2446
+ reference.slice(id - 1)
2447
+ );
2448
+ default:
2449
+ return (
2450
+ initializingHandler
2451
+ ? ((initializingHandler.errored = !0),
2452
+ (initializingHandler.value = null),
2453
+ (initializingHandler.reason = value.reason))
2454
+ : (initializingHandler = {
2455
+ chunk: null,
2456
+ value: null,
2457
+ reason: value.reason,
2458
+ deps: 0,
2459
+ errored: !0
2460
+ }),
2461
+ null
2462
+ );
2463
+ }
2464
+ }
2465
+ var name = reference[id];
2466
+ "object" === typeof value &&
2467
+ hasOwnProperty.call(value, name) &&
2468
+ (value = value[name]);
2469
+ }
2470
+ return map(response, value, parentObject, key);
2273
2471
  case "pending":
2274
2472
  case "blocked":
2275
- case "cyclic":
2276
- var parentChunk = initializingChunk;
2277
- id.then(
2278
- createModelResolver(
2279
- parentChunk,
2280
- parentObject,
2281
- key,
2282
- "cyclic" === id.status,
2283
- response,
2284
- map,
2285
- reference
2286
- ),
2287
- createModelReject(parentChunk)
2288
- );
2289
- return null;
2473
+ return waitForReference(id, parentObject, key, response, map, reference);
2290
2474
  default:
2291
- throw id.reason;
2475
+ return (
2476
+ initializingHandler
2477
+ ? ((initializingHandler.errored = !0),
2478
+ (initializingHandler.value = null),
2479
+ (initializingHandler.reason = id.reason))
2480
+ : (initializingHandler = {
2481
+ chunk: null,
2482
+ value: null,
2483
+ reason: id.reason,
2484
+ deps: 0,
2485
+ errored: !0
2486
+ }),
2487
+ null
2488
+ );
2292
2489
  }
2293
2490
  }
2294
2491
  function createMap(response, model) {
@@ -2312,38 +2509,63 @@ function parseTypedArray(
2312
2509
  parentKey
2313
2510
  ) {
2314
2511
  reference = parseInt(reference.slice(2), 16);
2315
- reference = response._formData.get(response._prefix + reference);
2316
- reference =
2317
- constructor === ArrayBuffer
2318
- ? reference.arrayBuffer()
2319
- : reference.arrayBuffer().then(function (buffer) {
2320
- return new constructor(buffer);
2321
- });
2322
- bytesPerElement = initializingChunk;
2512
+ reference = response._formData
2513
+ .get(response._prefix + reference)
2514
+ .arrayBuffer();
2515
+ if (initializingHandler) {
2516
+ var handler = initializingHandler;
2517
+ handler.deps++;
2518
+ } else
2519
+ handler = initializingHandler = {
2520
+ chunk: null,
2521
+ value: null,
2522
+ reason: null,
2523
+ deps: 1,
2524
+ errored: !1
2525
+ };
2323
2526
  reference.then(
2324
- createModelResolver(
2325
- bytesPerElement,
2326
- parentObject,
2327
- parentKey,
2328
- !1,
2329
- response,
2330
- createModel,
2331
- []
2332
- ),
2333
- createModelReject(bytesPerElement)
2527
+ function (buffer) {
2528
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2529
+ parentObject[parentKey] = buffer;
2530
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2531
+ handler.deps--;
2532
+ if (
2533
+ 0 === handler.deps &&
2534
+ ((buffer = handler.chunk),
2535
+ null !== buffer && "blocked" === buffer.status)
2536
+ ) {
2537
+ var resolveListeners = buffer.value;
2538
+ buffer.status = "fulfilled";
2539
+ buffer.value = handler.value;
2540
+ null !== resolveListeners &&
2541
+ wakeChunk(response, resolveListeners, handler.value);
2542
+ }
2543
+ },
2544
+ function (error) {
2545
+ if (!handler.errored) {
2546
+ handler.errored = !0;
2547
+ handler.value = null;
2548
+ handler.reason = error;
2549
+ var chunk = handler.chunk;
2550
+ null !== chunk &&
2551
+ "blocked" === chunk.status &&
2552
+ triggerErrorOnChunk(response, chunk, error);
2553
+ }
2554
+ }
2334
2555
  );
2335
2556
  return null;
2336
2557
  }
2337
2558
  function resolveStream(response, id, stream, controller) {
2338
2559
  var chunks = response._chunks;
2339
- stream = new Chunk("fulfilled", stream, controller, response);
2560
+ stream = new ReactPromise("fulfilled", stream, controller);
2340
2561
  chunks.set(id, stream);
2341
2562
  response = response._formData.getAll(response._prefix + id);
2342
2563
  for (id = 0; id < response.length; id++)
2343
2564
  (chunks = response[id]),
2344
- "C" === chunks[0]
2345
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2346
- : controller.enqueueModel(chunks);
2565
+ "string" === typeof chunks &&
2566
+ ("C" === chunks[0]
2567
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2568
+ : controller.enqueueModel(chunks));
2347
2569
  }
2348
2570
  function parseReadableStream(response, reference, type) {
2349
2571
  reference = parseInt(reference.slice(2), 16);
@@ -2358,7 +2580,7 @@ function parseReadableStream(response, reference, type) {
2358
2580
  resolveStream(response, reference, type, {
2359
2581
  enqueueModel: function (json) {
2360
2582
  if (null === previousBlockedChunk) {
2361
- var chunk = new Chunk("resolved_model", json, -1, response);
2583
+ var chunk = createResolvedModelChunk(response, json, -1);
2362
2584
  initializeModelChunk(chunk);
2363
2585
  "fulfilled" === chunk.status
2364
2586
  ? controller.enqueue(chunk.value)
@@ -2373,8 +2595,8 @@ function parseReadableStream(response, reference, type) {
2373
2595
  (previousBlockedChunk = chunk));
2374
2596
  } else {
2375
2597
  chunk = previousBlockedChunk;
2376
- var chunk$27 = createPendingChunk(response);
2377
- chunk$27.then(
2598
+ var chunk$31 = new ReactPromise("pending", null, null);
2599
+ chunk$31.then(
2378
2600
  function (v) {
2379
2601
  return controller.enqueue(v);
2380
2602
  },
@@ -2382,10 +2604,10 @@ function parseReadableStream(response, reference, type) {
2382
2604
  return controller.error(e);
2383
2605
  }
2384
2606
  );
2385
- previousBlockedChunk = chunk$27;
2607
+ previousBlockedChunk = chunk$31;
2386
2608
  chunk.then(function () {
2387
- previousBlockedChunk === chunk$27 && (previousBlockedChunk = null);
2388
- resolveModelChunk(chunk$27, json, -1);
2609
+ previousBlockedChunk === chunk$31 && (previousBlockedChunk = null);
2610
+ resolveModelChunk(response, chunk$31, json, -1);
2389
2611
  });
2390
2612
  }
2391
2613
  },
@@ -2425,9 +2647,9 @@ function parseAsyncIterable(response, reference, iterator) {
2425
2647
  var buffer = [],
2426
2648
  closed = !1,
2427
2649
  nextWriteIndex = 0,
2428
- $jscomp$compprop2 = {};
2429
- $jscomp$compprop2 =
2430
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2650
+ $jscomp$compprop5 = {};
2651
+ $jscomp$compprop5 =
2652
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2431
2653
  var nextReadIndex = 0;
2432
2654
  return createIterator(function (arg) {
2433
2655
  if (void 0 !== arg)
@@ -2436,19 +2658,18 @@ function parseAsyncIterable(response, reference, iterator) {
2436
2658
  );
2437
2659
  if (nextReadIndex === buffer.length) {
2438
2660
  if (closed)
2439
- return new Chunk(
2661
+ return new ReactPromise(
2440
2662
  "fulfilled",
2441
2663
  { done: !0, value: void 0 },
2442
- null,
2443
- response
2664
+ null
2444
2665
  );
2445
- buffer[nextReadIndex] = createPendingChunk(response);
2666
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2446
2667
  }
2447
2668
  return buffer[nextReadIndex++];
2448
2669
  });
2449
2670
  }),
2450
- $jscomp$compprop2);
2451
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2671
+ $jscomp$compprop5);
2672
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2452
2673
  resolveStream(response, reference, iterator, {
2453
2674
  enqueueModel: function (value) {
2454
2675
  nextWriteIndex === buffer.length
@@ -2457,7 +2678,12 @@ function parseAsyncIterable(response, reference, iterator) {
2457
2678
  value,
2458
2679
  !1
2459
2680
  ))
2460
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2681
+ : resolveIteratorResultChunk(
2682
+ response,
2683
+ buffer[nextWriteIndex],
2684
+ value,
2685
+ !1
2686
+ );
2461
2687
  nextWriteIndex++;
2462
2688
  },
2463
2689
  close: function (value) {
@@ -2468,9 +2694,15 @@ function parseAsyncIterable(response, reference, iterator) {
2468
2694
  value,
2469
2695
  !0
2470
2696
  ))
2471
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2697
+ : resolveIteratorResultChunk(
2698
+ response,
2699
+ buffer[nextWriteIndex],
2700
+ value,
2701
+ !0
2702
+ );
2472
2703
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2473
2704
  resolveIteratorResultChunk(
2705
+ response,
2474
2706
  buffer[nextWriteIndex++],
2475
2707
  '"$undefined"',
2476
2708
  !0
@@ -2480,11 +2712,11 @@ function parseAsyncIterable(response, reference, iterator) {
2480
2712
  closed = !0;
2481
2713
  for (
2482
2714
  nextWriteIndex === buffer.length &&
2483
- (buffer[nextWriteIndex] = createPendingChunk(response));
2715
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2484
2716
  nextWriteIndex < buffer.length;
2485
2717
 
2486
2718
  )
2487
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2719
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2488
2720
  }
2489
2721
  });
2490
2722
  return iterator;
@@ -2499,15 +2731,7 @@ function parseModelString(response, obj, key, value, reference) {
2499
2731
  case "F":
2500
2732
  return (
2501
2733
  (value = value.slice(2)),
2502
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2503
- loadServerReference$1(
2504
- response,
2505
- value.id,
2506
- value.bound,
2507
- initializingChunk,
2508
- obj,
2509
- key
2510
- )
2734
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2511
2735
  );
2512
2736
  case "T":
2513
2737
  if (void 0 === reference || void 0 === response._temporaryReferences)