react-server-dom-webpack 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.
@@ -138,7 +138,14 @@ function bind() {
138
138
  }
139
139
  return newFn;
140
140
  }
141
- var PROMISE_PROTOTYPE = Promise.prototype,
141
+ var serverReferenceToString = {
142
+ value: function () {
143
+ return "function () { [omitted code] }";
144
+ },
145
+ configurable: !0,
146
+ writable: !0
147
+ },
148
+ PROMISE_PROTOTYPE = Promise.prototype,
142
149
  deepProxyHandlers = {
143
150
  get: function (target, name) {
144
151
  switch (name) {
@@ -969,8 +976,8 @@ function serializeReadableStream(request, task, stream) {
969
976
  tryStreamTask(request, streamTask),
970
977
  enqueueFlush(request),
971
978
  reader.read().then(progress, error);
972
- } catch (x$8) {
973
- error(x$8);
979
+ } catch (x$11) {
980
+ error(x$11);
974
981
  }
975
982
  }
976
983
  function error(reason) {
@@ -1054,8 +1061,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
1054
1061
  tryStreamTask(request, streamTask),
1055
1062
  enqueueFlush(request),
1056
1063
  iterator.next().then(progress, error);
1057
- } catch (x$9) {
1058
- error(x$9);
1064
+ } catch (x$12) {
1065
+ error(x$12);
1059
1066
  }
1060
1067
  }
1061
1068
  function error(reason) {
@@ -1751,7 +1758,7 @@ function renderModelDestructive(
1751
1758
  (task = request.writtenServerReferences),
1752
1759
  (parentPropertyName = task.get(value)),
1753
1760
  void 0 !== parentPropertyName
1754
- ? (request = "$F" + parentPropertyName.toString(16))
1761
+ ? (request = "$h" + parentPropertyName.toString(16))
1755
1762
  : ((parentPropertyName = value.$$bound),
1756
1763
  (parentPropertyName =
1757
1764
  null === parentPropertyName
@@ -1763,7 +1770,7 @@ function renderModelDestructive(
1763
1770
  0
1764
1771
  )),
1765
1772
  task.set(value, request),
1766
- (request = "$F" + request.toString(16))),
1773
+ (request = "$h" + request.toString(16))),
1767
1774
  request
1768
1775
  );
1769
1776
  if (
@@ -2192,9 +2199,9 @@ function abort(request, reason) {
2192
2199
  onAllReady();
2193
2200
  flushCompletedChunks(request);
2194
2201
  }
2195
- } catch (error$23) {
2196
- logRecoverableError(request, error$23, null),
2197
- fatalError(request, error$23);
2202
+ } catch (error$26) {
2203
+ logRecoverableError(request, error$26, null),
2204
+ fatalError(request, error$26);
2198
2205
  }
2199
2206
  }
