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