react-server-dom-parcel 19.2.0 → 19.2.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.
@@ -131,7 +131,14 @@ function bind() {
131
131
  }
132
132
  return newFn;
133
133
  }
134
- var ReactDOMSharedInternals =
134
+ var serverReferenceToString = {
135
+ value: function () {
136
+ return "function () { [omitted code] }";
137
+ },
138
+ configurable: !0,
139
+ writable: !0
140
+ },
141
+ ReactDOMSharedInternals =
135
142
  ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
136
143
  previousDispatcher = ReactDOMSharedInternals.d;
137
144
  ReactDOMSharedInternals.d = {
@@ -823,8 +830,8 @@ function serializeReadableStream(request, task, stream) {
823
830
  tryStreamTask(request, streamTask),
824
831
  enqueueFlush(request),
825
832
  reader.read().then(progress, error);
826
- } catch (x$8) {
827
- error(x$8);
833
+ } catch (x$11) {
834
+ error(x$11);
828
835
  }
829
836
  }
830
837
  function error(reason) {
@@ -908,8 +915,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
908
915
  tryStreamTask(request, streamTask),
909
916
  enqueueFlush(request),
910
917
  iterator.next().then(progress, error);
911
- } catch (x$9) {
912
- error(x$9);
918
+ } catch (x$12) {
919
+ error(x$12);
913
920
  }
914
921
  }
915
922
  function error(reason) {
@@ -1588,7 +1595,7 @@ function renderModelDestructive(
1588
1595
  (task = request.writtenServerReferences),
1589
1596
  (parentPropertyName = task.get(value)),
1590
1597
  void 0 !== parentPropertyName
1591
- ? (request = "$F" + parentPropertyName.toString(16))
1598
+ ? (request = "$h" + parentPropertyName.toString(16))
1592
1599
  : ((parentPropertyName = value.$$bound),
1593
1600
  (parentPropertyName =
1594
1601
  null === parentPropertyName
@@ -1600,7 +1607,7 @@ function renderModelDestructive(
1600
1607
  0
1601
1608
  )),
1602
1609
  task.set(value, request),
1603
- (request = "$F" + request.toString(16))),
1610
+ (request = "$h" + request.toString(16))),
1604
1611
  request
1605
1612
  );
1606
1613
  if (
@@ -2029,9 +2036,9 @@ function abort(request, reason) {
2029
2036
  onAllReady();
2030
2037
  flushCompletedChunks(request);
2031
2038
  }
2032
- } catch (error$23) {
2033
- logRecoverableError(request, error$23, null),
2034
- fatalError(request, error$23);
2039
+ } catch (error$26) {
2040
+ logRecoverableError(request, error$26, null),
2041
+ fatalError(request, error$26);
2035
2042
  }
2036
2043
  }
2037
2044
  function resolveServerReference(bundlerConfig, ref) {
@@ -2053,53 +2060,111 @@ function preloadModule(metadata) {
2053
2060
  );
2054
2061
  }
2055
2062
  function requireModule(metadata) {
2056
- return parcelRequire(metadata[0])[metadata[1]];
2063
+ var moduleExports = parcelRequire(metadata[0]);
2064
+ if (hasOwnProperty.call(moduleExports, metadata[1]))
2065
+ return moduleExports[metadata[1]];
2057
2066
  }
