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.
@@ -111,7 +111,14 @@ function bind() {
111
111
  }
112
112
  return newFn;
113
113
  }
114
- var PROMISE_PROTOTYPE = Promise.prototype,
114
+ var serverReferenceToString = {
115
+ value: function () {
116
+ return "function () { [omitted code] }";
117
+ },
118
+ configurable: !0,
119
+ writable: !0
120
+ },
121
+ PROMISE_PROTOTYPE = Promise.prototype,
115
122
  deepProxyHandlers = {
116
123
  get: function (target, name) {
117
124
  switch (name) {
@@ -946,8 +953,8 @@ function serializeReadableStream(request, task, stream) {
946
953
  tryStreamTask(request, streamTask),
947
954
  enqueueFlush(request),
948
955
  reader.read().then(progress, error);
949
- } catch (x$8) {
950
- error(x$8);
956
+ } catch (x$11) {
957
+ error(x$11);
951
958
  }
952
959
  }
953
960
  function error(reason) {
@@ -1031,8 +1038,8 @@ function serializeAsyncIterable(request, task, iterable, iterator) {
1031
1038
  tryStreamTask(request, streamTask),
1032
1039
  enqueueFlush(request),
1033
1040
  iterator.next().then(progress, error);
1034
- } catch (x$9) {
1035
- error(x$9);
1041
+ } catch (x$12) {
1042
+ error(x$12);
1036
1043
  }
1037
1044
  }
1038
1045
  function error(reason) {
@@ -1731,7 +1738,7 @@ function renderModelDestructive(
1731
1738
  (task = request.writtenServerReferences),
1732
1739
  (parentPropertyName = task.get(value)),
1733
1740
  void 0 !== parentPropertyName
1734
- ? (request = "$F" + parentPropertyName.toString(16))
1741
+ ? (request = "$h" + parentPropertyName.toString(16))
1735
1742
  : ((parentPropertyName = value.$$bound),
1736
1743
  (parentPropertyName =
1737
1744
  null === parentPropertyName
@@ -1743,7 +1750,7 @@ function renderModelDestructive(
1743
1750
  0
1744
1751
  )),
1745
1752
  task.set(value, request),
1746
- (request = "$F" + request.toString(16))),
1753
+ (request = "$h" + request.toString(16))),
1747
1754
  request
1748
1755
  );
1749
1756
  if (
@@ -2163,9 +2170,9 @@ function abort(request, reason) {
2163
2170
  onAllReady();
2164
2171
  flushCompletedChunks(request);
2165
2172
  }
2166
- } catch (error$23) {
2167
- logRecoverableError(request, error$23, null),
2168
- fatalError(request, error$23);
2173
+ } catch (error$26) {
2174
+ logRecoverableError(request, error$26, null),
2175
+ fatalError(request, error$26);
2169
2176
  }
2170
2177
  }
2171
2178
  function resolveServerReference(bundlerConfig, id) {
@@ -2235,59 +2242,113 @@ function requireModule(metadata) {
2235
2242
  if ("fulfilled" === moduleExports.status)
2236
2243
  moduleExports = moduleExports.value;
2237
2244
  else throw moduleExports.reason;
2238
- return "*" === metadata[2]
2239
- ? moduleExports
2240
- : "" === metadata[2]
2241
- ? moduleExports.__esModule
2242
- ? moduleExports.default
2243
- : moduleExports
2244
- : moduleExports[metadata[2]];
2245
- }
2246
- function Chunk(status, value, reason, response) {
2245
+ if ("*" === metadata[2]) return moduleExports;
2246
+ if ("" === metadata[2])
2247
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2248
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2249
+ return moduleExports[metadata[2]];
2250
+ }
2251
+ var RESPONSE_SYMBOL = Symbol();
2252
+ function ReactPromise(status, value, reason) {
2247
2253
  this.status = status;
2248
2254
  this.value = value;
2249
2255
  this.reason = reason;
2250
- this._response = response;
2251
2256
  }
2252
- Chunk.prototype = Object.create(Promise.prototype);
2253
- Chunk.prototype.then = function (resolve, reject) {
2257
+ ReactPromise.prototype = Object.create(Promise.prototype);
2258
+ ReactPromise.prototype.then = function (resolve, reject) {
2254
2259
  switch (this.status) {
2255
2260
  case "resolved_model":
2256
2261
  initializeModelChunk(this);
2257
2262
  }
2258
2263
  switch (this.status) {
2259
2264
  case "fulfilled":
2260
- resolve(this.value);
2265
+ if ("function" === typeof resolve) {
2266
+ for (
2267
+ var inspectedValue = this.value;
2268
+ inspectedValue instanceof ReactPromise;
2269
+
2270
+ ) {
2271
+ if (inspectedValue === this) {
2272
+ "function" === typeof reject &&
2273
+ reject(Error("Cannot have cyclic thenables."));
2274
+ return;
2275
+ }
2276
+ if ("fulfilled" === inspectedValue.status)
2277
+ inspectedValue = inspectedValue.value;
2278
+ else break;
2279
+ }
2280
+ resolve(this.value);
2281
+ }
2261
2282
  break;
2262
2283
  case "pending":
2263
2284
  case "blocked":
2264
- case "cyclic":
2265
- resolve &&
2285
+ "function" === typeof resolve &&
2266
2286
  (null === this.value && (this.value = []), this.value.push(resolve));
2267
- reject &&
2287
+ "function" === typeof reject &&
2268
2288
  (null === this.reason && (this.reason = []), this.reason.push(reject));
2269
2289
  break;
2270
2290
  default:
2271
- reject(this.reason);
2291
+ "function" === typeof reject && reject(this.reason);
2272
2292
  }
2273
2293
  };
2274
- function createPendingChunk(response) {
2275
- return new Chunk("pending", null, null, response);
2294
+ function wakeChunk(response, listeners, value) {
2295
+ for (var i = 0; i < listeners.length; i++) {
2296
+ var listener = listeners[i];
2297
+ "function" === typeof listener
2298
+ ? listener(value)
2299
+ : fulfillReference(response, listener, value);
2300
+ }
2301
+ }
2302
+ function rejectChunk(response, listeners, error) {
2303
+ for (var i = 0; i < listeners.length; i++) {
2304
+ var listener = listeners[i];
2305
+ "function" === typeof listener
2306
+ ? listener(error)
2307
+ : rejectReference(response, listener.handler, error);
2308
+ }
2276
2309
  }
2277
- function wakeChunk(listeners, value) {
2278
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2310
+ function resolveBlockedCycle(resolvedChunk, reference) {
2311
+ var referencedChunk = reference.handler.chunk;
2312
+ if (null === referencedChunk) return null;
2313
+ if (referencedChunk === resolvedChunk) return reference.handler;
2314
+ reference = referencedChunk.value;
2315
+ if (null !== reference)
2316
+ for (
2317
+ referencedChunk = 0;
2318
+ referencedChunk < reference.length;
2319
+ referencedChunk++
2320
+ ) {
2321
+ var listener = reference[referencedChunk];
2322
+ if (
2323
+ "function" !== typeof listener &&
2324
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2325
+ null !== listener)
2326
+ )
2327
+ return listener;
2328
+ }
2329
+ return null;
2279
2330
  }
2280
- function triggerErrorOnChunk(chunk, error) {
2331
+ function triggerErrorOnChunk(response, chunk, error) {
2281
2332
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2282
2333
  chunk.reason.error(error);
2283
2334
  else {
2284
2335
  var listeners = chunk.reason;
2285
2336
  chunk.status = "rejected";
2286
2337
  chunk.reason = error;
2287
- null !== listeners && wakeChunk(listeners, error);
2338
+ null !== listeners && rejectChunk(response, listeners, error);
2288
2339
  }
2289
2340
  }
2290
- function resolveModelChunk(chunk, value, id) {
2341
+ function createResolvedModelChunk(response, value, id) {
2342
+ var $jscomp$compprop2 = {};
2343
+ return new ReactPromise(
2344
+ "resolved_model",
2345
+ value,
2346
+ (($jscomp$compprop2.id = id),
2347
+ ($jscomp$compprop2[RESPONSE_SYMBOL] = response),
2348
+ $jscomp$compprop2)
2349
+ );
2350
+ }
2351
+ function resolveModelChunk(response, chunk, value, id) {
2291
2352
  if ("pending" !== chunk.status)
2292
2353
  (chunk = chunk.reason),
2293
2354
  "C" === value[0]
@@ -2298,77 +2359,130 @@ function resolveModelChunk(chunk, value, id) {
2298
2359
  rejectListeners = chunk.reason;
2299
2360
  chunk.status = "resolved_model";
2300
2361
  chunk.value = value;
2301
- chunk.reason = id;
2362
+ value = {};
2363
+ chunk.reason =
2364
+ ((value.id = id), (value[RESPONSE_SYMBOL] = response), value);
2302
2365
  if (null !== resolveListeners)
2303
- switch ((initializeModelChunk(chunk), chunk.status)) {
2366
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2304
2367
  case "fulfilled":
2305
- wakeChunk(resolveListeners, chunk.value);
2368
+ wakeChunk(response, resolveListeners, chunk.value);
2306
2369
  break;
2307
- case "pending":
2308
2370
  case "blocked":
2309
- case "cyclic":
2371
+ for (value = 0; value < resolveListeners.length; value++)
2372
+ if (((id = resolveListeners[value]), "function" !== typeof id)) {
2373
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2374
+ if (null !== cyclicHandler)
2375
+ switch (
2376
+ (fulfillReference(response, id, cyclicHandler.value),
2377
+ resolveListeners.splice(value, 1),
2378
+ value--,
2379
+ null !== rejectListeners &&
2380
+ ((id = rejectListeners.indexOf(id)),
2381
+ -1 !== id && rejectListeners.splice(id, 1)),
2382
+ chunk.status)
2383
+ ) {
2384
+ case "fulfilled":
2385
+ wakeChunk(response, resolveListeners, chunk.value);
2386
+ break a;
2387
+ case "rejected":
2388
+ null !== rejectListeners &&
2389
+ rejectChunk(response, rejectListeners, chunk.reason);
2390
+ break a;
2391
+ }
2392
+ }
2393
+ case "pending":
2310
2394
  if (chunk.value)
2311
- for (value = 0; value < resolveListeners.length; value++)
2312
- chunk.value.push(resolveListeners[value]);
2395
+ for (response = 0; response < resolveListeners.length; response++)
2396
+ chunk.value.push(resolveListeners[response]);
2313
2397
  else chunk.value = resolveListeners;
2314
2398
  if (chunk.reason) {
2315
2399
  if (rejectListeners)
2316
- for (value = 0; value < rejectListeners.length; value++)
2317
- chunk.reason.push(rejectListeners[value]);
2400
+ for (
2401
+ resolveListeners = 0;
2402
+ resolveListeners < rejectListeners.length;
2403
+ resolveListeners++
2404
+ )
2405
+ chunk.reason.push(rejectListeners[resolveListeners]);
2318
2406
  } else chunk.reason = rejectListeners;
2319
2407
  break;
2320
2408
  case "rejected":
2321
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2409
+ rejectListeners && wakeChunk(response, rejectListeners, chunk.reason);
2322
2410
  }
2323
2411
  }
2324
2412
  }
2325
2413
  function createResolvedIteratorResultChunk(response, value, done) {
2326
- return new Chunk(
2414
+ var $jscomp$compprop4 = {};
2415
+ return new ReactPromise(
2327
2416
  "resolved_model",
2328
2417
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2329
- -1,
2330
- response
2418
+ (($jscomp$compprop4.id = -1),
2419
+ ($jscomp$compprop4[RESPONSE_SYMBOL] = response),
2420
+ $jscomp$compprop4)
2331
2421
  );
2332
2422
  }
2333
- function resolveIteratorResultChunk(chunk, value, done) {
2423
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2334
2424
  resolveModelChunk(
2425
+ response,
2335
2426
  chunk,
2336
2427
  (done ? '{"done":true,"value":' : '{"done":false,"value":') + value + "}",
2337
2428
  -1
2338
2429
  );
2339
2430
  }
2340
- function loadServerReference$1(
2341
- response,
2342
- id,
2343
- bound,
2344
- parentChunk,
2345
- parentObject,
2346
- key
2347
- ) {
2431
+ function loadServerReference$1(response, metaData, parentObject, key) {
2432
+ var id = metaData.id;
2433
+ if ("string" !== typeof id || "then" === key) return null;
2348
2434
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2349
- id = preloadModule(serverReference);
2350
- if (bound)
2351
- bound = Promise.all([bound, id]).then(function (_ref) {
2352
- _ref = _ref[0];
2353
- var fn = requireModule(serverReference);
2354
- return fn.bind.apply(fn, [null].concat(_ref));
2355
- });
2356
- else if (id)
2357
- bound = Promise.resolve(id).then(function () {
2358
- return requireModule(serverReference);
2359
- });
2435
+ id = metaData.bound;
2436
+ var promise = preloadModule(serverReference);
2437
+ if (promise)
2438
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2439
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2360
2440
  else return requireModule(serverReference);
2361
- bound.then(
2362
- createModelResolver(
2363
- parentChunk,
2364
- parentObject,
2365
- key,
2366
- !1,
2367
- response,
2368
- createModel,
2369
- []
2370
- ),
2371
- createModelReject(parentChunk)
2441
+ if (initializingHandler) {
2442
+ var handler = initializingHandler;
2443
+ handler.deps++;
2444
+ } else
2445
+ handler = initializingHandler = {
2446
+ chunk: null,
2447
+ value: null,
2448
+ reason: null,
2449
+ deps: 1,
2450
+ errored: !1
2451
+ };
2452
+ promise.then(
2453
+ function () {
2454
+ var resolvedValue = requireModule(serverReference);
2455
+ if (metaData.bound) {
2456
+ var promiseValue = metaData.bound.value;
2457
+ promiseValue = Array.isArray(promiseValue) ? promiseValue.slice(0) : [];
2458
+ promiseValue.unshift(null);
2459
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2460
+ }
2461
+ parentObject[key] = resolvedValue;
2462
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2463
+ handler.deps--;
2464
+ 0 === handler.deps &&
2465
+ ((resolvedValue = handler.chunk),
2466
+ null !== resolvedValue &&
2467
+ "blocked" === resolvedValue.status &&
2468
+ ((promiseValue = resolvedValue.value),
2469
+ (resolvedValue.status = "fulfilled"),
2470
+ (resolvedValue.value = handler.value),
2471
+ (resolvedValue.reason = null),
2472
+ null !== promiseValue &&
2473
+ wakeChunk(response, promiseValue, handler.value)));
2474
+ },
2475
+ function (error) {
2476
+ if (!handler.errored) {
2477
+ handler.errored = !0;
2478
+ handler.value = null;
2479
+ handler.reason = error;
2480
+ var chunk = handler.chunk;
2481
+ null !== chunk &&
2482
+ "blocked" === chunk.status &&
2483
+ triggerErrorOnChunk(response, chunk, error);
2484
+ }
2485
+ }
2372
2486
  );
2373
2487
  return null;
2374
2488
  }
@@ -2398,53 +2512,70 @@ function reviveModel(response, parentObj, parentKey, value, reference) {
2398
2512
  ? reference + ":" + i
2399
2513
  : void 0),
2400
2514
  (parentObj = reviveModel(response, value, i, value[i], parentObj)),
2401
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2515
+ void 0 !== parentObj || "__proto__" === i
2516
+ ? (value[i] = parentObj)
2517
+ : delete value[i]);
2402
2518
  return value;
2403
2519
  }
2404
- var initializingChunk = null,
2405
- initializingChunkBlockedModel = null;
2520
+ var initializingHandler = null;
2406
2521
  function initializeModelChunk(chunk) {
2407
- var prevChunk = initializingChunk,
2408
- prevBlocked = initializingChunkBlockedModel;
2409
- initializingChunk = chunk;
2410
- initializingChunkBlockedModel = null;
2411
- var rootReference = -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2412
- resolvedModel = chunk.value;
2413
- chunk.status = "cyclic";
2522
+ var prevHandler = initializingHandler;
2523
+ initializingHandler = null;
2524
+ var _chunk$reason = chunk.reason,
2525
+ response = _chunk$reason[RESPONSE_SYMBOL];
2526
+ _chunk$reason = _chunk$reason.id;
2527
+ _chunk$reason = -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2528
+ var resolvedModel = chunk.value;
2529
+ chunk.status = "blocked";
2414
2530
  chunk.value = null;
2415
2531
  chunk.reason = null;
2416
2532
  try {
2417
2533
  var rawModel = JSON.parse(resolvedModel),
2418
2534
  value = reviveModel(
2419
- chunk._response,
2535
+ response,
2420
2536
  { "": rawModel },
2421
2537
  "",
2422
2538
  rawModel,
2423
- rootReference
2424
- );
2425
- if (
2426
- null !== initializingChunkBlockedModel &&
2427
- 0 < initializingChunkBlockedModel.deps
2428
- )
2429
- (initializingChunkBlockedModel.value = value), (chunk.status = "blocked");
2430
- else {
2431
- var resolveListeners = chunk.value;
2432
- chunk.status = "fulfilled";
2433
- chunk.value = value;
2434
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2539
+ _chunk$reason
2540
+ ),
2541
+ resolveListeners = chunk.value;
2542
+ if (null !== resolveListeners)
2543
+ for (
2544
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2545
+ rawModel < resolveListeners.length;
2546
+ rawModel++
2547
+ ) {
2548
+ var listener = resolveListeners[rawModel];
2549
+ "function" === typeof listener
2550
+ ? listener(value)
2551
+ : fulfillReference(response, listener, value);
2552
+ }
2553
+ if (null !== initializingHandler) {
2554
+ if (initializingHandler.errored) throw initializingHandler.reason;
2555
+ if (0 < initializingHandler.deps) {
2556
+ initializingHandler.value = value;
2557
+ initializingHandler.chunk = chunk;
2558
+ return;
2559
+ }
2435
2560
  }
2561
+ chunk.status = "fulfilled";
2562
+ chunk.value = value;
2563
+ chunk.reason = null;
2436
2564
  } catch (error) {
2437
2565
  (chunk.status = "rejected"), (chunk.reason = error);
2438
2566
  } finally {
2439
- (initializingChunk = prevChunk),
2440
- (initializingChunkBlockedModel = prevBlocked);
2567
+ initializingHandler = prevHandler;
2441
2568
  }
2442
2569
  }
2443
2570
  function reportGlobalError(response, error) {
2444
2571
  response._closed = !0;
2445
2572
  response._closedReason = error;
2446
2573
  response._chunks.forEach(function (chunk) {
2447
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2574
+ "pending" === chunk.status
2575
+ ? triggerErrorOnChunk(response, chunk, error)
2576
+ : "fulfilled" === chunk.status &&
2577
+ null !== chunk.reason &&
2578
+ chunk.reason.error(error);
2448
2579
  });
2449
2580
  }
2450
2581
  function getChunk(response, id) {
@@ -2453,48 +2584,58 @@ function getChunk(response, id) {
2453
2584
  chunk ||
2454
2585
  ((chunk = response._formData.get(response._prefix + id)),
2455
2586
  (chunk =
2456
- null != chunk
2457
- ? new Chunk("resolved_model", chunk, id, response)
2587
+ "string" === typeof chunk
2588
+ ? createResolvedModelChunk(response, chunk, id)
2458
2589
  : response._closed
2459
- ? new Chunk("rejected", null, response._closedReason, response)
2460
- : createPendingChunk(response)),
2590
+ ? new ReactPromise("rejected", null, response._closedReason)
2591
+ : new ReactPromise("pending", null, null)),
2461
2592
  chunks.set(id, chunk));
2462
2593
  return chunk;
2463
2594
  }
2464
- function createModelResolver(
2465
- chunk,
2466
- parentObject,
2467
- key,
2468
- cyclic,
2469
- response,
2470
- map,
2471
- path
2472
- ) {
2473
- if (initializingChunkBlockedModel) {
2474
- var blocked = initializingChunkBlockedModel;
2475
- cyclic || blocked.deps++;
2476
- } else
2477
- blocked = initializingChunkBlockedModel = {
2478
- deps: cyclic ? 0 : 1,
2479
- value: null
2480
- };
2481
- return function (value) {
2482
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2483
- parentObject[key] = map(response, value);
2484
- "" === key && null === blocked.value && (blocked.value = parentObject[key]);
2485
- blocked.deps--;
2486
- 0 === blocked.deps &&
2487
- "blocked" === chunk.status &&
2488
- ((value = chunk.value),
2489
- (chunk.status = "fulfilled"),
2490
- (chunk.value = blocked.value),
2491
- null !== value && wakeChunk(value, blocked.value));
2492
- };
2493
- }
2494
- function createModelReject(chunk) {
2495
- return function (error) {
2496
- return triggerErrorOnChunk(chunk, error);
2497
- };
2595
+ function fulfillReference(response, reference, value) {
2596
+ var handler = reference.handler,
2597
+ parentObject = reference.parentObject,
2598
+ key = reference.key,
2599
+ map = reference.map,
2600
+ path = reference.path;
2601
+ try {
2602
+ for (var i = 1; i < path.length; i++) {
2603
+ var name = path[i];
2604
+ if (
2605
+ "object" !== typeof value ||
2606
+ !hasOwnProperty.call(value, name) ||
2607
+ value instanceof Promise
2608
+ )
2609
+ throw Error("Invalid reference.");
2610
+ value = value[name];
2611
+ }
2612
+ var mappedValue = map(response, value, parentObject, key);
2613
+ parentObject[key] = mappedValue;
2614
+ "" === key && null === handler.value && (handler.value = mappedValue);
2615
+ } catch (error) {
2616
+ rejectReference(response, reference.handler, error);
2617
+ return;
2618
+ }
2619
+ handler.deps--;
2620
+ 0 === handler.deps &&
2621
+ ((reference = handler.chunk),
2622
+ null !== reference &&
2623
+ "blocked" === reference.status &&
2624
+ ((value = reference.value),
2625
+ (reference.status = "fulfilled"),
2626
+ (reference.value = handler.value),
2627
+ (reference.reason = handler.reason),
2628
+ null !== value && wakeChunk(response, value, handler.value)));
2629
+ }
2630
+ function rejectReference(response, handler, error) {
2631
+ handler.errored ||
2632
+ ((handler.errored = !0),
2633
+ (handler.value = null),
2634
+ (handler.reason = error),
2635
+ (handler = handler.chunk),
2636
+ null !== handler &&
2637
+ "blocked" === handler.status &&
2638
+ triggerErrorOnChunk(response, handler, error));
2498
2639
  }
2499
2640
  function getOutlinedModel(response, reference, parentObject, key, map) {
2500
2641
  reference = reference.split(":");
@@ -2506,29 +2647,55 @@ function getOutlinedModel(response, reference, parentObject, key, map) {
2506
2647
  }
2507
2648
  switch (id.status) {
2508
2649
  case "fulfilled":
2509
- parentObject = id.value;
2510
- for (key = 1; key < reference.length; key++)
2511
- parentObject = parentObject[reference[key]];
2512
- return map(response, parentObject);
2650
+ id = id.value;
2651
+ for (var i = 1; i < reference.length; i++) {
2652
+ var name = reference[i];
2653
+ if (
2654
+ "object" !== typeof id ||
2655
+ !hasOwnProperty.call(id, name) ||
2656
+ id instanceof Promise
2657
+ )
2658
+ throw Error("Invalid reference.");
2659
+ id = id[name];
2660
+ }
2661
+ return map(response, id, parentObject, key);
2513
2662
  case "pending":
2514
2663
  case "blocked":
2515
- case "cyclic":
2516
- var parentChunk = initializingChunk;
2517
- id.then(
2518
- createModelResolver(
2519
- parentChunk,
2520
- parentObject,
2521
- key,
2522
- "cyclic" === id.status,
2523
- response,
2524
- map,
2525
- reference
2526
- ),
2527
- createModelReject(parentChunk)
2664
+ return (
2665
+ initializingHandler
2666
+ ? ((response = initializingHandler), response.deps++)
2667
+ : (response = initializingHandler =
2668
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 }),
2669
+ (parentObject = {
2670
+ handler: response,
2671
+ parentObject: parentObject,
2672
+ key: key,
2673
+ map: map,
2674
+ path: reference
2675
+ }),
2676
+ null === id.value
2677
+ ? (id.value = [parentObject])
2678
+ : id.value.push(parentObject),
2679
+ null === id.reason
2680
+ ? (id.reason = [parentObject])
2681
+ : id.reason.push(parentObject),
2682
+ null
2528
2683
  );
2529
- return null;
2530
2684
  default:
2531
- throw id.reason;
2685
+ return (
2686
+ initializingHandler
2687
+ ? ((initializingHandler.errored = !0),
2688
+ (initializingHandler.value = null),
2689
+ (initializingHandler.reason = id.reason))
2690
+ : (initializingHandler = {
2691
+ chunk: null,
2692
+ value: null,
2693
+ reason: id.reason,
2694
+ deps: 0,
2695
+ errored: !0
2696
+ }),
2697
+ null
2698
+ );
2532
2699
  }
2533
2700
  }
2534
2701
  function createMap(response, model) {
@@ -2540,8 +2707,8 @@ function createSet(response, model) {
2540
2707
  function extractIterator(response, model) {
2541
2708
  return model[Symbol.iterator]();
2542
2709
  }
2543
- function createModel(response, model) {
2544
- return model;
2710
+ function createModel(response, model, parentObject, key) {
2711
+ return "then" === key && "function" === typeof model ? null : model;
2545
2712
  }
2546
2713
  function parseTypedArray(
2547
2714
  response,
@@ -2552,42 +2719,72 @@ function parseTypedArray(
2552
2719
  parentKey
2553
2720
  ) {
2554
2721
  reference = parseInt(reference.slice(2), 16);
2555
- reference = response._formData.get(response._prefix + reference);
2556
- reference =
2557
- constructor === ArrayBuffer
2558
- ? reference.arrayBuffer()
2559
- : reference.arrayBuffer().then(function (buffer) {
2560
- return new constructor(buffer);
2561
- });
2562
- bytesPerElement = initializingChunk;
2722
+ bytesPerElement = response._prefix + reference;
2723
+ if (response._chunks.has(reference))
2724
+ throw Error("Already initialized typed array.");
2725
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
2726
+ if (initializingHandler) {
2727
+ var handler = initializingHandler;
2728
+ handler.deps++;
2729
+ } else
2730
+ handler = initializingHandler = {
2731
+ chunk: null,
2732
+ value: null,
2733
+ reason: null,
2734
+ deps: 1,
2735
+ errored: !1
2736
+ };
2563
2737
  reference.then(
2564
- createModelResolver(
2565
- bytesPerElement,
2566
- parentObject,
2567
- parentKey,
2568
- !1,
2569
- response,
2570
- createModel,
2571
- []
2572
- ),
2573
- createModelReject(bytesPerElement)
2738
+ function (buffer) {
2739
+ buffer = constructor === ArrayBuffer ? buffer : new constructor(buffer);
2740
+ parentObject[parentKey] = buffer;
2741
+ "" === parentKey && null === handler.value && (handler.value = buffer);
2742
+ handler.deps--;
2743
+ if (
2744
+ 0 === handler.deps &&
2745
+ ((buffer = handler.chunk),
2746
+ null !== buffer && "blocked" === buffer.status)
2747
+ ) {
2748
+ var resolveListeners = buffer.value;
2749
+ buffer.status = "fulfilled";
2750
+ buffer.value = handler.value;
2751
+ buffer.reason = null;
2752
+ null !== resolveListeners &&
2753
+ wakeChunk(response, resolveListeners, handler.value);
2754
+ }
2755
+ },
2756
+ function (error) {
2757
+ if (!handler.errored) {
2758
+ handler.errored = !0;
2759
+ handler.value = null;
2760
+ handler.reason = error;
2761
+ var chunk = handler.chunk;
2762
+ null !== chunk &&
2763
+ "blocked" === chunk.status &&
2764
+ triggerErrorOnChunk(response, chunk, error);
2765
+ }
2766
+ }
2574
2767
  );
2575
2768
  return null;
2576
2769
  }
2577
2770
  function resolveStream(response, id, stream, controller) {
2578
2771
  var chunks = response._chunks;
2579
- stream = new Chunk("fulfilled", stream, controller, response);
2772
+ stream = new ReactPromise("fulfilled", stream, controller);
2580
2773
  chunks.set(id, stream);
2581
2774
  response = response._formData.getAll(response._prefix + id);
2582
2775
  for (id = 0; id < response.length; id++)
2583
2776
  (chunks = response[id]),
2584
- "C" === chunks[0]
2585
- ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2586
- : controller.enqueueModel(chunks);
2777
+ "string" === typeof chunks &&
2778
+ ("C" === chunks[0]
2779
+ ? controller.close("C" === chunks ? '"$undefined"' : chunks.slice(1))
2780
+ : controller.enqueueModel(chunks));
2587
2781
  }
2588
2782
  function parseReadableStream(response, reference, type) {
2589
2783
  reference = parseInt(reference.slice(2), 16);
2590
- var controller = null;
2784
+ if (response._chunks.has(reference))
2785
+ throw Error("Already initialized stream.");
2786
+ var controller = null,
2787
+ closed = !1;
2591
2788
  type = new ReadableStream({
2592
2789
  type: type,
2593
2790
  start: function (c) {
@@ -2598,7 +2795,7 @@ function parseReadableStream(response, reference, type) {
2598
2795
  resolveStream(response, reference, type, {
2599
2796
  enqueueModel: function (json) {
2600
2797
  if (null === previousBlockedChunk) {
2601
- var chunk = new Chunk("resolved_model", json, -1, response);
2798
+ var chunk = createResolvedModelChunk(response, json, -1);
2602
2799
  initializeModelChunk(chunk);
2603
2800
  "fulfilled" === chunk.status
2604
2801
  ? controller.enqueue(chunk.value)
@@ -2613,8 +2810,8 @@ function parseReadableStream(response, reference, type) {
2613
2810
  (previousBlockedChunk = chunk));
2614
2811
  } else {
2615
2812
  chunk = previousBlockedChunk;
2616
- var chunk$26 = createPendingChunk(response);
2617
- chunk$26.then(
2813
+ var chunk$30 = new ReactPromise("pending", null, null);
2814
+ chunk$30.then(
2618
2815
  function (v) {
2619
2816
  return controller.enqueue(v);
2620
2817
  },
@@ -2622,32 +2819,35 @@ function parseReadableStream(response, reference, type) {
2622
2819
  return controller.error(e);
2623
2820
  }
2624
2821
  );
2625
- previousBlockedChunk = chunk$26;
2822
+ previousBlockedChunk = chunk$30;
2626
2823
  chunk.then(function () {
2627
- previousBlockedChunk === chunk$26 && (previousBlockedChunk = null);
2628
- resolveModelChunk(chunk$26, json, -1);
2824
+ previousBlockedChunk === chunk$30 && (previousBlockedChunk = null);
2825
+ resolveModelChunk(response, chunk$30, json, -1);
2629
2826
  });
2630
2827
  }
2631
2828
  },
2632
2829
  close: function () {
2633
- if (null === previousBlockedChunk) controller.close();
2634
- else {
2635
- var blockedChunk = previousBlockedChunk;
2636
- previousBlockedChunk = null;
2637
- blockedChunk.then(function () {
2638
- return controller.close();
2639
- });
2640
- }
2830
+ if (!closed)
2831
+ if (((closed = !0), null === previousBlockedChunk)) controller.close();
2832
+ else {
2833
+ var blockedChunk = previousBlockedChunk;
2834
+ previousBlockedChunk = null;
2835
+ blockedChunk.then(function () {
2836
+ return controller.close();
2837
+ });
2838
+ }
2641
2839
  },
2642
2840
  error: function (error) {
2643
- if (null === previousBlockedChunk) controller.error(error);
2644
- else {
2645
- var blockedChunk = previousBlockedChunk;
2646
- previousBlockedChunk = null;
2647
- blockedChunk.then(function () {
2648
- return controller.error(error);
2649
- });
2650
- }
2841
+ if (!closed)
2842
+ if (((closed = !0), null === previousBlockedChunk))
2843
+ controller.error(error);
2844
+ else {
2845
+ var blockedChunk = previousBlockedChunk;
2846
+ previousBlockedChunk = null;
2847
+ blockedChunk.then(function () {
2848
+ return controller.error(error);
2849
+ });
2850
+ }
2651
2851
  }
2652
2852
  });
2653
2853
  return type;
@@ -2662,12 +2862,14 @@ function createIterator(next) {
2662
2862
  }
2663
2863
  function parseAsyncIterable(response, reference, iterator) {
2664
2864
  reference = parseInt(reference.slice(2), 16);
2865
+ if (response._chunks.has(reference))
2866
+ throw Error("Already initialized stream.");
2665
2867
  var buffer = [],
2666
2868
  closed = !1,
2667
2869
  nextWriteIndex = 0,
2668
- $jscomp$compprop2 = {};
2669
- $jscomp$compprop2 =
2670
- (($jscomp$compprop2[ASYNC_ITERATOR] = function () {
2870
+ $jscomp$compprop5 = {};
2871
+ $jscomp$compprop5 =
2872
+ (($jscomp$compprop5[ASYNC_ITERATOR] = function () {
2671
2873
  var nextReadIndex = 0;
2672
2874
  return createIterator(function (arg) {
2673
2875
  if (void 0 !== arg)
@@ -2676,19 +2878,18 @@ function parseAsyncIterable(response, reference, iterator) {
2676
2878
  );
2677
2879
  if (nextReadIndex === buffer.length) {
2678
2880
  if (closed)
2679
- return new Chunk(
2881
+ return new ReactPromise(
2680
2882
  "fulfilled",
2681
2883
  { done: !0, value: void 0 },
2682
- null,
2683
- response
2884
+ null
2684
2885
  );
2685
- buffer[nextReadIndex] = createPendingChunk(response);
2886
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2686
2887
  }
2687
2888
  return buffer[nextReadIndex++];
2688
2889
  });
2689
2890
  }),
2690
- $jscomp$compprop2);
2691
- iterator = iterator ? $jscomp$compprop2[ASYNC_ITERATOR]() : $jscomp$compprop2;
2891
+ $jscomp$compprop5);
2892
+ iterator = iterator ? $jscomp$compprop5[ASYNC_ITERATOR]() : $jscomp$compprop5;
2692
2893
  resolveStream(response, reference, iterator, {
2693
2894
  enqueueModel: function (value) {
2694
2895
  nextWriteIndex === buffer.length
@@ -2697,34 +2898,55 @@ function parseAsyncIterable(response, reference, iterator) {
2697
2898
  value,
2698
2899
  !1
2699
2900
  ))
2700
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
2901
+ : resolveIteratorResultChunk(
2902
+ response,
2903
+ buffer[nextWriteIndex],
2904
+ value,
2905
+ !1
2906
+ );
2701
2907
  nextWriteIndex++;
2702
2908
  },
2703
2909
  close: function (value) {
2704
- closed = !0;
2705
- nextWriteIndex === buffer.length
2706
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2910
+ if (!closed)
2911
+ for (
2912
+ closed = !0,
2913
+ nextWriteIndex === buffer.length
2914
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
2915
+ response,
2916
+ value,
2917
+ !0
2918
+ ))
2919
+ : resolveIteratorResultChunk(
2920
+ response,
2921
+ buffer[nextWriteIndex],
2922
+ value,
2923
+ !0
2924
+ ),
2925
+ nextWriteIndex++;
2926
+ nextWriteIndex < buffer.length;
2927
+
2928
+ )
2929
+ resolveIteratorResultChunk(
2707
2930
  response,
2708
- value,
2931
+ buffer[nextWriteIndex++],
2932
+ '"$undefined"',
2709
2933
  !0
2710
- ))
2711
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
2712
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2713
- resolveIteratorResultChunk(
2714
- buffer[nextWriteIndex++],
2715
- '"$undefined"',
2716
- !0
2717
- );
2934
+ );
2718
2935
  },
2719
2936
  error: function (error) {
2720
- closed = !0;
2721
- for (
2722
- nextWriteIndex === buffer.length &&
2723
- (buffer[nextWriteIndex] = createPendingChunk(response));
2724
- nextWriteIndex < buffer.length;
2937
+ if (!closed)
2938
+ for (
2939
+ closed = !0,
2940
+ nextWriteIndex === buffer.length &&
2941
+ (buffer[nextWriteIndex] = new ReactPromise(
2942
+ "pending",
2943
+ null,
2944
+ null
2945
+ ));
2946
+ nextWriteIndex < buffer.length;
2725
2947
 
2726
- )
2727
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
2948
+ )
2949
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2728
2950
  }
2729
2951
  });
2730
2952
  return iterator;
@@ -2736,18 +2958,10 @@ function parseModelString(response, obj, key, value, reference) {
2736
2958
  return value.slice(1);
2737
2959
  case "@":
2738
2960
  return (obj = parseInt(value.slice(2), 16)), getChunk(response, obj);
2739
- case "F":
2961
+ case "h":
2740
2962
  return (
2741
2963
  (value = value.slice(2)),
2742
- (value = getOutlinedModel(response, value, obj, key, createModel)),
2743
- loadServerReference$1(
2744
- response,
2745
- value.id,
2746
- value.bound,
2747
- initializingChunk,
2748
- obj,
2749
- key
2750
- )
2964
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
2751
2965
  );
2752
2966
  case "T":
2753
2967
  if (void 0 === reference || void 0 === response._temporaryReferences)
@@ -2962,7 +3176,8 @@ exports.decodeReplyFromAsyncIterable = function (
2962
3176
  if (name.startsWith(prefix)) {
2963
3177
  var chunks = response._chunks;
2964
3178
  name = +name.slice(prefix.length);
2965
- (chunks = chunks.get(name)) && resolveModelChunk(chunks, entry, name);
3179
+ (chunks = chunks.get(name)) &&
3180
+ resolveModelChunk(response, chunks, entry, name);
2966
3181
  }
2967
3182
  } else response._formData.append(name, entry);
2968
3183
  iterator.next().then(progress, error);
@@ -3043,7 +3258,8 @@ exports.registerServerReference = function (reference, id, exportName) {
3043
3258
  configurable: !0
3044
3259
  },
3045
3260
  $$bound: { value: null, configurable: !0 },
3046
- bind: { value: bind, configurable: !0 }
3261
+ bind: { value: bind, configurable: !0 },
3262
+ toString: serverReferenceToString
3047
3263
  });
3048
3264
  };
3049
3265
  exports.renderToReadableStream = function (model, webpackMap, options) {