react-server-dom-webpack 19.0.2 → 19.0.4

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.
@@ -1497,6 +1497,13 @@
1497
1497
  value
1498
1498
  ) {
1499
1499
  task.model = value;
1500
+ parentPropertyName === __PROTO__$1 &&
1501
+ callWithDebugContextInDEV(request, task, function () {
1502
+ console.error(
1503
+ "Expected not to serialize an object with own property `__proto__`. When parsed this property will be omitted.%s",
1504
+ describeObjectForErrorMessage(parent, parentPropertyName)
1505
+ );
1506
+ });
1500
1507
  if (value === REACT_ELEMENT_TYPE) return "$";
1501
1508
  if (null === value) return null;
1502
1509
  if ("object" === typeof value) {
@@ -1667,7 +1674,7 @@
1667
1674
  if (value instanceof Date) return "$D" + value.toJSON();
1668
1675
  elementReference = getPrototypeOf(value);
1669
1676
  if (
1670
- elementReference !== ObjectPrototype &&
1677
+ elementReference !== ObjectPrototype$1 &&
1671
1678
  (null === elementReference ||
1672
1679
  null !== getPrototypeOf(elementReference))
1673
1680
  )
@@ -2560,12 +2567,12 @@
2560
2567
  this.value = value;
2561
2568
  this.reason = reason;
2562
2569
  }
2563
- function wakeChunk(response, listeners, value) {
2570
+ function wakeChunk(response, listeners, value, chunk) {
2564
2571
  for (var i = 0; i < listeners.length; i++) {
2565
2572
  var listener = listeners[i];
2566
2573
  "function" === typeof listener
2567
2574
  ? listener(value)
2568
- : fulfillReference(response, listener, value);
2575
+ : fulfillReference(response, listener, value, chunk.reason);
2569
2576
  }
2570
2577
  }
2571
2578
  function rejectChunk(response, listeners, error) {
@@ -2576,27 +2583,6 @@
2576
2583
  : rejectReference(response, listener.handler, error);
2577
2584
  }
2578
2585
  }
2579
- function resolveBlockedCycle(resolvedChunk, reference) {
2580
- var referencedChunk = reference.handler.chunk;
2581
- if (null === referencedChunk) return null;
2582
- if (referencedChunk === resolvedChunk) return reference.handler;
2583
- reference = referencedChunk.value;
2584
- if (null !== reference)
2585
- for (
2586
- referencedChunk = 0;
2587
- referencedChunk < reference.length;
2588
- referencedChunk++
2589
- ) {
2590
- var listener = reference[referencedChunk];
2591
- if (
2592
- "function" !== typeof listener &&
2593
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2594
- null !== listener)
2595
- )
2596
- return listener;
2597
- }
2598
- return null;
2599
- }
2600
2586
  function triggerErrorOnChunk(response, chunk, error) {
2601
2587
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2602
2588
  chunk.reason.error(error);
@@ -2620,57 +2606,25 @@
2620
2606
  chunk.value = value;
2621
2607
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2622
2608
  if (null !== resolveListeners)
2623
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
2609
+ switch ((initializeModelChunk(chunk), chunk.status)) {
2624
2610
  case "fulfilled":
2625
- wakeChunk(response, resolveListeners, chunk.value);
2611
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
2626
2612
  break;
2627
2613
  case "blocked":
2628
- for (value = 0; value < resolveListeners.length; value++)
2629
- if (
2630
- ((id = resolveListeners[value]), "function" !== typeof id)
2631
- ) {
2632
- var cyclicHandler = resolveBlockedCycle(chunk, id);
2633
- if (null !== cyclicHandler)
2634
- switch (
2635
- (fulfillReference(response, id, cyclicHandler.value),
2636
- resolveListeners.splice(value, 1),
2637
- value--,
2638
- null !== rejectListeners &&
2639
- ((id = rejectListeners.indexOf(id)),
2640
- -1 !== id && rejectListeners.splice(id, 1)),
2641
- chunk.status)
2642
- ) {
2643
- case "fulfilled":
2644
- wakeChunk(response, resolveListeners, chunk.value);
2645
- break a;
2646
- case "rejected":
2647
- null !== rejectListeners &&
2648
- rejectChunk(response, rejectListeners, chunk.reason);
2649
- break a;
2650
- }
2651
- }
2652
2614
  case "pending":
2653
2615
  if (chunk.value)
2654
- for (
2655
- response = 0;
2656
- response < resolveListeners.length;
2657
- response++
2658
- )
2659
- chunk.value.push(resolveListeners[response]);
2616
+ for (value = 0; value < resolveListeners.length; value++)
2617
+ chunk.value.push(resolveListeners[value]);
2660
2618
  else chunk.value = resolveListeners;
2661
2619
  if (chunk.reason) {
2662
2620
  if (rejectListeners)
2663
- for (
2664
- resolveListeners = 0;
2665
- resolveListeners < rejectListeners.length;
2666
- resolveListeners++
2667
- )
2668
- chunk.reason.push(rejectListeners[resolveListeners]);
2621
+ for (value = 0; value < rejectListeners.length; value++)
2622
+ chunk.reason.push(rejectListeners[value]);
2669
2623
  } else chunk.reason = rejectListeners;
2670
2624
  break;
2671
2625
  case "rejected":
2672
2626
  rejectListeners &&
2673
- wakeChunk(response, rejectListeners, chunk.reason);
2627
+ rejectChunk(response, rejectListeners, chunk.reason);
2674
2628
  }
2675
2629
  }
2676
2630
  }
@@ -2694,15 +2648,51 @@
2694
2648
  );
2695
2649
  }
