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.
@@ -1481,6 +1481,13 @@
1481
1481
  value
1482
1482
  ) {
1483
1483
  task.model = value;
1484
+ parentPropertyName === __PROTO__$1 &&
1485
+ callWithDebugContextInDEV(request, task, function () {
1486
+ console.error(
1487
+ "Expected not to serialize an object with own property `__proto__`. When parsed this property will be omitted.%s",
1488
+ describeObjectForErrorMessage(parent, parentPropertyName)
1489
+ );
1490
+ });
1484
1491
  if (value === REACT_ELEMENT_TYPE) return "$";
1485
1492
  if (null === value) return null;
1486
1493
  if ("object" === typeof value) {
@@ -1651,7 +1658,7 @@
1651
1658
  if (value instanceof Date) return "$D" + value.toJSON();
1652
1659
  elementReference = getPrototypeOf(value);
1653
1660
  if (
1654
- elementReference !== ObjectPrototype &&
1661
+ elementReference !== ObjectPrototype$1 &&
1655
1662
  (null === elementReference ||
1656
1663
  null !== getPrototypeOf(elementReference))
1657
1664
  )
@@ -2549,12 +2556,12 @@
2549
2556
  this.value = value;
2550
2557
  this.reason = reason;
2551
2558
  }
2552
- function wakeChunk(response, listeners, value) {
2559
+ function wakeChunk(response, listeners, value, chunk) {
2553
2560
  for (var i = 0; i < listeners.length; i++) {
2554
2561
  var listener = listeners[i];
2555
2562
  "function" === typeof listener
2556
2563
  ? listener(value)
2557
- : fulfillReference(response, listener, value);
2564
+ : fulfillReference(response, listener, value, chunk.reason);
2558
2565
  }
2559
2566
  }
2560
2567
  function rejectChunk(response, listeners, error) {
@@ -2565,27 +2572,6 @@
2565
2572
  : rejectReference(response, listener.handler, error);
2566
2573
  }
2567
2574
  }
2568
- function resolveBlockedCycle(resolvedChunk, reference) {
2569
- var referencedChunk = reference.handler.chunk;
2570
- if (null === referencedChunk) return null;
2571
- if (referencedChunk === resolvedChunk) return reference.handler;
2572
- reference = referencedChunk.value;
2573
- if (null !== reference)
2574
- for (
2575
- referencedChunk = 0;
2576
- referencedChunk < reference.length;
2577
- referencedChunk++
2578
- ) {
2579
- var listener = reference[referencedChunk];
2580
- if (
2581
- "function" !== typeof listener &&
2582
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2583
- null !== listener)
2584
- )
2585
- return listener;
2586
- }
2587
- return null;
2588
- }
2589
2575
  function triggerErrorOnChunk(response, chunk, error) {
2590
2576
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2591
2577
  chunk.reason.error(error);
@@ -2609,57 +2595,25 @@
2609
2595
  chunk.value = value;
2610
2596
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2611
2597
  if (null !== resolveListeners)
2612
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
2598
+ switch ((initializeModelChunk(chunk), chunk.status)) {
2613
2599
  case "fulfilled":
2614
- wakeChunk(response, resolveListeners, chunk.value);
2600
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
2615
2601
  break;
2616
2602
  case "blocked":
2617
- for (value = 0; value < resolveListeners.length; value++)
2618
- if (
2619
- ((id = resolveListeners[value]), "function" !== typeof id)
2620
- ) {
2621
- var cyclicHandler = resolveBlockedCycle(chunk, id);
2622
- if (null !== cyclicHandler)
2623
- switch (
2624
- (fulfillReference(response, id, cyclicHandler.value),
2625
- resolveListeners.splice(value, 1),
2626
- value--,
2627
- null !== rejectListeners &&
2628
- ((id = rejectListeners.indexOf(id)),
2629
- -1 !== id && rejectListeners.splice(id, 1)),
2630
- chunk.status)
2631
- ) {
2632
- case "fulfilled":
2633
- wakeChunk(response, resolveListeners, chunk.value);
2634
- break a;
2635
- case "rejected":
2636
- null !== rejectListeners &&
2637
- rejectChunk(response, rejectListeners, chunk.reason);
2638
- break a;
2639
- }
2640
- }
2641
2603
  case "pending":
2642
2604
  if (chunk.value)
2643
- for (
2644
- response = 0;
2645
- response < resolveListeners.length;
2646
- response++
2647
- )
2648
- chunk.value.push(resolveListeners[response]);
2605
+ for (value = 0; value < resolveListeners.length; value++)
2606
+ chunk.value.push(resolveListeners[value]);
2649
2607
  else chunk.value = resolveListeners;
2650
2608
  if (chunk.reason) {
2651
2609
  if (rejectListeners)
2652
- for (
2653
- resolveListeners = 0;
2654
- resolveListeners < rejectListeners.length;
2655
- resolveListeners++
2656
- )
2657
- chunk.reason.push(rejectListeners[resolveListeners]);
2610
+ for (value = 0; value < rejectListeners.length; value++)
2611
+ chunk.reason.push(rejectListeners[value]);
2658
2612
  } else chunk.reason = rejectListeners;
2659
2613
  break;
2660
2614
  case "rejected":
2661
2615
  rejectListeners &&
2662
- wakeChunk(response, rejectListeners, chunk.reason);
2616
+ rejectChunk(response, rejectListeners, chunk.reason);
2663
2617
  }
2664
2618
  }
2665
2619
  }
@@ -2683,15 +2637,51 @@
2683
2637
  );
2684
2638
  }
