react-server-dom-parcel 19.2.0 → 19.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,8 @@
12
12
  var ReactDOM = require("react-dom"),
13
13
  React = require("react"),
14
14
  ReactDOMSharedInternals =
15
- ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
15
+ ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
16
+ hasOwnProperty = Object.prototype.hasOwnProperty;
16
17
  function resolveServerReference(bundlerConfig, ref) {
17
18
  var idx = ref.lastIndexOf("#"),
18
19
  id = ref.slice(0, idx);
@@ -32,7 +33,9 @@ function preloadModule$1(metadata) {
32
33
  );
33
34
  }
34
35
  function requireModule(metadata) {
35
- return parcelRequire(metadata[0])[metadata[1]];
36
+ var moduleExports = parcelRequire(metadata[0]);
37
+ if (hasOwnProperty.call(moduleExports, metadata[1]))
38
+ return moduleExports[metadata[1]];
36
39
  }
37
40
  var channel = new MessageChannel(),
38
41
  taskQueue = [];
@@ -691,8 +694,7 @@ function describeObjectForErrorMessage(objectOrArray, expandedName) {
691
694
  "\n " + str + "\n " + objectOrArray)
692
695
  : "\n " + str;
693
696
  }
694
- var hasOwnProperty = Object.prototype.hasOwnProperty,
695
- ObjectPrototype = Object.prototype,
697
+ var ObjectPrototype = Object.prototype,
696
698
  stringify = JSON.stringify;
697
699
  function defaultErrorHandler(error) {
698
700
  console.error(error);
@@ -822,8 +824,8 @@ function serializeReadableStream(request, task, stream) {
822
824
  tryStreamTask(request, streamTask),
823
825
  enqueueFlush(request),
824
826
  reader.read().then(progress, error);
825
- } catch (x$8) {
826
- error(x$8);
827
+ } catch (x$11) {
828
+ error(x$11);
827
829
  }
828
830
  }
829
831
  function error(reason) {
@@ -907,8 +909,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
907
909
  tryStreamTask(request, streamTask),
908
910
  enqueueFlush(request),
909
911
  iterator.next().then(progress, error);
910
- } catch (x$9) {
911
- error(x$9);
912
+ } catch (x$12) {
913
+ error(x$12);
912
914
  }
913
915
  }
914
916
  function error(reason) {
@@ -2016,56 +2018,96 @@ function abort(request, reason) {
2016
2018
  onAllReady();
2017
2019
  flushCompletedChunks(request);
2018
2020
  }
2019
- } catch (error$23) {
2020
- logRecoverableError(request, error$23, null),
2021
- fatalError(request, error$23);
2021
+ } catch (error$26) {
2022
+ logRecoverableError(request, error$26, null),
2023
+ fatalError(request, error$26);
2022
2024
  }
2023
2025
  }
