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