2685
2639
  function loadServerReference$1(response, metaData, parentObject, key) {
2640
+ function reject(error) {
2641
+ var rejectListeners = blockedPromise.reason,
2642
+ erroredPromise = blockedPromise;
2643
+ erroredPromise.status = "rejected";
2644
+ erroredPromise.value = null;
2645
+ erroredPromise.reason = error;
2646
+ null !== rejectListeners &&
2647
+ rejectChunk(response, rejectListeners, error);
2648
+ rejectReference(response, handler, error);
2649
+ }
2686
2650
  var id = metaData.id;
2687
2651
  if ("string" !== typeof id || "then" === key) return null;
2652
+ var cachedPromise = metaData.$$promise;
2653
+ if (void 0 !== cachedPromise) {
2654
+ if ("fulfilled" === cachedPromise.status)
2655
+ return (
2656
+ (cachedPromise = cachedPromise.value),
2657
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
2658
+ );
2659
+ initializingHandler
2660
+ ? ((id = initializingHandler), id.deps++)
2661
+ : (id = initializingHandler =
2662
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2663
+ cachedPromise.then(
2664
+ resolveReference.bind(null, response, id, parentObject, key),
2665
+ rejectReference.bind(null, response, id)
2666
+ );
2667
+ return null;
2668
+ }
2669
+ var blockedPromise = new ReactPromise("blocked", null, null);
2670
+ metaData.$$promise = blockedPromise;
2688
2671
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2689
- id = metaData.bound;
2690
- var promise = preloadModule(serverReference);
2691
- if (promise)
2692
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2693
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2694
- else return requireModule(serverReference);
2672
+ cachedPromise = metaData.bound;
2673
+ if ((id = preloadModule(serverReference)))
2674
+ cachedPromise instanceof ReactPromise &&
2675
+ (id = Promise.all([id, cachedPromise]));
2676
+ else if (cachedPromise instanceof ReactPromise)
2677
+ id = Promise.resolve(cachedPromise);
2678
+ else
2679
+ return (
2680
+ (cachedPromise = requireModule(serverReference)),
2681
+ (id = blockedPromise),
2682
+ (id.status = "fulfilled"),
2683
+ (id.value = cachedPromise)
2684
+ );
2695
2685
  if (initializingHandler) {
2696
2686
  var handler = initializingHandler;
2697
2687
  handler.deps++;
@@ -2703,93 +2693,107 @@
2703
2693
  deps: 1,
2704
2694
  errored: !1
2705
2695
  };
2706
- promise.then(
2707
- function () {
2708
- var resolvedValue = requireModule(serverReference);
2709
- if (metaData.bound) {
2710
- var promiseValue = metaData.bound.value;
2711
- promiseValue = Array.isArray(promiseValue)
2712
- ? promiseValue.slice(0)
2713
- : [];
2714
- promiseValue.unshift(null);
2715
- resolvedValue = resolvedValue.bind.apply(
2716
- resolvedValue,
2717
- promiseValue
2696
+ id.then(function () {
2697
+ var resolvedValue = requireModule(serverReference);
2698
+ if (metaData.bound) {
2699
+ var promiseValue = metaData.bound.value;
2700
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
2701
+ if (promiseValue.length > MAX_BOUND_ARGS) {
2702
+ reject(
2703
+ Error(
2704
+ "Server Function has too many bound arguments. Received " +
2705
+ promiseValue.length +
2706
+ " but the limit is " +
2707
+ MAX_BOUND_ARGS +
2708
+ "."
2709
+ )
2718
2710
  );
2711
+ return;
2719
2712
  }
2720
- parentObject[key] = resolvedValue;
2721
- "" === key &&
2722
- null === handler.value &&
2723
- (handler.value = resolvedValue);
2724
- handler.deps--;
2725
- 0 === handler.deps &&
2726
- ((resolvedValue = handler.chunk),
2727
- null !== resolvedValue &&
2728
- "blocked" === resolvedValue.status &&
2729
- ((promiseValue = resolvedValue.value),
2730
- (resolvedValue.status = "fulfilled"),
2731
- (resolvedValue.value = handler.value),
2732
- (resolvedValue.reason = null),
2733
- null !== promiseValue &&
2734
- wakeChunk(response, promiseValue, handler.value)));
2735
- },
2736
- function (error) {
2737
- if (!handler.errored) {
2738
- handler.errored = !0;
2739
- handler.value = null;
2740
- handler.reason = error;
2741
- var chunk = handler.chunk;
2742
- null !== chunk &&
2743
- "blocked" === chunk.status &&
2744
- triggerErrorOnChunk(response, chunk, error);
2745
- }
2713
+ promiseValue.unshift(null);
2714
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2746
2715
  }
2747
- );
2716
+ promiseValue = blockedPromise.value;
2717
+ var initializedPromise = blockedPromise;
2718
+ initializedPromise.status = "fulfilled";
2719
+ initializedPromise.value = resolvedValue;
2720
+ initializedPromise.reason = null;
2721
+ null !== promiseValue &&
2722
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
2723
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2724
+ }, reject);
2748
2725
  return null;
2749
2726
  }
2750
- function reviveModel(response, parentObj, parentKey, value, reference) {
2727
+ function reviveModel(
2728
+ response,
2729
+ parentObj,
2730
+ parentKey,
2731
+ value,
2732
+ reference,
2733
+ arrayRoot
2734
+ ) {
2751
2735
  if ("string" === typeof value)
2752
2736
  return parseModelString(
2753
2737
  response,
2754
2738
  parentObj,
2755
2739
  parentKey,
2756
2740
  value,
2757
- reference
2741
+ reference,
2742
+ arrayRoot
2758
2743
  );
2759
2744
  if ("object" === typeof value && null !== value)
2760
2745
  if (
2761
2746
  (void 0 !== reference &&
2762
2747
  void 0 !== response._temporaryReferences &&
2763
2748
  response._temporaryReferences.set(value, reference),
2764
- Array.isArray(value))
2765
- )
2766
- for (var i = 0; i < value.length; i++)
2767
- value[i] = reviveModel(
2749
+ isArrayImpl(value))
2750
+ ) {
2751
+ if (null === arrayRoot) {
2752
+ var childContext = { count: 0, fork: !1 };
2753
+ response._rootArrayContexts.set(value, childContext);
2754
+ } else childContext = arrayRoot;
2755
+ 1 < value.length && (childContext.fork = !0);
2756
+ bumpArrayCount(childContext, value.length + 1, response);
2757
+ for (parentObj = 0; parentObj < value.length; parentObj++)
2758
+ value[parentObj] = reviveModel(
2768
2759
  response,
2769
2760
  value,
2770
- "" + i,
2771
- value[i],
2772
- void 0 !== reference ? reference + ":" + i : void 0
2761
+ "" + parentObj,
2762
+ value[parentObj],
2763
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
2764
+ childContext
2773
2765
  );
2774
- else
2775
- for (i in value)
2776
- hasOwnProperty.call(value, i) &&
2777
- ((parentObj =
2778
- void 0 !== reference && -1 === i.indexOf(":")
2779
- ? reference + ":" + i
2780
- : void 0),
2781
- (parentObj = reviveModel(
2782
- response,
2783
- value,
2784
- i,
2785
- value[i],
2786
- parentObj
2787
- )),
2788
- void 0 !== parentObj || "__proto__" === i
2789
- ? (value[i] = parentObj)
2790
- : delete value[i]);
2766
+ } else
2767
+ for (childContext in value)
2768
+ hasOwnProperty.call(value, childContext) &&
2769
+ ("__proto__" === childContext
2770
+ ? delete value[childContext]
2771
+ : ((parentObj =
2772
+ void 0 !== reference && -1 === childContext.indexOf(":")
2773
+ ? reference + ":" + childContext
2774
+ : void 0),
2775
+ (parentObj = reviveModel(
2776
+ response,
2777
+ value,
2778
+ childContext,
2779
+ value[childContext],
2780
+ parentObj,
2781
+ null
2782
+ )),
2783
+ void 0 !== parentObj
2784
+ ? (value[childContext] = parentObj)
2785
+ : delete value[childContext]));
2791
2786
  return value;
2792
2787
  }
2788
+ function bumpArrayCount(arrayContext, slots, response) {
2789
+ if (
2790
+ (arrayContext.count += slots) > response._arraySizeLimit &&
2791
+ arrayContext.fork
2792
+ )
2793
+ throw Error(
2794
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
2795
+ );
2796
+ }
2793
2797
  function initializeModelChunk(chunk) {
2794
2798
  var prevHandler = initializingHandler;
2795
2799
  initializingHandler = null;
@@ -2803,13 +2807,15 @@
2803
2807
  chunk.value = null;
2804
2808
  chunk.reason = null;
2805
2809
  try {
2806
- var rawModel = JSON.parse(resolvedModel),
2807
- value = reviveModel(
2810
+ var rawModel = JSON.parse(resolvedModel);
2811
+ resolvedModel = { count: 0, fork: !1 };
2812
+ var value = reviveModel(
2808
2813
  response,
2809
2814
  { "": rawModel },
2810
2815
  "",
2811
2816
  rawModel,
2812
- _chunk$reason
2817
+ _chunk$reason,
2818
+ resolvedModel
2813
2819
  ),
2814
2820
  resolveListeners = chunk.value;
2815
2821
  if (null !== resolveListeners)
@@ -2821,19 +2827,20 @@
2821
2827
  var listener = resolveListeners[rawModel];
2822
2828
  "function" === typeof listener
2823
2829
  ? listener(value)
2824
- : fulfillReference(response, listener, value);
2830
+ : fulfillReference(response, listener, value, resolvedModel);
2825
2831
  }
2826
2832
  if (null !== initializingHandler) {
2827
2833
  if (initializingHandler.errored) throw initializingHandler.reason;
2828
2834
  if (0 < initializingHandler.deps) {
2829
2835
  initializingHandler.value = value;
2836
+ initializingHandler.reason = resolvedModel;
2830
2837
  initializingHandler.chunk = chunk;
2831
2838
  return;
2832
2839
  }
2833
2840
  }
2834
2841
  chunk.status = "fulfilled";
2835
2842
  chunk.value = value;
2836
- chunk.reason = null;
2843
+ chunk.reason = resolvedModel;
2837
2844
  } catch (error) {
2838
2845
  (chunk.status = "rejected"), (chunk.reason = error);
2839
2846
  } finally {
@@ -2846,7 +2853,8 @@
2846
2853
  ? triggerErrorOnChunk(response, chunk, error)
2847
2854
  : "fulfilled" === chunk.status &&
2848
2855
  null !== chunk.reason &&
2849
- chunk.reason.error(error);
2856
+ ((chunk = chunk.reason),
2857
+ "function" === typeof chunk.error && chunk.error(error));
2850
2858
  });
2851
2859
  }
2852
2860
  function getChunk(response, id) {
@@ -2865,40 +2873,74 @@
2865
2873
  chunks.set(id, chunk));
2866
2874
  return chunk;
2867
2875
  }
2868
- function fulfillReference(response, reference, value) {
2876
+ function fulfillReference(response, reference, value, arrayRoot) {
2869
2877
  var handler = reference.handler,
2870
2878
  parentObject = reference.parentObject,
2871
2879
  key = reference.key,
2872
2880
  map = reference.map,
2873
2881
  path = reference.path;
2874
2882
  try {
2875
- for (var i = 1; i < path.length; i++) {
2883
+ for (
2884
+ var localLength = 0,
2885
+ rootArrayContexts = response._rootArrayContexts,
2886
+ i = 1;
2887
+ i < path.length;
2888
+ i++
2889
+ ) {
2876
2890
  var name = path[i];
2877
2891
  if (
2878
2892
  "object" !== typeof value ||
2879
- !hasOwnProperty.call(value, name) ||
2880
- value instanceof Promise
2893
+ null === value ||
2894
+ (getPrototypeOf(value) !== ObjectPrototype &&
2895
+ getPrototypeOf(value) !== ArrayPrototype) ||
2896
+ !hasOwnProperty.call(value, name)
2881
2897
  )
2882
2898
  throw Error("Invalid reference.");
2883
2899
  value = value[name];
2900
+ if (isArrayImpl(value))
2901
+ (localLength = 0),
2902
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
2903
+ else if (((arrayRoot = null), "string" === typeof value))
2904
+ localLength = value.length;
2905
+ else if ("bigint" === typeof value) {
2906
+ var n = Math.abs(Number(value));
2907
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
2908
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
2884
2909
  }
2885
- var mappedValue = map(response, value, parentObject, key);
2886
- parentObject[key] = mappedValue;
2887
- "" === key && null === handler.value && (handler.value = mappedValue);
2910
+ var resolvedValue = map(response, value, parentObject, key);
2911
+ var referenceArrayRoot = reference.arrayRoot;
2912
+ null !== referenceArrayRoot &&
2913
+ (null !== arrayRoot
2914
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
2915
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
2916
+ : 0 < localLength &&
2917
+ bumpArrayCount(referenceArrayRoot, localLength, response));
2888
2918
  } catch (error) {
2889
- rejectReference(response, reference.handler, error);
2919
+ rejectReference(response, handler, error);
2890
2920
  return;
2891
2921
  }
2922
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2923
+ }
2924
+ function resolveReference(
2925
+ response,
2926
+ handler,
2927
+ parentObject,
2928
+ key,
2929
+ resolvedValue
2930
+ ) {
2931
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
2932
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2892
2933
  handler.deps--;
2893
2934
  0 === handler.deps &&
2894
- ((reference = handler.chunk),
2895
- null !== reference &&
2896
- "blocked" === reference.status &&
2897
- ((value = reference.value),
2898
- (reference.status = "fulfilled"),
2899
- (reference.value = handler.value),
2900
- (reference.reason = handler.reason),
2901
- null !== value && wakeChunk(response, value, handler.value)));
2935
+ ((parentObject = handler.chunk),
2936
+ null !== parentObject &&
2937
+ "blocked" === parentObject.status &&
2938
+ ((key = parentObject.value),
2939
+ (parentObject.status = "fulfilled"),
2940
+ (parentObject.value = handler.value),
2941
+ (parentObject.reason = handler.reason),
2942
+ null !== key &&
2943
+ wakeChunk(response, key, handler.value, parentObject)));
2902
2944
  }
2903
2945
  function rejectReference(response, handler, error) {
2904
2946
  handler.errored ||
@@ -2910,29 +2952,66 @@
2910
2952
  "blocked" === handler.status &&
2911
2953
  triggerErrorOnChunk(response, handler, error));
2912
2954
  }
2913
- function getOutlinedModel(response, reference, parentObject, key, map) {
2955
+ function getOutlinedModel(
2956
+ response,
2957
+ reference,
2958
+ parentObject,
2959
+ key,
2960
+ referenceArrayRoot,
2961
+ map
2962
+ ) {
2914
2963
  reference = reference.split(":");
2915
- var id = parseInt(reference[0], 16);
2916
- id = getChunk(response, id);
2917
- switch (id.status) {
2964
+ var id = parseInt(reference[0], 16),
2965
+ chunk = getChunk(response, id);
2966
+ switch (chunk.status) {
2918
2967
  case "resolved_model":
2919
- initializeModelChunk(id);
2968
+ initializeModelChunk(chunk);
2920
2969
  }
2921
- switch (id.status) {
2970
+ switch (chunk.status) {
2922
2971
  case "fulfilled":
2923
- id = id.value;
2924
- for (var i = 1; i < reference.length; i++) {
2925
- var name = reference[i];
2972
+ id = chunk.value;
2973
+ chunk = chunk.reason;
2974
+ for (
2975
+ var localLength = 0,
2976
+ rootArrayContexts = response._rootArrayContexts,
2977
+ i = 1;
2978
+ i < reference.length;
2979
+ i++
2980
+ ) {
2981
+ localLength = reference[i];
2926
2982
  if (
2927
2983
  "object" !== typeof id ||
2928
- !hasOwnProperty.call(id, name) ||
2929
- id instanceof Promise
2984
+ null === id ||
2985
+ (getPrototypeOf(id) !== ObjectPrototype &&
2986
+ getPrototypeOf(id) !== ArrayPrototype) ||
2987
+ !hasOwnProperty.call(id, localLength)
2930
2988
  )
2931
2989
  throw Error("Invalid reference.");
2932
- id = id[name];
2990
+ id = id[localLength];
2991
+ isArrayImpl(id)
2992
+ ? ((localLength = 0),
2993
+ (chunk = rootArrayContexts.get(id) || chunk))
2994
+ : ((chunk = null),
2995
+ "string" === typeof id
2996
+ ? (localLength = id.length)
2997
+ : "bigint" === typeof id
2998
+ ? ((localLength = Math.abs(Number(id))),
2999
+ (localLength =
3000
+ 0 === localLength
3001
+ ? 1
3002
+ : Math.floor(Math.log10(localLength)) + 1))
3003
+ : (localLength = ArrayBuffer.isView(id)
3004
+ ? id.byteLength
3005
+ : 0));
2933
3006
  }
2934
- return map(response, id, parentObject, key);
2935
- case "pending":
3007
+ parentObject = map(response, id, parentObject, key);
3008
+ null !== referenceArrayRoot &&
3009
+ (null !== chunk
3010
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
3011
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
3012
+ : 0 < localLength &&
3013
+ bumpArrayCount(referenceArrayRoot, localLength, response));
3014
+ return parentObject;
2936
3015
  case "blocked":
2937
3016
  return (
2938
3017
  initializingHandler
@@ -2945,31 +3024,34 @@
2945
3024
  deps: 1,
2946
3025
  errored: !1
2947
3026
  }),
2948
- (parentObject = {
3027
+ (referenceArrayRoot = {
2949
3028
  handler: response,
2950
3029
  parentObject: parentObject,
2951
3030
  key: key,
2952
3031
  map: map,
2953
- path: reference
3032
+ path: reference,
3033
+ arrayRoot: referenceArrayRoot
2954
3034
  }),
2955
- null === id.value
2956
- ? (id.value = [parentObject])
2957
- : id.value.push(parentObject),
2958
- null === id.reason
2959
- ? (id.reason = [parentObject])
2960
- : id.reason.push(parentObject),
3035
+ null === chunk.value
3036
+ ? (chunk.value = [referenceArrayRoot])
3037
+ : chunk.value.push(referenceArrayRoot),
3038
+ null === chunk.reason
3039
+ ? (chunk.reason = [referenceArrayRoot])
3040
+ : chunk.reason.push(referenceArrayRoot),
2961
3041
  null
2962
3042
  );
3043
+ case "pending":
3044
+ throw Error("Invalid forward reference.");
2963
3045
  default:
2964
3046
  return (
2965
3047
  initializingHandler
2966
3048
  ? ((initializingHandler.errored = !0),
2967
3049
  (initializingHandler.value = null),
2968
- (initializingHandler.reason = id.reason))
3050
+ (initializingHandler.reason = chunk.reason))
2969
3051
  : (initializingHandler = {
2970
3052
  chunk: null,
2971
3053
  value: null,
2972
- reason: id.reason,
3054
+ reason: chunk.reason,
2973
3055
  deps: 0,
2974
3056
  errored: !0
2975
3057
  }),
@@ -2978,12 +3060,21 @@
2978
3060
  }
2979
3061
  }
2980
3062
  function createMap(response, model) {
3063
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
3064
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
3065
+ model.$$consumed = !0;
2981
3066
  return new Map(model);
2982
3067
  }
2983
3068
  function createSet(response, model) {
3069
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
3070
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
3071
+ model.$$consumed = !0;
2984
3072
  return new Set(model);
2985
3073
  }
2986
3074
  function extractIterator(response, model) {
3075
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
3076
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
3077
+ model.$$consumed = !0;
2987
3078
  return model[Symbol.iterator]();
2988
3079
  }
2989
3080
  function createModel(response, model, parentObject, key) {
@@ -2995,13 +3086,34 @@
2995
3086
  constructor,
2996
3087
  bytesPerElement,
2997
3088
  parentObject,
2998
- parentKey
3089
+ parentKey,
3090
+ referenceArrayRoot
2999
3091
  ) {
3092
+ function reject(error) {
3093
+ if (!handler.errored) {
3094
+ handler.errored = !0;
3095
+ handler.value = null;
3096
+ handler.reason = error;
3097
+ var chunk = handler.chunk;
3098
+ null !== chunk &&
3099
+ "blocked" === chunk.status &&
3100
+ triggerErrorOnChunk(response, chunk, error);
3101
+ }
3102
+ }
3000
3103
  reference = parseInt(reference.slice(2), 16);
3001
- bytesPerElement = response._prefix + reference;
3002
- if (response._chunks.has(reference))
3104
+ var key = response._prefix + reference;
3105
+ bytesPerElement = response._chunks;
3106
+ if (bytesPerElement.has(reference))
3003
3107
  throw Error("Already initialized typed array.");
3004
- reference = response._formData.get(bytesPerElement).arrayBuffer();
3108
+ bytesPerElement.set(
3109
+ reference,
3110
+ new ReactPromise(
3111
+ "rejected",
3112
+ null,
3113
+ Error("Already initialized typed array.")
3114
+ )
3115
+ );
3116
+ reference = response._formData.get(key).arrayBuffer();
3005
3117
  if (initializingHandler) {
3006
3118
  var handler = initializingHandler;
3007
3119
  handler.deps++;
@@ -3013,40 +3125,32 @@
3013
3125
  deps: 1,
3014
3126
  errored: !1
3015
3127
  };
3016
- reference.then(
3017
- function (buffer) {
3018
- buffer =
3128
+ reference.then(function (buffer) {
3129
+ try {
3130
+ null !== referenceArrayRoot &&
3131
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
3132
+ var resolvedValue =
3019
3133
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
3020
- parentObject[parentKey] = buffer;
3134
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
3021
3135
  "" === parentKey &&
3022
3136
  null === handler.value &&
3023
- (handler.value = buffer);
3024
- handler.deps--;
3025
- if (
3026
- 0 === handler.deps &&
3027
- ((buffer = handler.chunk),
3028
- null !== buffer && "blocked" === buffer.status)
3029
- ) {
3030
- var resolveListeners = buffer.value;
3031
- buffer.status = "fulfilled";
3032
- buffer.value = handler.value;
3033
- buffer.reason = null;
3034
- null !== resolveListeners &&
3035
- wakeChunk(response, resolveListeners, handler.value);
3036
- }
3037
- },
3038
- function (error) {
3039
- if (!handler.errored) {
3040
- handler.errored = !0;
3041
- handler.value = null;
3042
- handler.reason = error;
3043
- var chunk = handler.chunk;
3044
- null !== chunk &&
3045
- "blocked" === chunk.status &&
3046
- triggerErrorOnChunk(response, chunk, error);
3047
- }
3137
+ (handler.value = resolvedValue);
3138
+ } catch (x) {
3139
+ reject(x);
3140
+ return;
3048
3141
  }
3049
- );
3142
+ handler.deps--;
3143
+ 0 === handler.deps &&
3144
+ ((buffer = handler.chunk),
3145
+ null !== buffer &&
3146
+ "blocked" === buffer.status &&
3147
+ ((resolvedValue = buffer.value),
3148
+ (buffer.status = "fulfilled"),
3149
+ (buffer.value = handler.value),
3150
+ (buffer.reason = null),
3151
+ null !== resolvedValue &&
3152
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
3153
+ }, reject);
3050
3154
  return null;
3051
3155
  }
3052
3156
  function resolveStream(response, id, stream, controller) {
@@ -3064,90 +3168,78 @@
3064
3168
  : controller.enqueueModel(chunks));
3065
3169
  }
3066
3170
  function parseReadableStream(response, reference, type) {
3171
+ function enqueue(value) {
3172
+ "bytes" !== type || ArrayBuffer.isView(value)
3173
+ ? controller.enqueue(value)
3174
+ : flightController.error(Error("Invalid data for bytes stream."));
3175
+ }
3067
3176
  reference = parseInt(reference.slice(2), 16);
3068
3177
  if (response._chunks.has(reference))
3069
3178
  throw Error("Already initialized stream.");
3070
3179
  var controller = null,
3071
- closed = !1;
3072
- type = new ReadableStream({
3073
- type: type,
3074
- start: function (c) {
3075
- controller = c;
3076
- }
3077
- });
3078
- var previousBlockedChunk = null;
3079
- resolveStream(response, reference, type, {
3080
- enqueueModel: function (json) {
3081
- if (null === previousBlockedChunk) {
3082
- var chunk = new ReactPromise(
3083
- "resolved_model",
3084
- json,
3085
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3086
- );
3087
- initializeModelChunk(chunk);
3088
- "fulfilled" === chunk.status
3089
- ? controller.enqueue(chunk.value)
3090
- : (chunk.then(
3091
- function (v) {
3092
- return controller.enqueue(v);
3093
- },
3094
- function (e) {
3095
- return controller.error(e);
3096
- }
3097
- ),
3098
- (previousBlockedChunk = chunk));
3099
- } else {
3100
- chunk = previousBlockedChunk;
3101
- var _chunk = new ReactPromise("pending", null, null);
3102
- _chunk.then(
3103
- function (v) {
3104
- return controller.enqueue(v);
3105
- },
3106
- function (e) {
3107
- return controller.error(e);
3108
- }
3109
- );
3110
- previousBlockedChunk = _chunk;
3111
- chunk.then(function () {
3112
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3113
- resolveModelChunk(response, _chunk, json, -1);
3114
- });
3180
+ closed = !1,
3181
+ stream = new ReadableStream({
3182
+ type: type,
3183
+ start: function (c) {
3184
+ controller = c;
3115
3185
  }
3116
- },
3117
- close: function () {
3118
- if (!closed)
3119
- if (((closed = !0), null === previousBlockedChunk))
3120
- controller.close();
3121
- else {
3122
- var blockedChunk = previousBlockedChunk;
3123
- previousBlockedChunk = null;
3124
- blockedChunk.then(function () {
3125
- return controller.close();
3126
- });
3127
- }
3128
- },
3129
- error: function (error) {
3130
- if (!closed)
3131
- if (((closed = !0), null === previousBlockedChunk))
3132
- controller.error(error);
3133
- else {
3134
- var blockedChunk = previousBlockedChunk;
3135
- previousBlockedChunk = null;
3136
- blockedChunk.then(function () {
3137
- return controller.error(error);
3186
+ }),
3187
+ previousBlockedChunk = null,
3188
+ flightController = {
3189
+ enqueueModel: function (json) {
3190
+ if (null === previousBlockedChunk) {
3191
+ var chunk = new ReactPromise(
3192
+ "resolved_model",
3193
+ json,
3194
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3195
+ );
3196
+ initializeModelChunk(chunk);
3197
+ "fulfilled" === chunk.status
3198
+ ? enqueue(chunk.value)
3199
+ : (chunk.then(enqueue, flightController.error),
3200
+ (previousBlockedChunk = chunk));
3201
+ } else {
3202
+ chunk = previousBlockedChunk;
3203
+ var _chunk = new ReactPromise("pending", null, null);
3204
+ _chunk.then(enqueue, flightController.error);
3205
+ previousBlockedChunk = _chunk;
3206
+ chunk.then(function () {
3207
+ previousBlockedChunk === _chunk &&
3208
+ (previousBlockedChunk = null);
3209
+ resolveModelChunk(response, _chunk, json, -1);
3138
3210
  });
3139
3211
  }
3140
- }
3141
- });
3142
- return type;
3143
- }
3144
- function asyncIterator() {
3145
- return this;
3212
+ },
3213
+ close: function () {
3214
+ if (!closed)
3215
+ if (((closed = !0), null === previousBlockedChunk))
3216
+ controller.close();
3217
+ else {
3218
+ var blockedChunk = previousBlockedChunk;
3219
+ previousBlockedChunk = null;
3220
+ blockedChunk.then(function () {
3221
+ return controller.close();
3222
+ });
3223
+ }
3224
+ },
3225
+ error: function (error) {
3226
+ if (!closed)
3227
+ if (((closed = !0), null === previousBlockedChunk))
3228
+ controller.error(error);
3229
+ else {
3230
+ var blockedChunk = previousBlockedChunk;
3231
+ previousBlockedChunk = null;
3232
+ blockedChunk.then(function () {
3233
+ return controller.error(error);
3234
+ });
3235
+ }
3236
+ }
3237
+ };
3238
+ resolveStream(response, reference, stream, flightController);
3239
+ return stream;
3146
3240
  }
3147
- function createIterator(next) {
3148
- next = { next: next };
3149
- next[ASYNC_ITERATOR] = asyncIterator;
3150
- return next;
3241
+ function FlightIterator(next) {
3242
+ this.next = next;
3151
3243
  }
3152
3244
  function parseAsyncIterable(response, reference, iterator) {
3153
3245
  reference = parseInt(reference.slice(2), 16);
@@ -3158,7 +3250,7 @@
3158
3250
  nextWriteIndex = 0,
3159
3251
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
3160
3252
  var nextReadIndex = 0;
3161
- return createIterator(function (arg) {
3253
+ return new FlightIterator(function (arg) {
3162
3254
  if (void 0 !== arg)
3163
3255
  throw Error(
3164
3256
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -3237,19 +3329,30 @@
3237
3329
  });
3238
3330
  return iterator;
3239
3331
  }
3240
- function parseModelString(response, obj, key, value, reference) {
3332
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
3241
3333
  if ("$" === value[0]) {
3242
3334
  switch (value[1]) {
3243
3335
  case "$":
3244
- return value.slice(1);
3336
+ return (
3337
+ null !== arrayRoot &&
3338
+ bumpArrayCount(arrayRoot, value.length - 1, response),
3339
+ value.slice(1)
3340
+ );
3245
3341
  case "@":
3246
3342
  return (
3247
3343
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3248
3344
  );
3249
3345
  case "h":
3250
3346
  return (
3251
- (value = value.slice(2)),
3252
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
3347
+ (arrayRoot = value.slice(2)),
3348
+ getOutlinedModel(
3349
+ response,
3350
+ arrayRoot,
3351
+ obj,
3352
+ key,
3353
+ null,
3354
+ loadServerReference$1
3355
+ )
3253
3356
  );
3254
3357
  case "T":
3255
3358
  if (
@@ -3265,27 +3368,44 @@
3265
3368
  );
3266
3369
  case "Q":
3267
3370
  return (
3268
- (value = value.slice(2)),
3269
- getOutlinedModel(response, value, obj, key, createMap)
3371
+ (arrayRoot = value.slice(2)),
3372
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
3270
3373
  );
3271
3374
  case "W":
3272
3375
  return (
3273
- (value = value.slice(2)),
3274
- getOutlinedModel(response, value, obj, key, createSet)
3376
+ (arrayRoot = value.slice(2)),
3377
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
3275
3378
  );
3276
3379
  case "K":
3277
3380
  obj = value.slice(2);
3278
- var formPrefix = response._prefix + obj + "_",
3279
- data = new FormData();
3280
- response._formData.forEach(function (entry, entryKey) {
3281
- entryKey.startsWith(formPrefix) &&
3282
- data.append(entryKey.slice(formPrefix.length), entry);
3283
- });
3284
- return data;
3381
+ obj = response._prefix + obj + "_";
3382
+ key = new FormData();
3383
+ response = response._formData;
3384
+ arrayRoot = Array.from(response.keys());
3385
+ for (value = 0; value < arrayRoot.length; value++)
3386
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
3387
+ for (
3388
+ var entries = response.getAll(reference),
3389
+ newKey = reference.slice(obj.length),
3390
+ j = 0;
3391
+ j < entries.length;
3392
+ j++
3393
+ )
3394
+ key.append(newKey, entries[j]);
3395
+ response.delete(reference);
3396
+ }
3397
+ return key;
3285
3398
  case "i":
3286
3399
  return (
3287
- (value = value.slice(2)),
3288
- getOutlinedModel(response, value, obj, key, extractIterator)
3400
+ (arrayRoot = value.slice(2)),
3401
+ getOutlinedModel(
3402
+ response,
3403
+ arrayRoot,
3404
+ obj,
3405
+ key,
3406
+ null,
3407
+ extractIterator
3408
+ )
3289
3409
  );
3290
3410
  case "I":
3291
3411
  return Infinity;
@@ -3298,15 +3418,50 @@
3298
3418
  case "D":
3299
3419
  return new Date(Date.parse(value.slice(2)));
3300
3420
  case "n":
3301
- return BigInt(value.slice(2));
3421
+ obj = value.slice(2);
3422
+ if (obj.length > MAX_BIGINT_DIGITS)
3423
+ throw Error(
3424
+ "BigInt is too large. Received " +
3425
+ obj.length +
3426
+ " digits but the limit is " +
3427
+ MAX_BIGINT_DIGITS +
3428
+ "."
3429
+ );
3430
+ null !== arrayRoot &&
3431
+ bumpArrayCount(arrayRoot, obj.length, response);
3432
+ return BigInt(obj);
3302
3433
  }
3303
3434
  switch (value[1]) {
3304
3435
  case "A":
3305
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
3436
+ return parseTypedArray(
3437
+ response,
3438
+ value,
3439
+ ArrayBuffer,
3440
+ 1,
3441
+ obj,
3442
+ key,
3443
+ arrayRoot
3444
+ );
3306
3445
  case "O":
3307
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
3446
+ return parseTypedArray(
3447
+ response,
3448
+ value,
3449
+ Int8Array,
3450
+ 1,
3451
+ obj,
3452
+ key,
3453
+ arrayRoot
3454
+ );
3308
3455
  case "o":
3309
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
3456
+ return parseTypedArray(
3457
+ response,
3458
+ value,
3459
+ Uint8Array,
3460
+ 1,
3461
+ obj,
3462
+ key,
3463
+ arrayRoot
3464
+ );
3310
3465
  case "U":
3311
3466
  return parseTypedArray(
3312
3467
  response,
@@ -3314,22 +3469,79 @@
3314
3469
  Uint8ClampedArray,
3315
3470
  1,
3316
3471
  obj,
3317
- key
3472
+ key,
3473
+ arrayRoot
3318
3474
  );
3319
3475
  case "S":
3320
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
3476
+ return parseTypedArray(
3477
+ response,
3478
+ value,
3479
+ Int16Array,
3480
+ 2,
3481
+ obj,
3482
+ key,
3483
+ arrayRoot
3484
+ );
3321
3485
  case "s":
3322
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
3486
+ return parseTypedArray(
3487
+ response,
3488
+ value,
3489
+ Uint16Array,
3490
+ 2,
3491
+ obj,
3492
+ key,
3493
+ arrayRoot
3494
+ );
3323
3495
  case "L":
3324
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
3496
+ return parseTypedArray(
3497
+ response,
3498
+ value,
3499
+ Int32Array,
3500
+ 4,
3501
+ obj,
3502
+ key,
3503
+ arrayRoot
3504
+ );
3325
3505
  case "l":
3326
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
3506
+ return parseTypedArray(
3507
+ response,
3508
+ value,
3509
+ Uint32Array,
3510
+ 4,
3511
+ obj,
3512
+ key,
3513
+ arrayRoot
3514
+ );
3327
3515
  case "G":
3328
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
3516
+ return parseTypedArray(
3517
+ response,
3518
+ value,
3519
+ Float32Array,
3520
+ 4,
3521
+ obj,
3522
+ key,
3523
+ arrayRoot
3524
+ );
3329
3525
  case "g":
3330
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
3526
+ return parseTypedArray(
3527
+ response,
3528
+ value,
3529
+ Float64Array,
3530
+ 8,
3531
+ obj,
3532
+ key,
3533
+ arrayRoot
3534
+ );
3331
3535
  case "M":
3332
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
3536
+ return parseTypedArray(
3537
+ response,
3538
+ value,
3539
+ BigInt64Array,
3540
+ 8,
3541
+ obj,
3542
+ key,
3543
+ arrayRoot
3544
+ );
3333
3545
  case "m":
3334
3546
  return parseTypedArray(
3335
3547
  response,
@@ -3337,10 +3549,19 @@
3337
3549
  BigUint64Array,
3338
3550
  8,
3339
3551
  obj,
3340
- key
3552
+ key,
3553
+ arrayRoot
3341
3554
  );
3342
3555
  case "V":
3343
- return parseTypedArray(response, value, DataView, 1, obj, key);
3556
+ return parseTypedArray(
3557
+ response,
3558
+ value,
3559
+ DataView,
3560
+ 1,
3561
+ obj,
3562
+ key,
3563
+ arrayRoot
3564
+ );
3344
3565
  case "B":
3345
3566
  return (
3346
3567
  (obj = parseInt(value.slice(2), 16)),
@@ -3358,8 +3579,16 @@
3358
3579
  return parseAsyncIterable(response, value, !0);
3359
3580
  }
3360
3581
  value = value.slice(1);
3361
- return getOutlinedModel(response, value, obj, key, createModel);
3582
+ return getOutlinedModel(
3583
+ response,
3584
+ value,
3585
+ obj,
3586
+ key,
3587
+ arrayRoot,
3588
+ createModel
3589
+ );
3362
3590
  }
3591
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
3363
3592
  return value;
3364
3593
  }
3365
3594
  function createResponse(
@@ -3371,25 +3600,40 @@
3371
3600
  3 < arguments.length && void 0 !== arguments[3]
3372
3601
  ? arguments[3]
3373
3602
  : new FormData(),
3603
+ arraySizeLimit =
3604
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
3374
3605
  chunks = new Map();
3375
3606
  return {
3376
3607
  _bundlerConfig: bundlerConfig,
3377
3608
  _prefix: formFieldPrefix,
3378
3609
  _formData: backingFormData,
3379
3610
  _chunks: chunks,
3380
- _temporaryReferences: temporaryReferences
3611
+ _temporaryReferences: temporaryReferences,
3612
+ _rootArrayContexts: new WeakMap(),
3613
+ _arraySizeLimit: arraySizeLimit
3381
3614
  };
3382
3615
  }
3383
3616
  function close(response) {
3384
3617
  reportGlobalError(response, Error("Connection closed."));
3385
3618
  }
3386
- function loadServerReference(bundlerConfig, id, bound) {
3619
+ function loadServerReference(bundlerConfig, metaData) {
3620
+ var id = metaData.id;
3621
+ if ("string" !== typeof id) return null;
3387
3622
  var serverReference = resolveServerReference(bundlerConfig, id);
3388
3623
  bundlerConfig = preloadModule(serverReference);
3389
- return bound
3390
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
3624
+ metaData = metaData.bound;
3625
+ return metaData instanceof Promise
3626
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
3391
3627
  _ref = _ref[0];
3392
3628
  var fn = requireModule(serverReference);
3629
+ if (_ref.length > MAX_BOUND_ARGS)
3630
+ throw Error(
3631
+ "Server Function has too many bound arguments. Received " +
3632
+ _ref.length +
3633
+ " but the limit is " +
3634
+ MAX_BOUND_ARGS +
3635
+ "."
3636
+ );
3393
3637
  return fn.bind.apply(fn, [null].concat(_ref));
3394
3638
  })
3395
3639
  : bundlerConfig
@@ -3398,8 +3642,19 @@
3398
3642
  })
3399
3643
  : Promise.resolve(requireModule(serverReference));
3400
3644
  }
3401
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
3402
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
3645
+ function decodeBoundActionMetaData(
3646
+ body,
3647
+ serverManifest,
3648
+ formFieldPrefix,
3649
+ arraySizeLimit
3650
+ ) {
3651
+ body = createResponse(
3652
+ serverManifest,
3653
+ formFieldPrefix,
3654
+ void 0,
3655
+ body,
3656
+ arraySizeLimit
3657
+ );
3403
3658
  close(body);
3404
3659
  body = getChunk(body, 0);
3405
3660
  body.then(function () {});
@@ -3829,13 +4084,14 @@
3829
4084
  patchConsole(console, "table"),
3830
4085
  patchConsole(console, "trace"),
3831
4086
  patchConsole(console, "warn"));
3832
- var ObjectPrototype = Object.prototype,
4087
+ var ObjectPrototype$1 = Object.prototype,
3833
4088
  stringify = JSON.stringify,
3834
4089
  PENDING$1 = 0,
3835
4090
  COMPLETED = 1,
3836
4091
  ABORTED = 3,
3837
4092
  ERRORED$1 = 4,
3838
4093
  RENDERING = 5,
4094
+ __PROTO__$1 = "__proto__",
3839
4095
  OPENING = 10,
3840
4096
  ABORTING = 12,
3841
4097
  CLOSING = 13,
@@ -3858,16 +4114,23 @@
3858
4114
  case "fulfilled":
3859
4115
  if ("function" === typeof resolve) {
3860
4116
  for (
3861
- var inspectedValue = this.value, cycleProtection = 0;
4117
+ var inspectedValue = this.value,
4118
+ cycleProtection = 0,
4119
+ visited = new Set();
3862
4120
  inspectedValue instanceof ReactPromise;
3863
4121
 
3864
4122
  ) {
3865
4123
  cycleProtection++;
3866
- if (inspectedValue === this || 1e3 < cycleProtection) {
4124
+ if (
4125
+ inspectedValue === this ||
4126
+ visited.has(inspectedValue) ||
4127
+ 1e3 < cycleProtection
4128
+ ) {
3867
4129
  "function" === typeof reject &&
3868
4130
  reject(Error("Cannot have cyclic thenables."));
3869
4131
  return;
3870
4132
  }
4133
+ visited.add(inspectedValue);
3871
4134
  if ("fulfilled" === inspectedValue.status)
3872
4135
  inspectedValue = inspectedValue.value;
3873
4136
  else break;
@@ -3888,7 +4151,15 @@
3888
4151
  "function" === typeof reject && reject(this.reason);
3889
4152
  }
3890
4153
  };
3891
- var initializingHandler = null;
4154
+ var ObjectPrototype = Object.prototype,
4155
+ ArrayPrototype = Array.prototype,
4156
+ initializingHandler = null;
4157
+ FlightIterator.prototype = {};
4158
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
4159
+ return this;
4160
+ };
4161
+ var MAX_BIGINT_DIGITS = 300,
4162
+ MAX_BOUND_ARGS = 1e3;
3892
4163
  exports.createClientModuleProxy = function (moduleId) {
3893
4164
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3894
4165
  return new Proxy(moduleId, proxyHandlers$1);
@@ -3898,20 +4169,24 @@
3898
4169
  };
3899
4170
  exports.decodeAction = function (body, serverManifest) {
3900
4171
  var formData = new FormData(),
3901
- action = null;
4172
+ action = null,
4173
+ seenActions = new Set();
3902
4174
  body.forEach(function (value, key) {
3903
4175
  key.startsWith("$ACTION_")
3904
4176
  ? key.startsWith("$ACTION_REF_")
3905
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
4177
+ ? seenActions.has(key) ||
4178
+ (seenActions.add(key),
4179
+ (value = "$ACTION_" + key.slice(12) + ":"),
3906
4180
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
3907
- (action = loadServerReference(
3908
- serverManifest,
3909
- value.id,
3910
- value.bound
3911
- )))
4181
+ (action = loadServerReference(serverManifest, value)))
3912
4182
  : key.startsWith("$ACTION_ID_") &&
3913
- ((value = key.slice(11)),
3914
- (action = loadServerReference(serverManifest, value, null)))
4183
+ !seenActions.has(key) &&
4184
+ (seenActions.add(key),
4185
+ (value = key.slice(11)),
4186
+ (action = loadServerReference(serverManifest, {
4187
+ id: value,
4188
+ bound: null
4189
+ })))
3915
4190
  : formData.append(key, value);
3916
4191
  });
3917
4192
  return null === action
@@ -3947,7 +4222,8 @@
3947
4222
  webpackMap,
3948
4223
  "",
3949
4224
  options ? options.temporaryReferences : void 0,
3950
- body
4225
+ body,
4226
+ options ? options.arraySizeLimit : void 0
3951
4227
  );
3952
4228
  webpackMap = getChunk(body, 0);
3953
4229
  close(body);