react-server-dom-webpack 19.0.3 → 19.0.5

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.
@@ -1458,6 +1458,13 @@
1458
1458
  value
1459
1459
  ) {
1460
1460
  task.model = value;
1461
+ parentPropertyName === __PROTO__$1 &&
1462
+ callWithDebugContextInDEV(request, task, function () {
1463
+ console.error(
1464
+ "Expected not to serialize an object with own property `__proto__`. When parsed this property will be omitted.%s",
1465
+ describeObjectForErrorMessage(parent, parentPropertyName)
1466
+ );
1467
+ });
1461
1468
  if (value === REACT_ELEMENT_TYPE) return "$";
1462
1469
  if (null === value) return null;
1463
1470
  if ("object" === typeof value) {
@@ -1628,7 +1635,7 @@
1628
1635
  if (value instanceof Date) return "$D" + value.toJSON();
1629
1636
  elementReference = getPrototypeOf(value);
1630
1637
  if (
1631
- elementReference !== ObjectPrototype &&
1638
+ elementReference !== ObjectPrototype$1 &&
1632
1639
  (null === elementReference ||
1633
1640
  null !== getPrototypeOf(elementReference))
1634
1641
  )
@@ -2515,12 +2522,12 @@
2515
2522
  this.value = value;
2516
2523
  this.reason = reason;
2517
2524
  }
2518
- function wakeChunk(response, listeners, value) {
2525
+ function wakeChunk(response, listeners, value, chunk) {
2519
2526
  for (var i = 0; i < listeners.length; i++) {
2520
2527
  var listener = listeners[i];
2521
2528
  "function" === typeof listener
2522
2529
  ? listener(value)
2523
- : fulfillReference(response, listener, value);
2530
+ : fulfillReference(response, listener, value, chunk.reason);
2524
2531
  }
2525
2532
  }
2526
2533
  function rejectChunk(response, listeners, error) {
@@ -2531,27 +2538,6 @@
2531
2538
  : rejectReference(response, listener.handler, error);
2532
2539
  }
2533
2540
  }
2534
- function resolveBlockedCycle(resolvedChunk, reference) {
2535
- var referencedChunk = reference.handler.chunk;
2536
- if (null === referencedChunk) return null;
2537
- if (referencedChunk === resolvedChunk) return reference.handler;
2538
- reference = referencedChunk.value;
2539
- if (null !== reference)
2540
- for (
2541
- referencedChunk = 0;
2542
- referencedChunk < reference.length;
2543
- referencedChunk++
2544
- ) {
2545
- var listener = reference[referencedChunk];
2546
- if (
2547
- "function" !== typeof listener &&
2548
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2549
- null !== listener)
2550
- )
2551
- return listener;
2552
- }
2553
- return null;
2554
- }
2555
2541
  function triggerErrorOnChunk(response, chunk, error) {
2556
2542
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2557
2543
  chunk.reason.error(error);
@@ -2575,57 +2561,25 @@
2575
2561
  chunk.value = value;
2576
2562
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2577
2563
  if (null !== resolveListeners)
2578
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
2564
+ switch ((initializeModelChunk(chunk), chunk.status)) {
2579
2565
  case "fulfilled":
2580
- wakeChunk(response, resolveListeners, chunk.value);
2566
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
2581
2567
  break;
2582
2568
  case "blocked":
2583
- for (value = 0; value < resolveListeners.length; value++)
2584
- if (
2585
- ((id = resolveListeners[value]), "function" !== typeof id)
2586
- ) {
2587
- var cyclicHandler = resolveBlockedCycle(chunk, id);
2588
- if (null !== cyclicHandler)
2589
- switch (
2590
- (fulfillReference(response, id, cyclicHandler.value),
2591
- resolveListeners.splice(value, 1),
2592
- value--,
2593
- null !== rejectListeners &&
2594
- ((id = rejectListeners.indexOf(id)),
2595
- -1 !== id && rejectListeners.splice(id, 1)),
2596
- chunk.status)
2597
- ) {
2598
- case "fulfilled":
2599
- wakeChunk(response, resolveListeners, chunk.value);
2600
- break a;
2601
- case "rejected":
2602
- null !== rejectListeners &&
2603
- rejectChunk(response, rejectListeners, chunk.reason);
2604
- break a;
2605
- }
2606
- }
2607
2569
  case "pending":
2608
2570
  if (chunk.value)
2609
- for (
2610
- response = 0;
2611
- response < resolveListeners.length;
2612
- response++
2613
- )
2614
- chunk.value.push(resolveListeners[response]);
2571
+ for (value = 0; value < resolveListeners.length; value++)
2572
+ chunk.value.push(resolveListeners[value]);
2615
2573
  else chunk.value = resolveListeners;
2616
2574
  if (chunk.reason) {
2617
2575
  if (rejectListeners)
2618
- for (
2619
- resolveListeners = 0;
2620
- resolveListeners < rejectListeners.length;
2621
- resolveListeners++
2622
- )
2623
- chunk.reason.push(rejectListeners[resolveListeners]);
2576
+ for (value = 0; value < rejectListeners.length; value++)
2577
+ chunk.reason.push(rejectListeners[value]);
2624
2578
  } else chunk.reason = rejectListeners;
2625
2579
  break;
2626
2580
  case "rejected":
2627
2581
  rejectListeners &&
2628
- wakeChunk(response, rejectListeners, chunk.reason);
2582
+ rejectChunk(response, rejectListeners, chunk.reason);
2629
2583
  }
2630
2584
  }
2631
2585
  }
@@ -2649,15 +2603,51 @@
2649
2603
  );
2650
2604
  }