2200
2207
  function resolveServerReference(bundlerConfig, id) {
@@ -2264,59 +2271,113 @@ function requireModule(metadata) {
2264
2271
  if ("fulfilled" === moduleExports.status)
2265
2272
  moduleExports = moduleExports.value;
2266
2273
  else throw moduleExports.reason;
2267
- return "*" === metadata[2]
2268
- ? moduleExports
2269
- : "" === metadata[2]
2270
- ? moduleExports.__esModule
2271
- ? moduleExports.default
2272
- : moduleExports
2273
- : moduleExports[metadata[2]];
2274
- }
2275
- function Chunk(status, value, reason, response) {
2274
+ if ("*" === metadata[2]) return moduleExports;
2275
+ if ("" === metadata[2])
2276
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2277
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2278
+ return moduleExports[metadata[2]];
2279
+ }
2280
+ var RESPONSE_SYMBOL = Symbol();
2281
+ function ReactPromise(status, value, reason) {
2276
2282
  this.status = status;
2277
2283
  this.value = value;
2278
2284
  this.reason = reason;
2279
- this._response = response;
2280
2285
  }
2281
- Chunk.prototype = Object.create(Promise.prototype);
2282
- Chunk.prototype.then = function (resolve, reject) {
2286
+ ReactPromise.prototype = Object.create(Promise.prototype);
2287
+ ReactPromise.prototype.then = function (resolve, reject) {
2283
2288
  switch (this.status) {
2284
2289
  case "resolved_model":
2285
2290
  initializeModelChunk(this);
2286
2291
  }
2287
2292
  switch (this.status) {
2288
2293
  case "fulfilled":
2289
- resolve(this.value);
2294
+ if ("function" === typeof resolve) {
2295
+ for (
2296
+ var inspectedValue = this.value;
2297
+ inspectedValue instanceof ReactPromise;
2298
+
2299
+ ) {
2300
+ if (inspectedValue === this) {
2301
+ "function" === typeof reject &&
2302
+ reject(Error("Cannot have cyclic thenables."));
2303
+ return;
2304
+ }
2305
+ if ("fulfilled" === inspectedValue.status)
2306
+ inspectedValue = inspectedValue.value;
2307
+ else break;
2308
+ }
2309
+ resolve(this.value);
2310
+ }
2290
2311
  break;
2291
2312
  case "pending":
2292
2313
  case "blocked":
2293
- case "cyclic":
2294
- resolve &&
2314
+ "function" === typeof resolve &&
2295
2315
  (null === this.value && (this.value = []), this.value.push(resolve));
2296
- reject &&
2316
+ "function" === typeof reject &&
2297
2317
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2298
2318
  break;
2299
2319
  default:
2300
- reject(this.reason);
2320
+ "function" === typeof reject && reject(this.reason);
2301
2321
  }
2302
2322
  };
2303
- function createPendingChunk(response) {
2304
- return new Chunk("pending", null, null, response);
2323
+ function wakeChunk(response, listeners, value) {
2324
+ for (var i = 0; i < listeners.length; i++) {
2325
+ var listener = listeners[i];
2326
+ "function" === typeof listener
2327
+ ? listener(value)
2328
+ : fulfillReference(response, listener, value);
2329
+ }
2330
+ }
2331
+ function rejectChunk(response, listeners, error) {
2332
+ for (var i = 0; i < listeners.length; i++) {
2333
+ var listener = listeners[i];
2334
+ "function" === typeof listener
2335
+ ? listener(error)
2336
+ : rejectReference(response, listener.handler, error);
2337
+ }
2305
2338
  }
2306
- function wakeChunk(listeners, value) {
2307
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2339
+ function resolveBlockedCycle(resolvedChunk, reference) {
2340
+ var referencedChunk = reference.handler.chunk;
2341
+ if (null === referencedChunk) return null;
2342
+ if (referencedChunk === resolvedChunk) return reference.handler;
2343
+ reference = referencedChunk.value;
2344
+ if (null !== reference)
2345
+ for (
2346
+ referencedChunk = 0;
2347
+ referencedChunk < reference.length;
2348
+ referencedChunk++
2349
+ ) {
2350
+ var listener = reference[referencedChunk];
2351
+ if (
2352
+ "function" !== typeof listener &&
2353
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2354
+ null !== listener)
2355
+ )
2356
+ return listener;
2357
+ }
2358
+ return null;
2308
2359
  }
2309
- function triggerErrorOnChunk(chunk, error) {
2360
+ function triggerErrorOnChunk(response, chunk, error) {
2310
2361
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2311
2362
  chunk.reason.error(error);
2312
2363
  else {
2313
2364
  var listeners = chunk.reason;
2314
2365
  chunk.status = "rejected";
2315
2366
  chunk.reason = error;
2316
- null !== listeners && wakeChunk(listeners, error);
2367
+ null !== listeners && rejectChunk(response, listeners, error);
2317
2368
  }
2318
2369
  }
2319
- function resolveModelChunk(chunk, value, id) {
2370
+ function createResolvedModelChunk(response, value, id) {
2371
+ var $jscomp$compprop2 = {};
2372
+ return new ReactPromise(
2373
+ "resolved_model",
2374
+ value,
2375
+ (($jscomp$compprop2.id = id),
2376
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2377
+ $jscomp$compprop2)
2378
+ );
2379
+ }
2380
+ function resolveModelChunk(response, chunk, value, id) {
2320
2381
  if ("pending" !== chunk.status)
2321
2382
  (chunk = chunk.reason),
2322
2383
  "C" === value[0]
@@ -2327,77 +2388,130 @@ function resolveModelChunk(chunk, value, id) {
2327
2388
  rejectListeners = chunk.reason;
2328
2389
  chunk.status = "resolved_model";
2329
2390
  chunk.value = value;
2330
- chunk.reason = id;
2391
+ value = {};
2392
+ chunk.reason =
2393
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2331
2394
  if (null !== resolveListeners)
2332
- switch ((initializeModelChunk(chunk), chunk.status)) {
2395
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2333
2396
  case "fulfilled":
2334
- wakeChunk(resolveListeners, chunk.value);
2397
+ wakeChunk(response, resolveListeners, chunk.value);
2335
2398
  break;
2336
- case "pending":
2337
2399
  case "blocked":
2338
- case "cyclic":
2400
+ for (value = 0; value < resolveListeners.length; value++)
2401
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2402
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2403
+ if (null !== cyclicHandler)
2404
+ switch (
2405
+ (fulfillReference(response, id, cyclicHandler.value),
2406
+ resolveListeners.splice(value, 1),
2407
+ value--,
2408
+ null !== rejectListeners &&
2409
+ ((id = rejectListeners.indexOf(id)),
2410
+ -1 !== id && rejectListeners.splice(id, 1)),
2411
+ chunk.status)
2412
+ ) {
2413
+ case "fulfilled":
2414
+ wakeChunk(response, resolveListeners, chunk.value);
2415
+ break a;
2416
+ case "rejected":
2417
+ null !== rejectListeners &&
2418
+ rejectChunk(response, rejectListeners, chunk.reason);
2419
+ break a;
2420
+ }
2421
+ }
2422
+ case "pending":
2339
2423
  if (chunk.value)
2340
- for (value = 0; value < resolveListeners.length; value++)
2341
- chunk.value.push(resolveListeners[value]);
2424
+ for (response = 0; response < resolveListeners.length; response++)
2425
+ chunk.value.push(resolveListeners[response]);
2342
2426
  else chunk.value = resolveListeners;
2343
2427
  if (chunk.reason) {
2344
2428
  if (rejectListeners)
2345
- for (value = 0; value < rejectListeners.length; value++)
2346
- chunk.reason.push(rejectListeners[value]);
2429
+ for (
2430
+ resolveListeners = 0;
2431
+ resolveListeners < rejectListeners.length;
2432
+ resolveListeners++
2433
+ )
2434
+ chunk.reason.push(rejectListeners[resolveListeners]);
2347
2435
  } else chunk.reason = rejectListeners;
2348
2436
  break;
2349
2437
  case "rejected":
2350
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2438
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2351
2439
  }
2352
2440
  }
2353
2441
  }
2354
2442
  function createResolvedIteratorResultChunk(response, value, done) {
2355
- return new Chunk(
2443
+ var $jscomp$compprop4 = {};
2444
+ return new ReactPromise(
2356
2445
  "resolved_model",
2357
2446
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2358
- -1,
2359
- response
2447
+ (($jscomp$compprop4.id = -1),
2448
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2449
+ $jscomp$compprop4)
2360
2450
  );
2361
2451
  }
2362
- function resolveIteratorResultChunk(chunk, value, done) {
2452
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2363
2453
  resolveModelChunk(
2454
+ response,
2364
2455
  chunk,
2365
2456
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2366
2457
  -1
2367
2458
  );
2368
2459
  }
2369
- function loadServerReference$1(
2370
- response,
2371
- id,
2372
- bound,
2373
- parentChunk,
2374
- parentObject,
2375
- key
2376
- ) {
2460
+ function loadServerReference$1(response, metaData, parentObject, key) {
2461
+ var id = metaData.id;
2462
+ if ("string" !== typeof id || "then" === key) return null;
2377
2463
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2378
- id = preloadModule(serverReference);
2379
- if (bound)
2380
- bound = Promise.all([bound, id]).then(function (_ref) {
2381
- _ref = _ref[0];
2382
- var fn = requireModule(serverReference);
2383
- return fn.bind.apply(fn, [null].concat(_ref));
2384
- });
2385
- else if (id)
2386
- bound = Promise.resolve(id).then(function () {
2387
- return requireModule(serverReference);
2388
- });
2464
+ id = metaData.bound;
2465
+ var promise = preloadModule(serverReference);
2466
+ if (promise)
2467
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2468
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2389
2469
  else return requireModule(serverReference);
2390
- bound.then(
2391
- createModelResolver(
2392
- parentChunk,
2393
- parentObject,
2394
- key,
2395
- !1,
2396
- response,
2397
- createModel,
2398
- []
2399
- ),
2400
- createModelReject(parentChunk)
2470
+ if (initializingHandler) {
2471
+ var handler = initializingHandler;
2472
+ handler.deps++;
2473
+ } else
2474
+ handler = initializingHandler = {
2475
+ chunk: null,
2476
+ value: null,
2477
+ reason: null,
2478
+ deps: 1,
2479
+ errored: !1
2480
+ };
2481
+ promise.then(
2482
+ function () {
2483
+ var resolvedValue = requireModule(serverReference);
2484
+ if (metaData.bound) {
2485
+ var promiseValue = metaData.bound.value;
2486
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2487
+ promiseValue.unshift(null);
2488
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2489
+ }
2490
+ parentObject[key] = resolvedValue;
2491
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2492
+ handler.deps--;
2493
+ 0 === handler.deps &&
2494
+ ((resolvedValue = handler.chunk),
2495
+ null !== resolvedValue &&
2496
+ "blocked" === resolvedValue.status &&
2497
+ ((promiseValue = resolvedValue.value),
2498
+ (resolvedValue.status = "fulfilled"),
2499
+ (resolvedValue.value = handler.value),
2500
+ (resolvedValue.reason = null),
2501
+ null !== promiseValue &&
2502
+ wakeChunk(response, promiseValue, handler.value)));
2503
+ },
2504
+ function (error) {
2505
+ if (!handler.errored) {
2506
+ handler.errored = !0;
2507
+ handler.value = null;
2508
+ handler.reason = error;
2509
+ var chunk = handler.chunk;
2510
+ null !== chunk &&
2511
+ "blocked" === chunk.status &&
2512
+ triggerErrorOnChunk(response, chunk, error);
2513
+ }
2514
+ }
2401
2515
  );
2402
2516
  return null;
2403
2517
  }
@@ -2427,53 +2541,70 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2427
2541
  ? reference + ":" + i
2428
2542
  : void 0),
2429
2543
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2430
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2544
+ void 0 !== parentObj || "__proto__" === i
2545
+ ? (value[i] = parentObj)
2546
+ : delete value[i]);
2431
2547
  return value;
2432
2548
  }
2433
- var initializingChunk = null,
2434
- initializingChunkBlockedModel = null;
2549
+ var initializingHandler = null;
2435
2550
  function initializeModelChunk(chunk) {
2436
- var prevChunk = initializingChunk,
2437
- prevBlocked = initializingChunkBlockedModel;
2438
- initializingChunk = chunk;
2439
- initializingChunkBlockedModel = null;
2440
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2441
- resolvedModel = chunk.value;
2442
- chunk.status = "cyclic";
2551
+ var prevHandler = initializingHandler;
2552
+ initializingHandler = null;
2553
+ var _chunk$reason = chunk.reason,
2554
+ response = _chunk$reason[RESPONSE_SYMBOL];
2555
+ _chunk$reason = _chunk$reason.id;
2556
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2557
+ var resolvedModel = chunk.value;
2558
+ chunk.status = "blocked";
2443
2559
  chunk.value = null;
2444
2560
  chunk.reason = null;
2445
2561
  try {
2446
2562
  var rawModel = JSON.parse(resolvedModel),
2447
2563
  value = reviveModel(
2448
- chunk._response,
2564
+ response,
2449
2565
  { "": rawModel },
2450
2566
  "",
2451
2567
  rawModel,
2452
- rootReference
2453
- );
2454
- if (
2455
- null !== initializingChunkBlockedModel &&
2456
- 0 < initializingChunkBlockedModel.deps
2457
- )
2458
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2459
- else {
2460
- var resolveListeners = chunk.value;
2461
- chunk.status = "fulfilled";
2462
- chunk.value = value;
2463
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2568
+ _chunk$reason
2569
+ ),
2570
+ resolveListeners = chunk.value;
2571
+ if (null !== resolveListeners)
2572
+ for (
2573
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2574
+ rawModel < resolveListeners.length;
2575
+ rawModel++
2576
+ ) {
2577
+ var listener = resolveListeners[rawModel];
2578
+ "function" === typeof listener
2579
+ ? listener(value)
2580
+ : fulfillReference(response, listener, value);
2581
+ }
2582
+ if (null !== initializingHandler) {
2583
+ if (initializingHandler.errored) throw initializingHandler.reason;
2584
+ if (0 < initializingHandler.deps) {
2585
+ initializingHandler.value = value;
2586
+ initializingHandler.chunk = chunk;
2587
+ return;
2588
+ }
2464
2589
  }
2590
+ chunk.status = "fulfilled";
2591
+ chunk.value = value;
2592
+ chunk.reason = null;
2465
2593
  } catch (error) {
2466
2594
  (chunk.status = "rejected"), (chunk.reason = error);
2467
2595
  } finally {
2468
- (initializingChunk = prevChunk),
2469
- (initializingChunkBlockedModel = prevBlocked);
2596
+ initializingHandler = prevHandler;
2470
2597
  }
2471
2598
  }
2472
2599
  function reportGlobalError(response, error) {
2473
2600
  response._closed = !0;
2474
2601
  response._closedReason = error;
2475
2602
  response._chunks.forEach(function (chunk) {
2476
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2603
+ "pending" === chunk.status
2604
+ ? triggerErrorOnChunk(response, chunk, error)
2605
+ : "fulfilled" === chunk.status &&
2606
+ null !== chunk.reason &&
2607
+ chunk.reason.error(error);
2477
2608
  });
2478
2609
  }
2479
2610
  function getChunk(response, id) {
@@ -2482,48 +2613,58 @@ function getChunk(response, id) {
2482
2613
  chunk ||
2483
2614
  ((chunk = response._formData.get(response._prefix + id)),
2484
2615
  (chunk =
2485
- null != chunk
2486
- ? new Chunk("resolved_model", chunk, id, response)
2616
+ "string" === typeof chunk
2617
+ ? createResolvedModelChunk(response, chunk, id)
2487
2618
  : response._closed
2488
- ? new Chunk("rejected", null, response._closedReason, response)
2489
- : createPendingChunk(response)),
2619
+ ? new ReactPromise("rejected", null, response._closedReason)
2620
+ : new ReactPromise("pending", null, null)),
2490
2621
  chunks.set(id, chunk));
2491
2622
  return chunk;
2492
2623
  }
2493
- function createModelResolver(
2494
- chunk,
2495
- parentObject,
2496
- key,
2497
- cyclic,
2498
- response,
2499
- map,
2500
- path
2501
- ) {
2502
- if (initializingChunkBlockedModel) {
2503
- var blocked = initializingChunkBlockedModel;
2504
- cyclic || blocked.deps++;
2505
- } else
2506
- blocked = initializingChunkBlockedModel = {
2507
- deps: cyclic ? 0 : 1,
2508
- value: null
2509
- };
2510
- return function (value) {
2511
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2512
- parentObject[key] = map(response, value);
2513
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2514
- blocked.deps--;
2515
- 0 === blocked.deps &&
2516
- "blocked" === chunk.status &&
2517
- ((value = chunk.value),
2518
- (chunk.status = "fulfilled"),
2519
- (chunk.value = blocked.value),
2520
- null !== value && wakeChunk(value, blocked.value));
2521
- };
2522
- }
2523
- function createModelReject(chunk) {
2524
- return function (error) {
2525
- return triggerErrorOnChunk(chunk, error);
2526
- };
2624
+ function fulfillReference(response, reference, value) {
2625
+ var handler = reference.handler,
2626
+ parentObject = reference.parentObject,
2627
+ key = reference.key,
2628
+ map = reference.map,
2629
+ path = reference.path;
2630
+ try {
2631
+ for (var i = 1; i < path.length; i++) {
2632
+ var name = path[i];
2633
+ if (
2634
+ "object" !== typeof value ||
2635
+ !hasOwnProperty.call(value, name) ||
2636
+ value instanceof Promise
2637
+ )
2638
+ throw Error("Invalid reference.");
2639
+ value = value[name];
2640
+ }
2641
+ var mappedValue = map(response, value, parentObject, key);
2642
+ parentObject[key] = mappedValue;
2643
+ "" === key && null === handler.value && (handler.value = mappedValue);
2644
+ } catch (error) {
2645
+ rejectReference(response, reference.handler, error);
2646
+ return;
2647
+ }
2648
+ handler.deps--;
2649
+ 0 === handler.deps &&
2650
+ ((reference = handler.chunk),
2651
+ null !== reference &&
2652
+ "blocked" === reference.status &&
2653
+ ((value = reference.value),
2654
+ (reference.status = "fulfilled"),
2655
+ (reference.value = handler.value),
2656
+ (reference.reason = handler.reason),
2657
+ null !== value && wakeChunk(response, value, handler.value)));
2658
+ }
2659
+ function rejectReference(response, handler, error) {
2660
+ handler.errored ||
2661
+ ((handler.errored = !0),
2662
+ (handler.value = null),
2663
+ (handler.reason = error),
2664
+ (handler = handler.chunk),
2665
+ null !== handler &&
2666
+ "blocked" === handler.status &&
2667
+ triggerErrorOnChunk(response, handler, error));
2527
2668
  }
2528
2669
  function getOutlinedModel(response, reference, parentObject, key, map) {
2529
2670
  reference = reference.split(":");
@@ -2535,29 +2676,55 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2535
2676
  }
2536
2677
  switch (id.status) {
2537
2678
  case "fulfilled":
2538
- parentObject = id.value;
2539
- for (key = 1; key < reference.length; key++)
2540
- parentObject = parentObject[reference[key]];
2541
- return map(response, parentObject);
2679
+ id = id.value;
2680
+ for (var i = 1; i < reference.length; i++) {
2681
+ var name = reference[i];
2682
+ if (
2683
+ "object" !== typeof id ||
2684
+ !hasOwnProperty.call(id, name) ||
2685
+ id instanceof Promise
2686
+ )
2687
+ throw Error("Invalid reference.");
2688
+ id = id[name];
2689
+ }
2690
+ return map(response, id, parentObject, key);
2542
2691
  case "pending":
2543
2692
  case "blocked":
2544
- case "cyclic":
2545
- var parentChunk = initializingChunk;
2546
- id.then(
2547
- createModelResolver(
2548
- parentChunk,
2549
- parentObject,
2550
- key,
2551
- "cyclic" === id.status,
2552
- response,
2553
- map,
2554
- reference
2555
- ),
2556
- createModelReject(parentChunk)
2693
+ return (
2694
+ initializingHandler
2695
+ ? ((response = initializingHandler), response.deps++)
2696
+ : (response = initializingHandler =
2697
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2698
+ (parentObject = {
2699
+ handler: response,
2700
+ parentObject: parentObject,
2701
+ key: key,
2702
+ map: map,
2703
+ path: reference
2704
+ }),
2705
+ null === id.value
2706
+ ? (id.value = [parentObject])
2707
+ : id.value.push(parentObject),
2708
+ null === id.reason
2709
+ ? (id.reason = [parentObject])
2710
+ : id.reason.push(parentObject),
2711
+ null
2557
2712
  );
2558
- return null;
2559
2713
  default:
2560
- throw id.reason;
2714
+ return (
2715
+ initializingHandler
2716
+ ? ((initializingHandler.errored = !0),
2717
+ (initializingHandler.value = null),
2718
+ (initializingHandler.reason = id.reason))
2719
+ : (initializingHandler = {
2720
+ chunk: null,
2721
+ value: null,
2722
+ reason: id.reason,
2723
+ deps: 0,
2724
+ errored: !0
2725
+ }),
2726
+ null
2727
+ );
2561
2728
  }
2562
2729
  }
2563
2730
  function createMap(response, model) {
@@ -2569,8 +2736,8 @@ function createSet(response, model) {
2569
2736
  function extractIterator(response, model) {
2570
2737
  return model[Symbol.iterator]();
2571
2738
  }
2572
- function createModel(response, model) {
2573
- return model;
2739
+ function createModel(response, model, parentObject, key) {
2740
+ return "then" === key && "function" === typeof model ? null : model;
2574
2741
  }
2575
2742
  function parseTypedArray(
2576
2743
  response,
@@ -2581,42 +2748,72 @@ function parseTypedArray(
2581
2748
  parentKey
2582
2749
  ) {
2583
2750
  reference = parseInt(reference.slice(2), 16);
2584
- reference = response._formData.get(response._prefix + reference);
2585
- reference =
2586
- constructor === ArrayBuffer
2587
- ? reference.arrayBuffer()
2588
- : reference.arrayBuffer().then(function (buffer) {
2589
- return new constructor(buffer);
2590
- });
2591
- bytesPerElement = initializingChunk;
2751
+ bytesPerElement = response._prefix + reference;
2752
+ if (response._chunks.has(reference))
2753
+ throw Error("Already initialized typed array.");
2754
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2755
+ if (initializingHandler) {
2756
+ var handler = initializingHandler;
2757
+ handler.deps++;
2758
+ } else
2759
+ handler = initializingHandler = {
2760
+ chunk: null,
2761
+ value: null,
2762
+ reason: null,
2763
+ deps: 1,
2764
+ errored: !1
2765
+ };
2592
2766
  reference.then(
2593
- createModelResolver(
2594
- bytesPerElement,
2595
- parentObject,
2596
- parentKey,
2597
- !1,
2598
- response,
2599
- createModel,
2600
- []
2601
- ),
2602
- createModelReject(bytesPerElement)
2767
+ function (buffer) {
2768
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2769
+ parentObject[parentKey] = buffer;
2770
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2771
+ handler.deps--;
2772
+ if (
2773
+ 0 === handler.deps &&
2774
+ ((buffer = handler.chunk),
2775
+ null !== buffer && "blocked" === buffer.status)
2776
+ ) {
2777
+ var resolveListeners = buffer.value;
2778
+ buffer.status = "fulfilled";
2779
+ buffer.value = handler.value;
2780
+ buffer.reason = null;
2781
+ null !== resolveListeners &&
2782
+ wakeChunk(response, resolveListeners, handler.value);
2783
+ }
2784
+ },
2785
+ function (error) {
2786
+ if (!handler.errored) {
2787
+ handler.errored = !0;
2788
+ handler.value = null;
2789
+ handler.reason = error;
2790
+ var chunk = handler.chunk;
2791
+ null !== chunk &&
2792
+ "blocked" === chunk.status &&
2793
+ triggerErrorOnChunk(response, chunk, error);
2794
+ }
2795
+ }
2603
2796
  );
2604
2797
  return null;
2605
2798
  }
2606
2799
  function resolveStream(response, id, stream, controller) {
2607
2800
  var chunks = response._chunks;
2608
- stream = new Chunk("fulfilled", stream, controller, response);
2801
+ stream = new ReactPromise("fulfilled", stream, controller);
2609
2802
  chunks.set(id, stream);
2610
2803
  response = response._formData.getAll(response._prefix + id);
2611
2804
  for (id = 0; id < response.length; id++)
2612
2805
  (chunks = response[id]),
2613
- "C" === chunks[0]
2614
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2615
- : controller.enqueueModel(chunks);
2806
+ "string" === typeof chunks &&
2807
+ ("C" === chunks[0]
2808
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2809
+ : controller.enqueueModel(chunks));
2616
2810
  }
2617
2811
  function parseReadableStream(response, reference, type) {
2618
2812
  reference = parseInt(reference.slice(2), 16);
2619
- var controller = null;
2813
+ if (response._chunks.has(reference))
2814
+ throw Error("Already initialized stream.");
2815
+ var controller = null,
2816
+ closed = !1;
2620
2817
  type = new ReadableStream({
2621
2818
  type: type,
2622
2819
  start: function (c) {
@@ -2627,7 +2824,7 @@ function parseReadableStream(response, reference, type) {
2627
2824
  resolveStream(response, reference, type, {
2628
2825
  enqueueModel: function (json) {
2629
2826
  if (null === previousBlockedChunk) {
2630
- var chunk = new Chunk("resolved_model", json, -1, response);
2827
+ var chunk = createResolvedModelChunk(response, json, -1);
2631
2828
  initializeModelChunk(chunk);
2632
2829
  "fulfilled" === chunk.status
2633
2830
  ? controller.enqueue(chunk.value)
@@ -2642,8 +2839,8 @@ function parseReadableStream(response, reference, type) {
2642
2839
  (previousBlockedChunk = chunk));
2643
2840
  } else {
2644
2841
  chunk = previousBlockedChunk;
2645
- var chunk$26 = createPendingChunk(response);
2646
- chunk$26.then(
2842
+ var chunk$30 = new ReactPromise("pending", null, null);
2843
+ chunk$30.then(
2647
2844
  function (v) {
2648
2845
  return controller.enqueue(v);
2649
2846
  },
@@ -2651,32 +2848,35 @@ function parseReadableStream(response, reference, type) {
2651
2848
  return controller.error(e);
2652
2849
  }
2653
2850
  );
2654
- previousBlockedChunk = chunk$26;
2851
+ previousBlockedChunk = chunk$30;
2655
2852
  chunk.then(function () {
2656
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2657
- resolveModelChunk(chunk$26, json, -1);
2853
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2854
+ resolveModelChunk(response, chunk$30, json, -1);
2658
2855
  });
2659
2856
  }
2660
2857
  },
2661
2858
  close: function () {
2662
- if (null === previousBlockedChunk) controller.close();
2663
- else {
2664
- var blockedChunk = previousBlockedChunk;
2665
- previousBlockedChunk = null;
2666
- blockedChunk.then(function () {
2667
- return controller.close();
2668
- });
2669
- }
2859
+ if (!closed)
2860
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2861
+ else {
2862
+ var blockedChunk = previousBlockedChunk;
2863
+ previousBlockedChunk = null;
2864
+ blockedChunk.then(function () {
2865
+ return controller.close();
2866
+ });
2867
+ }
2670
2868
  },
2671
2869
  error: function (error) {
2672
- if (null === previousBlockedChunk) controller.error(error);
2673
- else {
2674
- var blockedChunk = previousBlockedChunk;
2675
- previousBlockedChunk = null;
2676
- blockedChunk.then(function () {
2677
- return controller.error(error);
2678
- });
2679
- }
2870
+ if (!closed)
2871
+ if (((closed = !0), null === previousBlockedChunk))
2872
+ controller.error(error);
2873
+ else {
2874
+ var blockedChunk = previousBlockedChunk;
2875
+ previousBlockedChunk = null;
2876
+ blockedChunk.then(function () {
2877
+ return controller.error(error);
2878
+ });
2879
+ }
2680
2880
  }
2681
2881
  });
2682
2882
  return type;
@@ -2691,12 +2891,14 @@ function createIterator(next) {
2691
2891
  }
2692
2892
  function parseAsyncIterable(response, reference, iterator) {
2693
2893
  reference = parseInt(reference.slice(2), 16);
2894
+ if (response._chunks.has(reference))
2895
+ throw Error("Already initialized stream.");
2694
2896
  var buffer = [],
2695
2897
  closed = !1,
2696
2898
  nextWriteIndex = 0,
2697
- $jscomp$compprop2 = {};
2698
- $jscomp$compprop2 =
2699
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2899
+ $jscomp$compprop5 = {};
2900
+ $jscomp$compprop5 =
2901
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2700
2902
  var nextReadIndex = 0;
2701
2903
  return createIterator(function (arg) {
2702
2904
  if (void 0 !== arg)
@@ -2705,19 +2907,18 @@ function parseAsyncIterable(response, reference, iterator) {
2705
2907
  );
2706
2908
  if (nextReadIndex === buffer.length) {
2707
2909
  if (closed)
2708
- return new Chunk(
2910
+ return new ReactPromise(
2709
2911
  "fulfilled",
2710
2912
  { done: !0, value: void 0 },
2711
- null,
2712
- response
2913
+ null
2713
2914
  );
2714
- buffer[nextReadIndex] = createPendingChunk(response);
2915
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2715
2916
  }
2716
2917
  return buffer[nextReadIndex++];
2717
2918
  });
2718
2919
  }),
2719
- $jscomp$compprop2);
2720
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2920
+ $jscomp$compprop5);
2921
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2721
2922
  resolveStream(response, reference, iterator, {
2722
2923
  enqueueModel: function (value) {
2723
2924
  nextWriteIndex === buffer.length
@@ -2726,34 +2927,55 @@ function parseAsyncIterable(response, reference, iterator) {
2726
2927
  value,
2727
2928
  !1
2728
2929
  ))
2729
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2930
+ : resolveIteratorResultChunk(
2931
+ response,
2932
+ buffer[nextWriteIndex],
2933
+ value,
2934
+ !1
2935
+ );
2730
2936
  nextWriteIndex++;
2731
2937
  },
2732
2938
  close: function (value) {
2733
- closed = !0;
2734
- nextWriteIndex === buffer.length
2735
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2939
+ if (!closed)
2940
+ for (
2941
+ closed = !0,
2942
+ nextWriteIndex === buffer.length
2943
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2944
+ response,
2945
+ value,
2946
+ !0
2947
+ ))
2948
+ : resolveIteratorResultChunk(
2949
+ response,
2950
+ buffer[nextWriteIndex],
2951
+ value,
2952
+ !0
2953
+ ),
2954
+ nextWriteIndex++;
2955
+ nextWriteIndex < buffer.length;
2956
+
2957
+ )
2958
+ resolveIteratorResultChunk(
2736
2959
  response,
2737
- value,
2960
+ buffer[nextWriteIndex++],
2961
+ '"$undefined"',
2738
2962
  !0
2739
- ))
2740
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2741
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2742
- resolveIteratorResultChunk(
2743
- buffer[nextWriteIndex++],
2744
- '"$undefined"',
2745
- !0
2746
- );
2963
+ );
2747
2964
  },
2748
2965
  error: function (error) {
2749
- closed = !0;
2750
- for (
2751
- nextWriteIndex === buffer.length &&
2752
- (buffer[nextWriteIndex] = createPendingChunk(response));
2753
- nextWriteIndex < buffer.length;
2966
+ if (!closed)
2967
+ for (
2968
+ closed = !0,
2969
+ nextWriteIndex === buffer.length &&
2970
+ (buffer[nextWriteIndex] = new ReactPromise(
2971
+ "pending",
2972
+ null,
2973
+ null
2974
+ ));
2975
+ nextWriteIndex < buffer.length;
2754
2976
 
2755
- )
2756
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2977
+ )
2978
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2757
2979
  }
2758
2980
  });
2759
2981
  return iterator;
@@ -2765,18 +2987,10 @@ function parseModelString(response, obj, key, value, reference) {
2765
2987
  return value.slice(1);
2766
2988
  case "@":
2767
2989
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2768
- case "F":
2990
+ case "h":
2769
2991
  return (
2770
2992
  (value = value.slice(2)),
2771
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2772
- loadServerReference$1(
2773
- response,
2774
- value.id,
2775
- value.bound,
2776
- initializingChunk,
2777
- obj,
2778
- key
2779
- )
2993
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2780
2994
  );
2781
2995
  case "T":
2782
2996
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2891,10 +3105,12 @@ function createResponse(bundlerConfig, formFieldPrefix, temporaryReferences) {
2891
3105
  function resolveField(response, key, value) {
2892
3106
  response._formData.append(key, value);
2893
3107
  var prefix = response._prefix;
2894
- key.startsWith(prefix) &&
2895
- ((response = response._chunks),
2896
- (key = +key.slice(prefix.length)),
2897
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
3108
+ if (key.startsWith(prefix)) {
3109
+ var chunks = response._chunks;
3110
+ key = +key.slice(prefix.length);
3111
+ (chunks = chunks.get(key)) &&
3112
+ resolveModelChunk(response, chunks, value, key);
3113
+ }
2898
3114
  }
2899
3115
  function close(response) {
2900
3116
  reportGlobalError(response, Error("Connection closed."));
@@ -3063,34 +3279,50 @@ exports.decodeReplyFromBusboy = function (busboyStream, webpackMap, options) {
3063
3279
  pendingFiles = 0,
3064
3280
  queuedFields = [];
3065
3281
  busboyStream.on("field", function (name, value) {
3066
- 0 < pendingFiles
3067
- ? queuedFields.push(name, value)
3068
- : resolveField(response, name, value);
3282
+ if (0 < pendingFiles) queuedFields.push(name, value);
3283
+ else
3284
+ try {
3285
+ resolveField(response, name, value);
3286
+ } catch (error) {
3287
+ busboyStream.destroy(error);
3288
+ }
3069
3289
  });
3070
3290
  busboyStream.on("file", function (name, value, _ref2) {
3071
3291
  var filename = _ref2.filename,
3072
3292
  mimeType = _ref2.mimeType;
3073
3293
  if ("base64" === _ref2.encoding.toLowerCase())
3074
- throw Error(
3075
- "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."
3294
+ busboyStream.destroy(
3295
+ Error(
3296
+ "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."
3297
+ )
3076
3298
  );
3077
- pendingFiles++;
3078
- var JSCompiler_object_inline_chunks_274 = [];
3079
- value.on("data", function (chunk) {
3080
- JSCompiler_object_inline_chunks_274.push(chunk);
3081
- });
3082
- value.on("end", function () {
3083
- var blob = new Blob(JSCompiler_object_inline_chunks_274, {
3084
- type: mimeType
3299
+ else {
3300
+ pendingFiles++;
3301
+ var JSCompiler_object_inline_chunks_291 = [];
3302
+ value.on("data", function (chunk) {
3303
+ JSCompiler_object_inline_chunks_291.push(chunk);
3085
3304
  });
3086
- response._formData.append(name, blob, filename);
3087
- pendingFiles--;
3088
- if (0 === pendingFiles) {
3089
- for (blob = 0; blob < queuedFields.length; blob += 2)
3090
- resolveField(response, queuedFields[blob], queuedFields[blob + 1]);
3091
- queuedFields.length = 0;
3092
- }
3093
- });
3305
+ value.on("end", function () {
3306
+ try {
3307
+ var blob = new Blob(JSCompiler_object_inline_chunks_291, {
3308
+ type: mimeType
3309
+ });
3310
+ response._formData.append(name, blob, filename);
3311
+ pendingFiles--;
3312
+ if (0 === pendingFiles) {
3313
+ for (blob = 0; blob < queuedFields.length; blob += 2)
3314
+ resolveField(
3315
+ response,
3316
+ queuedFields[blob],
3317
+ queuedFields[blob + 1]
3318
+ );
3319
+ queuedFields.length = 0;
3320
+ }
3321
+ } catch (error) {
3322
+ busboyStream.destroy(error);
3323
+ }
3324
+ });
3325
+ }
3094
3326
  });
3095
3327
  busboyStream.on("finish", function () {
3096
3328
  close(response);
@@ -3201,7 +3433,8 @@ exports.registerServerReference = function (reference, id, exportName) {
3201
3433
  configurable: !0
3202
3434
  },
3203
3435
  $$bound: { value: null, configurable: !0 },
3204
- bind: { value: bind, configurable: !0 }
3436
+ bind: { value: bind, configurable: !0 },
3437
+ toString: serverReferenceToString
3205
3438
  });
3206
3439
  };
3207
3440
  exports.renderToPipeableStream = function (model, webpackMap, options) {