react-server-dom-webpack 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.
@@ -838,8 +838,8 @@ function serializeReadableStream(request, task, stream) {
838
838
  emitChunk(request, streamTask, streamTask.model),
839
839
  enqueueFlush(request),
840
840
  reader.read().then(progress, error);
841
- } catch (x$7) {
842
- error(x$7);
841
+ } catch (x$10) {
842
+ error(x$10);
843
843
  }
844
844
  }
845
845
  function error(reason) {
@@ -911,8 +911,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
911
911
  emitChunk(request, streamTask, streamTask.model),
912
912
  enqueueFlush(request),
913
913
  iterator.next().then(progress, error);
914
- } catch (x$8) {
915
- error(x$8);
914
+ } catch (x$11) {
915
+ error(x$11);
916
916
  }
917
917
  }
918
918
  function error(reason) {
@@ -1898,7 +1898,7 @@ function abort(request, reason) {
1898
1898
  }
1899
1899
  var abortListeners = request.abortListeners;
1900
1900
  if (0 < abortListeners.size) {
1901
- var error$22 =
1901
+ var error$25 =
1902
1902
  void 0 === reason
1903
1903
  ? Error("The render was aborted by the server without a reason.")
1904
1904
  : "object" === typeof reason &&
@@ -1907,16 +1907,17 @@ function abort(request, reason) {
1907
1907
  ? Error("The render was aborted by the server with a promise.")
1908
1908
  : reason;
1909
1909
  abortListeners.forEach(function (callback) {
1910
- return callback(error$22);
1910
+ return callback(error$25);
1911
1911
  });
1912
1912
  abortListeners.clear();
1913
1913
  }
1914
1914
  null !== request.destination &&
1915
1915
  flushCompletedChunks(request, request.destination);
1916
- } catch (error$23) {
1917
- logRecoverableError(request, error$23, null), fatalError(request, error$23);
1916
+ } catch (error$26) {
1917
+ logRecoverableError(request, error$26, null), fatalError(request, error$26);
1918
1918
  }
1919
1919
  }
