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