2058
- function Chunk(status, value, reason, response) {
2067
+ var RESPONSE_SYMBOL = Symbol();
2068
+ function ReactPromise(status, value, reason) {
2059
2069
  this.status = status;
2060
2070
  this.value = value;
2061
2071
  this.reason = reason;
2062
- this._response = response;
2063
2072
  }
2064
- Chunk.prototype = Object.create(Promise.prototype);
2065
- Chunk.prototype.then = function (resolve, reject) {
2073
+ ReactPromise.prototype = Object.create(Promise.prototype);
2074
+ ReactPromise.prototype.then = function (resolve, reject) {
2066
2075
  switch (this.status) {
2067
2076
  case "resolved_model":
2068
2077
  initializeModelChunk(this);
2069
2078
  }
2070
2079
  switch (this.status) {
2071
2080
  case "fulfilled":
2072
- resolve(this.value);
2081
+ if ("function" === typeof resolve) {
2082
+ for (
2083
+ var inspectedValue = this.value;
2084
+ inspectedValue instanceof ReactPromise;
2085
+
2086
+ ) {
2087
+ if (inspectedValue === this) {
2088
+ "function" === typeof reject &&
2089
+ reject(Error("Cannot have cyclic thenables."));
2090
+ return;
2091
+ }
2092
+ if ("fulfilled" === inspectedValue.status)
2093
+ inspectedValue = inspectedValue.value;
2094
+ else break;
2095
+ }
2096
+ resolve(this.value);
2097
+ }
2073
2098
  break;
2074
2099
  case "pending":
2075
2100
  case "blocked":
2076
- case "cyclic":
2077
- resolve &&
2101
+ "function" === typeof resolve &&
2078
2102
  (null === this.value && (this.value = []), this.value.push(resolve));
2079
- reject &&
2103
+ "function" === typeof reject &&
2080
2104
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2081
2105
  break;
2082
2106
  default:
2083
- reject(this.reason);
2107
+ "function" === typeof reject && reject(this.reason);
2084
2108
  }
2085
2109
  };
2086
- function createPendingChunk(response) {
2087
- return new Chunk("pending", null, null, response);
2110
+ function wakeChunk(response, listeners, value) {
2111
+ for (var i = 0; i < listeners.length; i++) {
2112
+ var listener = listeners[i];
2113
+ "function" === typeof listener
2114
+ ? listener(value)
2115
+ : fulfillReference(response, listener, value);
2116
+ }
2117
+ }
2118
+ function rejectChunk(response, listeners, error) {
2119
+ for (var i = 0; i < listeners.length; i++) {
2120
+ var listener = listeners[i];
2121
+ "function" === typeof listener
2122
+ ? listener(error)
2123
+ : rejectReference(response, listener.handler, error);
2124
+ }
2088
2125
  }
2089
- function wakeChunk(listeners, value) {
2090
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2126
+ function resolveBlockedCycle(resolvedChunk, reference) {
2127
+ var referencedChunk = reference.handler.chunk;
2128
+ if (null === referencedChunk) return null;
2129
+ if (referencedChunk === resolvedChunk) return reference.handler;
2130
+ reference = referencedChunk.value;
2131
+ if (null !== reference)
2132
+ for (
2133
+ referencedChunk = 0;
2134
+ referencedChunk < reference.length;
2135
+ referencedChunk++
2136
+ ) {
2137
+ var listener = reference[referencedChunk];
2138
+ if (
2139
+ "function" !== typeof listener &&
2140
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2141
+ null !== listener)
2142
+ )
2143
+ return listener;
2144
+ }
2145
+ return null;
2091
2146
  }
2092
- function triggerErrorOnChunk(chunk, error) {
2147
+ function triggerErrorOnChunk(response, chunk, error) {
2093
2148
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2094
2149
  chunk.reason.error(error);
2095
2150
  else {
2096
2151
  var listeners = chunk.reason;
2097
2152
  chunk.status = "rejected";
2098
2153
  chunk.reason = error;
2099
- null !== listeners && wakeChunk(listeners, error);
2154
+ null !== listeners && rejectChunk(response, listeners, error);
2100
2155
  }
2101
2156
  }
2102
- function resolveModelChunk(chunk, value, id) {
2157
+ function createResolvedModelChunk(response, value, id) {
2158
+ var $jscomp$compprop2 = {};
2159
+ return new ReactPromise(
2160
+ "resolved_model",
2161
+ value,
2162
+ (($jscomp$compprop2.id = id),
2163
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2164
+ $jscomp$compprop2)
2165
+ );
2166
+ }
2167
+ function resolveModelChunk(response, chunk, value, id) {
2103
2168
  if ("pending" !== chunk.status)
2104
2169
  (chunk = chunk.reason),
2105
2170
  "C" === value[0]
@@ -2110,77 +2175,130 @@ function resolveModelChunk(chunk, value, id) {
2110
2175
  rejectListeners = chunk.reason;
2111
2176
  chunk.status = "resolved_model";
2112
2177
  chunk.value = value;
2113
- chunk.reason = id;
2178
+ value = {};
2179
+ chunk.reason =
2180
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2114
2181
  if (null !== resolveListeners)
2115
- switch ((initializeModelChunk(chunk), chunk.status)) {
2182
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2116
2183
  case "fulfilled":
2117
- wakeChunk(resolveListeners, chunk.value);
2184
+ wakeChunk(response, resolveListeners, chunk.value);
2118
2185
  break;
2119
- case "pending":
2120
2186
  case "blocked":
2121
- case "cyclic":
2187
+ for (value = 0; value < resolveListeners.length; value++)
2188
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2189
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2190
+ if (null !== cyclicHandler)
2191
+ switch (
2192
+ (fulfillReference(response, id, cyclicHandler.value),
2193
+ resolveListeners.splice(value, 1),
2194
+ value--,
2195
+ null !== rejectListeners &&
2196
+ ((id = rejectListeners.indexOf(id)),
2197
+ -1 !== id && rejectListeners.splice(id, 1)),
2198
+ chunk.status)
2199
+ ) {
2200
+ case "fulfilled":
2201
+ wakeChunk(response, resolveListeners, chunk.value);
2202
+ break a;
2203
+ case "rejected":
2204
+ null !== rejectListeners &&
2205
+ rejectChunk(response, rejectListeners, chunk.reason);
2206
+ break a;
2207
+ }
2208
+ }
2209
+ case "pending":
2122
2210
  if (chunk.value)
2123
- for (value = 0; value < resolveListeners.length; value++)
2124
- chunk.value.push(resolveListeners[value]);
2211
+ for (response = 0; response < resolveListeners.length; response++)
2212
+ chunk.value.push(resolveListeners[response]);
2125
2213
  else chunk.value = resolveListeners;
2126
2214
  if (chunk.reason) {
2127
2215
  if (rejectListeners)
2128
- for (value = 0; value < rejectListeners.length; value++)
2129
- chunk.reason.push(rejectListeners[value]);
2216
+ for (
2217
+ resolveListeners = 0;
2218
+ resolveListeners < rejectListeners.length;
2219
+ resolveListeners++
2220
+ )
2221
+ chunk.reason.push(rejectListeners[resolveListeners]);
2130
2222
  } else chunk.reason = rejectListeners;
2131
2223
  break;
2132
2224
  case "rejected":
2133
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2225
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2134
2226
  }
2135
2227
  }
2136
2228
  }
2137
2229
  function createResolvedIteratorResultChunk(response, value, done) {
2138
- return new Chunk(
2230
+ var $jscomp$compprop4 = {};
2231
+ return new ReactPromise(
2139
2232
  "resolved_model",
2140
2233
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2141
- -1,
2142
- response
2234
+ (($jscomp$compprop4.id = -1),
2235
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2236
+ $jscomp$compprop4)
2143
2237
  );
2144
2238
  }
2145
- function resolveIteratorResultChunk(chunk, value, done) {
2239
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2146
2240
  resolveModelChunk(
2241
+ response,
2147
2242
  chunk,
2148
2243
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2149
2244
  -1
2150
2245
  );
2151
2246
  }
2152
- function loadServerReference$1(
2153
- response,
2154
- id,
2155
- bound,
2156
- parentChunk,
2157
- parentObject,
2158
- key
2159
- ) {
2247
+ function loadServerReference$1(response, metaData, parentObject, key) {
2248
+ var id = metaData.id;
2249
+ if ("string" !== typeof id || "then" === key) return null;
2160
2250
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2161
- id = preloadModule(serverReference);
2162
- if (bound)
2163
- bound = Promise.all([bound, id]).then(function (_ref) {
2164
- _ref = _ref[0];
2165
- var fn = requireModule(serverReference);
2166
- return fn.bind.apply(fn, [null].concat(_ref));
2167
- });
2168
- else if (id)
2169
- bound = Promise.resolve(id).then(function () {
2170
- return requireModule(serverReference);
2171
- });
2251
+ id = metaData.bound;
2252
+ var promise = preloadModule(serverReference);
2253
+ if (promise)
2254
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2255
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2172
2256
  else return requireModule(serverReference);
2173
- bound.then(
2174
- createModelResolver(
2175
- parentChunk,
2176
- parentObject,
2177
- key,
2178
- !1,
2179
- response,
2180
- createModel,
2181
- []
2182
- ),
2183
- createModelReject(parentChunk)
2257
+ if (initializingHandler) {
2258
+ var handler = initializingHandler;
2259
+ handler.deps++;
2260
+ } else
2261
+ handler = initializingHandler = {
2262
+ chunk: null,
2263
+ value: null,
2264
+ reason: null,
2265
+ deps: 1,
2266
+ errored: !1
2267
+ };
2268
+ promise.then(
2269
+ function () {
2270
+ var resolvedValue = requireModule(serverReference);
2271
+ if (metaData.bound) {
2272
+ var promiseValue = metaData.bound.value;
2273
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2274
+ promiseValue.unshift(null);
2275
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2276
+ }
2277
+ parentObject[key] = resolvedValue;
2278
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2279
+ handler.deps--;
2280
+ 0 === handler.deps &&
2281
+ ((resolvedValue = handler.chunk),
2282
+ null !== resolvedValue &&
2283
+ "blocked" === resolvedValue.status &&
2284
+ ((promiseValue = resolvedValue.value),
2285
+ (resolvedValue.status = "fulfilled"),
2286
+ (resolvedValue.value = handler.value),
2287
+ (resolvedValue.reason = null),
2288
+ null !== promiseValue &&
2289
+ wakeChunk(response, promiseValue, handler.value)));
2290
+ },
2291
+ function (error) {
2292
+ if (!handler.errored) {
2293
+ handler.errored = !0;
2294
+ handler.value = null;
2295
+ handler.reason = error;
2296
+ var chunk = handler.chunk;
2297
+ null !== chunk &&
2298
+ "blocked" === chunk.status &&
2299
+ triggerErrorOnChunk(response, chunk, error);
2300
+ }
2301
+ }
2184
2302
  );
2185
2303
  return null;
2186
2304
  }
@@ -2210,53 +2328,70 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2210
2328
  ? reference + ":" + i
2211
2329
  : void 0),
2212
2330
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2213
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2331
+ void 0 !== parentObj || "__proto__" === i
2332
+ ? (value[i] = parentObj)
2333
+ : delete value[i]);
2214
2334
  return value;
2215
2335
  }
2216
- var initializingChunk = null,
2217
- initializingChunkBlockedModel = null;
2336
+ var initializingHandler = null;
2218
2337
  function initializeModelChunk(chunk) {
2219
- var prevChunk = initializingChunk,
2220
- prevBlocked = initializingChunkBlockedModel;
2221
- initializingChunk = chunk;
2222
- initializingChunkBlockedModel = null;
2223
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2224
- resolvedModel = chunk.value;
2225
- chunk.status = "cyclic";
2338
+ var prevHandler = initializingHandler;
2339
+ initializingHandler = null;
2340
+ var _chunk$reason = chunk.reason,
2341
+ response = _chunk$reason[RESPONSE_SYMBOL];
2342
+ _chunk$reason = _chunk$reason.id;
2343
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2344
+ var resolvedModel = chunk.value;
2345
+ chunk.status = "blocked";
2226
2346
  chunk.value = null;
2227
2347
  chunk.reason = null;
2228
2348
  try {
2229
2349
  var rawModel = JSON.parse(resolvedModel),
2230
2350
  value = reviveModel(
2231
- chunk._response,
2351
+ response,
2232
2352
  { "": rawModel },
2233
2353
  "",
2234
2354
  rawModel,
2235
- rootReference
2236
- );
2237
- if (
2238
- null !== initializingChunkBlockedModel &&
2239
- 0 < initializingChunkBlockedModel.deps
2240
- )
2241
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2242
- else {
2243
- var resolveListeners = chunk.value;
2244
- chunk.status = "fulfilled";
2245
- chunk.value = value;
2246
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2355
+ _chunk$reason
2356
+ ),
2357
+ resolveListeners = chunk.value;
2358
+ if (null !== resolveListeners)
2359
+ for (
2360
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2361
+ rawModel < resolveListeners.length;
2362
+ rawModel++
2363
+ ) {
2364
+ var listener = resolveListeners[rawModel];
2365
+ "function" === typeof listener
2366
+ ? listener(value)
2367
+ : fulfillReference(response, listener, value);
2368
+ }
2369
+ if (null !== initializingHandler) {
2370
+ if (initializingHandler.errored) throw initializingHandler.reason;
2371
+ if (0 < initializingHandler.deps) {
2372
+ initializingHandler.value = value;
2373
+ initializingHandler.chunk = chunk;
2374
+ return;
2375
+ }
2247
2376
  }
2377
+ chunk.status = "fulfilled";
2378
+ chunk.value = value;
2379
+ chunk.reason = null;
2248
2380
  } catch (error) {
2249
2381
  (chunk.status = "rejected"), (chunk.reason = error);
2250
2382
  } finally {
2251
- (initializingChunk = prevChunk),
2252
- (initializingChunkBlockedModel = prevBlocked);
2383
+ initializingHandler = prevHandler;
2253
2384
  }
2254
2385
  }
2255
2386
  function reportGlobalError(response, error) {
2256
2387
  response._closed = !0;
2257
2388
  response._closedReason = error;
2258
2389
  response._chunks.forEach(function (chunk) {
2259
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2390
+ "pending" === chunk.status
2391
+ ? triggerErrorOnChunk(response, chunk, error)
2392
+ : "fulfilled" === chunk.status &&
2393
+ null !== chunk.reason &&
2394
+ chunk.reason.error(error);
2260
2395
  });
2261
2396
  }
2262
2397
  function getChunk(response, id) {
@@ -2265,48 +2400,58 @@ function getChunk(response, id) {
2265
2400
  chunk ||
2266
2401
  ((chunk = response._formData.get(response._prefix + id)),
2267
2402
  (chunk =
2268
- null != chunk
2269
- ? new Chunk("resolved_model", chunk, id, response)
2403
+ "string" === typeof chunk
2404
+ ? createResolvedModelChunk(response, chunk, id)
2270
2405
  : response._closed
2271
- ? new Chunk("rejected", null, response._closedReason, response)
2272
- : createPendingChunk(response)),
2406
+ ? new ReactPromise("rejected", null, response._closedReason)
2407
+ : new ReactPromise("pending", null, null)),
2273
2408
  chunks.set(id, chunk));
2274
2409
  return chunk;
2275
2410
  }
2276
- function createModelResolver(
2277
- chunk,
2278
- parentObject,
2279
- key,
2280
- cyclic,
2281
- response,
2282
- map,
2283
- path
2284
- ) {
2285
- if (initializingChunkBlockedModel) {
2286
- var blocked = initializingChunkBlockedModel;
2287
- cyclic || blocked.deps++;
2288
- } else
2289
- blocked = initializingChunkBlockedModel = {
2290
- deps: cyclic ? 0 : 1,
2291
- value: null
2292
- };
2293
- return function (value) {
2294
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2295
- parentObject[key] = map(response, value);
2296
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2297
- blocked.deps--;
2298
- 0 === blocked.deps &&
2299
- "blocked" === chunk.status &&
2300
- ((value = chunk.value),
2301
- (chunk.status = "fulfilled"),
2302
- (chunk.value = blocked.value),
2303
- null !== value && wakeChunk(value, blocked.value));
2304
- };
2305
- }
2306
- function createModelReject(chunk) {
2307
- return function (error) {
2308
- return triggerErrorOnChunk(chunk, error);
2309
- };
2411
+ function fulfillReference(response, reference, value) {
2412
+ var handler = reference.handler,
2413
+ parentObject = reference.parentObject,
2414
+ key = reference.key,
2415
+ map = reference.map,
2416
+ path = reference.path;
2417
+ try {
2418
+ for (var i = 1; i < path.length; i++) {
2419
+ var name = path[i];
2420
+ if (
2421
+ "object" !== typeof value ||
2422
+ !hasOwnProperty.call(value, name) ||
2423
+ value instanceof Promise
2424
+ )
2425
+ throw Error("Invalid reference.");
2426
+ value = value[name];
2427
+ }
2428
+ var mappedValue = map(response, value, parentObject, key);
2429
+ parentObject[key] = mappedValue;
2430
+ "" === key && null === handler.value && (handler.value = mappedValue);
2431
+ } catch (error) {
2432
+ rejectReference(response, reference.handler, error);
2433
+ return;
2434
+ }
2435
+ handler.deps--;
2436
+ 0 === handler.deps &&
2437
+ ((reference = handler.chunk),
2438
+ null !== reference &&
2439
+ "blocked" === reference.status &&
2440
+ ((value = reference.value),
2441
+ (reference.status = "fulfilled"),
2442
+ (reference.value = handler.value),
2443
+ (reference.reason = handler.reason),
2444
+ null !== value && wakeChunk(response, value, handler.value)));
2445
+ }
2446
+ function rejectReference(response, handler, error) {
2447
+ handler.errored ||
2448
+ ((handler.errored = !0),
2449
+ (handler.value = null),
2450
+ (handler.reason = error),
2451
+ (handler = handler.chunk),
2452
+ null !== handler &&
2453
+ "blocked" === handler.status &&
2454
+ triggerErrorOnChunk(response, handler, error));
2310
2455
  }
2311
2456
  function getOutlinedModel(response, reference, parentObject, key, map) {
2312
2457
  reference = reference.split(":");
@@ -2318,29 +2463,55 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2318
2463
  }
2319
2464
  switch (id.status) {
2320
2465
  case "fulfilled":
2321
- parentObject = id.value;
2322
- for (key = 1; key < reference.length; key++)
2323
- parentObject = parentObject[reference[key]];
2324
- return map(response, parentObject);
2466
+ id = id.value;
2467
+ for (var i = 1; i < reference.length; i++) {
2468
+ var name = reference[i];
2469
+ if (
2470
+ "object" !== typeof id ||
2471
+ !hasOwnProperty.call(id, name) ||
2472
+ id instanceof Promise
2473
+ )
2474
+ throw Error("Invalid reference.");
2475
+ id = id[name];
2476
+ }
2477
+ return map(response, id, parentObject, key);
2325
2478
  case "pending":
2326
2479
  case "blocked":
2327
- case "cyclic":
2328
- var parentChunk = initializingChunk;
2329
- id.then(
2330
- createModelResolver(
2331
- parentChunk,
2332
- parentObject,
2333
- key,
2334
- "cyclic" === id.status,
2335
- response,
2336
- map,
2337
- reference
2338
- ),
2339
- createModelReject(parentChunk)
2480
+ return (
2481
+ initializingHandler
2482
+ ? ((response = initializingHandler), response.deps++)
2483
+ : (response = initializingHandler =
2484
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2485
+ (parentObject = {
2486
+ handler: response,
2487
+ parentObject: parentObject,
2488
+ key: key,
2489
+ map: map,
2490
+ path: reference
2491
+ }),
2492
+ null === id.value
2493
+ ? (id.value = [parentObject])
2494
+ : id.value.push(parentObject),
2495
+ null === id.reason
2496
+ ? (id.reason = [parentObject])
2497
+ : id.reason.push(parentObject),
2498
+ null
2340
2499
  );
2341
- return null;
2342
2500
  default:
2343
- throw id.reason;
2501
+ return (
2502
+ initializingHandler
2503
+ ? ((initializingHandler.errored = !0),
2504
+ (initializingHandler.value = null),
2505
+ (initializingHandler.reason = id.reason))
2506
+ : (initializingHandler = {
2507
+ chunk: null,
2508
+ value: null,
2509
+ reason: id.reason,
2510
+ deps: 0,
2511
+ errored: !0
2512
+ }),
2513
+ null
2514
+ );
2344
2515
  }
2345
2516
  }
2346
2517
  function createMap(response, model) {
@@ -2352,8 +2523,8 @@ function createSet(response, model) {
2352
2523
  function extractIterator(response, model) {
2353
2524
  return model[Symbol.iterator]();
2354
2525
  }
2355
- function createModel(response, model) {
2356
- return model;
2526
+ function createModel(response, model, parentObject, key) {
2527
+ return "then" === key && "function" === typeof model ? null : model;
2357
2528
  }
2358
2529
  function parseTypedArray(
2359
2530
  response,
@@ -2364,42 +2535,72 @@ function parseTypedArray(
2364
2535
  parentKey
2365
2536
  ) {
2366
2537
  reference = parseInt(reference.slice(2), 16);
2367
- reference = response._formData.get(response._prefix + reference);
2368
- reference =
2369
- constructor === ArrayBuffer
2370
- ? reference.arrayBuffer()
2371
- : reference.arrayBuffer().then(function (buffer) {
2372
- return new constructor(buffer);
2373
- });
2374
- bytesPerElement = initializingChunk;
2538
+ bytesPerElement = response._prefix + reference;
2539
+ if (response._chunks.has(reference))
2540
+ throw Error("Already initialized typed array.");
2541
+ reference = response._formData.get(bytesPerElement).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
+ };
2375
2553
  reference.then(
2376
- createModelResolver(
2377
- bytesPerElement,
2378
- parentObject,
2379
- parentKey,
2380
- !1,
2381
- response,
2382
- createModel,
2383
- []
2384
- ),
2385
- 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
+ buffer.reason = null;
2568
+ null !== resolveListeners &&
2569
+ wakeChunk(response, resolveListeners, handler.value);
2570
+ }
2571
+ },
2572
+ function (error) {
2573
+ if (!handler.errored) {
2574
+ handler.errored = !0;
2575
+ handler.value = null;
2576
+ handler.reason = error;
2577
+ var chunk = handler.chunk;
2578
+ null !== chunk &&
2579
+ "blocked" === chunk.status &&
2580
+ triggerErrorOnChunk(response, chunk, error);
2581
+ }
2582
+ }
2386
2583
  );
2387
2584
  return null;
2388
2585
  }
2389
2586
  function resolveStream(response, id, stream, controller) {
2390
2587
  var chunks = response._chunks;
2391
- stream = new Chunk("fulfilled", stream, controller, response);
2588
+ stream = new ReactPromise("fulfilled", stream, controller);
2392
2589
  chunks.set(id, stream);
2393
2590
  response = response._formData.getAll(response._prefix + id);
2394
2591
  for (id = 0; id < response.length; id++)
2395
2592
  (chunks = response[id]),
2396
- "C" === chunks[0]
2397
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2398
- : controller.enqueueModel(chunks);
2593
+ "string" === typeof chunks &&
2594
+ ("C" === chunks[0]
2595
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2596
+ : controller.enqueueModel(chunks));
2399
2597
  }
2400
2598
  function parseReadableStream(response, reference, type) {
2401
2599
  reference = parseInt(reference.slice(2), 16);
2402
- var controller = null;
2600
+ if (response._chunks.has(reference))
2601
+ throw Error("Already initialized stream.");
2602
+ var controller = null,
2603
+ closed = !1;
2403
2604
  type = new ReadableStream({
2404
2605
  type: type,
2405
2606
  start: function (c) {
@@ -2410,7 +2611,7 @@ function parseReadableStream(response, reference, type) {
2410
2611
  resolveStream(response, reference, type, {
2411
2612
  enqueueModel: function (json) {
2412
2613
  if (null === previousBlockedChunk) {
2413
- var chunk = new Chunk("resolved_model", json, -1, response);
2614
+ var chunk = createResolvedModelChunk(response, json, -1);
2414
2615
  initializeModelChunk(chunk);
2415
2616
  "fulfilled" === chunk.status
2416
2617
  ? controller.enqueue(chunk.value)
@@ -2425,8 +2626,8 @@ function parseReadableStream(response, reference, type) {
2425
2626
  (previousBlockedChunk = chunk));
2426
2627
  } else {
2427
2628
  chunk = previousBlockedChunk;
2428
- var chunk$26 = createPendingChunk(response);
2429
- chunk$26.then(
2629
+ var chunk$30 = new ReactPromise("pending", null, null);
2630
+ chunk$30.then(
2430
2631
  function (v) {
2431
2632
  return controller.enqueue(v);
2432
2633
  },
@@ -2434,32 +2635,35 @@ function parseReadableStream(response, reference, type) {
2434
2635
  return controller.error(e);
2435
2636
  }
2436
2637
  );
2437
- previousBlockedChunk = chunk$26;
2638
+ previousBlockedChunk = chunk$30;
2438
2639
  chunk.then(function () {
2439
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2440
- resolveModelChunk(chunk$26, json, -1);
2640
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2641
+ resolveModelChunk(response, chunk$30, json, -1);
2441
2642
  });
2442
2643
  }
2443
2644
  },
2444
2645
  close: function () {
2445
- if (null === previousBlockedChunk) controller.close();
2446
- else {
2447
- var blockedChunk = previousBlockedChunk;
2448
- previousBlockedChunk = null;
2449
- blockedChunk.then(function () {
2450
- return controller.close();
2451
- });
2452
- }
2646
+ if (!closed)
2647
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2648
+ else {
2649
+ var blockedChunk = previousBlockedChunk;
2650
+ previousBlockedChunk = null;
2651
+ blockedChunk.then(function () {
2652
+ return controller.close();
2653
+ });
2654
+ }
2453
2655
  },
2454
2656
  error: function (error) {
2455
- if (null === previousBlockedChunk) controller.error(error);
2456
- else {
2457
- var blockedChunk = previousBlockedChunk;
2458
- previousBlockedChunk = null;
2459
- blockedChunk.then(function () {
2460
- return controller.error(error);
2461
- });
2462
- }
2657
+ if (!closed)
2658
+ if (((closed = !0), null === previousBlockedChunk))
2659
+ controller.error(error);
2660
+ else {
2661
+ var blockedChunk = previousBlockedChunk;
2662
+ previousBlockedChunk = null;
2663
+ blockedChunk.then(function () {
2664
+ return controller.error(error);
2665
+ });
2666
+ }
2463
2667
  }
2464
2668
  });
2465
2669
  return type;
@@ -2474,12 +2678,14 @@ function createIterator(next) {
2474
2678
  }
2475
2679
  function parseAsyncIterable(response, reference, iterator) {
2476
2680
  reference = parseInt(reference.slice(2), 16);
2681
+ if (response._chunks.has(reference))
2682
+ throw Error("Already initialized stream.");
2477
2683
  var buffer = [],
2478
2684
  closed = !1,
2479
2685
  nextWriteIndex = 0,
2480
- $jscomp$compprop2 = {};
2481
- $jscomp$compprop2 =
2482
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2686
+ $jscomp$compprop5 = {};
2687
+ $jscomp$compprop5 =
2688
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2483
2689
  var nextReadIndex = 0;
2484
2690
  return createIterator(function (arg) {
2485
2691
  if (void 0 !== arg)
@@ -2488,19 +2694,18 @@ function parseAsyncIterable(response, reference, iterator) {
2488
2694
  );
2489
2695
  if (nextReadIndex === buffer.length) {
2490
2696
  if (closed)
2491
- return new Chunk(
2697
+ return new ReactPromise(
2492
2698
  "fulfilled",
2493
2699
  { done: !0, value: void 0 },
2494
- null,
2495
- response
2700
+ null
2496
2701
  );
2497
- buffer[nextReadIndex] = createPendingChunk(response);
2702
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2498
2703
  }
2499
2704
  return buffer[nextReadIndex++];
2500
2705
  });
2501
2706
  }),
2502
- $jscomp$compprop2);
2503
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2707
+ $jscomp$compprop5);
2708
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2504
2709
  resolveStream(response, reference, iterator, {
2505
2710
  enqueueModel: function (value) {
2506
2711
  nextWriteIndex === buffer.length
@@ -2509,34 +2714,55 @@ function parseAsyncIterable(response, reference, iterator) {
2509
2714
  value,
2510
2715
  !1
2511
2716
  ))
2512
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2717
+ : resolveIteratorResultChunk(
2718
+ response,
2719
+ buffer[nextWriteIndex],
2720
+ value,
2721
+ !1
2722
+ );
2513
2723
  nextWriteIndex++;
2514
2724
  },
2515
2725
  close: function (value) {
2516
- closed = !0;
2517
- nextWriteIndex === buffer.length
2518
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2726
+ if (!closed)
2727
+ for (
2728
+ closed = !0,
2729
+ nextWriteIndex === buffer.length
2730
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2731
+ response,
2732
+ value,
2733
+ !0
2734
+ ))
2735
+ : resolveIteratorResultChunk(
2736
+ response,
2737
+ buffer[nextWriteIndex],
2738
+ value,
2739
+ !0
2740
+ ),
2741
+ nextWriteIndex++;
2742
+ nextWriteIndex < buffer.length;
2743
+
2744
+ )
2745
+ resolveIteratorResultChunk(
2519
2746
  response,
2520
- value,
2747
+ buffer[nextWriteIndex++],
2748
+ '"$undefined"',
2521
2749
  !0
2522
- ))
2523
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2524
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2525
- resolveIteratorResultChunk(
2526
- buffer[nextWriteIndex++],
2527
- '"$undefined"',
2528
- !0
2529
- );
2750
+ );
2530
2751
  },
2531
2752
  error: function (error) {
2532
- closed = !0;
2533
- for (
2534
- nextWriteIndex === buffer.length &&
2535
- (buffer[nextWriteIndex] = createPendingChunk(response));
2536
- nextWriteIndex < buffer.length;
2753
+ if (!closed)
2754
+ for (
2755
+ closed = !0,
2756
+ nextWriteIndex === buffer.length &&
2757
+ (buffer[nextWriteIndex] = new ReactPromise(
2758
+ "pending",
2759
+ null,
2760
+ null
2761
+ ));
2762
+ nextWriteIndex < buffer.length;
2537
2763
 
2538
- )
2539
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2764
+ )
2765
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2540
2766
  }
2541
2767
  });
2542
2768
  return iterator;
@@ -2548,18 +2774,10 @@ function parseModelString(response, obj, key, value, reference) {
2548
2774
  return value.slice(1);
2549
2775
  case "@":
2550
2776
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2551
- case "F":
2777
+ case "h":
2552
2778
  return (
2553
2779
  (value = value.slice(2)),
2554
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2555
- loadServerReference$1(
2556
- response,
2557
- value.id,
2558
- value.bound,
2559
- initializingChunk,
2560
- obj,
2561
- key
2562
- )
2780
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2563
2781
  );
2564
2782
  case "T":
2565
2783
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2674,10 +2892,12 @@ function createResponse(bundlerConfig, formFieldPrefix, temporaryReferences) {
2674
2892
  function resolveField(response, key, value) {
2675
2893
  response._formData.append(key, value);
2676
2894
  var prefix = response._prefix;
2677
- key.startsWith(prefix) &&
2678
- ((response = response._chunks),
2679
- (key = +key.slice(prefix.length)),
2680
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
2895
+ if (key.startsWith(prefix)) {
2896
+ var chunks = response._chunks;
2897
+ key = +key.slice(prefix.length);
2898
+ (chunks = chunks.get(key)) &&
2899
+ resolveModelChunk(response, chunks, value, key);
2900
+ }
2681
2901
  }
2682
2902
  function close(response) {
2683
2903
  reportGlobalError(response, Error("Connection closed."));
@@ -2854,34 +3074,50 @@ exports.decodeReplyFromBusboy = function (busboyStream, options) {
2854
3074
  pendingFiles = 0,
2855
3075
  queuedFields = [];
2856
3076
  busboyStream.on("field", function (name, value) {
2857
- 0 < pendingFiles
2858
- ? queuedFields.push(name, value)
2859
- : resolveField(response, name, value);
3077
+ if (0 < pendingFiles) queuedFields.push(name, value);
3078
+ else
3079
+ try {
3080
+ resolveField(response, name, value);
3081
+ } catch (error) {
3082
+ busboyStream.destroy(error);
3083
+ }
2860
3084
  });
2861
3085
  busboyStream.on("file", function (name, value, _ref2) {
2862
3086
  var filename = _ref2.filename,
2863
3087
  mimeType = _ref2.mimeType;
2864
3088
  if ("base64" === _ref2.encoding.toLowerCase())
2865
- throw Error(
2866
- "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
3089
+ busboyStream.destroy(
3090
+ Error(
3091
+ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
3092
+ )
2867
3093
  );
2868
- pendingFiles++;
2869
- var JSCompiler_object_inline_chunks_270 = [];
2870
- value.on("data", function (chunk) {
2871
- JSCompiler_object_inline_chunks_270.push(chunk);
2872
- });
2873
- value.on("end", function () {
2874
- var blob = new Blob(JSCompiler_object_inline_chunks_270, {
2875
- type: mimeType
3094
+ else {
3095
+ pendingFiles++;
3096
+ var JSCompiler_object_inline_chunks_287 = [];
3097
+ value.on("data", function (chunk) {
3098
+ JSCompiler_object_inline_chunks_287.push(chunk);
2876
3099
  });
2877
- response._formData.append(name, blob, filename);
2878
- pendingFiles--;
2879
- if (0 === pendingFiles) {
2880
- for (blob = 0; blob < queuedFields.length; blob += 2)
2881
- resolveField(response, queuedFields[blob], queuedFields[blob + 1]);
2882
- queuedFields.length = 0;
2883
- }
2884
- });
3100
+ value.on("end", function () {
3101
+ try {
3102
+ var blob = new Blob(JSCompiler_object_inline_chunks_287, {
3103
+ type: mimeType
3104
+ });
3105
+ response._formData.append(name, blob, filename);
3106
+ pendingFiles--;
3107
+ if (0 === pendingFiles) {
3108
+ for (blob = 0; blob < queuedFields.length; blob += 2)
3109
+ resolveField(
3110
+ response,
3111
+ queuedFields[blob],
3112
+ queuedFields[blob + 1]
3113
+ );
3114
+ queuedFields.length = 0;
3115
+ }
3116
+ } catch (error) {
3117
+ busboyStream.destroy(error);
3118
+ }
3119
+ });
3120
+ }
2885
3121
  });
2886
3122
  busboyStream.on("finish", function () {
2887
3123
  close(response);
@@ -2994,7 +3230,8 @@ exports.registerServerReference = function (reference, id, exportName) {
2994
3230
  $$typeof: { value: SERVER_REFERENCE_TAG },
2995
3231
  $$id: { value: id + "#" + exportName, configurable: !0 },
2996
3232
  $$bound: { value: null, configurable: !0 },
2997
- bind: { value: bind, configurable: !0 }
3233
+ bind: { value: bind, configurable: !0 },
3234
+ toString: serverReferenceToString
2998
3235
  });
2999
3236
  };
3000
3237
  exports.renderToPipeableStream = function (model, options) {