1920
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
1920
1921
  function resolveServerReference(bundlerConfig, id) {
1921
1922
  var name = "",
1922
1923
  resolvedModuleData = bundlerConfig[id];
@@ -1984,60 +1985,97 @@ function requireModule(metadata) {
1984
1985
  if ("fulfilled" === moduleExports.status)
1985
1986
  moduleExports = moduleExports.value;
1986
1987
  else throw moduleExports.reason;
1987
- return "*" === metadata[2]
1988
- ? moduleExports
1989
- : "" === metadata[2]
1990
- ? moduleExports.__esModule
1991
- ? moduleExports.default
1992
- : moduleExports
1993
- : moduleExports[metadata[2]];
1994
- }
1995
- var hasOwnProperty = Object.prototype.hasOwnProperty;
1996
- function Chunk(status, value, reason, response) {
1988
+ if ("*" === metadata[2]) return moduleExports;
1989
+ if ("" === metadata[2])
1990
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
1991
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
1992
+ return moduleExports[metadata[2]];
1993
+ }
1994
+ var RESPONSE_SYMBOL = Symbol();
1995
+ function ReactPromise(status, value, reason) {
1997
1996
  this.status = status;
1998
1997
  this.value = value;
1999
1998
  this.reason = reason;
2000
- this._response = response;
2001
1999
  }
2002
- Chunk.prototype = Object.create(Promise.prototype);
2003
- Chunk.prototype.then = function (resolve, reject) {
2000
+ ReactPromise.prototype = Object.create(Promise.prototype);
2001
+ ReactPromise.prototype.then = function (resolve, reject) {
2004
2002
  switch (this.status) {
2005
2003
  case "resolved_model":
2006
2004
  initializeModelChunk(this);
2007
2005
  }
2008
2006
  switch (this.status) {
2009
2007
  case "fulfilled":
2010
- resolve(this.value);
2008
+ "function" === typeof resolve && resolve(this.value);
2011
2009
  break;
2012
2010
  case "pending":
2013
2011
  case "blocked":
2014
- case "cyclic":
2015
- resolve &&
2012
+ "function" === typeof resolve &&
2016
2013
  (null === this.value && (this.value = []), this.value.push(resolve));
2017
- reject &&
2014
+ "function" === typeof reject &&
2018
2015
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2019
2016
  break;
2020
2017
  default:
2021
- reject(this.reason);
2018
+ "function" === typeof reject && reject(this.reason);
2022
2019
  }
2023
2020
  };
2024
- function createPendingChunk(response) {
2025
- return new Chunk("pending", null, null, response);
2021
+ function wakeChunk(response, listeners, value) {
2022
+ for (var i = 0; i < listeners.length; i++) {
2023
+ var listener = listeners[i];
2024
+ "function" === typeof listener
2025
+ ? listener(value)
2026
+ : fulfillReference(response, listener, value);
2027
+ }
2028
+ }
2029
+ function rejectChunk(response, listeners, error) {
2030
+ for (var i = 0; i < listeners.length; i++) {
2031
+ var listener = listeners[i];
2032
+ "function" === typeof listener
2033
+ ? listener(error)
2034
+ : rejectReference(response, listener.handler, error);
2035
+ }
2026
2036
  }
2027
- function wakeChunk(listeners, value) {
2028
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2037
+ function resolveBlockedCycle(resolvedChunk, reference) {
2038
+ var referencedChunk = reference.handler.chunk;
2039
+ if (null === referencedChunk) return null;
2040
+ if (referencedChunk === resolvedChunk) return reference.handler;
2041
+ reference = referencedChunk.value;
2042
+ if (null !== reference)
2043
+ for (
2044
+ referencedChunk = 0;
2045
+ referencedChunk < reference.length;
2046
+ referencedChunk++
2047
+ ) {
2048
+ var listener = reference[referencedChunk];
2049
+ if (
2050
+ "function" !== typeof listener &&
2051
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2052
+ null !== listener)
2053
+ )
2054
+ return listener;
2055
+ }
2056
+ return null;
2029
2057
  }
2030
- function triggerErrorOnChunk(chunk, error) {
2058
+ function triggerErrorOnChunk(response, chunk, error) {
2031
2059
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2032
2060
  chunk.reason.error(error);
2033
2061
  else {
2034
2062
  var listeners = chunk.reason;
2035
2063
  chunk.status = "rejected";
2036
2064
  chunk.reason = error;
2037
- null !== listeners && wakeChunk(listeners, error);
2065
+ null !== listeners && rejectChunk(response, listeners, error);
2038
2066
  }
2039
2067
  }
2040
- function resolveModelChunk(chunk, value, id) {
2068
+ function createResolvedModelChunk(response, value, id) {
2069
+ var $jscomp$compprop2 = {};
2070
+ return new ReactPromise(
2071
+ "resolved_model",
2072
+ value,
2073
+ (($jscomp$compprop2.id = id),
2074
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2075
+ $jscomp$compprop2)
2076
+ );
2077
+ }
2078
+ function resolveModelChunk(response, chunk, value, id) {
2041
2079
  if ("pending" !== chunk.status)
2042
2080
  (chunk = chunk.reason),
2043
2081
  "C" === value[0]
@@ -2048,77 +2086,129 @@ function resolveModelChunk(chunk, value, id) {
2048
2086
  rejectListeners = chunk.reason;
2049
2087
  chunk.status = "resolved_model";
2050
2088
  chunk.value = value;
2051
- chunk.reason = id;
2089
+ value = {};
2090
+ chunk.reason =
2091
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2052
2092
  if (null !== resolveListeners)
2053
- switch ((initializeModelChunk(chunk), chunk.status)) {
2093
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2054
2094
  case "fulfilled":
2055
- wakeChunk(resolveListeners, chunk.value);
2095
+ wakeChunk(response, resolveListeners, chunk.value);
2056
2096
  break;
2057
- case "pending":
2058
2097
  case "blocked":
2059
- case "cyclic":
2098
+ for (value = 0; value < resolveListeners.length; value++)
2099
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2100
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2101
+ if (null !== cyclicHandler)
2102
+ switch (
2103
+ (fulfillReference(response, id, cyclicHandler.value),
2104
+ resolveListeners.splice(value, 1),
2105
+ value--,
2106
+ null !== rejectListeners &&
2107
+ ((id = rejectListeners.indexOf(id)),
2108
+ -1 !== id && rejectListeners.splice(id, 1)),
2109
+ chunk.status)
2110
+ ) {
2111
+ case "fulfilled":
2112
+ wakeChunk(response, resolveListeners, chunk.value);
2113
+ break a;
2114
+ case "rejected":
2115
+ null !== rejectListeners &&
2116
+ rejectChunk(response, rejectListeners, chunk.reason);
2117
+ break a;
2118
+ }
2119
+ }
2120
+ case "pending":
2060
2121
  if (chunk.value)
2061
- for (value = 0; value < resolveListeners.length; value++)
2062
- chunk.value.push(resolveListeners[value]);
2122
+ for (response = 0; response < resolveListeners.length; response++)
2123
+ chunk.value.push(resolveListeners[response]);
2063
2124
  else chunk.value = resolveListeners;
2064
2125
  if (chunk.reason) {
2065
2126
  if (rejectListeners)
2066
- for (value = 0; value < rejectListeners.length; value++)
2067
- chunk.reason.push(rejectListeners[value]);
2127
+ for (
2128
+ resolveListeners = 0;
2129
+ resolveListeners < rejectListeners.length;
2130
+ resolveListeners++
2131
+ )
2132
+ chunk.reason.push(rejectListeners[resolveListeners]);
2068
2133
  } else chunk.reason = rejectListeners;
2069
2134
  break;
2070
2135
  case "rejected":
2071
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2136
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2072
2137
  }
2073
2138
  }
2074
2139
  }
2075
2140
  function createResolvedIteratorResultChunk(response, value, done) {
2076
- return new Chunk(
2141
+ var $jscomp$compprop4 = {};
2142
+ return new ReactPromise(
2077
2143
  "resolved_model",
2078
2144
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2079
- -1,
2080
- response
2145
+ (($jscomp$compprop4.id = -1),
2146
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2147
+ $jscomp$compprop4)
2081
2148
  );
2082
2149
  }
2083
- function resolveIteratorResultChunk(chunk, value, done) {
2150
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2084
2151
  resolveModelChunk(
2152
+ response,
2085
2153
  chunk,
2086
2154
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2087
2155
  -1
2088
2156
  );
2089
2157
  }
2090
- function loadServerReference$1(
2091
- response,
2092
- id,
2093
- bound,
2094
- parentChunk,
2095
- parentObject,
2096
- key
2097
- ) {
2158
+ function loadServerReference$1(response, metaData, parentObject, key) {
2159
+ var id = metaData.id;
2160
+ if ("string" !== typeof id) return null;
2098
2161
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2099
- id = preloadModule(serverReference);
2100
- if (bound)
2101
- bound = Promise.all([bound, id]).then(function (_ref) {
2102
- _ref = _ref[0];
2103
- var fn = requireModule(serverReference);
2104
- return fn.bind.apply(fn, [null].concat(_ref));
2105
- });
2106
- else if (id)
2107
- bound = Promise.resolve(id).then(function () {
2108
- return requireModule(serverReference);
2109
- });
2162
+ id = metaData.bound;
2163
+ var promise = preloadModule(serverReference);
2164
+ if (promise)
2165
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2166
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2110
2167
  else return requireModule(serverReference);
2111
- bound.then(
2112
- createModelResolver(
2113
- parentChunk,
2114
- parentObject,
2115
- key,
2116
- !1,
2117
- response,
2118
- createModel,
2119
- []
2120
- ),
2121
- createModelReject(parentChunk)
2168
+ if (initializingHandler) {
2169
+ var handler = initializingHandler;
2170
+ handler.deps++;
2171
+ } else
2172
+ handler = initializingHandler = {
2173
+ chunk: null,
2174
+ value: null,
2175
+ reason: null,
2176
+ deps: 1,
2177
+ errored: !1
2178
+ };
2179
+ promise.then(
2180
+ function () {
2181
+ var resolvedValue = requireModule(serverReference);
2182
+ if (metaData.bound) {
2183
+ var promiseValue = metaData.bound.value;
2184
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2185
+ promiseValue.unshift(null);
2186
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2187
+ }
2188
+ parentObject[key] = resolvedValue;
2189
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2190
+ handler.deps--;
2191
+ 0 === handler.deps &&
2192
+ ((resolvedValue = handler.chunk),
2193
+ null !== resolvedValue &&
2194
+ "blocked" === resolvedValue.status &&
2195
+ ((promiseValue = resolvedValue.value),
2196
+ (resolvedValue.status = "fulfilled"),
2197
+ (resolvedValue.value = handler.value),
2198
+ null !== promiseValue &&
2199
+ wakeChunk(response, promiseValue, handler.value)));
2200
+ },
2201
+ function (error) {
2202
+ if (!handler.errored) {
2203
+ handler.errored = !0;
2204
+ handler.value = null;
2205
+ handler.reason = error;
2206
+ var chunk = handler.chunk;
2207
+ null !== chunk &&
2208
+ "blocked" === chunk.status &&
2209
+ triggerErrorOnChunk(response, chunk, error);
2210
+ }
2211
+ }
2122
2212
  );
2123
2213
  return null;
2124
2214
  }
@@ -2148,53 +2238,65 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2148
2238
  ? reference + ":" + i
2149
2239
  : void 0),
2150
2240
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2151
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2241
+ void 0 !== parentObj || "__proto__" === i
2242
+ ? (value[i] = parentObj)
2243
+ : delete value[i]);
2152
2244
  return value;
2153
2245
  }
2154
- var initializingChunk = null,
2155
- initializingChunkBlockedModel = null;
2246
+ var initializingHandler = null;
2156
2247
  function initializeModelChunk(chunk) {
2157
- var prevChunk = initializingChunk,
2158
- prevBlocked = initializingChunkBlockedModel;
2159
- initializingChunk = chunk;
2160
- initializingChunkBlockedModel = null;
2161
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2162
- resolvedModel = chunk.value;
2163
- chunk.status = "cyclic";
2248
+ var prevHandler = initializingHandler;
2249
+ initializingHandler = null;
2250
+ var _chunk$reason = chunk.reason,
2251
+ response = _chunk$reason[RESPONSE_SYMBOL];
2252
+ _chunk$reason = _chunk$reason.id;
2253
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2254
+ var resolvedModel = chunk.value;
2255
+ chunk.status = "blocked";
2164
2256
  chunk.value = null;
2165
2257
  chunk.reason = null;
2166
2258
  try {
2167
2259
  var rawModel = JSON.parse(resolvedModel),
2168
2260
  value = reviveModel(
2169
- chunk._response,
2261
+ response,
2170
2262
  { "": rawModel },
2171
2263
  "",
2172
2264
  rawModel,
2173
- rootReference
2174
- );
2175
- if (
2176
- null !== initializingChunkBlockedModel &&
2177
- 0 < initializingChunkBlockedModel.deps
2178
- )
2179
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2180
- else {
2181
- var resolveListeners = chunk.value;
2182
- chunk.status = "fulfilled";
2183
- chunk.value = value;
2184
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2265
+ _chunk$reason
2266
+ ),
2267
+ resolveListeners = chunk.value;
2268
+ if (null !== resolveListeners)
2269
+ for (
2270
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2271
+ rawModel < resolveListeners.length;
2272
+ rawModel++
2273
+ ) {
2274
+ var listener = resolveListeners[rawModel];
2275
+ "function" === typeof listener
2276
+ ? listener(value)
2277
+ : fulfillReference(response, listener, value);
2278
+ }
2279
+ if (null !== initializingHandler) {
2280
+ if (initializingHandler.errored) throw initializingHandler.reason;
2281
+ if (0 < initializingHandler.deps) {
2282
+ initializingHandler.value = value;
2283
+ initializingHandler.chunk = chunk;
2284
+ return;
2285
+ }
2185
2286
  }
2287
+ chunk.status = "fulfilled";
2288
+ chunk.value = value;
2186
2289
  } catch (error) {
2187
2290
  (chunk.status = "rejected"), (chunk.reason = error);
2188
2291
  } finally {
2189
- (initializingChunk = prevChunk),
2190
- (initializingChunkBlockedModel = prevBlocked);
2292
+ initializingHandler = prevHandler;
2191
2293
  }
2192
2294
  }
2193
2295
  function reportGlobalError(response, error) {
2194
2296
  response._closed = !0;
2195
2297
  response._closedReason = error;
2196
2298
  response._chunks.forEach(function (chunk) {
2197
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2299
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2198
2300
  });
2199
2301
  }
2200
2302
  function getChunk(response, id) {
@@ -2203,48 +2305,104 @@ function getChunk(response, id) {
2203
2305
  chunk ||
2204
2306
  ((chunk = response._formData.get(response._prefix + id)),
2205
2307
  (chunk =
2206
- null != chunk
2207
- ? new Chunk("resolved_model", chunk, id, response)
2308
+ "string" === typeof chunk
2309
+ ? createResolvedModelChunk(response, chunk, id)
2208
2310
  : response._closed
2209
- ? new Chunk("rejected", null, response._closedReason, response)
2210
- : createPendingChunk(response)),
2311
+ ? new ReactPromise("rejected", null, response._closedReason)
2312
+ : new ReactPromise("pending", null, null)),
2211
2313
  chunks.set(id, chunk));
2212
2314
  return chunk;
2213
2315
  }
2214
- function createModelResolver(
2215
- chunk,
2316
+ function fulfillReference(response, reference, value) {
2317
+ for (
2318
+ var handler = reference.handler,
2319
+ parentObject = reference.parentObject,
2320
+ key = reference.key,
2321
+ map = reference.map,
2322
+ path = reference.path,
2323
+ i = 1;
2324
+ i < path.length;
2325
+ i++
2326
+ ) {
2327
+ for (; value instanceof ReactPromise; ) {
2328
+ switch (value.status) {
2329
+ case "resolved_model":
2330
+ initializeModelChunk(value);
2331
+ }
2332
+ switch (value.status) {
2333
+ case "fulfilled":
2334
+ value = value.value;
2335
+ continue;
2336
+ case "blocked":
2337
+ case "pending":
2338
+ path.splice(0, i - 1);
2339
+ null === value.value
2340
+ ? (value.value = [reference])
2341
+ : value.value.push(reference);
2342
+ null === value.reason
2343
+ ? (value.reason = [reference])
2344
+ : value.reason.push(reference);
2345
+ return;
2346
+ default:
2347
+ rejectReference(response, reference.handler, value.reason);
2348
+ return;
2349
+ }
2350
+ }
2351
+ var name = path[i];
2352
+ "object" === typeof value &&
2353
+ hasOwnProperty.call(value, name) &&
2354
+ (value = value[name]);
2355
+ }
2356
+ reference = map(response, value, parentObject, key);
2357
+ parentObject[key] = reference;
2358
+ "" === key && null === handler.value && (handler.value = reference);
2359
+ handler.deps--;
2360
+ 0 === handler.deps &&
2361
+ ((parentObject = handler.chunk),
2362
+ null !== parentObject &&
2363
+ "blocked" === parentObject.status &&
2364
+ ((key = parentObject.value),
2365
+ (parentObject.status = "fulfilled"),
2366
+ (parentObject.value = handler.value),
2367
+ (parentObject.reason = handler.reason),
2368
+ null !== key && wakeChunk(response, key, handler.value)));
2369
+ }
2370
+ function rejectReference(response, handler, error) {
2371
+ handler.errored ||
2372
+ ((handler.errored = !0),
2373
+ (handler.value = null),
2374
+ (handler.reason = error),
2375
+ (handler = handler.chunk),
2376
+ null !== handler &&
2377
+ "blocked" === handler.status &&
2378
+ triggerErrorOnChunk(response, handler, error));
2379
+ }
2380
+ function waitForReference(
2381
+ referencedChunk,
2216
2382
  parentObject,
2217
2383
  key,
2218
- cyclic,
2219
2384
  response,
2220
2385
  map,
2221
2386
  path
2222
2387
  ) {
2223
- if (initializingChunkBlockedModel) {
2224
- var blocked = initializingChunkBlockedModel;
2225
- cyclic || blocked.deps++;
2226
- } else
2227
- blocked = initializingChunkBlockedModel = {
2228
- deps: cyclic ? 0 : 1,
2229
- value: null
2230
- };
2231
- return function (value) {
2232
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2233
- parentObject[key] = map(response, value);
2234
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2235
- blocked.deps--;
2236
- 0 === blocked.deps &&
2237
- "blocked" === chunk.status &&
2238
- ((value = chunk.value),
2239
- (chunk.status = "fulfilled"),
2240
- (chunk.value = blocked.value),
2241
- null !== value && wakeChunk(value, blocked.value));
2242
- };
2243
- }
2244
- function createModelReject(chunk) {
2245
- return function (error) {
2246
- return triggerErrorOnChunk(chunk, error);
2388
+ initializingHandler
2389
+ ? ((response = initializingHandler), response.deps++)
2390
+ : (response = initializingHandler =
2391
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2392
+ parentObject = {
2393
+ handler: response,
2394
+ parentObject: parentObject,
2395
+ key: key,
2396
+ map: map,
2397
+ path: path
2247
2398
  };
2399
+ null === referencedChunk.value
2400
+ ? (referencedChunk.value = [parentObject])
2401
+ : referencedChunk.value.push(parentObject);
2402
+ null === referencedChunk.reason
2403
+ ? (referencedChunk.reason = [parentObject])
2404
+ : referencedChunk.reason.push(parentObject);
2405
+ return null;
2248
2406
  }
2249
2407
  function getOutlinedModel(response, reference, parentObject, key, map) {
2250
2408
  reference = reference.split(":");
@@ -2256,29 +2414,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2256
2414
  }
2257
2415
  switch (id.status) {
2258
2416
  case "fulfilled":
2259
- parentObject = id.value;
2260
- for (key = 1; key < reference.length; key++)
2261
- parentObject = parentObject[reference[key]];
2262
- return map(response, parentObject);
2417
+ var value = id.value;
2418
+ for (id = 1; id < reference.length; id++) {
2419
+ for (; value instanceof ReactPromise; ) {
2420
+ switch (value.status) {
2421
+ case "resolved_model":
2422
+ initializeModelChunk(value);
2423
+ }
2424
+ switch (value.status) {
2425
+ case "fulfilled":
2426
+ value = value.value;
2427
+ break;
2428
+ case "blocked":
2429
+ case "pending":
2430
+ return waitForReference(
2431
+ value,
2432
+ parentObject,
2433
+ key,
2434
+ response,
2435
+ map,
2436
+ reference.slice(id - 1)
2437
+ );
2438
+ default:
2439
+ return (
2440
+ initializingHandler
2441
+ ? ((initializingHandler.errored = !0),
2442
+ (initializingHandler.value = null),
2443
+ (initializingHandler.reason = value.reason))
2444
+ : (initializingHandler = {
2445
+ chunk: null,
2446
+ value: null,
2447
+ reason: value.reason,
2448
+ deps: 0,
2449
+ errored: !0
2450
+ }),
2451
+ null
2452
+ );
2453
+ }
2454
+ }
2455
+ var name = reference[id];
2456
+ "object" === typeof value &&
2457
+ hasOwnProperty.call(value, name) &&
2458
+ (value = value[name]);
2459
+ }
2460
+ return map(response, value, parentObject, key);
2263
2461
  case "pending":
2264
2462
  case "blocked":
2265
- case "cyclic":
2266
- var parentChunk = initializingChunk;
2267
- id.then(
2268
- createModelResolver(
2269
- parentChunk,
2270
- parentObject,
2271
- key,
2272
- "cyclic" === id.status,
2273
- response,
2274
- map,
2275
- reference
2276
- ),
2277
- createModelReject(parentChunk)
2278
- );
2279
- return null;
2463
+ return waitForReference(id, parentObject, key, response, map, reference);
2280
2464
  default:
2281
- throw id.reason;
2465
+ return (
2466
+ initializingHandler
2467
+ ? ((initializingHandler.errored = !0),
2468
+ (initializingHandler.value = null),
2469
+ (initializingHandler.reason = id.reason))
2470
+ : (initializingHandler = {
2471
+ chunk: null,
2472
+ value: null,
2473
+ reason: id.reason,
2474
+ deps: 0,
2475
+ errored: !0
2476
+ }),
2477
+ null
2478
+ );
2282
2479
  }
2283
2480
  }
2284
2481
  function createMap(response, model) {
@@ -2302,38 +2499,63 @@ function parseTypedArray(
2302
2499
  parentKey
2303
2500
  ) {
2304
2501
  reference = parseInt(reference.slice(2), 16);
2305
- reference = response._formData.get(response._prefix + reference);
2306
- reference =
2307
- constructor === ArrayBuffer
2308
- ? reference.arrayBuffer()
2309
- : reference.arrayBuffer().then(function (buffer) {
2310
- return new constructor(buffer);
2311
- });
2312
- bytesPerElement = initializingChunk;
2502
+ reference = response._formData
2503
+ .get(response._prefix + reference)
2504
+ .arrayBuffer();
2505
+ if (initializingHandler) {
2506
+ var handler = initializingHandler;
2507
+ handler.deps++;
2508
+ } else
2509
+ handler = initializingHandler = {
2510
+ chunk: null,
2511
+ value: null,
2512
+ reason: null,
2513
+ deps: 1,
2514
+ errored: !1
2515
+ };
2313
2516
  reference.then(
2314
- createModelResolver(
2315
- bytesPerElement,
2316
- parentObject,
2317
- parentKey,
2318
- !1,
2319
- response,
2320
- createModel,
2321
- []
2322
- ),
2323
- createModelReject(bytesPerElement)
2517
+ function (buffer) {
2518
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2519
+ parentObject[parentKey] = buffer;
2520
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2521
+ handler.deps--;
2522
+ if (
2523
+ 0 === handler.deps &&
2524
+ ((buffer = handler.chunk),
2525
+ null !== buffer && "blocked" === buffer.status)
2526
+ ) {
2527
+ var resolveListeners = buffer.value;
2528
+ buffer.status = "fulfilled";
2529
+ buffer.value = handler.value;
2530
+ null !== resolveListeners &&
2531
+ wakeChunk(response, resolveListeners, handler.value);
2532
+ }
2533
+ },
2534
+ function (error) {
2535
+ if (!handler.errored) {
2536
+ handler.errored = !0;
2537
+ handler.value = null;
2538
+ handler.reason = error;
2539
+ var chunk = handler.chunk;
2540
+ null !== chunk &&
2541
+ "blocked" === chunk.status &&
2542
+ triggerErrorOnChunk(response, chunk, error);
2543
+ }
2544
+ }
2324
2545
  );
2325
2546
  return null;
2326
2547
  }
2327
2548
  function resolveStream(response, id, stream, controller) {
2328
2549
  var chunks = response._chunks;
2329
- stream = new Chunk("fulfilled", stream, controller, response);
2550
+ stream = new ReactPromise("fulfilled", stream, controller);
2330
2551
  chunks.set(id, stream);
2331
2552
  response = response._formData.getAll(response._prefix + id);
2332
2553
  for (id = 0; id < response.length; id++)
2333
2554
  (chunks = response[id]),
2334
- "C" === chunks[0]
2335
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2336
- : controller.enqueueModel(chunks);
2555
+ "string" === typeof chunks &&
2556
+ ("C" === chunks[0]
2557
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2558
+ : controller.enqueueModel(chunks));
2337
2559
  }
2338
2560
  function parseReadableStream(response, reference, type) {
2339
2561
  reference = parseInt(reference.slice(2), 16);
@@ -2348,7 +2570,7 @@ function parseReadableStream(response, reference, type) {
2348
2570
  resolveStream(response, reference, type, {
2349
2571
  enqueueModel: function (json) {
2350
2572
  if (null === previousBlockedChunk) {
2351
- var chunk = new Chunk("resolved_model", json, -1, response);
2573
+ var chunk = createResolvedModelChunk(response, json, -1);
2352
2574
  initializeModelChunk(chunk);
2353
2575
  "fulfilled" === chunk.status
2354
2576
  ? controller.enqueue(chunk.value)
@@ -2363,8 +2585,8 @@ function parseReadableStream(response, reference, type) {
2363
2585
  (previousBlockedChunk = chunk));
2364
2586
  } else {
2365
2587
  chunk = previousBlockedChunk;
2366
- var chunk$26 = createPendingChunk(response);
2367
- chunk$26.then(
2588
+ var chunk$30 = new ReactPromise("pending", null, null);
2589
+ chunk$30.then(
2368
2590
  function (v) {
2369
2591
  return controller.enqueue(v);
2370
2592
  },
@@ -2372,10 +2594,10 @@ function parseReadableStream(response, reference, type) {
2372
2594
  return controller.error(e);
2373
2595
  }
2374
2596
  );
2375
- previousBlockedChunk = chunk$26;
2597
+ previousBlockedChunk = chunk$30;
2376
2598
  chunk.then(function () {
2377
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2378
- resolveModelChunk(chunk$26, json, -1);
2599
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2600
+ resolveModelChunk(response, chunk$30, json, -1);
2379
2601
  });
2380
2602
  }
2381
2603
  },
@@ -2415,9 +2637,9 @@ function parseAsyncIterable(response, reference, iterator) {
2415
2637
  var buffer = [],
2416
2638
  closed = !1,
2417
2639
  nextWriteIndex = 0,
2418
- $jscomp$compprop2 = {};
2419
- $jscomp$compprop2 =
2420
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2640
+ $jscomp$compprop5 = {};
2641
+ $jscomp$compprop5 =
2642
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2421
2643
  var nextReadIndex = 0;
2422
2644
  return createIterator(function (arg) {
2423
2645
  if (void 0 !== arg)
@@ -2426,19 +2648,18 @@ function parseAsyncIterable(response, reference, iterator) {
2426
2648
  );
2427
2649
  if (nextReadIndex === buffer.length) {
2428
2650
  if (closed)
2429
- return new Chunk(
2651
+ return new ReactPromise(
2430
2652
  "fulfilled",
2431
2653
  { done: !0, value: void 0 },
2432
- null,
2433
- response
2654
+ null
2434
2655
  );
2435
- buffer[nextReadIndex] = createPendingChunk(response);
2656
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2436
2657
  }
2437
2658
  return buffer[nextReadIndex++];
2438
2659
  });
2439
2660
  }),
2440
- $jscomp$compprop2);
2441
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2661
+ $jscomp$compprop5);
2662
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2442
2663
  resolveStream(response, reference, iterator, {
2443
2664
  enqueueModel: function (value) {
2444
2665
  nextWriteIndex === buffer.length
@@ -2447,7 +2668,12 @@ function parseAsyncIterable(response, reference, iterator) {
2447
2668
  value,
2448
2669
  !1
2449
2670
  ))
2450
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2671
+ : resolveIteratorResultChunk(
2672
+ response,
2673
+ buffer[nextWriteIndex],
2674
+ value,
2675
+ !1
2676
+ );
2451
2677
  nextWriteIndex++;
2452
2678
  },
2453
2679
  close: function (value) {
@@ -2458,9 +2684,15 @@ function parseAsyncIterable(response, reference, iterator) {
2458
2684
  value,
2459
2685
  !0
2460
2686
  ))
2461
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2687
+ : resolveIteratorResultChunk(
2688
+ response,
2689
+ buffer[nextWriteIndex],
2690
+ value,
2691
+ !0
2692
+ );
2462
2693
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2463
2694
  resolveIteratorResultChunk(
2695
+ response,
2464
2696
  buffer[nextWriteIndex++],
2465
2697
  '"$undefined"',
2466
2698
  !0
@@ -2470,11 +2702,11 @@ function parseAsyncIterable(response, reference, iterator) {
2470
2702
  closed = !0;
2471
2703
  for (
2472
2704
  nextWriteIndex === buffer.length &&
2473
- (buffer[nextWriteIndex] = createPendingChunk(response));
2705
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2474
2706
  nextWriteIndex < buffer.length;
2475
2707
 
2476
2708
  )
2477
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2709
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2478
2710
  }
2479
2711
  });
2480
2712
  return iterator;
@@ -2489,15 +2721,7 @@ function parseModelString(response, obj, key, value, reference) {
2489
2721
  case "F":
2490
2722
  return (
2491
2723
  (value = value.slice(2)),
2492
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2493
- loadServerReference$1(
2494
- response,
2495
- value.id,
2496
- value.bound,
2497
- initializingChunk,
2498
- obj,
2499
- key
2500
- )
2724
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2501
2725
  );
2502
2726
  case "T":
2503
2727
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2712,7 +2936,8 @@ exports.decodeReplyFromAsyncIterable = function (
2712
2936
  if (name.startsWith(prefix)) {
2713
2937
  var chunks = response._chunks;
2714
2938
  name = +name.slice(prefix.length);
2715
- (chunks = chunks.get(name)) && resolveModelChunk(chunks, entry, name);
2939
+ (chunks = chunks.get(name)) &&
2940
+ resolveModelChunk(response, chunks, entry, name);
2716
2941
  }
2717
2942
  } else response._formData.append(name, entry);
2718
2943
  iterator.next().then(progress, error);