2651
2605
  function loadServerReference$1(response, metaData, parentObject, key) {
2606
+ function reject(error) {
2607
+ var rejectListeners = blockedPromise.reason,
2608
+ erroredPromise = blockedPromise;
2609
+ erroredPromise.status = "rejected";
2610
+ erroredPromise.value = null;
2611
+ erroredPromise.reason = error;
2612
+ null !== rejectListeners &&
2613
+ rejectChunk(response, rejectListeners, error);
2614
+ rejectReference(response, handler, error);
2615
+ }
2652
2616
  var id = metaData.id;
2653
2617
  if ("string" !== typeof id || "then" === key) return null;
2618
+ var cachedPromise = metaData.$$promise;
2619
+ if (void 0 !== cachedPromise) {
2620
+ if ("fulfilled" === cachedPromise.status)
2621
+ return (
2622
+ (cachedPromise = cachedPromise.value),
2623
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
2624
+ );
2625
+ initializingHandler
2626
+ ? ((id = initializingHandler), id.deps++)
2627
+ : (id = initializingHandler =
2628
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2629
+ cachedPromise.then(
2630
+ resolveReference.bind(null, response, id, parentObject, key),
2631
+ rejectReference.bind(null, response, id)
2632
+ );
2633
+ return null;
2634
+ }
2635
+ var blockedPromise = new ReactPromise("blocked", null, null);
2636
+ metaData.$$promise = blockedPromise;
2654
2637
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2655
- id = metaData.bound;
2656
- var promise = preloadModule(serverReference);
2657
- if (promise)
2658
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2659
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2660
- else return requireModule(serverReference);
2638
+ cachedPromise = metaData.bound;
2639
+ if ((id = preloadModule(serverReference)))
2640
+ cachedPromise instanceof ReactPromise &&
2641
+ (id = Promise.all([id, cachedPromise]));
2642
+ else if (cachedPromise instanceof ReactPromise)
2643
+ id = Promise.resolve(cachedPromise);
2644
+ else
2645
+ return (
2646
+ (cachedPromise = requireModule(serverReference)),
2647
+ (id = blockedPromise),
2648
+ (id.status = "fulfilled"),
2649
+ (id.value = cachedPromise)
2650
+ );
2661
2651
  if (initializingHandler) {
2662
2652
  var handler = initializingHandler;
2663
2653
  handler.deps++;
@@ -2669,93 +2659,107 @@
2669
2659
  deps: 1,
2670
2660
  errored: !1
2671
2661
  };
2672
- promise.then(
2673
- function () {
2674
- var resolvedValue = requireModule(serverReference);
2675
- if (metaData.bound) {
2676
- var promiseValue = metaData.bound.value;
2677
- promiseValue = Array.isArray(promiseValue)
2678
- ? promiseValue.slice(0)
2679
- : [];
2680
- promiseValue.unshift(null);
2681
- resolvedValue = resolvedValue.bind.apply(
2682
- resolvedValue,
2683
- promiseValue
2662
+ id.then(function () {
2663
+ var resolvedValue = requireModule(serverReference);
2664
+ if (metaData.bound) {
2665
+ var promiseValue = metaData.bound.value;
2666
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
2667
+ if (promiseValue.length > MAX_BOUND_ARGS) {
2668
+ reject(
2669
+ Error(
2670
+ "Server Function has too many bound arguments. Received " +
2671
+ promiseValue.length +
2672
+ " but the limit is " +
2673
+ MAX_BOUND_ARGS +
2674
+ "."
2675
+ )
2684
2676
  );
2677
+ return;
2685
2678
  }
2686
- parentObject[key] = resolvedValue;
2687
- "" === key &&
2688
- null === handler.value &&
2689
- (handler.value = resolvedValue);
2690
- handler.deps--;
2691
- 0 === handler.deps &&
2692
- ((resolvedValue = handler.chunk),
2693
- null !== resolvedValue &&
2694
- "blocked" === resolvedValue.status &&
2695
- ((promiseValue = resolvedValue.value),
2696
- (resolvedValue.status = "fulfilled"),
2697
- (resolvedValue.value = handler.value),
2698
- (resolvedValue.reason = null),
2699
- null !== promiseValue &&
2700
- wakeChunk(response, promiseValue, handler.value)));
2701
- },
2702
- function (error) {
2703
- if (!handler.errored) {
2704
- handler.errored = !0;
2705
- handler.value = null;
2706
- handler.reason = error;
2707
- var chunk = handler.chunk;
2708
- null !== chunk &&
2709
- "blocked" === chunk.status &&
2710
- triggerErrorOnChunk(response, chunk, error);
2711
- }
2679
+ promiseValue.unshift(null);
2680
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2712
2681
  }
2713
- );
2682
+ promiseValue = blockedPromise.value;
2683
+ var initializedPromise = blockedPromise;
2684
+ initializedPromise.status = "fulfilled";
2685
+ initializedPromise.value = resolvedValue;
2686
+ initializedPromise.reason = null;
2687
+ null !== promiseValue &&
2688
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
2689
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2690
+ }, reject);
2714
2691
  return null;
2715
2692
  }
2716
- function reviveModel(response, parentObj, parentKey, value, reference) {
2693
+ function reviveModel(
2694
+ response,
2695
+ parentObj,
2696
+ parentKey,
2697
+ value,
2698
+ reference,
2699
+ arrayRoot
2700
+ ) {
2717
2701
  if ("string" === typeof value)
2718
2702
  return parseModelString(
2719
2703
  response,
2720
2704
  parentObj,
2721
2705
  parentKey,
2722
2706
  value,
2723
- reference
2707
+ reference,
2708
+ arrayRoot
2724
2709
  );
2725
2710
  if ("object" === typeof value && null !== value)
2726
2711
  if (
2727
2712
  (void 0 !== reference &&
2728
2713
  void 0 !== response._temporaryReferences &&
2729
2714
  response._temporaryReferences.set(value, reference),
2730
- Array.isArray(value))
2731
- )
2732
- for (var i = 0; i < value.length; i++)
2733
- value[i] = reviveModel(
2715
+ isArrayImpl(value))
2716
+ ) {
2717
+ if (null === arrayRoot) {
2718
+ var childContext = { count: 0, fork: !1 };
2719
+ response._rootArrayContexts.set(value, childContext);
2720
+ } else childContext = arrayRoot;
2721
+ 1 < value.length && (childContext.fork = !0);
2722
+ bumpArrayCount(childContext, value.length + 1, response);
2723
+ for (parentObj = 0; parentObj < value.length; parentObj++)
2724
+ value[parentObj] = reviveModel(
2734
2725
  response,
2735
2726
  value,
2736
- "" + i,
2737
- value[i],
2738
- void 0 !== reference ? reference + ":" + i : void 0
2727
+ "" + parentObj,
2728
+ value[parentObj],
2729
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
2730
+ childContext
2739
2731
  );
2740
- else
2741
- for (i in value)
2742
- hasOwnProperty.call(value, i) &&
2743
- ((parentObj =
2744
- void 0 !== reference && -1 === i.indexOf(":")
2745
- ? reference + ":" + i
2746
- : void 0),
2747
- (parentObj = reviveModel(
2748
- response,
2749
- value,
2750
- i,
2751
- value[i],
2752
- parentObj
2753
- )),
2754
- void 0 !== parentObj || "__proto__" === i
2755
- ? (value[i] = parentObj)
2756
- : delete value[i]);
2732
+ } else
2733
+ for (childContext in value)
2734
+ hasOwnProperty.call(value, childContext) &&
2735
+ ("__proto__" === childContext
2736
+ ? delete value[childContext]
2737
+ : ((parentObj =
2738
+ void 0 !== reference && -1 === childContext.indexOf(":")
2739
+ ? reference + ":" + childContext
2740
+ : void 0),
2741
+ (parentObj = reviveModel(
2742
+ response,
2743
+ value,
2744
+ childContext,
2745
+ value[childContext],
2746
+ parentObj,
2747
+ null
2748
+ )),
2749
+ void 0 !== parentObj
2750
+ ? (value[childContext] = parentObj)
2751
+ : delete value[childContext]));
2757
2752
  return value;
2758
2753
  }
2754
+ function bumpArrayCount(arrayContext, slots, response) {
2755
+ if (
2756
+ (arrayContext.count += slots) > response._arraySizeLimit &&
2757
+ arrayContext.fork
2758
+ )
2759
+ throw Error(
2760
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
2761
+ );
2762
+ }
2759
2763
  function initializeModelChunk(chunk) {
2760
2764
  var prevHandler = initializingHandler;
2761
2765
  initializingHandler = null;
@@ -2769,13 +2773,15 @@
2769
2773
  chunk.value = null;
2770
2774
  chunk.reason = null;
2771
2775
  try {
2772
- var rawModel = JSON.parse(resolvedModel),
2773
- value = reviveModel(
2776
+ var rawModel = JSON.parse(resolvedModel);
2777
+ resolvedModel = { count: 0, fork: !1 };
2778
+ var value = reviveModel(
2774
2779
  response,
2775
2780
  { "": rawModel },
2776
2781
  "",
2777
2782
  rawModel,
2778
- _chunk$reason
2783
+ _chunk$reason,
2784
+ resolvedModel
2779
2785
  ),
2780
2786
  resolveListeners = chunk.value;
2781
2787
  if (null !== resolveListeners)
@@ -2787,19 +2793,20 @@
2787
2793
  var listener = resolveListeners[rawModel];
2788
2794
  "function" === typeof listener
2789
2795
  ? listener(value)
2790
- : fulfillReference(response, listener, value);
2796
+ : fulfillReference(response, listener, value, resolvedModel);
2791
2797
  }
2792
2798
  if (null !== initializingHandler) {
2793
2799
  if (initializingHandler.errored) throw initializingHandler.reason;
2794
2800
  if (0 < initializingHandler.deps) {
2795
2801
  initializingHandler.value = value;
2802
+ initializingHandler.reason = resolvedModel;
2796
2803
  initializingHandler.chunk = chunk;
2797
2804
  return;
2798
2805
  }
2799
2806
  }
2800
2807
  chunk.status = "fulfilled";
2801
2808
  chunk.value = value;
2802
- chunk.reason = null;
2809
+ chunk.reason = resolvedModel;
2803
2810
  } catch (error) {
2804
2811
  (chunk.status = "rejected"), (chunk.reason = error);
2805
2812
  } finally {
@@ -2812,7 +2819,8 @@
2812
2819
  ? triggerErrorOnChunk(response, chunk, error)
2813
2820
  : "fulfilled" === chunk.status &&
2814
2821
  null !== chunk.reason &&
2815
- chunk.reason.error(error);
2822
+ ((chunk = chunk.reason),
2823
+ "function" === typeof chunk.error && chunk.error(error));
2816
2824
  });
2817
2825
  }
2818
2826
  function getChunk(response, id) {
@@ -2831,40 +2839,74 @@
2831
2839
  chunks.set(id, chunk));
2832
2840
  return chunk;
2833
2841
  }
2834
- function fulfillReference(response, reference, value) {
2842
+ function fulfillReference(response, reference, value, arrayRoot) {
2835
2843
  var handler = reference.handler,
2836
2844
  parentObject = reference.parentObject,
2837
2845
  key = reference.key,
2838
2846
  map = reference.map,
2839
2847
  path = reference.path;
2840
2848
  try {
2841
- for (var i = 1; i < path.length; i++) {
2849
+ for (
2850
+ var localLength = 0,
2851
+ rootArrayContexts = response._rootArrayContexts,
2852
+ i = 1;
2853
+ i < path.length;
2854
+ i++
2855
+ ) {
2842
2856
  var name = path[i];
2843
2857
  if (
2844
2858
  "object" !== typeof value ||
2845
- !hasOwnProperty.call(value, name) ||
2846
- value instanceof Promise
2859
+ null === value ||
2860
+ (getPrototypeOf(value) !== ObjectPrototype &&
2861
+ getPrototypeOf(value) !== ArrayPrototype) ||
2862
+ !hasOwnProperty.call(value, name)
2847
2863
  )
2848
2864
  throw Error("Invalid reference.");
2849
2865
  value = value[name];
2866
+ if (isArrayImpl(value))
2867
+ (localLength = 0),
2868
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
2869
+ else if (((arrayRoot = null), "string" === typeof value))
2870
+ localLength = value.length;
2871
+ else if ("bigint" === typeof value) {
2872
+ var n = Math.abs(Number(value));
2873
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
2874
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
2850
2875
  }
2851
- var mappedValue = map(response, value, parentObject, key);
2852
- parentObject[key] = mappedValue;
2853
- "" === key && null === handler.value && (handler.value = mappedValue);
2876
+ var resolvedValue = map(response, value, parentObject, key);
2877
+ var referenceArrayRoot = reference.arrayRoot;
2878
+ null !== referenceArrayRoot &&
2879
+ (null !== arrayRoot
2880
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
2881
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
2882
+ : 0 < localLength &&
2883
+ bumpArrayCount(referenceArrayRoot, localLength, response));
2854
2884
  } catch (error) {
2855
- rejectReference(response, reference.handler, error);
2885
+ rejectReference(response, handler, error);
2856
2886
  return;
2857
2887
  }
2888
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2889
+ }
2890
+ function resolveReference(
2891
+ response,
2892
+ handler,
2893
+ parentObject,
2894
+ key,
2895
+ resolvedValue
2896
+ ) {
2897
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
2898
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2858
2899
  handler.deps--;
2859
2900
  0 === handler.deps &&
2860
- ((reference = handler.chunk),
2861
- null !== reference &&
2862
- "blocked" === reference.status &&
2863
- ((value = reference.value),
2864
- (reference.status = "fulfilled"),
2865
- (reference.value = handler.value),
2866
- (reference.reason = handler.reason),
2867
- null !== value && wakeChunk(response, value, handler.value)));
2901
+ ((parentObject = handler.chunk),
2902
+ null !== parentObject &&
2903
+ "blocked" === parentObject.status &&
2904
+ ((key = parentObject.value),
2905
+ (parentObject.status = "fulfilled"),
2906
+ (parentObject.value = handler.value),
2907
+ (parentObject.reason = handler.reason),
2908
+ null !== key &&
2909
+ wakeChunk(response, key, handler.value, parentObject)));
2868
2910
  }
2869
2911
  function rejectReference(response, handler, error) {
2870
2912
  handler.errored ||
@@ -2876,29 +2918,66 @@
2876
2918
  "blocked" === handler.status &&
2877
2919
  triggerErrorOnChunk(response, handler, error));
2878
2920
  }
2879
- function getOutlinedModel(response, reference, parentObject, key, map) {
2921
+ function getOutlinedModel(
2922
+ response,
2923
+ reference,
2924
+ parentObject,
2925
+ key,
2926
+ referenceArrayRoot,
2927
+ map
2928
+ ) {
2880
2929
  reference = reference.split(":");
2881
- var id = parseInt(reference[0], 16);
2882
- id = getChunk(response, id);
2883
- switch (id.status) {
2930
+ var id = parseInt(reference[0], 16),
2931
+ chunk = getChunk(response, id);
2932
+ switch (chunk.status) {
2884
2933
  case "resolved_model":
2885
- initializeModelChunk(id);
2934
+ initializeModelChunk(chunk);
2886
2935
  }
2887
- switch (id.status) {
2936
+ switch (chunk.status) {
2888
2937
  case "fulfilled":
2889
- id = id.value;
2890
- for (var i = 1; i < reference.length; i++) {
2891
- var name = reference[i];
2938
+ id = chunk.value;
2939
+ chunk = chunk.reason;
2940
+ for (
2941
+ var localLength = 0,
2942
+ rootArrayContexts = response._rootArrayContexts,
2943
+ i = 1;
2944
+ i < reference.length;
2945
+ i++
2946
+ ) {
2947
+ localLength = reference[i];
2892
2948
  if (
2893
2949
  "object" !== typeof id ||
2894
- !hasOwnProperty.call(id, name) ||
2895
- id instanceof Promise
2950
+ null === id ||
2951
+ (getPrototypeOf(id) !== ObjectPrototype &&
2952
+ getPrototypeOf(id) !== ArrayPrototype) ||
2953
+ !hasOwnProperty.call(id, localLength)
2896
2954
  )
2897
2955
  throw Error("Invalid reference.");
2898
- id = id[name];
2956
+ id = id[localLength];
2957
+ isArrayImpl(id)
2958
+ ? ((localLength = 0),
2959
+ (chunk = rootArrayContexts.get(id) || chunk))
2960
+ : ((chunk = null),
2961
+ "string" === typeof id
2962
+ ? (localLength = id.length)
2963
+ : "bigint" === typeof id
2964
+ ? ((localLength = Math.abs(Number(id))),
2965
+ (localLength =
2966
+ 0 === localLength
2967
+ ? 1
2968
+ : Math.floor(Math.log10(localLength)) + 1))
2969
+ : (localLength = ArrayBuffer.isView(id)
2970
+ ? id.byteLength
2971
+ : 0));
2899
2972
  }
2900
- return map(response, id, parentObject, key);
2901
- case "pending":
2973
+ parentObject = map(response, id, parentObject, key);
2974
+ null !== referenceArrayRoot &&
2975
+ (null !== chunk
2976
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
2977
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
2978
+ : 0 < localLength &&
2979
+ bumpArrayCount(referenceArrayRoot, localLength, response));
2980
+ return parentObject;
2902
2981
  case "blocked":
2903
2982
  return (
2904
2983
  initializingHandler
@@ -2911,31 +2990,34 @@
2911
2990
  deps: 1,
2912
2991
  errored: !1
2913
2992
  }),
2914
- (parentObject = {
2993
+ (referenceArrayRoot = {
2915
2994
  handler: response,
2916
2995
  parentObject: parentObject,
2917
2996
  key: key,
2918
2997
  map: map,
2919
- path: reference
2998
+ path: reference,
2999
+ arrayRoot: referenceArrayRoot
2920
3000
  }),
2921
- null === id.value
2922
- ? (id.value = [parentObject])
2923
- : id.value.push(parentObject),
2924
- null === id.reason
2925
- ? (id.reason = [parentObject])
2926
- : id.reason.push(parentObject),
3001
+ null === chunk.value
3002
+ ? (chunk.value = [referenceArrayRoot])
3003
+ : chunk.value.push(referenceArrayRoot),
3004
+ null === chunk.reason
3005
+ ? (chunk.reason = [referenceArrayRoot])
3006
+ : chunk.reason.push(referenceArrayRoot),
2927
3007
  null
2928
3008
  );
3009
+ case "pending":
3010
+ throw Error("Invalid forward reference.");
2929
3011
  default:
2930
3012
  return (
2931
3013
  initializingHandler
2932
3014
  ? ((initializingHandler.errored = !0),
2933
3015
  (initializingHandler.value = null),
2934
- (initializingHandler.reason = id.reason))
3016
+ (initializingHandler.reason = chunk.reason))
2935
3017
  : (initializingHandler = {
2936
3018
  chunk: null,
2937
3019
  value: null,
2938
- reason: id.reason,
3020
+ reason: chunk.reason,
2939
3021
  deps: 0,
2940
3022
  errored: !0
2941
3023
  }),
@@ -2944,12 +3026,21 @@
2944
3026
  }
2945
3027
  }
2946
3028
  function createMap(response, model) {
3029
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
3030
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
3031
+ model.$$consumed = !0;
2947
3032
  return new Map(model);
2948
3033
  }
2949
3034
  function createSet(response, model) {
3035
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
3036
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
3037
+ model.$$consumed = !0;
2950
3038
  return new Set(model);
2951
3039
  }
2952
3040
  function extractIterator(response, model) {
3041
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
3042
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
3043
+ model.$$consumed = !0;
2953
3044
  return model[Symbol.iterator]();
2954
3045
  }
2955
3046
  function createModel(response, model, parentObject, key) {
@@ -2961,13 +3052,34 @@
2961
3052
  constructor,
2962
3053
  bytesPerElement,
2963
3054
  parentObject,
2964
- parentKey
3055
+ parentKey,
3056
+ referenceArrayRoot
2965
3057
  ) {
3058
+ function reject(error) {
3059
+ if (!handler.errored) {
3060
+ handler.errored = !0;
3061
+ handler.value = null;
3062
+ handler.reason = error;
3063
+ var chunk = handler.chunk;
3064
+ null !== chunk &&
3065
+ "blocked" === chunk.status &&
3066
+ triggerErrorOnChunk(response, chunk, error);
3067
+ }
3068
+ }
2966
3069
  reference = parseInt(reference.slice(2), 16);
2967
- bytesPerElement = response._prefix + reference;
2968
- if (response._chunks.has(reference))
3070
+ var key = response._prefix + reference;
3071
+ bytesPerElement = response._chunks;
3072
+ if (bytesPerElement.has(reference))
2969
3073
  throw Error("Already initialized typed array.");
2970
- reference = response._formData.get(bytesPerElement).arrayBuffer();
3074
+ bytesPerElement.set(
3075
+ reference,
3076
+ new ReactPromise(
3077
+ "rejected",
3078
+ null,
3079
+ Error("Already initialized typed array.")
3080
+ )
3081
+ );
3082
+ reference = response._formData.get(key).arrayBuffer();
2971
3083
  if (initializingHandler) {
2972
3084
  var handler = initializingHandler;
2973
3085
  handler.deps++;
@@ -2979,40 +3091,32 @@
2979
3091
  deps: 1,
2980
3092
  errored: !1
2981
3093
  };
2982
- reference.then(
2983
- function (buffer) {
2984
- buffer =
3094
+ reference.then(function (buffer) {
3095
+ try {
3096
+ null !== referenceArrayRoot &&
3097
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
3098
+ var resolvedValue =
2985
3099
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
2986
- parentObject[parentKey] = buffer;
3100
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
2987
3101
  "" === parentKey &&
2988
3102
  null === handler.value &&
2989
- (handler.value = buffer);
2990
- handler.deps--;
2991
- if (
2992
- 0 === handler.deps &&
2993
- ((buffer = handler.chunk),
2994
- null !== buffer && "blocked" === buffer.status)
2995
- ) {
2996
- var resolveListeners = buffer.value;
2997
- buffer.status = "fulfilled";
2998
- buffer.value = handler.value;
2999
- buffer.reason = null;
3000
- null !== resolveListeners &&
3001
- wakeChunk(response, resolveListeners, handler.value);
3002
- }
3003
- },
3004
- function (error) {
3005
- if (!handler.errored) {
3006
- handler.errored = !0;
3007
- handler.value = null;
3008
- handler.reason = error;
3009
- var chunk = handler.chunk;
3010
- null !== chunk &&
3011
- "blocked" === chunk.status &&
3012
- triggerErrorOnChunk(response, chunk, error);
3013
- }
3103
+ (handler.value = resolvedValue);
3104
+ } catch (x) {
3105
+ reject(x);
3106
+ return;
3014
3107
  }
3015
- );
3108
+ handler.deps--;
3109
+ 0 === handler.deps &&
3110
+ ((buffer = handler.chunk),
3111
+ null !== buffer &&
3112
+ "blocked" === buffer.status &&
3113
+ ((resolvedValue = buffer.value),
3114
+ (buffer.status = "fulfilled"),
3115
+ (buffer.value = handler.value),
3116
+ (buffer.reason = null),
3117
+ null !== resolvedValue &&
3118
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
3119
+ }, reject);
3016
3120
  return null;
3017
3121
  }
3018
3122
  function resolveStream(response, id, stream, controller) {
@@ -3030,90 +3134,78 @@
3030
3134
  : controller.enqueueModel(chunks));
3031
3135
  }
3032
3136
  function parseReadableStream(response, reference, type) {
3137
+ function enqueue(value) {
3138
+ "bytes" !== type || ArrayBuffer.isView(value)
3139
+ ? controller.enqueue(value)
3140
+ : flightController.error(Error("Invalid data for bytes stream."));
3141
+ }
3033
3142
  reference = parseInt(reference.slice(2), 16);
3034
3143
  if (response._chunks.has(reference))
3035
3144
  throw Error("Already initialized stream.");
3036
3145
  var controller = null,
3037
- closed = !1;
3038
- type = new ReadableStream({
3039
- type: type,
3040
- start: function (c) {
3041
- controller = c;
3042
- }
3043
- });
3044
- var previousBlockedChunk = null;
3045
- resolveStream(response, reference, type, {
3046
- enqueueModel: function (json) {
3047
- if (null === previousBlockedChunk) {
3048
- var chunk = new ReactPromise(
3049
- "resolved_model",
3050
- json,
3051
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3052
- );
3053
- initializeModelChunk(chunk);
3054
- "fulfilled" === chunk.status
3055
- ? controller.enqueue(chunk.value)
3056
- : (chunk.then(
3057
- function (v) {
3058
- return controller.enqueue(v);
3059
- },
3060
- function (e) {
3061
- return controller.error(e);
3062
- }
3063
- ),
3064
- (previousBlockedChunk = chunk));
3065
- } else {
3066
- chunk = previousBlockedChunk;
3067
- var _chunk = new ReactPromise("pending", null, null);
3068
- _chunk.then(
3069
- function (v) {
3070
- return controller.enqueue(v);
3071
- },
3072
- function (e) {
3073
- return controller.error(e);
3074
- }
3075
- );
3076
- previousBlockedChunk = _chunk;
3077
- chunk.then(function () {
3078
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3079
- resolveModelChunk(response, _chunk, json, -1);
3080
- });
3146
+ closed = !1,
3147
+ stream = new ReadableStream({
3148
+ type: type,
3149
+ start: function (c) {
3150
+ controller = c;
3081
3151
  }
3082
- },
3083
- close: function () {
3084
- if (!closed)
3085
- if (((closed = !0), null === previousBlockedChunk))
3086
- controller.close();
3087
- else {
3088
- var blockedChunk = previousBlockedChunk;
3089
- previousBlockedChunk = null;
3090
- blockedChunk.then(function () {
3091
- return controller.close();
3092
- });
3093
- }
3094
- },
3095
- error: function (error) {
3096
- if (!closed)
3097
- if (((closed = !0), null === previousBlockedChunk))
3098
- controller.error(error);
3099
- else {
3100
- var blockedChunk = previousBlockedChunk;
3101
- previousBlockedChunk = null;
3102
- blockedChunk.then(function () {
3103
- return controller.error(error);
3152
+ }),
3153
+ previousBlockedChunk = null,
3154
+ flightController = {
3155
+ enqueueModel: function (json) {
3156
+ if (null === previousBlockedChunk) {
3157
+ var chunk = new ReactPromise(
3158
+ "resolved_model",
3159
+ json,
3160
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3161
+ );
3162
+ initializeModelChunk(chunk);
3163
+ "fulfilled" === chunk.status
3164
+ ? enqueue(chunk.value)
3165
+ : (chunk.then(enqueue, flightController.error),
3166
+ (previousBlockedChunk = chunk));
3167
+ } else {
3168
+ chunk = previousBlockedChunk;
3169
+ var _chunk = new ReactPromise("pending", null, null);
3170
+ _chunk.then(enqueue, flightController.error);
3171
+ previousBlockedChunk = _chunk;
3172
+ chunk.then(function () {
3173
+ previousBlockedChunk === _chunk &&
3174
+ (previousBlockedChunk = null);
3175
+ resolveModelChunk(response, _chunk, json, -1);
3104
3176
  });
3105
3177
  }
3106
- }
3107
- });
3108
- return type;
3109
- }
3110
- function asyncIterator() {
3111
- return this;
3178
+ },
3179
+ close: function () {
3180
+ if (!closed)
3181
+ if (((closed = !0), null === previousBlockedChunk))
3182
+ controller.close();
3183
+ else {
3184
+ var blockedChunk = previousBlockedChunk;
3185
+ previousBlockedChunk = null;
3186
+ blockedChunk.then(function () {
3187
+ return controller.close();
3188
+ });
3189
+ }
3190
+ },
3191
+ error: function (error) {
3192
+ if (!closed)
3193
+ if (((closed = !0), null === previousBlockedChunk))
3194
+ controller.error(error);
3195
+ else {
3196
+ var blockedChunk = previousBlockedChunk;
3197
+ previousBlockedChunk = null;
3198
+ blockedChunk.then(function () {
3199
+ return controller.error(error);
3200
+ });
3201
+ }
3202
+ }
3203
+ };
3204
+ resolveStream(response, reference, stream, flightController);
3205
+ return stream;
3112
3206
  }
3113
- function createIterator(next) {
3114
- next = { next: next };
3115
- next[ASYNC_ITERATOR] = asyncIterator;
3116
- return next;
3207
+ function FlightIterator(next) {
3208
+ this.next = next;
3117
3209
  }
3118
3210
  function parseAsyncIterable(response, reference, iterator) {
3119
3211
  reference = parseInt(reference.slice(2), 16);
@@ -3124,7 +3216,7 @@
3124
3216
  nextWriteIndex = 0,
3125
3217
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
3126
3218
  var nextReadIndex = 0;
3127
- return createIterator(function (arg) {
3219
+ return new FlightIterator(function (arg) {
3128
3220
  if (void 0 !== arg)
3129
3221
  throw Error(
3130
3222
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -3203,19 +3295,30 @@
3203
3295
  });
3204
3296
  return iterator;
3205
3297
  }
3206
- function parseModelString(response, obj, key, value, reference) {
3298
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
3207
3299
  if ("$" === value[0]) {
3208
3300
  switch (value[1]) {
3209
3301
  case "$":
3210
- return value.slice(1);
3302
+ return (
3303
+ null !== arrayRoot &&
3304
+ bumpArrayCount(arrayRoot, value.length - 1, response),
3305
+ value.slice(1)
3306
+ );
3211
3307
  case "@":
3212
3308
  return (
3213
3309
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3214
3310
  );
3215
3311
  case "h":
3216
3312
  return (
3217
- (value = value.slice(2)),
3218
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
3313
+ (arrayRoot = value.slice(2)),
3314
+ getOutlinedModel(
3315
+ response,
3316
+ arrayRoot,
3317
+ obj,
3318
+ key,
3319
+ null,
3320
+ loadServerReference$1
3321
+ )
3219
3322
  );
3220
3323
  case "T":
3221
3324
  if (
@@ -3231,27 +3334,44 @@
3231
3334
  );
3232
3335
  case "Q":
3233
3336
  return (
3234
- (value = value.slice(2)),
3235
- getOutlinedModel(response, value, obj, key, createMap)
3337
+ (arrayRoot = value.slice(2)),
3338
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
3236
3339
  );
3237
3340
  case "W":
3238
3341
  return (
3239
- (value = value.slice(2)),
3240
- getOutlinedModel(response, value, obj, key, createSet)
3342
+ (arrayRoot = value.slice(2)),
3343
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
3241
3344
  );
3242
3345
  case "K":
3243
3346
  obj = value.slice(2);
3244
- var formPrefix = response._prefix + obj + "_",
3245
- data = new FormData();
3246
- response._formData.forEach(function (entry, entryKey) {
3247
- entryKey.startsWith(formPrefix) &&
3248
- data.append(entryKey.slice(formPrefix.length), entry);
3249
- });
3250
- return data;
3347
+ obj = response._prefix + obj + "_";
3348
+ key = new FormData();
3349
+ response = response._formData;
3350
+ arrayRoot = Array.from(response.keys());
3351
+ for (value = 0; value < arrayRoot.length; value++)
3352
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
3353
+ for (
3354
+ var entries = response.getAll(reference),
3355
+ newKey = reference.slice(obj.length),
3356
+ j = 0;
3357
+ j < entries.length;
3358
+ j++
3359
+ )
3360
+ key.append(newKey, entries[j]);
3361
+ response.delete(reference);
3362
+ }
3363
+ return key;
3251
3364
  case "i":
3252
3365
  return (
3253
- (value = value.slice(2)),
3254
- getOutlinedModel(response, value, obj, key, extractIterator)
3366
+ (arrayRoot = value.slice(2)),
3367
+ getOutlinedModel(
3368
+ response,
3369
+ arrayRoot,
3370
+ obj,
3371
+ key,
3372
+ null,
3373
+ extractIterator
3374
+ )
3255
3375
  );
3256
3376
  case "I":
3257
3377
  return Infinity;
@@ -3264,15 +3384,50 @@
3264
3384
  case "D":
3265
3385
  return new Date(Date.parse(value.slice(2)));
3266
3386
  case "n":
3267
- return BigInt(value.slice(2));
3387
+ obj = value.slice(2);
3388
+ if (obj.length > MAX_BIGINT_DIGITS)
3389
+ throw Error(
3390
+ "BigInt is too large. Received " +
3391
+ obj.length +
3392
+ " digits but the limit is " +
3393
+ MAX_BIGINT_DIGITS +
3394
+ "."
3395
+ );
3396
+ null !== arrayRoot &&
3397
+ bumpArrayCount(arrayRoot, obj.length, response);
3398
+ return BigInt(obj);
3268
3399
  }
3269
3400
  switch (value[1]) {
3270
3401
  case "A":
3271
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
3402
+ return parseTypedArray(
3403
+ response,
3404
+ value,
3405
+ ArrayBuffer,
3406
+ 1,
3407
+ obj,
3408
+ key,
3409
+ arrayRoot
3410
+ );
3272
3411
  case "O":
3273
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
3412
+ return parseTypedArray(
3413
+ response,
3414
+ value,
3415
+ Int8Array,
3416
+ 1,
3417
+ obj,
3418
+ key,
3419
+ arrayRoot
3420
+ );
3274
3421
  case "o":
3275
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
3422
+ return parseTypedArray(
3423
+ response,
3424
+ value,
3425
+ Uint8Array,
3426
+ 1,
3427
+ obj,
3428
+ key,
3429
+ arrayRoot
3430
+ );
3276
3431
  case "U":
3277
3432
  return parseTypedArray(
3278
3433
  response,
@@ -3280,22 +3435,79 @@
3280
3435
  Uint8ClampedArray,
3281
3436
  1,
3282
3437
  obj,
3283
- key
3438
+ key,
3439
+ arrayRoot
3284
3440
  );
3285
3441
  case "S":
3286
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
3442
+ return parseTypedArray(
3443
+ response,
3444
+ value,
3445
+ Int16Array,
3446
+ 2,
3447
+ obj,
3448
+ key,
3449
+ arrayRoot
3450
+ );
3287
3451
  case "s":
3288
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
3452
+ return parseTypedArray(
3453
+ response,
3454
+ value,
3455
+ Uint16Array,
3456
+ 2,
3457
+ obj,
3458
+ key,
3459
+ arrayRoot
3460
+ );
3289
3461
  case "L":
3290
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
3462
+ return parseTypedArray(
3463
+ response,
3464
+ value,
3465
+ Int32Array,
3466
+ 4,
3467
+ obj,
3468
+ key,
3469
+ arrayRoot
3470
+ );
3291
3471
  case "l":
3292
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
3472
+ return parseTypedArray(
3473
+ response,
3474
+ value,
3475
+ Uint32Array,
3476
+ 4,
3477
+ obj,
3478
+ key,
3479
+ arrayRoot
3480
+ );
3293
3481
  case "G":
3294
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
3482
+ return parseTypedArray(
3483
+ response,
3484
+ value,
3485
+ Float32Array,
3486
+ 4,
3487
+ obj,
3488
+ key,
3489
+ arrayRoot
3490
+ );
3295
3491
  case "g":
3296
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
3492
+ return parseTypedArray(
3493
+ response,
3494
+ value,
3495
+ Float64Array,
3496
+ 8,
3497
+ obj,
3498
+ key,
3499
+ arrayRoot
3500
+ );
3297
3501
  case "M":
3298
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
3502
+ return parseTypedArray(
3503
+ response,
3504
+ value,
3505
+ BigInt64Array,
3506
+ 8,
3507
+ obj,
3508
+ key,
3509
+ arrayRoot
3510
+ );
3299
3511
  case "m":
3300
3512
  return parseTypedArray(
3301
3513
  response,
@@ -3303,10 +3515,19 @@
3303
3515
  BigUint64Array,
3304
3516
  8,
3305
3517
  obj,
3306
- key
3518
+ key,
3519
+ arrayRoot
3307
3520
  );
3308
3521
  case "V":
3309
- return parseTypedArray(response, value, DataView, 1, obj, key);
3522
+ return parseTypedArray(
3523
+ response,
3524
+ value,
3525
+ DataView,
3526
+ 1,
3527
+ obj,
3528
+ key,
3529
+ arrayRoot
3530
+ );
3310
3531
  case "B":
3311
3532
  return (
3312
3533
  (obj = parseInt(value.slice(2), 16)),
@@ -3324,8 +3545,16 @@
3324
3545
  return parseAsyncIterable(response, value, !0);
3325
3546
  }
3326
3547
  value = value.slice(1);
3327
- return getOutlinedModel(response, value, obj, key, createModel);
3548
+ return getOutlinedModel(
3549
+ response,
3550
+ value,
3551
+ obj,
3552
+ key,
3553
+ arrayRoot,
3554
+ createModel
3555
+ );
3328
3556
  }
3557
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
3329
3558
  return value;
3330
3559
  }
3331
3560
  function createResponse(
@@ -3337,25 +3566,40 @@
3337
3566
  3 < arguments.length && void 0 !== arguments[3]
3338
3567
  ? arguments[3]
3339
3568
  : new FormData(),
3569
+ arraySizeLimit =
3570
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
3340
3571
  chunks = new Map();
3341
3572
  return {
3342
3573
  _bundlerConfig: bundlerConfig,
3343
3574
  _prefix: formFieldPrefix,
3344
3575
  _formData: backingFormData,
3345
3576
  _chunks: chunks,
3346
- _temporaryReferences: temporaryReferences
3577
+ _temporaryReferences: temporaryReferences,
3578
+ _rootArrayContexts: new WeakMap(),
3579
+ _arraySizeLimit: arraySizeLimit
3347
3580
  };
3348
3581
  }
3349
3582
  function close(response) {
3350
3583
  reportGlobalError(response, Error("Connection closed."));
3351
3584
  }
3352
- function loadServerReference(bundlerConfig, id, bound) {
3585
+ function loadServerReference(bundlerConfig, metaData) {
3586
+ var id = metaData.id;
3587
+ if ("string" !== typeof id) return null;
3353
3588
  var serverReference = resolveServerReference(bundlerConfig, id);
3354
3589
  bundlerConfig = preloadModule(serverReference);
3355
- return bound
3356
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
3590
+ metaData = metaData.bound;
3591
+ return metaData instanceof Promise
3592
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
3357
3593
  _ref = _ref[0];
3358
3594
  var fn = requireModule(serverReference);
3595
+ if (_ref.length > MAX_BOUND_ARGS)
3596
+ throw Error(
3597
+ "Server Function has too many bound arguments. Received " +
3598
+ _ref.length +
3599
+ " but the limit is " +
3600
+ MAX_BOUND_ARGS +
3601
+ "."
3602
+ );
3359
3603
  return fn.bind.apply(fn, [null].concat(_ref));
3360
3604
  })
3361
3605
  : bundlerConfig
@@ -3364,8 +3608,19 @@
3364
3608
  })
3365
3609
  : Promise.resolve(requireModule(serverReference));
3366
3610
  }
3367
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
3368
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
3611
+ function decodeBoundActionMetaData(
3612
+ body,
3613
+ serverManifest,
3614
+ formFieldPrefix,
3615
+ arraySizeLimit
3616
+ ) {
3617
+ body = createResponse(
3618
+ serverManifest,
3619
+ formFieldPrefix,
3620
+ void 0,
3621
+ body,
3622
+ arraySizeLimit
3623
+ );
3369
3624
  close(body);
3370
3625
  body = getChunk(body, 0);
3371
3626
  body.then(function () {});
@@ -3791,13 +4046,14 @@
3791
4046
  patchConsole(console, "table"),
3792
4047
  patchConsole(console, "trace"),
3793
4048
  patchConsole(console, "warn"));
3794
- var ObjectPrototype = Object.prototype,
4049
+ var ObjectPrototype$1 = Object.prototype,
3795
4050
  stringify = JSON.stringify,
3796
4051
  PENDING$1 = 0,
3797
4052
  COMPLETED = 1,
3798
4053
  ABORTED = 3,
3799
4054
  ERRORED$1 = 4,
3800
4055
  RENDERING = 5,
4056
+ __PROTO__$1 = "__proto__",
3801
4057
  OPENING = 10,
3802
4058
  ABORTING = 12,
3803
4059
  CLOSING = 13,
@@ -3828,16 +4084,23 @@
3828
4084
  case "fulfilled":
3829
4085
  if ("function" === typeof resolve) {
3830
4086
  for (
3831
- var inspectedValue = this.value, cycleProtection = 0;
4087
+ var inspectedValue = this.value,
4088
+ cycleProtection = 0,
4089
+ visited = new Set();
3832
4090
  inspectedValue instanceof ReactPromise;
3833
4091
 
3834
4092
  ) {
3835
4093
  cycleProtection++;
3836
- if (inspectedValue === this || 1e3 < cycleProtection) {
4094
+ if (
4095
+ inspectedValue === this ||
4096
+ visited.has(inspectedValue) ||
4097
+ 1e3 < cycleProtection
4098
+ ) {
3837
4099
  "function" === typeof reject &&
3838
4100
  reject(Error("Cannot have cyclic thenables."));
3839
4101
  return;
3840
4102
  }
4103
+ visited.add(inspectedValue);
3841
4104
  if ("fulfilled" === inspectedValue.status)
3842
4105
  inspectedValue = inspectedValue.value;
3843
4106
  else break;
@@ -3858,7 +4121,15 @@
3858
4121
  "function" === typeof reject && reject(this.reason);
3859
4122
  }
3860
4123
  };
3861
- var initializingHandler = null;
4124
+ var ObjectPrototype = Object.prototype,
4125
+ ArrayPrototype = Array.prototype,
4126
+ initializingHandler = null;
4127
+ FlightIterator.prototype = {};
4128
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
4129
+ return this;
4130
+ };
4131
+ var MAX_BIGINT_DIGITS = 300,
4132
+ MAX_BOUND_ARGS = 1e3;
3862
4133
  exports.createClientModuleProxy = function (moduleId) {
3863
4134
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3864
4135
  return new Proxy(moduleId, proxyHandlers$1);
@@ -3868,20 +4139,24 @@
3868
4139
  };
3869
4140
  exports.decodeAction = function (body, serverManifest) {
3870
4141
  var formData = new FormData(),
3871
- action = null;
4142
+ action = null,
4143
+ seenActions = new Set();
3872
4144
  body.forEach(function (value, key) {
3873
4145
  key.startsWith("$ACTION_")
3874
4146
  ? key.startsWith("$ACTION_REF_")
3875
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
4147
+ ? seenActions.has(key) ||
4148
+ (seenActions.add(key),
4149
+ (value = "$ACTION_" + key.slice(12) + ":"),
3876
4150
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
3877
- (action = loadServerReference(
3878
- serverManifest,
3879
- value.id,
3880
- value.bound
3881
- )))
4151
+ (action = loadServerReference(serverManifest, value)))
3882
4152
  : key.startsWith("$ACTION_ID_") &&
3883
- ((value = key.slice(11)),
3884
- (action = loadServerReference(serverManifest, value, null)))
4153
+ !seenActions.has(key) &&
4154
+ (seenActions.add(key),
4155
+ (value = key.slice(11)),
4156
+ (action = loadServerReference(serverManifest, {
4157
+ id: value,
4158
+ bound: null
4159
+ })))
3885
4160
  : formData.append(key, value);
3886
4161
  });
3887
4162
  return null === action
@@ -3917,7 +4192,8 @@
3917
4192
  webpackMap,
3918
4193
  "",
3919
4194
  options ? options.temporaryReferences : void 0,
3920
- body
4195
+ body,
4196
+ options ? options.arraySizeLimit : void 0
3921
4197
  );
3922
4198
  webpackMap = getChunk(body, 0);
3923
4199
  close(body);