2024
- function Chunk(status, value, reason, response) {
2026
+ var RESPONSE_SYMBOL = Symbol();
2027
+ function ReactPromise(status, value, reason) {
2025
2028
  this.status = status;
2026
2029
  this.value = value;
2027
2030
  this.reason = reason;
2028
- this._response = response;
2029
2031
  }
2030
- Chunk.prototype = Object.create(Promise.prototype);
2031
- Chunk.prototype.then = function (resolve, reject) {
2032
+ ReactPromise.prototype = Object.create(Promise.prototype);
2033
+ ReactPromise.prototype.then = function (resolve, reject) {
2032
2034
  switch (this.status) {
2033
2035
  case "resolved_model":
2034
2036
  initializeModelChunk(this);
2035
2037
  }
2036
2038
  switch (this.status) {
2037
2039
  case "fulfilled":
2038
- resolve(this.value);
2040
+ "function" === typeof resolve && resolve(this.value);
2039
2041
  break;
2040
2042
  case "pending":
2041
2043
  case "blocked":
2042
- case "cyclic":
2043
- resolve &&
2044
+ "function" === typeof resolve &&
2044
2045
  (null === this.value && (this.value = []), this.value.push(resolve));
2045
- reject &&
2046
+ "function" === typeof reject &&
2046
2047
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2047
2048
  break;
2048
2049
  default:
2049
- reject(this.reason);
2050
+ "function" === typeof reject && reject(this.reason);
2050
2051
  }
2051
2052
  };
2052
- function createPendingChunk(response) {
2053
- return new Chunk("pending", null, null, response);
2053
+ function wakeChunk(response, listeners, value) {
2054
+ for (var i = 0; i < listeners.length; i++) {
2055
+ var listener = listeners[i];
2056
+ "function" === typeof listener
2057
+ ? listener(value)
2058
+ : fulfillReference(response, listener, value);
2059
+ }
2054
2060
  }
2055
- function wakeChunk(listeners, value) {
2056
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2061
+ function rejectChunk(response, listeners, error) {
2062
+ for (var i = 0; i < listeners.length; i++) {
2063
+ var listener = listeners[i];
2064
+ "function" === typeof listener
2065
+ ? listener(error)
2066
+ : rejectReference(response, listener.handler, error);
2067
+ }
2057
2068
  }
2058
- function triggerErrorOnChunk(chunk, error) {
2069
+ function resolveBlockedCycle(resolvedChunk, reference) {
2070
+ var referencedChunk = reference.handler.chunk;
2071
+ if (null === referencedChunk) return null;
2072
+ if (referencedChunk === resolvedChunk) return reference.handler;
2073
+ reference = referencedChunk.value;
2074
+ if (null !== reference)
2075
+ for (
2076
+ referencedChunk = 0;
2077
+ referencedChunk < reference.length;
2078
+ referencedChunk++
2079
+ ) {
2080
+ var listener = reference[referencedChunk];
2081
+ if (
2082
+ "function" !== typeof listener &&
2083
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2084
+ null !== listener)
2085
+ )
2086
+ return listener;
2087
+ }
2088
+ return null;
2089
+ }
2090
+ function triggerErrorOnChunk(response, chunk, error) {
2059
2091
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2060
2092
  chunk.reason.error(error);
2061
2093
  else {
2062
2094
  var listeners = chunk.reason;
2063
2095
  chunk.status = "rejected";
2064
2096
  chunk.reason = error;
2065
- null !== listeners && wakeChunk(listeners, error);
2097
+ null !== listeners && rejectChunk(response, listeners, error);
2066
2098
  }
2067
2099
  }
2068
- function resolveModelChunk(chunk, value, id) {
2100
+ function createResolvedModelChunk(response, value, id) {
2101
+ var $jscomp$compprop2 = {};
2102
+ return new ReactPromise(
2103
+ "resolved_model",
2104
+ value,
2105
+ (($jscomp$compprop2.id = id),
2106
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2107
+ $jscomp$compprop2)
2108
+ );
2109
+ }
2110
+ function resolveModelChunk(response, chunk, value, id) {
2069
2111
  if ("pending" !== chunk.status)
2070
2112
  (chunk = chunk.reason),
2071
2113
  "C" === value[0]
@@ -2076,77 +2118,129 @@ function resolveModelChunk(chunk, value, id) {
2076
2118
  rejectListeners = chunk.reason;
2077
2119
  chunk.status = "resolved_model";
2078
2120
  chunk.value = value;
2079
- chunk.reason = id;
2121
+ value = {};
2122
+ chunk.reason =
2123
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2080
2124
  if (null !== resolveListeners)
2081
- switch ((initializeModelChunk(chunk), chunk.status)) {
2125
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2082
2126
  case "fulfilled":
2083
- wakeChunk(resolveListeners, chunk.value);
2127
+ wakeChunk(response, resolveListeners, chunk.value);
2084
2128
  break;
2085
- case "pending":
2086
2129
  case "blocked":
2087
- case "cyclic":
2130
+ for (value = 0; value < resolveListeners.length; value++)
2131
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2132
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2133
+ if (null !== cyclicHandler)
2134
+ switch (
2135
+ (fulfillReference(response, id, cyclicHandler.value),
2136
+ resolveListeners.splice(value, 1),
2137
+ value--,
2138
+ null !== rejectListeners &&
2139
+ ((id = rejectListeners.indexOf(id)),
2140
+ -1 !== id && rejectListeners.splice(id, 1)),
2141
+ chunk.status)
2142
+ ) {
2143
+ case "fulfilled":
2144
+ wakeChunk(response, resolveListeners, chunk.value);
2145
+ break a;
2146
+ case "rejected":
2147
+ null !== rejectListeners &&
2148
+ rejectChunk(response, rejectListeners, chunk.reason);
2149
+ break a;
2150
+ }
2151
+ }
2152
+ case "pending":
2088
2153
  if (chunk.value)
2089
- for (value = 0; value < resolveListeners.length; value++)
2090
- chunk.value.push(resolveListeners[value]);
2154
+ for (response = 0; response < resolveListeners.length; response++)
2155
+ chunk.value.push(resolveListeners[response]);
2091
2156
  else chunk.value = resolveListeners;
2092
2157
  if (chunk.reason) {
2093
2158
  if (rejectListeners)
2094
- for (value = 0; value < rejectListeners.length; value++)
2095
- chunk.reason.push(rejectListeners[value]);
2159
+ for (
2160
+ resolveListeners = 0;
2161
+ resolveListeners < rejectListeners.length;
2162
+ resolveListeners++
2163
+ )
2164
+ chunk.reason.push(rejectListeners[resolveListeners]);
2096
2165
  } else chunk.reason = rejectListeners;
2097
2166
  break;
2098
2167
  case "rejected":
2099
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2168
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2100
2169
  }
2101
2170
  }
2102
2171
  }
2103
2172
  function createResolvedIteratorResultChunk(response, value, done) {
2104
- return new Chunk(
2173
+ var $jscomp$compprop4 = {};
2174
+ return new ReactPromise(
2105
2175
  "resolved_model",
2106
2176
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2107
- -1,
2108
- response
2177
+ (($jscomp$compprop4.id = -1),
2178
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2179
+ $jscomp$compprop4)
2109
2180
  );
2110
2181
  }
2111
- function resolveIteratorResultChunk(chunk, value, done) {
2182
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2112
2183
  resolveModelChunk(
2184
+ response,
2113
2185
  chunk,
2114
2186
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2115
2187
  -1
2116
2188
  );
2117
2189
  }
2118
- function loadServerReference$1(
2119
- response,
2120
- id,
2121
- bound,
2122
- parentChunk,
2123
- parentObject,
2124
- key
2125
- ) {
2190
+ function loadServerReference$1(response, metaData, parentObject, key) {
2191
+ var id = metaData.id;
2192
+ if ("string" !== typeof id) return null;
2126
2193
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2127
- id = preloadModule$1(serverReference);
2128
- if (bound)
2129
- bound = Promise.all([bound, id]).then(function (_ref) {
2130
- _ref = _ref[0];
2131
- var fn = requireModule(serverReference);
2132
- return fn.bind.apply(fn, [null].concat(_ref));
2133
- });
2134
- else if (id)
2135
- bound = Promise.resolve(id).then(function () {
2136
- return requireModule(serverReference);
2137
- });
2194
+ id = metaData.bound;
2195
+ var promise = preloadModule$1(serverReference);
2196
+ if (promise)
2197
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2198
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2138
2199
  else return requireModule(serverReference);
2139
- bound.then(
2140
- createModelResolver(
2141
- parentChunk,
2142
- parentObject,
2143
- key,
2144
- !1,
2145
- response,
2146
- createModel,
2147
- []
2148
- ),
2149
- createModelReject(parentChunk)
2200
+ if (initializingHandler) {
2201
+ var handler = initializingHandler;
2202
+ handler.deps++;
2203
+ } else
2204
+ handler = initializingHandler = {
2205
+ chunk: null,
2206
+ value: null,
2207
+ reason: null,
2208
+ deps: 1,
2209
+ errored: !1
2210
+ };
2211
+ promise.then(
2212
+ function () {
2213
+ var resolvedValue = requireModule(serverReference);
2214
+ if (metaData.bound) {
2215
+ var promiseValue = metaData.bound.value;
2216
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2217
+ promiseValue.unshift(null);
2218
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2219
+ }
2220
+ parentObject[key] = resolvedValue;
2221
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2222
+ handler.deps--;
2223
+ 0 === handler.deps &&
2224
+ ((resolvedValue = handler.chunk),
2225
+ null !== resolvedValue &&
2226
+ "blocked" === resolvedValue.status &&
2227
+ ((promiseValue = resolvedValue.value),
2228
+ (resolvedValue.status = "fulfilled"),
2229
+ (resolvedValue.value = handler.value),
2230
+ null !== promiseValue &&
2231
+ wakeChunk(response, promiseValue, handler.value)));
2232
+ },
2233
+ function (error) {
2234
+ if (!handler.errored) {
2235
+ handler.errored = !0;
2236
+ handler.value = null;
2237
+ handler.reason = error;
2238
+ var chunk = handler.chunk;
2239
+ null !== chunk &&
2240
+ "blocked" === chunk.status &&
2241
+ triggerErrorOnChunk(response, chunk, error);
2242
+ }
2243
+ }
2150
2244
  );
2151
2245
  return null;
2152
2246
  }
@@ -2176,53 +2270,65 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2176
2270
  ? reference + ":" + i
2177
2271
  : void 0),
2178
2272
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2179
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2273
+ void 0 !== parentObj || "__proto__" === i
2274
+ ? (value[i] = parentObj)
2275
+ : delete value[i]);
2180
2276
  return value;
2181
2277
  }
2182
- var initializingChunk = null,
2183
- initializingChunkBlockedModel = null;
2278
+ var initializingHandler = null;
2184
2279
  function initializeModelChunk(chunk) {
2185
- var prevChunk = initializingChunk,
2186
- prevBlocked = initializingChunkBlockedModel;
2187
- initializingChunk = chunk;
2188
- initializingChunkBlockedModel = null;
2189
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2190
- resolvedModel = chunk.value;
2191
- chunk.status = "cyclic";
2280
+ var prevHandler = initializingHandler;
2281
+ initializingHandler = null;
2282
+ var _chunk$reason = chunk.reason,
2283
+ response = _chunk$reason[RESPONSE_SYMBOL];
2284
+ _chunk$reason = _chunk$reason.id;
2285
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2286
+ var resolvedModel = chunk.value;
2287
+ chunk.status = "blocked";
2192
2288
  chunk.value = null;
2193
2289
  chunk.reason = null;
2194
2290
  try {
2195
2291
  var rawModel = JSON.parse(resolvedModel),
2196
2292
  value = reviveModel(
2197
- chunk._response,
2293
+ response,
2198
2294
  { "": rawModel },
2199
2295
  "",
2200
2296
  rawModel,
2201
- rootReference
2202
- );
2203
- if (
2204
- null !== initializingChunkBlockedModel &&
2205
- 0 < initializingChunkBlockedModel.deps
2206
- )
2207
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2208
- else {
2209
- var resolveListeners = chunk.value;
2210
- chunk.status = "fulfilled";
2211
- chunk.value = value;
2212
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2297
+ _chunk$reason
2298
+ ),
2299
+ resolveListeners = chunk.value;
2300
+ if (null !== resolveListeners)
2301
+ for (
2302
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2303
+ rawModel < resolveListeners.length;
2304
+ rawModel++
2305
+ ) {
2306
+ var listener = resolveListeners[rawModel];
2307
+ "function" === typeof listener
2308
+ ? listener(value)
2309
+ : fulfillReference(response, listener, value);
2310
+ }
2311
+ if (null !== initializingHandler) {
2312
+ if (initializingHandler.errored) throw initializingHandler.reason;
2313
+ if (0 < initializingHandler.deps) {
2314
+ initializingHandler.value = value;
2315
+ initializingHandler.chunk = chunk;
2316
+ return;
2317
+ }
2213
2318
  }
2319
+ chunk.status = "fulfilled";
2320
+ chunk.value = value;
2214
2321
  } catch (error) {
2215
2322
  (chunk.status = "rejected"), (chunk.reason = error);
2216
2323
  } finally {
2217
- (initializingChunk = prevChunk),
2218
- (initializingChunkBlockedModel = prevBlocked);
2324
+ initializingHandler = prevHandler;
2219
2325
  }
2220
2326
  }
2221
2327
  function reportGlobalError(response, error) {
2222
2328
  response._closed = !0;
2223
2329
  response._closedReason = error;
2224
2330
  response._chunks.forEach(function (chunk) {
2225
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2331
+ "pending" === chunk.status && triggerErrorOnChunk(response, chunk, error);
2226
2332
  });
2227
2333
  }
2228
2334
  function getChunk(response, id) {
@@ -2231,48 +2337,104 @@ function getChunk(response, id) {
2231
2337
  chunk ||
2232
2338
  ((chunk = response._formData.get(response._prefix + id)),
2233
2339
  (chunk =
2234
- null != chunk
2235
- ? new Chunk("resolved_model", chunk, id, response)
2340
+ "string" === typeof chunk
2341
+ ? createResolvedModelChunk(response, chunk, id)
2236
2342
  : response._closed
2237
- ? new Chunk("rejected", null, response._closedReason, response)
2238
- : createPendingChunk(response)),
2343
+ ? new ReactPromise("rejected", null, response._closedReason)
2344
+ : new ReactPromise("pending", null, null)),
2239
2345
  chunks.set(id, chunk));
2240
2346
  return chunk;
2241
2347
  }
2242
- function createModelResolver(
2243
- chunk,
2348
+ function fulfillReference(response, reference, value) {
2349
+ for (
2350
+ var handler = reference.handler,
2351
+ parentObject = reference.parentObject,
2352
+ key = reference.key,
2353
+ map = reference.map,
2354
+ path = reference.path,
2355
+ i = 1;
2356
+ i < path.length;
2357
+ i++
2358
+ ) {
2359
+ for (; value instanceof ReactPromise; ) {
2360
+ switch (value.status) {
2361
+ case "resolved_model":
2362
+ initializeModelChunk(value);
2363
+ }
2364
+ switch (value.status) {
2365
+ case "fulfilled":
2366
+ value = value.value;
2367
+ continue;
2368
+ case "blocked":
2369
+ case "pending":
2370
+ path.splice(0, i - 1);
2371
+ null === value.value
2372
+ ? (value.value = [reference])
2373
+ : value.value.push(reference);
2374
+ null === value.reason
2375
+ ? (value.reason = [reference])
2376
+ : value.reason.push(reference);
2377
+ return;
2378
+ default:
2379
+ rejectReference(response, reference.handler, value.reason);
2380
+ return;
2381
+ }
2382
+ }
2383
+ var name = path[i];
2384
+ "object" === typeof value &&
2385
+ hasOwnProperty.call(value, name) &&
2386
+ (value = value[name]);
2387
+ }
2388
+ reference = map(response, value, parentObject, key);
2389
+ parentObject[key] = reference;
2390
+ "" === key && null === handler.value && (handler.value = reference);
2391
+ handler.deps--;
2392
+ 0 === handler.deps &&
2393
+ ((parentObject = handler.chunk),
2394
+ null !== parentObject &&
2395
+ "blocked" === parentObject.status &&
2396
+ ((key = parentObject.value),
2397
+ (parentObject.status = "fulfilled"),
2398
+ (parentObject.value = handler.value),
2399
+ (parentObject.reason = handler.reason),
2400
+ null !== key && wakeChunk(response, key, handler.value)));
2401
+ }
2402
+ function rejectReference(response, handler, error) {
2403
+ handler.errored ||
2404
+ ((handler.errored = !0),
2405
+ (handler.value = null),
2406
+ (handler.reason = error),
2407
+ (handler = handler.chunk),
2408
+ null !== handler &&
2409
+ "blocked" === handler.status &&
2410
+ triggerErrorOnChunk(response, handler, error));
2411
+ }
2412
+ function waitForReference(
2413
+ referencedChunk,
2244
2414
  parentObject,
2245
2415
  key,
2246
- cyclic,
2247
2416
  response,
2248
2417
  map,
2249
2418
  path
2250
2419
  ) {
2251
- if (initializingChunkBlockedModel) {
2252
- var blocked = initializingChunkBlockedModel;
2253
- cyclic || blocked.deps++;
2254
- } else
2255
- blocked = initializingChunkBlockedModel = {
2256
- deps: cyclic ? 0 : 1,
2257
- value: null
2258
- };
2259
- return function (value) {
2260
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2261
- parentObject[key] = map(response, value);
2262
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2263
- blocked.deps--;
2264
- 0 === blocked.deps &&
2265
- "blocked" === chunk.status &&
2266
- ((value = chunk.value),
2267
- (chunk.status = "fulfilled"),
2268
- (chunk.value = blocked.value),
2269
- null !== value && wakeChunk(value, blocked.value));
2270
- };
2271
- }
2272
- function createModelReject(chunk) {
2273
- return function (error) {
2274
- return triggerErrorOnChunk(chunk, error);
2420
+ initializingHandler
2421
+ ? ((response = initializingHandler), response.deps++)
2422
+ : (response = initializingHandler =
2423
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2424
+ parentObject = {
2425
+ handler: response,
2426
+ parentObject: parentObject,
2427
+ key: key,
2428
+ map: map,
2429
+ path: path
2275
2430
  };
2431
+ null === referencedChunk.value
2432
+ ? (referencedChunk.value = [parentObject])
2433
+ : referencedChunk.value.push(parentObject);
2434
+ null === referencedChunk.reason
2435
+ ? (referencedChunk.reason = [parentObject])
2436
+ : referencedChunk.reason.push(parentObject);
2437
+ return null;
2276
2438
  }
2277
2439
  function getOutlinedModel(response, reference, parentObject, key, map) {
2278
2440
  reference = reference.split(":");
@@ -2284,29 +2446,68 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2284
2446
  }
2285
2447
  switch (id.status) {
2286
2448
  case "fulfilled":
2287
- parentObject = id.value;
2288
- for (key = 1; key < reference.length; key++)
2289
- parentObject = parentObject[reference[key]];
2290
- return map(response, parentObject);
2449
+ var value = id.value;
2450
+ for (id = 1; id < reference.length; id++) {
2451
+ for (; value instanceof ReactPromise; ) {
2452
+ switch (value.status) {
2453
+ case "resolved_model":
2454
+ initializeModelChunk(value);
2455
+ }
2456
+ switch (value.status) {
2457
+ case "fulfilled":
2458
+ value = value.value;
2459
+ break;
2460
+ case "blocked":
2461
+ case "pending":
2462
+ return waitForReference(
2463
+ value,
2464
+ parentObject,
2465
+ key,
2466
+ response,
2467
+ map,
2468
+ reference.slice(id - 1)
2469
+ );
2470
+ default:
2471
+ return (
2472
+ initializingHandler
2473
+ ? ((initializingHandler.errored = !0),
2474
+ (initializingHandler.value = null),
2475
+ (initializingHandler.reason = value.reason))
2476
+ : (initializingHandler = {
2477
+ chunk: null,
2478
+ value: null,
2479
+ reason: value.reason,
2480
+ deps: 0,
2481
+ errored: !0
2482
+ }),
2483
+ null
2484
+ );
2485
+ }
2486
+ }
2487
+ var name = reference[id];
2488
+ "object" === typeof value &&
2489
+ hasOwnProperty.call(value, name) &&
2490
+ (value = value[name]);
2491
+ }
2492
+ return map(response, value, parentObject, key);
2291
2493
  case "pending":
2292
2494
  case "blocked":
2293
- case "cyclic":
2294
- var parentChunk = initializingChunk;
2295
- id.then(
2296
- createModelResolver(
2297
- parentChunk,
2298
- parentObject,
2299
- key,
2300
- "cyclic" === id.status,
2301
- response,
2302
- map,
2303
- reference
2304
- ),
2305
- createModelReject(parentChunk)
2306
- );
2307
- return null;
2495
+ return waitForReference(id, parentObject, key, response, map, reference);
2308
2496
  default:
2309
- throw id.reason;
2497
+ return (
2498
+ initializingHandler
2499
+ ? ((initializingHandler.errored = !0),
2500
+ (initializingHandler.value = null),
2501
+ (initializingHandler.reason = id.reason))
2502
+ : (initializingHandler = {
2503
+ chunk: null,
2504
+ value: null,
2505
+ reason: id.reason,
2506
+ deps: 0,
2507
+ errored: !0
2508
+ }),
2509
+ null
2510
+ );
2310
2511
  }
2311
2512
  }
2312
2513
  function createMap(response, model) {
@@ -2330,38 +2531,63 @@ function parseTypedArray(
2330
2531
  parentKey
2331
2532
  ) {
2332
2533
  reference = parseInt(reference.slice(2), 16);
2333
- reference = response._formData.get(response._prefix + reference);
2334
- reference =
2335
- constructor === ArrayBuffer
2336
- ? reference.arrayBuffer()
2337
- : reference.arrayBuffer().then(function (buffer) {
2338
- return new constructor(buffer);
2339
- });
2340
- bytesPerElement = initializingChunk;
2534
+ reference = response._formData
2535
+ .get(response._prefix + reference)
2536
+ .arrayBuffer();
2537
+ if (initializingHandler) {
2538
+ var handler = initializingHandler;
2539
+ handler.deps++;
2540
+ } else
2541
+ handler = initializingHandler = {
2542
+ chunk: null,
2543
+ value: null,
2544
+ reason: null,
2545
+ deps: 1,
2546
+ errored: !1
2547
+ };
2341
2548
  reference.then(
2342
- createModelResolver(
2343
- bytesPerElement,
2344
- parentObject,
2345
- parentKey,
2346
- !1,
2347
- response,
2348
- createModel,
2349
- []
2350
- ),
2351
- createModelReject(bytesPerElement)
2549
+ function (buffer) {
2550
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2551
+ parentObject[parentKey] = buffer;
2552
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2553
+ handler.deps--;
2554
+ if (
2555
+ 0 === handler.deps &&
2556
+ ((buffer = handler.chunk),
2557
+ null !== buffer && "blocked" === buffer.status)
2558
+ ) {
2559
+ var resolveListeners = buffer.value;
2560
+ buffer.status = "fulfilled";
2561
+ buffer.value = handler.value;
2562
+ null !== resolveListeners &&
2563
+ wakeChunk(response, resolveListeners, handler.value);
2564
+ }
2565
+ },
2566
+ function (error) {
2567
+ if (!handler.errored) {
2568
+ handler.errored = !0;
2569
+ handler.value = null;
2570
+ handler.reason = error;
2571
+ var chunk = handler.chunk;
2572
+ null !== chunk &&
2573
+ "blocked" === chunk.status &&
2574
+ triggerErrorOnChunk(response, chunk, error);
2575
+ }
2576
+ }
2352
2577
  );
2353
2578
  return null;
2354
2579
  }
2355
2580
  function resolveStream(response, id, stream, controller) {
2356
2581
  var chunks = response._chunks;
2357
- stream = new Chunk("fulfilled", stream, controller, response);
2582
+ stream = new ReactPromise("fulfilled", stream, controller);
2358
2583
  chunks.set(id, stream);
2359
2584
  response = response._formData.getAll(response._prefix + id);
2360
2585
  for (id = 0; id < response.length; id++)
2361
2586
  (chunks = response[id]),
2362
- "C" === chunks[0]
2363
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2364
- : controller.enqueueModel(chunks);
2587
+ "string" === typeof chunks &&
2588
+ ("C" === chunks[0]
2589
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2590
+ : controller.enqueueModel(chunks));
2365
2591
  }
2366
2592
  function parseReadableStream(response, reference, type) {
2367
2593
  reference = parseInt(reference.slice(2), 16);
@@ -2376,7 +2602,7 @@ function parseReadableStream(response, reference, type) {
2376
2602
  resolveStream(response, reference, type, {
2377
2603
  enqueueModel: function (json) {
2378
2604
  if (null === previousBlockedChunk) {
2379
- var chunk = new Chunk("resolved_model", json, -1, response);
2605
+ var chunk = createResolvedModelChunk(response, json, -1);
2380
2606
  initializeModelChunk(chunk);
2381
2607
  "fulfilled" === chunk.status
2382
2608
  ? controller.enqueue(chunk.value)
@@ -2391,8 +2617,8 @@ function parseReadableStream(response, reference, type) {
2391
2617
  (previousBlockedChunk = chunk));
2392
2618
  } else {
2393
2619
  chunk = previousBlockedChunk;
2394
- var chunk$26 = createPendingChunk(response);
2395
- chunk$26.then(
2620
+ var chunk$30 = new ReactPromise("pending", null, null);
2621
+ chunk$30.then(
2396
2622
  function (v) {
2397
2623
  return controller.enqueue(v);
2398
2624
  },
@@ -2400,10 +2626,10 @@ function parseReadableStream(response, reference, type) {
2400
2626
  return controller.error(e);
2401
2627
  }
2402
2628
  );
2403
- previousBlockedChunk = chunk$26;
2629
+ previousBlockedChunk = chunk$30;
2404
2630
  chunk.then(function () {
2405
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2406
- resolveModelChunk(chunk$26, json, -1);
2631
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2632
+ resolveModelChunk(response, chunk$30, json, -1);
2407
2633
  });
2408
2634
  }
2409
2635
  },
@@ -2443,9 +2669,9 @@ function parseAsyncIterable(response, reference, iterator) {
2443
2669
  var buffer = [],
2444
2670
  closed = !1,
2445
2671
  nextWriteIndex = 0,
2446
- $jscomp$compprop2 = {};
2447
- $jscomp$compprop2 =
2448
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2672
+ $jscomp$compprop5 = {};
2673
+ $jscomp$compprop5 =
2674
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2449
2675
  var nextReadIndex = 0;
2450
2676
  return createIterator(function (arg) {
2451
2677
  if (void 0 !== arg)
@@ -2454,19 +2680,18 @@ function parseAsyncIterable(response, reference, iterator) {
2454
2680
  );
2455
2681
  if (nextReadIndex === buffer.length) {
2456
2682
  if (closed)
2457
- return new Chunk(
2683
+ return new ReactPromise(
2458
2684
  "fulfilled",
2459
2685
  { done: !0, value: void 0 },
2460
- null,
2461
- response
2686
+ null
2462
2687
  );
2463
- buffer[nextReadIndex] = createPendingChunk(response);
2688
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2464
2689
  }
2465
2690
  return buffer[nextReadIndex++];
2466
2691
  });
2467
2692
  }),
2468
- $jscomp$compprop2);
2469
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2693
+ $jscomp$compprop5);
2694
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2470
2695
  resolveStream(response, reference, iterator, {
2471
2696
  enqueueModel: function (value) {
2472
2697
  nextWriteIndex === buffer.length
@@ -2475,7 +2700,12 @@ function parseAsyncIterable(response, reference, iterator) {
2475
2700
  value,
2476
2701
  !1
2477
2702
  ))
2478
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2703
+ : resolveIteratorResultChunk(
2704
+ response,
2705
+ buffer[nextWriteIndex],
2706
+ value,
2707
+ !1
2708
+ );
2479
2709
  nextWriteIndex++;
2480
2710
  },
2481
2711
  close: function (value) {
@@ -2486,9 +2716,15 @@ function parseAsyncIterable(response, reference, iterator) {
2486
2716
  value,
2487
2717
  !0
2488
2718
  ))
2489
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2719
+ : resolveIteratorResultChunk(
2720
+ response,
2721
+ buffer[nextWriteIndex],
2722
+ value,
2723
+ !0
2724
+ );
2490
2725
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2491
2726
  resolveIteratorResultChunk(
2727
+ response,
2492
2728
  buffer[nextWriteIndex++],
2493
2729
  '"$undefined"',
2494
2730
  !0
@@ -2498,11 +2734,11 @@ function parseAsyncIterable(response, reference, iterator) {
2498
2734
  closed = !0;
2499
2735
  for (
2500
2736
  nextWriteIndex === buffer.length &&
2501
- (buffer[nextWriteIndex] = createPendingChunk(response));
2737
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2502
2738
  nextWriteIndex < buffer.length;
2503
2739
 
2504
2740
  )
2505
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2741
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2506
2742
  }
2507
2743
  });
2508
2744
  return iterator;
@@ -2517,15 +2753,7 @@ function parseModelString(response, obj, key, value, reference) {
2517
2753
  case "F":
2518
2754
  return (
2519
2755
  (value = value.slice(2)),
2520
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2521
- loadServerReference$1(
2522
- response,
2523
- value.id,
2524
- value.bound,
2525
- initializingChunk,
2526
- obj,
2527
- key
2528
- )
2756
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2529
2757
  );
2530
2758
  case "T":
2531
2759
  if (void 0 === reference || void 0 === response._temporaryReferences)