2696
2650
  function loadServerReference$1(response, metaData, parentObject, key) {
2651
+ function reject(error) {
2652
+ var rejectListeners = blockedPromise.reason,
2653
+ erroredPromise = blockedPromise;
2654
+ erroredPromise.status = "rejected";
2655
+ erroredPromise.value = null;
2656
+ erroredPromise.reason = error;
2657
+ null !== rejectListeners &&
2658
+ rejectChunk(response, rejectListeners, error);
2659
+ rejectReference(response, handler, error);
2660
+ }
2697
2661
  var id = metaData.id;
2698
2662
  if ("string" !== typeof id || "then" === key) return null;
2663
+ var cachedPromise = metaData.$$promise;
2664
+ if (void 0 !== cachedPromise) {
2665
+ if ("fulfilled" === cachedPromise.status)
2666
+ return (
2667
+ (cachedPromise = cachedPromise.value),
2668
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
2669
+ );
2670
+ initializingHandler
2671
+ ? ((id = initializingHandler), id.deps++)
2672
+ : (id = initializingHandler =
2673
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2674
+ cachedPromise.then(
2675
+ resolveReference.bind(null, response, id, parentObject, key),
2676
+ rejectReference.bind(null, response, id)
2677
+ );
2678
+ return null;
2679
+ }
2680
+ var blockedPromise = new ReactPromise("blocked", null, null);
2681
+ metaData.$$promise = blockedPromise;
2699
2682
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2700
- id = metaData.bound;
2701
- var promise = preloadModule(serverReference);
2702
- if (promise)
2703
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2704
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2705
- else return requireModule(serverReference);
2683
+ cachedPromise = metaData.bound;
2684
+ if ((id = preloadModule(serverReference)))
2685
+ cachedPromise instanceof ReactPromise &&
2686
+ (id = Promise.all([id, cachedPromise]));
2687
+ else if (cachedPromise instanceof ReactPromise)
2688
+ id = Promise.resolve(cachedPromise);
2689
+ else
2690
+ return (
2691
+ (cachedPromise = requireModule(serverReference)),
2692
+ (id = blockedPromise),
2693
+ (id.status = "fulfilled"),
2694
+ (id.value = cachedPromise)
2695
+ );
2706
2696
  if (initializingHandler) {
2707
2697
  var handler = initializingHandler;
2708
2698
  handler.deps++;
@@ -2714,93 +2704,107 @@
2714
2704
  deps: 1,
2715
2705
  errored: !1
2716
2706
  };
2717
- promise.then(
2718
- function () {
2719
- var resolvedValue = requireModule(serverReference);
2720
- if (metaData.bound) {
2721
- var promiseValue = metaData.bound.value;
2722
- promiseValue = Array.isArray(promiseValue)
2723
- ? promiseValue.slice(0)
2724
- : [];
2725
- promiseValue.unshift(null);
2726
- resolvedValue = resolvedValue.bind.apply(
2727
- resolvedValue,
2728
- promiseValue
2707
+ id.then(function () {
2708
+ var resolvedValue = requireModule(serverReference);
2709
+ if (metaData.bound) {
2710
+ var promiseValue = metaData.bound.value;
2711
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
2712
+ if (promiseValue.length > MAX_BOUND_ARGS) {
2713
+ reject(
2714
+ Error(
2715
+ "Server Function has too many bound arguments. Received " +
2716
+ promiseValue.length +
2717
+ " but the limit is " +
2718
+ MAX_BOUND_ARGS +
2719
+ "."
2720
+ )
2729
2721
  );
2722
+ return;
2730
2723
  }
2731
- parentObject[key] = resolvedValue;
2732
- "" === key &&
2733
- null === handler.value &&
2734
- (handler.value = resolvedValue);
2735
- handler.deps--;
2736
- 0 === handler.deps &&
2737
- ((resolvedValue = handler.chunk),
2738
- null !== resolvedValue &&
2739
- "blocked" === resolvedValue.status &&
2740
- ((promiseValue = resolvedValue.value),
2741
- (resolvedValue.status = "fulfilled"),
2742
- (resolvedValue.value = handler.value),
2743
- (resolvedValue.reason = null),
2744
- null !== promiseValue &&
2745
- wakeChunk(response, promiseValue, handler.value)));
2746
- },
2747
- function (error) {
2748
- if (!handler.errored) {
2749
- handler.errored = !0;
2750
- handler.value = null;
2751
- handler.reason = error;
2752
- var chunk = handler.chunk;
2753
- null !== chunk &&
2754
- "blocked" === chunk.status &&
2755
- triggerErrorOnChunk(response, chunk, error);
2756
- }
2724
+ promiseValue.unshift(null);
2725
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2757
2726
  }
2758
- );
2727
+ promiseValue = blockedPromise.value;
2728
+ var initializedPromise = blockedPromise;
2729
+ initializedPromise.status = "fulfilled";
2730
+ initializedPromise.value = resolvedValue;
2731
+ initializedPromise.reason = null;
2732
+ null !== promiseValue &&
2733
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
2734
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2735
+ }, reject);
2759
2736
  return null;
2760
2737
  }
2761
- function reviveModel(response, parentObj, parentKey, value, reference) {
2738
+ function reviveModel(
2739
+ response,
2740
+ parentObj,
2741
+ parentKey,
2742
+ value,
2743
+ reference,
2744
+ arrayRoot
2745
+ ) {
2762
2746
  if ("string" === typeof value)
2763
2747
  return parseModelString(
2764
2748
  response,
2765
2749
  parentObj,
2766
2750
  parentKey,
2767
2751
  value,
2768
- reference
2752
+ reference,
2753
+ arrayRoot
2769
2754
  );
2770
2755
  if ("object" === typeof value && null !== value)
2771
2756
  if (
2772
2757
  (void 0 !== reference &&
2773
2758
  void 0 !== response._temporaryReferences &&
2774
2759
  response._temporaryReferences.set(value, reference),
2775
- Array.isArray(value))
2776
- )
2777
- for (var i = 0; i < value.length; i++)
2778
- value[i] = reviveModel(
2760
+ isArrayImpl(value))
2761
+ ) {
2762
+ if (null === arrayRoot) {
2763
+ var childContext = { count: 0, fork: !1 };
2764
+ response._rootArrayContexts.set(value, childContext);
2765
+ } else childContext = arrayRoot;
2766
+ 1 < value.length && (childContext.fork = !0);
2767
+ bumpArrayCount(childContext, value.length + 1, response);
2768
+ for (parentObj = 0; parentObj < value.length; parentObj++)
2769
+ value[parentObj] = reviveModel(
2779
2770
  response,
2780
2771
  value,
2781
- "" + i,
2782
- value[i],
2783
- void 0 !== reference ? reference + ":" + i : void 0
2772
+ "" + parentObj,
2773
+ value[parentObj],
2774
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
2775
+ childContext
2784
2776
  );
2785
- else
2786
- for (i in value)
2787
- hasOwnProperty.call(value, i) &&
2788
- ((parentObj =
2789
- void 0 !== reference && -1 === i.indexOf(":")
2790
- ? reference + ":" + i
2791
- : void 0),
2792
- (parentObj = reviveModel(
2793
- response,
2794
- value,
2795
- i,
2796
- value[i],
2797
- parentObj
2798
- )),
2799
- void 0 !== parentObj || "__proto__" === i
2800
- ? (value[i] = parentObj)
2801
- : delete value[i]);
2777
+ } else
2778
+ for (childContext in value)
2779
+ hasOwnProperty.call(value, childContext) &&
2780
+ ("__proto__" === childContext
2781
+ ? delete value[childContext]
2782
+ : ((parentObj =
2783
+ void 0 !== reference && -1 === childContext.indexOf(":")
2784
+ ? reference + ":" + childContext
2785
+ : void 0),
2786
+ (parentObj = reviveModel(
2787
+ response,
2788
+ value,
2789
+ childContext,
2790
+ value[childContext],
2791
+ parentObj,
2792
+ null
2793
+ )),
2794
+ void 0 !== parentObj
2795
+ ? (value[childContext] = parentObj)
2796
+ : delete value[childContext]));
2802
2797
  return value;
2803
2798
  }
2799
+ function bumpArrayCount(arrayContext, slots, response) {
2800
+ if (
2801
+ (arrayContext.count += slots) > response._arraySizeLimit &&
2802
+ arrayContext.fork
2803
+ )
2804
+ throw Error(
2805
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
2806
+ );
2807
+ }
2804
2808
  function initializeModelChunk(chunk) {
2805
2809
  var prevHandler = initializingHandler;
2806
2810
  initializingHandler = null;
@@ -2814,13 +2818,15 @@
2814
2818
  chunk.value = null;
2815
2819
  chunk.reason = null;
2816
2820
  try {
2817
- var rawModel = JSON.parse(resolvedModel),
2818
- value = reviveModel(
2821
+ var rawModel = JSON.parse(resolvedModel);
2822
+ resolvedModel = { count: 0, fork: !1 };
2823
+ var value = reviveModel(
2819
2824
  response,
2820
2825
  { "": rawModel },
2821
2826
  "",
2822
2827
  rawModel,
2823
- _chunk$reason
2828
+ _chunk$reason,
2829
+ resolvedModel
2824
2830
  ),
2825
2831
  resolveListeners = chunk.value;
2826
2832
  if (null !== resolveListeners)
@@ -2832,19 +2838,20 @@
2832
2838
  var listener = resolveListeners[rawModel];
2833
2839
  "function" === typeof listener
2834
2840
  ? listener(value)
2835
- : fulfillReference(response, listener, value);
2841
+ : fulfillReference(response, listener, value, resolvedModel);
2836
2842
  }
2837
2843
  if (null !== initializingHandler) {
2838
2844
  if (initializingHandler.errored) throw initializingHandler.reason;
2839
2845
  if (0 < initializingHandler.deps) {
2840
2846
  initializingHandler.value = value;
2847
+ initializingHandler.reason = resolvedModel;
2841
2848
  initializingHandler.chunk = chunk;
2842
2849
  return;
2843
2850
  }
2844
2851
  }
2845
2852
  chunk.status = "fulfilled";
2846
2853
  chunk.value = value;
2847
- chunk.reason = null;
2854
+ chunk.reason = resolvedModel;
2848
2855
  } catch (error) {
2849
2856
  (chunk.status = "rejected"), (chunk.reason = error);
2850
2857
  } finally {
@@ -2857,7 +2864,8 @@
2857
2864
  ? triggerErrorOnChunk(response, chunk, error)
2858
2865
  : "fulfilled" === chunk.status &&
2859
2866
  null !== chunk.reason &&
2860
- chunk.reason.error(error);
2867
+ ((chunk = chunk.reason),
2868
+ "function" === typeof chunk.error && chunk.error(error));
2861
2869
  });
2862
2870
  }
2863
2871
  function getChunk(response, id) {
@@ -2876,40 +2884,74 @@
2876
2884
  chunks.set(id, chunk));
2877
2885
  return chunk;
2878
2886
  }
2879
- function fulfillReference(response, reference, value) {
2887
+ function fulfillReference(response, reference, value, arrayRoot) {
2880
2888
  var handler = reference.handler,
2881
2889
  parentObject = reference.parentObject,
2882
2890
  key = reference.key,
2883
2891
  map = reference.map,
2884
2892
  path = reference.path;
2885
2893
  try {
2886
- for (var i = 1; i < path.length; i++) {
2894
+ for (
2895
+ var localLength = 0,
2896
+ rootArrayContexts = response._rootArrayContexts,
2897
+ i = 1;
2898
+ i < path.length;
2899
+ i++
2900
+ ) {
2887
2901
  var name = path[i];
2888
2902
  if (
2889
2903
  "object" !== typeof value ||
2890
- !hasOwnProperty.call(value, name) ||
2891
- value instanceof Promise
2904
+ null === value ||
2905
+ (getPrototypeOf(value) !== ObjectPrototype &&
2906
+ getPrototypeOf(value) !== ArrayPrototype) ||
2907
+ !hasOwnProperty.call(value, name)
2892
2908
  )
2893
2909
  throw Error("Invalid reference.");
2894
2910
  value = value[name];
2911
+ if (isArrayImpl(value))
2912
+ (localLength = 0),
2913
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
2914
+ else if (((arrayRoot = null), "string" === typeof value))
2915
+ localLength = value.length;
2916
+ else if ("bigint" === typeof value) {
2917
+ var n = Math.abs(Number(value));
2918
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
2919
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
2895
2920
  }
2896
- var mappedValue = map(response, value, parentObject, key);
2897
- parentObject[key] = mappedValue;
2898
- "" === key && null === handler.value && (handler.value = mappedValue);
2921
+ var resolvedValue = map(response, value, parentObject, key);
2922
+ var referenceArrayRoot = reference.arrayRoot;
2923
+ null !== referenceArrayRoot &&
2924
+ (null !== arrayRoot
2925
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
2926
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
2927
+ : 0 < localLength &&
2928
+ bumpArrayCount(referenceArrayRoot, localLength, response));
2899
2929
  } catch (error) {
2900
- rejectReference(response, reference.handler, error);
2930
+ rejectReference(response, handler, error);
2901
2931
  return;
2902
2932
  }
2933
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2934
+ }
2935
+ function resolveReference(
2936
+ response,
2937
+ handler,
2938
+ parentObject,
2939
+ key,
2940
+ resolvedValue
2941
+ ) {
2942
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
2943
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2903
2944
  handler.deps--;
2904
2945
  0 === handler.deps &&
2905
- ((reference = handler.chunk),
2906
- null !== reference &&
2907
- "blocked" === reference.status &&
2908
- ((value = reference.value),
2909
- (reference.status = "fulfilled"),
2910
- (reference.value = handler.value),
2911
- (reference.reason = handler.reason),
2912
- null !== value && wakeChunk(response, value, handler.value)));
2946
+ ((parentObject = handler.chunk),
2947
+ null !== parentObject &&
2948
+ "blocked" === parentObject.status &&
2949
+ ((key = parentObject.value),
2950
+ (parentObject.status = "fulfilled"),
2951
+ (parentObject.value = handler.value),
2952
+ (parentObject.reason = handler.reason),
2953
+ null !== key &&
2954
+ wakeChunk(response, key, handler.value, parentObject)));
2913
2955
  }
2914
2956
  function rejectReference(response, handler, error) {
2915
2957
  handler.errored ||
@@ -2921,29 +2963,66 @@
2921
2963
  "blocked" === handler.status &&
2922
2964
  triggerErrorOnChunk(response, handler, error));
2923
2965
  }
2924
- function getOutlinedModel(response, reference, parentObject, key, map) {
2966
+ function getOutlinedModel(
2967
+ response,
2968
+ reference,
2969
+ parentObject,
2970
+ key,
2971
+ referenceArrayRoot,
2972
+ map
2973
+ ) {
2925
2974
  reference = reference.split(":");
2926
- var id = parseInt(reference[0], 16);
2927
- id = getChunk(response, id);
2928
- switch (id.status) {
2975
+ var id = parseInt(reference[0], 16),
2976
+ chunk = getChunk(response, id);
2977
+ switch (chunk.status) {
2929
2978
  case "resolved_model":
2930
- initializeModelChunk(id);
2979
+ initializeModelChunk(chunk);
2931
2980
  }
2932
- switch (id.status) {
2981
+ switch (chunk.status) {
2933
2982
  case "fulfilled":
2934
- id = id.value;
2935
- for (var i = 1; i < reference.length; i++) {
2936
- var name = reference[i];
2983
+ id = chunk.value;
2984
+ chunk = chunk.reason;
2985
+ for (
2986
+ var localLength = 0,
2987
+ rootArrayContexts = response._rootArrayContexts,
2988
+ i = 1;
2989
+ i < reference.length;
2990
+ i++
2991
+ ) {
2992
+ localLength = reference[i];
2937
2993
  if (
2938
2994
  "object" !== typeof id ||
2939
- !hasOwnProperty.call(id, name) ||
2940
- id instanceof Promise
2995
+ null === id ||
2996
+ (getPrototypeOf(id) !== ObjectPrototype &&
2997
+ getPrototypeOf(id) !== ArrayPrototype) ||
2998
+ !hasOwnProperty.call(id, localLength)
2941
2999
  )
2942
3000
  throw Error("Invalid reference.");
2943
- id = id[name];
3001
+ id = id[localLength];
3002
+ isArrayImpl(id)
3003
+ ? ((localLength = 0),
3004
+ (chunk = rootArrayContexts.get(id) || chunk))
3005
+ : ((chunk = null),
3006
+ "string" === typeof id
3007
+ ? (localLength = id.length)
3008
+ : "bigint" === typeof id
3009
+ ? ((localLength = Math.abs(Number(id))),
3010
+ (localLength =
3011
+ 0 === localLength
3012
+ ? 1
3013
+ : Math.floor(Math.log10(localLength)) + 1))
3014
+ : (localLength = ArrayBuffer.isView(id)
3015
+ ? id.byteLength
3016
+ : 0));
2944
3017
  }
2945
- return map(response, id, parentObject, key);
2946
- case "pending":
3018
+ parentObject = map(response, id, parentObject, key);
3019
+ null !== referenceArrayRoot &&
3020
+ (null !== chunk
3021
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
3022
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
3023
+ : 0 < localLength &&
3024
+ bumpArrayCount(referenceArrayRoot, localLength, response));
3025
+ return parentObject;
2947
3026
  case "blocked":
2948
3027
  return (
2949
3028
  initializingHandler
@@ -2956,31 +3035,34 @@
2956
3035
  deps: 1,
2957
3036
  errored: !1
2958
3037
  }),
2959
- (parentObject = {
3038
+ (referenceArrayRoot = {
2960
3039
  handler: response,
2961
3040
  parentObject: parentObject,
2962
3041
  key: key,
2963
3042
  map: map,
2964
- path: reference
3043
+ path: reference,
3044
+ arrayRoot: referenceArrayRoot
2965
3045
  }),
2966
- null === id.value
2967
- ? (id.value = [parentObject])
2968
- : id.value.push(parentObject),
2969
- null === id.reason
2970
- ? (id.reason = [parentObject])
2971
- : id.reason.push(parentObject),
3046
+ null === chunk.value
3047
+ ? (chunk.value = [referenceArrayRoot])
3048
+ : chunk.value.push(referenceArrayRoot),
3049
+ null === chunk.reason
3050
+ ? (chunk.reason = [referenceArrayRoot])
3051
+ : chunk.reason.push(referenceArrayRoot),
2972
3052
  null
2973
3053
  );
3054
+ case "pending":
3055
+ throw Error("Invalid forward reference.");
2974
3056
  default:
2975
3057
  return (
2976
3058
  initializingHandler
2977
3059
  ? ((initializingHandler.errored = !0),
2978
3060
  (initializingHandler.value = null),
2979
- (initializingHandler.reason = id.reason))
3061
+ (initializingHandler.reason = chunk.reason))
2980
3062
  : (initializingHandler = {
2981
3063
  chunk: null,
2982
3064
  value: null,
2983
- reason: id.reason,
3065
+ reason: chunk.reason,
2984
3066
  deps: 0,
2985
3067
  errored: !0
2986
3068
  }),
@@ -2989,13 +3071,25 @@
2989
3071
  }
2990
3072
  }
2991
3073
  function createMap(response, model) {
2992
- return new Map(model);
3074
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
3075
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
3076
+ response = new Map(model);
3077
+ model.$$consumed = !0;
3078
+ return response;
2993
3079
  }
2994
3080
  function createSet(response, model) {
2995
- return new Set(model);
3081
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
3082
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
3083
+ response = new Set(model);
3084
+ model.$$consumed = !0;
3085
+ return response;
2996
3086
  }
2997
3087
  function extractIterator(response, model) {
2998
- return model[Symbol.iterator]();
3088
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
3089
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
3090
+ response = model[Symbol.iterator]();
3091
+ model.$$consumed = !0;
3092
+ return response;
2999
3093
  }
3000
3094
  function createModel(response, model, parentObject, key) {
3001
3095
  return "then" === key && "function" === typeof model ? null : model;
@@ -3006,13 +3100,34 @@
3006
3100
  constructor,
3007
3101
  bytesPerElement,
3008
3102
  parentObject,
3009
- parentKey
3103
+ parentKey,
3104
+ referenceArrayRoot
3010
3105
  ) {
3106
+ function reject(error) {
3107
+ if (!handler.errored) {
3108
+ handler.errored = !0;
3109
+ handler.value = null;
3110
+ handler.reason = error;
3111
+ var chunk = handler.chunk;
3112
+ null !== chunk &&
3113
+ "blocked" === chunk.status &&
3114
+ triggerErrorOnChunk(response, chunk, error);
3115
+ }
3116
+ }
3011
3117
  reference = parseInt(reference.slice(2), 16);
3012
- bytesPerElement = response._prefix + reference;
3013
- if (response._chunks.has(reference))
3118
+ var key = response._prefix + reference;
3119
+ bytesPerElement = response._chunks;
3120
+ if (bytesPerElement.has(reference))
3014
3121
  throw Error("Already initialized typed array.");
3015
- reference = response._formData.get(bytesPerElement).arrayBuffer();
3122
+ bytesPerElement.set(
3123
+ reference,
3124
+ new ReactPromise(
3125
+ "rejected",
3126
+ null,
3127
+ Error("Already initialized typed array.")
3128
+ )
3129
+ );
3130
+ reference = response._formData.get(key).arrayBuffer();
3016
3131
  if (initializingHandler) {
3017
3132
  var handler = initializingHandler;
3018
3133
  handler.deps++;
@@ -3024,40 +3139,32 @@
3024
3139
  deps: 1,
3025
3140
  errored: !1
3026
3141
  };
3027
- reference.then(
3028
- function (buffer) {
3029
- buffer =
3142
+ reference.then(function (buffer) {
3143
+ try {
3144
+ null !== referenceArrayRoot &&
3145
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
3146
+ var resolvedValue =
3030
3147
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
3031
- parentObject[parentKey] = buffer;
3148
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
3032
3149
  "" === parentKey &&
3033
3150
  null === handler.value &&
3034
- (handler.value = buffer);
3035
- handler.deps--;
3036
- if (
3037
- 0 === handler.deps &&
3038
- ((buffer = handler.chunk),
3039
- null !== buffer && "blocked" === buffer.status)
3040
- ) {
3041
- var resolveListeners = buffer.value;
3042
- buffer.status = "fulfilled";
3043
- buffer.value = handler.value;
3044
- buffer.reason = null;
3045
- null !== resolveListeners &&
3046
- wakeChunk(response, resolveListeners, handler.value);
3047
- }
3048
- },
3049
- function (error) {
3050
- if (!handler.errored) {
3051
- handler.errored = !0;
3052
- handler.value = null;
3053
- handler.reason = error;
3054
- var chunk = handler.chunk;
3055
- null !== chunk &&
3056
- "blocked" === chunk.status &&
3057
- triggerErrorOnChunk(response, chunk, error);
3058
- }
3151
+ (handler.value = resolvedValue);
3152
+ } catch (x) {
3153
+ reject(x);
3154
+ return;
3059
3155
  }
3060
- );
3156
+ handler.deps--;
3157
+ 0 === handler.deps &&
3158
+ ((buffer = handler.chunk),
3159
+ null !== buffer &&
3160
+ "blocked" === buffer.status &&
3161
+ ((resolvedValue = buffer.value),
3162
+ (buffer.status = "fulfilled"),
3163
+ (buffer.value = handler.value),
3164
+ (buffer.reason = null),
3165
+ null !== resolvedValue &&
3166
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
3167
+ }, reject);
3061
3168
  return null;
3062
3169
  }
3063
3170
  function resolveStream(response, id, stream, controller) {
@@ -3075,90 +3182,78 @@
3075
3182
  : controller.enqueueModel(chunks));
3076
3183
  }
3077
3184
  function parseReadableStream(response, reference, type) {
3185
+ function enqueue(value) {
3186
+ "bytes" !== type || ArrayBuffer.isView(value)
3187
+ ? controller.enqueue(value)
3188
+ : flightController.error(Error("Invalid data for bytes stream."));
3189
+ }
3078
3190
  reference = parseInt(reference.slice(2), 16);
3079
3191
  if (response._chunks.has(reference))
3080
3192
  throw Error("Already initialized stream.");
3081
3193
  var controller = null,
3082
- closed = !1;
3083
- type = new ReadableStream({
3084
- type: type,
3085
- start: function (c) {
3086
- controller = c;
3087
- }
3088
- });
3089
- var previousBlockedChunk = null;
3090
- resolveStream(response, reference, type, {
3091
- enqueueModel: function (json) {
3092
- if (null === previousBlockedChunk) {
3093
- var chunk = new ReactPromise(
3094
- "resolved_model",
3095
- json,
3096
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3097
- );
3098
- initializeModelChunk(chunk);
3099
- "fulfilled" === chunk.status
3100
- ? controller.enqueue(chunk.value)
3101
- : (chunk.then(
3102
- function (v) {
3103
- return controller.enqueue(v);
3104
- },
3105
- function (e) {
3106
- return controller.error(e);
3107
- }
3108
- ),
3109
- (previousBlockedChunk = chunk));
3110
- } else {
3111
- chunk = previousBlockedChunk;
3112
- var _chunk = new ReactPromise("pending", null, null);
3113
- _chunk.then(
3114
- function (v) {
3115
- return controller.enqueue(v);
3116
- },
3117
- function (e) {
3118
- return controller.error(e);
3119
- }
3120
- );
3121
- previousBlockedChunk = _chunk;
3122
- chunk.then(function () {
3123
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3124
- resolveModelChunk(response, _chunk, json, -1);
3125
- });
3194
+ closed = !1,
3195
+ stream = new ReadableStream({
3196
+ type: type,
3197
+ start: function (c) {
3198
+ controller = c;
3126
3199
  }
3127
- },
3128
- close: function () {
3129
- if (!closed)
3130
- if (((closed = !0), null === previousBlockedChunk))
3131
- controller.close();
3132
- else {
3133
- var blockedChunk = previousBlockedChunk;
3134
- previousBlockedChunk = null;
3135
- blockedChunk.then(function () {
3136
- return controller.close();
3137
- });
3138
- }
3139
- },
3140
- error: function (error) {
3141
- if (!closed)
3142
- if (((closed = !0), null === previousBlockedChunk))
3143
- controller.error(error);
3144
- else {
3145
- var blockedChunk = previousBlockedChunk;
3146
- previousBlockedChunk = null;
3147
- blockedChunk.then(function () {
3148
- return controller.error(error);
3200
+ }),
3201
+ previousBlockedChunk = null,
3202
+ flightController = {
3203
+ enqueueModel: function (json) {
3204
+ if (null === previousBlockedChunk) {
3205
+ var chunk = new ReactPromise(
3206
+ "resolved_model",
3207
+ json,
3208
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3209
+ );
3210
+ initializeModelChunk(chunk);
3211
+ "fulfilled" === chunk.status
3212
+ ? enqueue(chunk.value)
3213
+ : (chunk.then(enqueue, flightController.error),
3214
+ (previousBlockedChunk = chunk));
3215
+ } else {
3216
+ chunk = previousBlockedChunk;
3217
+ var _chunk = new ReactPromise("pending", null, null);
3218
+ _chunk.then(enqueue, flightController.error);
3219
+ previousBlockedChunk = _chunk;
3220
+ chunk.then(function () {
3221
+ previousBlockedChunk === _chunk &&
3222
+ (previousBlockedChunk = null);
3223
+ resolveModelChunk(response, _chunk, json, -1);
3149
3224
  });
3150
3225
  }
3151
- }
3152
- });
3153
- return type;
3154
- }
3155
- function asyncIterator() {
3156
- return this;
3226
+ },
3227
+ close: function () {
3228
+ if (!closed)
3229
+ if (((closed = !0), null === previousBlockedChunk))
3230
+ controller.close();
3231
+ else {
3232
+ var blockedChunk = previousBlockedChunk;
3233
+ previousBlockedChunk = null;
3234
+ blockedChunk.then(function () {
3235
+ return controller.close();
3236
+ });
3237
+ }
3238
+ },
3239
+ error: function (error) {
3240
+ if (!closed)
3241
+ if (((closed = !0), null === previousBlockedChunk))
3242
+ controller.error(error);
3243
+ else {
3244
+ var blockedChunk = previousBlockedChunk;
3245
+ previousBlockedChunk = null;
3246
+ blockedChunk.then(function () {
3247
+ return controller.error(error);
3248
+ });
3249
+ }
3250
+ }
3251
+ };
3252
+ resolveStream(response, reference, stream, flightController);
3253
+ return stream;
3157
3254
  }
3158
- function createIterator(next) {
3159
- next = { next: next };
3160
- next[ASYNC_ITERATOR] = asyncIterator;
3161
- return next;
3255
+ function FlightIterator(next) {
3256
+ this.next = next;
3162
3257
  }
3163
3258
  function parseAsyncIterable(response, reference, iterator) {
3164
3259
  reference = parseInt(reference.slice(2), 16);
@@ -3169,7 +3264,7 @@
3169
3264
  nextWriteIndex = 0,
3170
3265
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
3171
3266
  var nextReadIndex = 0;
3172
- return createIterator(function (arg) {
3267
+ return new FlightIterator(function (arg) {
3173
3268
  if (void 0 !== arg)
3174
3269
  throw Error(
3175
3270
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -3248,19 +3343,30 @@
3248
3343
  });
3249
3344
  return iterator;
3250
3345
  }
3251
- function parseModelString(response, obj, key, value, reference) {
3346
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
3252
3347
  if ("$" === value[0]) {
3253
3348
  switch (value[1]) {
3254
3349
  case "$":
3255
- return value.slice(1);
3350
+ return (
3351
+ null !== arrayRoot &&
3352
+ bumpArrayCount(arrayRoot, value.length - 1, response),
3353
+ value.slice(1)
3354
+ );
3256
3355
  case "@":
3257
3356
  return (
3258
3357
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3259
3358
  );
3260
3359
  case "h":
3261
3360
  return (
3262
- (value = value.slice(2)),
3263
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
3361
+ (arrayRoot = value.slice(2)),
3362
+ getOutlinedModel(
3363
+ response,
3364
+ arrayRoot,
3365
+ obj,
3366
+ key,
3367
+ null,
3368
+ loadServerReference$1
3369
+ )
3264
3370
  );
3265
3371
  case "T":
3266
3372
  if (
@@ -3276,27 +3382,44 @@
3276
3382
  );
3277
3383
  case "Q":
3278
3384
  return (
3279
- (value = value.slice(2)),
3280
- getOutlinedModel(response, value, obj, key, createMap)
3385
+ (arrayRoot = value.slice(2)),
3386
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
3281
3387
  );
3282
3388
  case "W":
3283
3389
  return (
3284
- (value = value.slice(2)),
3285
- getOutlinedModel(response, value, obj, key, createSet)
3390
+ (arrayRoot = value.slice(2)),
3391
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
3286
3392
  );
3287
3393
  case "K":
3288
3394
  obj = value.slice(2);
3289
- var formPrefix = response._prefix + obj + "_",
3290
- data = new FormData();
3291
- response._formData.forEach(function (entry, entryKey) {
3292
- entryKey.startsWith(formPrefix) &&
3293
- data.append(entryKey.slice(formPrefix.length), entry);
3294
- });
3295
- return data;
3395
+ obj = response._prefix + obj + "_";
3396
+ key = new FormData();
3397
+ response = response._formData;
3398
+ arrayRoot = Array.from(response.keys());
3399
+ for (value = 0; value < arrayRoot.length; value++)
3400
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
3401
+ for (
3402
+ var entries = response.getAll(reference),
3403
+ newKey = reference.slice(obj.length),
3404
+ j = 0;
3405
+ j < entries.length;
3406
+ j++
3407
+ )
3408
+ key.append(newKey, entries[j]);
3409
+ response.delete(reference);
3410
+ }
3411
+ return key;
3296
3412
  case "i":
3297
3413
  return (
3298
- (value = value.slice(2)),
3299
- getOutlinedModel(response, value, obj, key, extractIterator)
3414
+ (arrayRoot = value.slice(2)),
3415
+ getOutlinedModel(
3416
+ response,
3417
+ arrayRoot,
3418
+ obj,
3419
+ key,
3420
+ null,
3421
+ extractIterator
3422
+ )
3300
3423
  );
3301
3424
  case "I":
3302
3425
  return Infinity;
@@ -3309,15 +3432,50 @@
3309
3432
  case "D":
3310
3433
  return new Date(Date.parse(value.slice(2)));
3311
3434
  case "n":
3312
- return BigInt(value.slice(2));
3435
+ obj = value.slice(2);
3436
+ if (obj.length > MAX_BIGINT_DIGITS)
3437
+ throw Error(
3438
+ "BigInt is too large. Received " +
3439
+ obj.length +
3440
+ " digits but the limit is " +
3441
+ MAX_BIGINT_DIGITS +
3442
+ "."
3443
+ );
3444
+ null !== arrayRoot &&
3445
+ bumpArrayCount(arrayRoot, obj.length, response);
3446
+ return BigInt(obj);
3313
3447
  }
3314
3448
  switch (value[1]) {
3315
3449
  case "A":
3316
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
3450
+ return parseTypedArray(
3451
+ response,
3452
+ value,
3453
+ ArrayBuffer,
3454
+ 1,
3455
+ obj,
3456
+ key,
3457
+ arrayRoot
3458
+ );
3317
3459
  case "O":
3318
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
3460
+ return parseTypedArray(
3461
+ response,
3462
+ value,
3463
+ Int8Array,
3464
+ 1,
3465
+ obj,
3466
+ key,
3467
+ arrayRoot
3468
+ );
3319
3469
  case "o":
3320
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
3470
+ return parseTypedArray(
3471
+ response,
3472
+ value,
3473
+ Uint8Array,
3474
+ 1,
3475
+ obj,
3476
+ key,
3477
+ arrayRoot
3478
+ );
3321
3479
  case "U":
3322
3480
  return parseTypedArray(
3323
3481
  response,
@@ -3325,22 +3483,79 @@
3325
3483
  Uint8ClampedArray,
3326
3484
  1,
3327
3485
  obj,
3328
- key
3486
+ key,
3487
+ arrayRoot
3329
3488
  );
3330
3489
  case "S":
3331
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
3490
+ return parseTypedArray(
3491
+ response,
3492
+ value,
3493
+ Int16Array,
3494
+ 2,
3495
+ obj,
3496
+ key,
3497
+ arrayRoot
3498
+ );
3332
3499
  case "s":
3333
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
3500
+ return parseTypedArray(
3501
+ response,
3502
+ value,
3503
+ Uint16Array,
3504
+ 2,
3505
+ obj,
3506
+ key,
3507
+ arrayRoot
3508
+ );
3334
3509
  case "L":
3335
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
3510
+ return parseTypedArray(
3511
+ response,
3512
+ value,
3513
+ Int32Array,
3514
+ 4,
3515
+ obj,
3516
+ key,
3517
+ arrayRoot
3518
+ );
3336
3519
  case "l":
3337
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
3520
+ return parseTypedArray(
3521
+ response,
3522
+ value,
3523
+ Uint32Array,
3524
+ 4,
3525
+ obj,
3526
+ key,
3527
+ arrayRoot
3528
+ );
3338
3529
  case "G":
3339
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
3530
+ return parseTypedArray(
3531
+ response,
3532
+ value,
3533
+ Float32Array,
3534
+ 4,
3535
+ obj,
3536
+ key,
3537
+ arrayRoot
3538
+ );
3340
3539
  case "g":
3341
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
3540
+ return parseTypedArray(
3541
+ response,
3542
+ value,
3543
+ Float64Array,
3544
+ 8,
3545
+ obj,
3546
+ key,
3547
+ arrayRoot
3548
+ );
3342
3549
  case "M":
3343
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
3550
+ return parseTypedArray(
3551
+ response,
3552
+ value,
3553
+ BigInt64Array,
3554
+ 8,
3555
+ obj,
3556
+ key,
3557
+ arrayRoot
3558
+ );
3344
3559
  case "m":
3345
3560
  return parseTypedArray(
3346
3561
  response,
@@ -3348,10 +3563,19 @@
3348
3563
  BigUint64Array,
3349
3564
  8,
3350
3565
  obj,
3351
- key
3566
+ key,
3567
+ arrayRoot
3352
3568
  );
3353
3569
  case "V":
3354
- return parseTypedArray(response, value, DataView, 1, obj, key);
3570
+ return parseTypedArray(
3571
+ response,
3572
+ value,
3573
+ DataView,
3574
+ 1,
3575
+ obj,
3576
+ key,
3577
+ arrayRoot
3578
+ );
3355
3579
  case "B":
3356
3580
  return (
3357
3581
  (obj = parseInt(value.slice(2), 16)),
@@ -3369,8 +3593,16 @@
3369
3593
  return parseAsyncIterable(response, value, !0);
3370
3594
  }
3371
3595
  value = value.slice(1);
3372
- return getOutlinedModel(response, value, obj, key, createModel);
3596
+ return getOutlinedModel(
3597
+ response,
3598
+ value,
3599
+ obj,
3600
+ key,
3601
+ arrayRoot,
3602
+ createModel
3603
+ );
3373
3604
  }
3605
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
3374
3606
  return value;
3375
3607
  }
3376
3608
  function createResponse(
@@ -3382,13 +3614,17 @@
3382
3614
  3 < arguments.length && void 0 !== arguments[3]
3383
3615
  ? arguments[3]
3384
3616
  : new FormData(),
3617
+ arraySizeLimit =
3618
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
3385
3619
  chunks = new Map();
3386
3620
  return {
3387
3621
  _bundlerConfig: bundlerConfig,
3388
3622
  _prefix: formFieldPrefix,
3389
3623
  _formData: backingFormData,
3390
3624
  _chunks: chunks,
3391
- _temporaryReferences: temporaryReferences
3625
+ _temporaryReferences: temporaryReferences,
3626
+ _rootArrayContexts: new WeakMap(),
3627
+ _arraySizeLimit: arraySizeLimit
3392
3628
  };
3393
3629
  }
3394
3630
  function resolveField(response, key, value) {
@@ -3404,13 +3640,24 @@
3404
3640
  function close(response) {
3405
3641
  reportGlobalError(response, Error("Connection closed."));
3406
3642
  }
3407
- function loadServerReference(bundlerConfig, id, bound) {
3643
+ function loadServerReference(bundlerConfig, metaData) {
3644
+ var id = metaData.id;
3645
+ if ("string" !== typeof id) return null;
3408
3646
  var serverReference = resolveServerReference(bundlerConfig, id);
3409
3647
  bundlerConfig = preloadModule(serverReference);
3410
- return bound
3411
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
3648
+ metaData = metaData.bound;
3649
+ return metaData instanceof Promise
3650
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
3412
3651
  _ref = _ref[0];
3413
3652
  var fn = requireModule(serverReference);
3653
+ if (_ref.length > MAX_BOUND_ARGS)
3654
+ throw Error(
3655
+ "Server Function has too many bound arguments. Received " +
3656
+ _ref.length +
3657
+ " but the limit is " +
3658
+ MAX_BOUND_ARGS +
3659
+ "."
3660
+ );
3414
3661
  return fn.bind.apply(fn, [null].concat(_ref));
3415
3662
  })
3416
3663
  : bundlerConfig
@@ -3419,8 +3666,19 @@
3419
3666
  })
3420
3667
  : Promise.resolve(requireModule(serverReference));
3421
3668
  }
3422
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
3423
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
3669
+ function decodeBoundActionMetaData(
3670
+ body,
3671
+ serverManifest,
3672
+ formFieldPrefix,
3673
+ arraySizeLimit
3674
+ ) {
3675
+ body = createResponse(
3676
+ serverManifest,
3677
+ formFieldPrefix,
3678
+ void 0,
3679
+ body,
3680
+ arraySizeLimit
3681
+ );
3424
3682
  close(body);
3425
3683
  body = getChunk(body, 0);
3426
3684
  body.then(function () {});
@@ -3847,13 +4105,14 @@
3847
4105
  patchConsole(console, "table"),
3848
4106
  patchConsole(console, "trace"),
3849
4107
  patchConsole(console, "warn"));
3850
- var ObjectPrototype = Object.prototype,
4108
+ var ObjectPrototype$1 = Object.prototype,
3851
4109
  stringify = JSON.stringify,
3852
4110
  PENDING$1 = 0,
3853
4111
  COMPLETED = 1,
3854
4112
  ABORTED = 3,
3855
4113
  ERRORED$1 = 4,
3856
4114
  RENDERING = 5,
4115
+ __PROTO__$1 = "__proto__",
3857
4116
  OPENING = 10,
3858
4117
  ABORTING = 12,
3859
4118
  CLOSING = 13,
@@ -3876,15 +4135,23 @@
3876
4135
  case "fulfilled":
3877
4136
  if ("function" === typeof resolve) {
3878
4137
  for (
3879
- var inspectedValue = this.value;
4138
+ var inspectedValue = this.value,
4139
+ cycleProtection = 0,
4140
+ visited = new Set();
3880
4141
  inspectedValue instanceof ReactPromise;
3881
4142
 
3882
4143
  ) {
3883
- if (inspectedValue === this) {
4144
+ cycleProtection++;
4145
+ if (
4146
+ inspectedValue === this ||
4147
+ visited.has(inspectedValue) ||
4148
+ 1e3 < cycleProtection
4149
+ ) {
3884
4150
  "function" === typeof reject &&
3885
4151
  reject(Error("Cannot have cyclic thenables."));
3886
4152
  return;
3887
4153
  }
4154
+ visited.add(inspectedValue);
3888
4155
  if ("fulfilled" === inspectedValue.status)
3889
4156
  inspectedValue = inspectedValue.value;
3890
4157
  else break;
@@ -3905,7 +4172,15 @@
3905
4172
  "function" === typeof reject && reject(this.reason);
3906
4173
  }
3907
4174
  };
3908
- var initializingHandler = null;
4175
+ var ObjectPrototype = Object.prototype,
4176
+ ArrayPrototype = Array.prototype,
4177
+ initializingHandler = null;
4178
+ FlightIterator.prototype = {};
4179
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
4180
+ return this;
4181
+ };
4182
+ var MAX_BIGINT_DIGITS = 300,
4183
+ MAX_BOUND_ARGS = 1e3;
3909
4184
  exports.createClientModuleProxy = function (moduleId) {
3910
4185
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3911
4186
  return new Proxy(moduleId, proxyHandlers$1);
@@ -3915,20 +4190,24 @@
3915
4190
  };
3916
4191
  exports.decodeAction = function (body, serverManifest) {
3917
4192
  var formData = new FormData(),
3918
- action = null;
4193
+ action = null,
4194
+ seenActions = new Set();
3919
4195
  body.forEach(function (value, key) {
3920
4196
  key.startsWith("$ACTION_")
3921
4197
  ? key.startsWith("$ACTION_REF_")
3922
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
4198
+ ? seenActions.has(key) ||
4199
+ (seenActions.add(key),
4200
+ (value = "$ACTION_" + key.slice(12) + ":"),
3923
4201
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
3924
- (action = loadServerReference(
3925
- serverManifest,
3926
- value.id,
3927
- value.bound
3928
- )))
4202
+ (action = loadServerReference(serverManifest, value)))
3929
4203
  : key.startsWith("$ACTION_ID_") &&
3930
- ((value = key.slice(11)),
3931
- (action = loadServerReference(serverManifest, value, null)))
4204
+ !seenActions.has(key) &&
4205
+ (seenActions.add(key),
4206
+ (value = key.slice(11)),
4207
+ (action = loadServerReference(serverManifest, {
4208
+ id: value,
4209
+ bound: null
4210
+ })))
3932
4211
  : formData.append(key, value);
3933
4212
  });
3934
4213
  return null === action
@@ -3964,7 +4243,8 @@
3964
4243
  webpackMap,
3965
4244
  "",
3966
4245
  options ? options.temporaryReferences : void 0,
3967
- body
4246
+ body,
4247
+ options ? options.arraySizeLimit : void 0
3968
4248
  );
3969
4249
  webpackMap = getChunk(body, 0);
3970
4250
  close(body);
@@ -3978,7 +4258,9 @@
3978
4258
  var response = createResponse(
3979
4259
  webpackMap,
3980
4260
  "",
3981
- options ? options.temporaryReferences : void 0
4261
+ options ? options.temporaryReferences : void 0,
4262
+ void 0,
4263
+ options ? options.arraySizeLimit : void 0
3982
4264
  ),
3983
4265
  pendingFiles = 0,
3984
4266
  queuedFields = [];
@@ -4002,13 +4284,13 @@
4002
4284
  );
4003
4285
  else {
4004
4286
  pendingFiles++;
4005
- var JSCompiler_object_inline_chunks_154 = [];
4287
+ var JSCompiler_object_inline_chunks_149 = [];
4006
4288
  value.on("data", function (chunk) {
4007
- JSCompiler_object_inline_chunks_154.push(chunk);
4289
+ JSCompiler_object_inline_chunks_149.push(chunk);
4008
4290
  });
4009
4291
  value.on("end", function () {
4010
4292
  try {
4011
- var blob = new Blob(JSCompiler_object_inline_chunks_154, {
4293
+ var blob = new Blob(JSCompiler_object_inline_chunks_149, {
4012
4294
  type: mimeType
4013
4295
  });
4014
4296
  response._formData.append(name, blob, filename);