react-server-dom-webpack 19.0.3 → 19.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  )
@@ -2524,12 +2531,12 @@
2524
2531
  this.value = value;
2525
2532
  this.reason = reason;
2526
2533
  }
2527
- function wakeChunk(response, listeners, value) {
2534
+ function wakeChunk(response, listeners, value, chunk) {
2528
2535
  for (var i = 0; i < listeners.length; i++) {
2529
2536
  var listener = listeners[i];
2530
2537
  "function" === typeof listener
2531
2538
  ? listener(value)
2532
- : fulfillReference(response, listener, value);
2539
+ : fulfillReference(response, listener, value, chunk.reason);
2533
2540
  }
2534
2541
  }
2535
2542
  function rejectChunk(response, listeners, error) {
@@ -2540,27 +2547,6 @@
2540
2547
  : rejectReference(response, listener.handler, error);
2541
2548
  }
2542
2549
  }
2543
- function resolveBlockedCycle(resolvedChunk, reference) {
2544
- var referencedChunk = reference.handler.chunk;
2545
- if (null === referencedChunk) return null;
2546
- if (referencedChunk === resolvedChunk) return reference.handler;
2547
- reference = referencedChunk.value;
2548
- if (null !== reference)
2549
- for (
2550
- referencedChunk = 0;
2551
- referencedChunk < reference.length;
2552
- referencedChunk++
2553
- ) {
2554
- var listener = reference[referencedChunk];
2555
- if (
2556
- "function" !== typeof listener &&
2557
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2558
- null !== listener)
2559
- )
2560
- return listener;
2561
- }
2562
- return null;
2563
- }
2564
2550
  function triggerErrorOnChunk(response, chunk, error) {
2565
2551
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2566
2552
  chunk.reason.error(error);
@@ -2584,57 +2570,25 @@
2584
2570
  chunk.value = value;
2585
2571
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2586
2572
  if (null !== resolveListeners)
2587
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
2573
+ switch ((initializeModelChunk(chunk), chunk.status)) {
2588
2574
  case "fulfilled":
2589
- wakeChunk(response, resolveListeners, chunk.value);
2575
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
2590
2576
  break;
2591
2577
  case "blocked":
2592
- for (value = 0; value < resolveListeners.length; value++)
2593
- if (
2594
- ((id = resolveListeners[value]), "function" !== typeof id)
2595
- ) {
2596
- var cyclicHandler = resolveBlockedCycle(chunk, id);
2597
- if (null !== cyclicHandler)
2598
- switch (
2599
- (fulfillReference(response, id, cyclicHandler.value),
2600
- resolveListeners.splice(value, 1),
2601
- value--,
2602
- null !== rejectListeners &&
2603
- ((id = rejectListeners.indexOf(id)),
2604
- -1 !== id && rejectListeners.splice(id, 1)),
2605
- chunk.status)
2606
- ) {
2607
- case "fulfilled":
2608
- wakeChunk(response, resolveListeners, chunk.value);
2609
- break a;
2610
- case "rejected":
2611
- null !== rejectListeners &&
2612
- rejectChunk(response, rejectListeners, chunk.reason);
2613
- break a;
2614
- }
2615
- }
2616
2578
  case "pending":
2617
2579
  if (chunk.value)
2618
- for (
2619
- response = 0;
2620
- response < resolveListeners.length;
2621
- response++
2622
- )
2623
- chunk.value.push(resolveListeners[response]);
2580
+ for (value = 0; value < resolveListeners.length; value++)
2581
+ chunk.value.push(resolveListeners[value]);
2624
2582
  else chunk.value = resolveListeners;
2625
2583
  if (chunk.reason) {
2626
2584
  if (rejectListeners)
2627
- for (
2628
- resolveListeners = 0;
2629
- resolveListeners < rejectListeners.length;
2630
- resolveListeners++
2631
- )
2632
- chunk.reason.push(rejectListeners[resolveListeners]);
2585
+ for (value = 0; value < rejectListeners.length; value++)
2586
+ chunk.reason.push(rejectListeners[value]);
2633
2587
  } else chunk.reason = rejectListeners;
2634
2588
  break;
2635
2589
  case "rejected":
2636
2590
  rejectListeners &&
2637
- wakeChunk(response, rejectListeners, chunk.reason);
2591
+ rejectChunk(response, rejectListeners, chunk.reason);
2638
2592
  }
2639
2593
  }
2640
2594
  }
@@ -2658,15 +2612,51 @@
2658
2612
  );
2659
2613
  }
2660
2614
  function loadServerReference$1(response, metaData, parentObject, key) {
2615
+ function reject(error) {
2616
+ var rejectListeners = blockedPromise.reason,
2617
+ erroredPromise = blockedPromise;
2618
+ erroredPromise.status = "rejected";
2619
+ erroredPromise.value = null;
2620
+ erroredPromise.reason = error;
2621
+ null !== rejectListeners &&
2622
+ rejectChunk(response, rejectListeners, error);
2623
+ rejectReference(response, handler, error);
2624
+ }
2661
2625
  var id = metaData.id;
2662
2626
  if ("string" !== typeof id || "then" === key) return null;
2627
+ var cachedPromise = metaData.$$promise;
2628
+ if (void 0 !== cachedPromise) {
2629
+ if ("fulfilled" === cachedPromise.status)
2630
+ return (
2631
+ (cachedPromise = cachedPromise.value),
2632
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
2633
+ );
2634
+ initializingHandler
2635
+ ? ((id = initializingHandler), id.deps++)
2636
+ : (id = initializingHandler =
2637
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2638
+ cachedPromise.then(
2639
+ resolveReference.bind(null, response, id, parentObject, key),
2640
+ rejectReference.bind(null, response, id)
2641
+ );
2642
+ return null;
2643
+ }
2644
+ var blockedPromise = new ReactPromise("blocked", null, null);
2645
+ metaData.$$promise = blockedPromise;
2663
2646
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2664
- id = metaData.bound;
2665
- var promise = preloadModule(serverReference);
2666
- if (promise)
2667
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2668
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2669
- else return requireModule(serverReference);
2647
+ cachedPromise = metaData.bound;
2648
+ if ((id = preloadModule(serverReference)))
2649
+ cachedPromise instanceof ReactPromise &&
2650
+ (id = Promise.all([id, cachedPromise]));
2651
+ else if (cachedPromise instanceof ReactPromise)
2652
+ id = Promise.resolve(cachedPromise);
2653
+ else
2654
+ return (
2655
+ (cachedPromise = requireModule(serverReference)),
2656
+ (id = blockedPromise),
2657
+ (id.status = "fulfilled"),
2658
+ (id.value = cachedPromise)
2659
+ );
2670
2660
  if (initializingHandler) {
2671
2661
  var handler = initializingHandler;
2672
2662
  handler.deps++;
@@ -2678,93 +2668,107 @@
2678
2668
  deps: 1,
2679
2669
  errored: !1
2680
2670
  };
2681
- promise.then(
2682
- function () {
2683
- var resolvedValue = requireModule(serverReference);
2684
- if (metaData.bound) {
2685
- var promiseValue = metaData.bound.value;
2686
- promiseValue = Array.isArray(promiseValue)
2687
- ? promiseValue.slice(0)
2688
- : [];
2689
- promiseValue.unshift(null);
2690
- resolvedValue = resolvedValue.bind.apply(
2691
- resolvedValue,
2692
- promiseValue
2671
+ id.then(function () {
2672
+ var resolvedValue = requireModule(serverReference);
2673
+ if (metaData.bound) {
2674
+ var promiseValue = metaData.bound.value;
2675
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
2676
+ if (promiseValue.length > MAX_BOUND_ARGS) {
2677
+ reject(
2678
+ Error(
2679
+ "Server Function has too many bound arguments. Received " +
2680
+ promiseValue.length +
2681
+ " but the limit is " +
2682
+ MAX_BOUND_ARGS +
2683
+ "."
2684
+ )
2693
2685
  );
2686
+ return;
2694
2687
  }
2695
- parentObject[key] = resolvedValue;
2696
- "" === key &&
2697
- null === handler.value &&
2698
- (handler.value = resolvedValue);
2699
- handler.deps--;
2700
- 0 === handler.deps &&
2701
- ((resolvedValue = handler.chunk),
2702
- null !== resolvedValue &&
2703
- "blocked" === resolvedValue.status &&
2704
- ((promiseValue = resolvedValue.value),
2705
- (resolvedValue.status = "fulfilled"),
2706
- (resolvedValue.value = handler.value),
2707
- (resolvedValue.reason = null),
2708
- null !== promiseValue &&
2709
- wakeChunk(response, promiseValue, handler.value)));
2710
- },
2711
- function (error) {
2712
- if (!handler.errored) {
2713
- handler.errored = !0;
2714
- handler.value = null;
2715
- handler.reason = error;
2716
- var chunk = handler.chunk;
2717
- null !== chunk &&
2718
- "blocked" === chunk.status &&
2719
- triggerErrorOnChunk(response, chunk, error);
2720
- }
2688
+ promiseValue.unshift(null);
2689
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2721
2690
  }
2722
- );
2691
+ promiseValue = blockedPromise.value;
2692
+ var initializedPromise = blockedPromise;
2693
+ initializedPromise.status = "fulfilled";
2694
+ initializedPromise.value = resolvedValue;
2695
+ initializedPromise.reason = null;
2696
+ null !== promiseValue &&
2697
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
2698
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2699
+ }, reject);
2723
2700
  return null;
2724
2701
  }
2725
- function reviveModel(response, parentObj, parentKey, value, reference) {
2702
+ function reviveModel(
2703
+ response,
2704
+ parentObj,
2705
+ parentKey,
2706
+ value,
2707
+ reference,
2708
+ arrayRoot
2709
+ ) {
2726
2710
  if ("string" === typeof value)
2727
2711
  return parseModelString(
2728
2712
  response,
2729
2713
  parentObj,
2730
2714
  parentKey,
2731
2715
  value,
2732
- reference
2716
+ reference,
2717
+ arrayRoot
2733
2718
  );
2734
2719
  if ("object" === typeof value && null !== value)
2735
2720
  if (
2736
2721
  (void 0 !== reference &&
2737
2722
  void 0 !== response._temporaryReferences &&
2738
2723
  response._temporaryReferences.set(value, reference),
2739
- Array.isArray(value))
2740
- )
2741
- for (var i = 0; i < value.length; i++)
2742
- value[i] = reviveModel(
2724
+ isArrayImpl(value))
2725
+ ) {
2726
+ if (null === arrayRoot) {
2727
+ var childContext = { count: 0, fork: !1 };
2728
+ response._rootArrayContexts.set(value, childContext);
2729
+ } else childContext = arrayRoot;
2730
+ 1 < value.length && (childContext.fork = !0);
2731
+ bumpArrayCount(childContext, value.length + 1, response);
2732
+ for (parentObj = 0; parentObj < value.length; parentObj++)
2733
+ value[parentObj] = reviveModel(
2743
2734
  response,
2744
2735
  value,
2745
- "" + i,
2746
- value[i],
2747
- void 0 !== reference ? reference + ":" + i : void 0
2736
+ "" + parentObj,
2737
+ value[parentObj],
2738
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
2739
+ childContext
2748
2740
  );
2749
- else
2750
- for (i in value)
2751
- hasOwnProperty.call(value, i) &&
2752
- ((parentObj =
2753
- void 0 !== reference && -1 === i.indexOf(":")
2754
- ? reference + ":" + i
2755
- : void 0),
2756
- (parentObj = reviveModel(
2757
- response,
2758
- value,
2759
- i,
2760
- value[i],
2761
- parentObj
2762
- )),
2763
- void 0 !== parentObj || "__proto__" === i
2764
- ? (value[i] = parentObj)
2765
- : delete value[i]);
2741
+ } else
2742
+ for (childContext in value)
2743
+ hasOwnProperty.call(value, childContext) &&
2744
+ ("__proto__" === childContext
2745
+ ? delete value[childContext]
2746
+ : ((parentObj =
2747
+ void 0 !== reference && -1 === childContext.indexOf(":")
2748
+ ? reference + ":" + childContext
2749
+ : void 0),
2750
+ (parentObj = reviveModel(
2751
+ response,
2752
+ value,
2753
+ childContext,
2754
+ value[childContext],
2755
+ parentObj,
2756
+ null
2757
+ )),
2758
+ void 0 !== parentObj
2759
+ ? (value[childContext] = parentObj)
2760
+ : delete value[childContext]));
2766
2761
  return value;
2767
2762
  }
2763
+ function bumpArrayCount(arrayContext, slots, response) {
2764
+ if (
2765
+ (arrayContext.count += slots) > response._arraySizeLimit &&
2766
+ arrayContext.fork
2767
+ )
2768
+ throw Error(
2769
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
2770
+ );
2771
+ }
2768
2772
  function initializeModelChunk(chunk) {
2769
2773
  var prevHandler = initializingHandler;
2770
2774
  initializingHandler = null;
@@ -2778,13 +2782,15 @@
2778
2782
  chunk.value = null;
2779
2783
  chunk.reason = null;
2780
2784
  try {
2781
- var rawModel = JSON.parse(resolvedModel),
2782
- value = reviveModel(
2785
+ var rawModel = JSON.parse(resolvedModel);
2786
+ resolvedModel = { count: 0, fork: !1 };
2787
+ var value = reviveModel(
2783
2788
  response,
2784
2789
  { "": rawModel },
2785
2790
  "",
2786
2791
  rawModel,
2787
- _chunk$reason
2792
+ _chunk$reason,
2793
+ resolvedModel
2788
2794
  ),
2789
2795
  resolveListeners = chunk.value;
2790
2796
  if (null !== resolveListeners)
@@ -2796,19 +2802,20 @@
2796
2802
  var listener = resolveListeners[rawModel];
2797
2803
  "function" === typeof listener
2798
2804
  ? listener(value)
2799
- : fulfillReference(response, listener, value);
2805
+ : fulfillReference(response, listener, value, resolvedModel);
2800
2806
  }
2801
2807
  if (null !== initializingHandler) {
2802
2808
  if (initializingHandler.errored) throw initializingHandler.reason;
2803
2809
  if (0 < initializingHandler.deps) {
2804
2810
  initializingHandler.value = value;
2811
+ initializingHandler.reason = resolvedModel;
2805
2812
  initializingHandler.chunk = chunk;
2806
2813
  return;
2807
2814
  }
2808
2815
  }
2809
2816
  chunk.status = "fulfilled";
2810
2817
  chunk.value = value;
2811
- chunk.reason = null;
2818
+ chunk.reason = resolvedModel;
2812
2819
  } catch (error) {
2813
2820
  (chunk.status = "rejected"), (chunk.reason = error);
2814
2821
  } finally {
@@ -2821,7 +2828,8 @@
2821
2828
  ? triggerErrorOnChunk(response, chunk, error)
2822
2829
  : "fulfilled" === chunk.status &&
2823
2830
  null !== chunk.reason &&
2824
- chunk.reason.error(error);
2831
+ ((chunk = chunk.reason),
2832
+ "function" === typeof chunk.error && chunk.error(error));
2825
2833
  });
2826
2834
  }
2827
2835
  function getChunk(response, id) {
@@ -2840,40 +2848,74 @@
2840
2848
  chunks.set(id, chunk));
2841
2849
  return chunk;
2842
2850
  }
2843
- function fulfillReference(response, reference, value) {
2851
+ function fulfillReference(response, reference, value, arrayRoot) {
2844
2852
  var handler = reference.handler,
2845
2853
  parentObject = reference.parentObject,
2846
2854
  key = reference.key,
2847
2855
  map = reference.map,
2848
2856
  path = reference.path;
2849
2857
  try {
2850
- for (var i = 1; i < path.length; i++) {
2858
+ for (
2859
+ var localLength = 0,
2860
+ rootArrayContexts = response._rootArrayContexts,
2861
+ i = 1;
2862
+ i < path.length;
2863
+ i++
2864
+ ) {
2851
2865
  var name = path[i];
2852
2866
  if (
2853
2867
  "object" !== typeof value ||
2854
- !hasOwnProperty.call(value, name) ||
2855
- value instanceof Promise
2868
+ null === value ||
2869
+ (getPrototypeOf(value) !== ObjectPrototype &&
2870
+ getPrototypeOf(value) !== ArrayPrototype) ||
2871
+ !hasOwnProperty.call(value, name)
2856
2872
  )
2857
2873
  throw Error("Invalid reference.");
2858
2874
  value = value[name];
2875
+ if (isArrayImpl(value))
2876
+ (localLength = 0),
2877
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
2878
+ else if (((arrayRoot = null), "string" === typeof value))
2879
+ localLength = value.length;
2880
+ else if ("bigint" === typeof value) {
2881
+ var n = Math.abs(Number(value));
2882
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
2883
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
2859
2884
  }
2860
- var mappedValue = map(response, value, parentObject, key);
2861
- parentObject[key] = mappedValue;
2862
- "" === key && null === handler.value && (handler.value = mappedValue);
2885
+ var resolvedValue = map(response, value, parentObject, key);
2886
+ var referenceArrayRoot = reference.arrayRoot;
2887
+ null !== referenceArrayRoot &&
2888
+ (null !== arrayRoot
2889
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
2890
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
2891
+ : 0 < localLength &&
2892
+ bumpArrayCount(referenceArrayRoot, localLength, response));
2863
2893
  } catch (error) {
2864
- rejectReference(response, reference.handler, error);
2894
+ rejectReference(response, handler, error);
2865
2895
  return;
2866
2896
  }
2897
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2898
+ }
2899
+ function resolveReference(
2900
+ response,
2901
+ handler,
2902
+ parentObject,
2903
+ key,
2904
+ resolvedValue
2905
+ ) {
2906
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
2907
+ "" === key && null === handler.value && (handler.value = resolvedValue);
2867
2908
  handler.deps--;
2868
2909
  0 === handler.deps &&
2869
- ((reference = handler.chunk),
2870
- null !== reference &&
2871
- "blocked" === reference.status &&
2872
- ((value = reference.value),
2873
- (reference.status = "fulfilled"),
2874
- (reference.value = handler.value),
2875
- (reference.reason = handler.reason),
2876
- null !== value && wakeChunk(response, value, handler.value)));
2910
+ ((parentObject = handler.chunk),
2911
+ null !== parentObject &&
2912
+ "blocked" === parentObject.status &&
2913
+ ((key = parentObject.value),
2914
+ (parentObject.status = "fulfilled"),
2915
+ (parentObject.value = handler.value),
2916
+ (parentObject.reason = handler.reason),
2917
+ null !== key &&
2918
+ wakeChunk(response, key, handler.value, parentObject)));
2877
2919
  }
2878
2920
  function rejectReference(response, handler, error) {
2879
2921
  handler.errored ||
@@ -2885,29 +2927,66 @@
2885
2927
  "blocked" === handler.status &&
2886
2928
  triggerErrorOnChunk(response, handler, error));
2887
2929
  }
2888
- function getOutlinedModel(response, reference, parentObject, key, map) {
2930
+ function getOutlinedModel(
2931
+ response,
2932
+ reference,
2933
+ parentObject,
2934
+ key,
2935
+ referenceArrayRoot,
2936
+ map
2937
+ ) {
2889
2938
  reference = reference.split(":");
2890
- var id = parseInt(reference[0], 16);
2891
- id = getChunk(response, id);
2892
- switch (id.status) {
2939
+ var id = parseInt(reference[0], 16),
2940
+ chunk = getChunk(response, id);
2941
+ switch (chunk.status) {
2893
2942
  case "resolved_model":
2894
- initializeModelChunk(id);
2943
+ initializeModelChunk(chunk);
2895
2944
  }
2896
- switch (id.status) {
2945
+ switch (chunk.status) {
2897
2946
  case "fulfilled":
2898
- id = id.value;
2899
- for (var i = 1; i < reference.length; i++) {
2900
- var name = reference[i];
2947
+ id = chunk.value;
2948
+ chunk = chunk.reason;
2949
+ for (
2950
+ var localLength = 0,
2951
+ rootArrayContexts = response._rootArrayContexts,
2952
+ i = 1;
2953
+ i < reference.length;
2954
+ i++
2955
+ ) {
2956
+ localLength = reference[i];
2901
2957
  if (
2902
2958
  "object" !== typeof id ||
2903
- !hasOwnProperty.call(id, name) ||
2904
- id instanceof Promise
2959
+ null === id ||
2960
+ (getPrototypeOf(id) !== ObjectPrototype &&
2961
+ getPrototypeOf(id) !== ArrayPrototype) ||
2962
+ !hasOwnProperty.call(id, localLength)
2905
2963
  )
2906
2964
  throw Error("Invalid reference.");
2907
- id = id[name];
2965
+ id = id[localLength];
2966
+ isArrayImpl(id)
2967
+ ? ((localLength = 0),
2968
+ (chunk = rootArrayContexts.get(id) || chunk))
2969
+ : ((chunk = null),
2970
+ "string" === typeof id
2971
+ ? (localLength = id.length)
2972
+ : "bigint" === typeof id
2973
+ ? ((localLength = Math.abs(Number(id))),
2974
+ (localLength =
2975
+ 0 === localLength
2976
+ ? 1
2977
+ : Math.floor(Math.log10(localLength)) + 1))
2978
+ : (localLength = ArrayBuffer.isView(id)
2979
+ ? id.byteLength
2980
+ : 0));
2908
2981
  }
2909
- return map(response, id, parentObject, key);
2910
- case "pending":
2982
+ parentObject = map(response, id, parentObject, key);
2983
+ null !== referenceArrayRoot &&
2984
+ (null !== chunk
2985
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
2986
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
2987
+ : 0 < localLength &&
2988
+ bumpArrayCount(referenceArrayRoot, localLength, response));
2989
+ return parentObject;
2911
2990
  case "blocked":
2912
2991
  return (
2913
2992
  initializingHandler
@@ -2920,31 +2999,34 @@
2920
2999
  deps: 1,
2921
3000
  errored: !1
2922
3001
  }),
2923
- (parentObject = {
3002
+ (referenceArrayRoot = {
2924
3003
  handler: response,
2925
3004
  parentObject: parentObject,
2926
3005
  key: key,
2927
3006
  map: map,
2928
- path: reference
3007
+ path: reference,
3008
+ arrayRoot: referenceArrayRoot
2929
3009
  }),
2930
- null === id.value
2931
- ? (id.value = [parentObject])
2932
- : id.value.push(parentObject),
2933
- null === id.reason
2934
- ? (id.reason = [parentObject])
2935
- : id.reason.push(parentObject),
3010
+ null === chunk.value
3011
+ ? (chunk.value = [referenceArrayRoot])
3012
+ : chunk.value.push(referenceArrayRoot),
3013
+ null === chunk.reason
3014
+ ? (chunk.reason = [referenceArrayRoot])
3015
+ : chunk.reason.push(referenceArrayRoot),
2936
3016
  null
2937
3017
  );
3018
+ case "pending":
3019
+ throw Error("Invalid forward reference.");
2938
3020
  default:
2939
3021
  return (
2940
3022
  initializingHandler
2941
3023
  ? ((initializingHandler.errored = !0),
2942
3024
  (initializingHandler.value = null),
2943
- (initializingHandler.reason = id.reason))
3025
+ (initializingHandler.reason = chunk.reason))
2944
3026
  : (initializingHandler = {
2945
3027
  chunk: null,
2946
3028
  value: null,
2947
- reason: id.reason,
3029
+ reason: chunk.reason,
2948
3030
  deps: 0,
2949
3031
  errored: !0
2950
3032
  }),
@@ -2953,12 +3035,21 @@
2953
3035
  }
2954
3036
  }
2955
3037
  function createMap(response, model) {
3038
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
3039
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
3040
+ model.$$consumed = !0;
2956
3041
  return new Map(model);
2957
3042
  }
2958
3043
  function createSet(response, model) {
3044
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
3045
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
3046
+ model.$$consumed = !0;
2959
3047
  return new Set(model);
2960
3048
  }
2961
3049
  function extractIterator(response, model) {
3050
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
3051
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
3052
+ model.$$consumed = !0;
2962
3053
  return model[Symbol.iterator]();
2963
3054
  }
2964
3055
  function createModel(response, model, parentObject, key) {
@@ -2970,13 +3061,34 @@
2970
3061
  constructor,
2971
3062
  bytesPerElement,
2972
3063
  parentObject,
2973
- parentKey
3064
+ parentKey,
3065
+ referenceArrayRoot
2974
3066
  ) {
3067
+ function reject(error) {
3068
+ if (!handler.errored) {
3069
+ handler.errored = !0;
3070
+ handler.value = null;
3071
+ handler.reason = error;
3072
+ var chunk = handler.chunk;
3073
+ null !== chunk &&
3074
+ "blocked" === chunk.status &&
3075
+ triggerErrorOnChunk(response, chunk, error);
3076
+ }
3077
+ }
2975
3078
  reference = parseInt(reference.slice(2), 16);
2976
- bytesPerElement = response._prefix + reference;
2977
- if (response._chunks.has(reference))
3079
+ var key = response._prefix + reference;
3080
+ bytesPerElement = response._chunks;
3081
+ if (bytesPerElement.has(reference))
2978
3082
  throw Error("Already initialized typed array.");
2979
- reference = response._formData.get(bytesPerElement).arrayBuffer();
3083
+ bytesPerElement.set(
3084
+ reference,
3085
+ new ReactPromise(
3086
+ "rejected",
3087
+ null,
3088
+ Error("Already initialized typed array.")
3089
+ )
3090
+ );
3091
+ reference = response._formData.get(key).arrayBuffer();
2980
3092
  if (initializingHandler) {
2981
3093
  var handler = initializingHandler;
2982
3094
  handler.deps++;
@@ -2988,40 +3100,32 @@
2988
3100
  deps: 1,
2989
3101
  errored: !1
2990
3102
  };
2991
- reference.then(
2992
- function (buffer) {
2993
- buffer =
3103
+ reference.then(function (buffer) {
3104
+ try {
3105
+ null !== referenceArrayRoot &&
3106
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
3107
+ var resolvedValue =
2994
3108
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
2995
- parentObject[parentKey] = buffer;
3109
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
2996
3110
  "" === parentKey &&
2997
3111
  null === handler.value &&
2998
- (handler.value = buffer);
2999
- handler.deps--;
3000
- if (
3001
- 0 === handler.deps &&
3002
- ((buffer = handler.chunk),
3003
- null !== buffer && "blocked" === buffer.status)
3004
- ) {
3005
- var resolveListeners = buffer.value;
3006
- buffer.status = "fulfilled";
3007
- buffer.value = handler.value;
3008
- buffer.reason = null;
3009
- null !== resolveListeners &&
3010
- wakeChunk(response, resolveListeners, handler.value);
3011
- }
3012
- },
3013
- function (error) {
3014
- if (!handler.errored) {
3015
- handler.errored = !0;
3016
- handler.value = null;
3017
- handler.reason = error;
3018
- var chunk = handler.chunk;
3019
- null !== chunk &&
3020
- "blocked" === chunk.status &&
3021
- triggerErrorOnChunk(response, chunk, error);
3022
- }
3112
+ (handler.value = resolvedValue);
3113
+ } catch (x) {
3114
+ reject(x);
3115
+ return;
3023
3116
  }
3024
- );
3117
+ handler.deps--;
3118
+ 0 === handler.deps &&
3119
+ ((buffer = handler.chunk),
3120
+ null !== buffer &&
3121
+ "blocked" === buffer.status &&
3122
+ ((resolvedValue = buffer.value),
3123
+ (buffer.status = "fulfilled"),
3124
+ (buffer.value = handler.value),
3125
+ (buffer.reason = null),
3126
+ null !== resolvedValue &&
3127
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
3128
+ }, reject);
3025
3129
  return null;
3026
3130
  }
3027
3131
  function resolveStream(response, id, stream, controller) {
@@ -3039,90 +3143,78 @@
3039
3143
  : controller.enqueueModel(chunks));
3040
3144
  }
3041
3145
  function parseReadableStream(response, reference, type) {
3146
+ function enqueue(value) {
3147
+ "bytes" !== type || ArrayBuffer.isView(value)
3148
+ ? controller.enqueue(value)
3149
+ : flightController.error(Error("Invalid data for bytes stream."));
3150
+ }
3042
3151
  reference = parseInt(reference.slice(2), 16);
3043
3152
  if (response._chunks.has(reference))
3044
3153
  throw Error("Already initialized stream.");
3045
3154
  var controller = null,
3046
- closed = !1;
3047
- type = new ReadableStream({
3048
- type: type,
3049
- start: function (c) {
3050
- controller = c;
3051
- }
3052
- });
3053
- var previousBlockedChunk = null;
3054
- resolveStream(response, reference, type, {
3055
- enqueueModel: function (json) {
3056
- if (null === previousBlockedChunk) {
3057
- var chunk = new ReactPromise(
3058
- "resolved_model",
3059
- json,
3060
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3061
- );
3062
- initializeModelChunk(chunk);
3063
- "fulfilled" === chunk.status
3064
- ? controller.enqueue(chunk.value)
3065
- : (chunk.then(
3066
- function (v) {
3067
- return controller.enqueue(v);
3068
- },
3069
- function (e) {
3070
- return controller.error(e);
3071
- }
3072
- ),
3073
- (previousBlockedChunk = chunk));
3074
- } else {
3075
- chunk = previousBlockedChunk;
3076
- var _chunk = new ReactPromise("pending", null, null);
3077
- _chunk.then(
3078
- function (v) {
3079
- return controller.enqueue(v);
3080
- },
3081
- function (e) {
3082
- return controller.error(e);
3083
- }
3084
- );
3085
- previousBlockedChunk = _chunk;
3086
- chunk.then(function () {
3087
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3088
- resolveModelChunk(response, _chunk, json, -1);
3089
- });
3155
+ closed = !1,
3156
+ stream = new ReadableStream({
3157
+ type: type,
3158
+ start: function (c) {
3159
+ controller = c;
3090
3160
  }
3091
- },
3092
- close: function () {
3093
- if (!closed)
3094
- if (((closed = !0), null === previousBlockedChunk))
3095
- controller.close();
3096
- else {
3097
- var blockedChunk = previousBlockedChunk;
3098
- previousBlockedChunk = null;
3099
- blockedChunk.then(function () {
3100
- return controller.close();
3101
- });
3102
- }
3103
- },
3104
- error: function (error) {
3105
- if (!closed)
3106
- if (((closed = !0), null === previousBlockedChunk))
3107
- controller.error(error);
3108
- else {
3109
- var blockedChunk = previousBlockedChunk;
3110
- previousBlockedChunk = null;
3111
- blockedChunk.then(function () {
3112
- return controller.error(error);
3161
+ }),
3162
+ previousBlockedChunk = null,
3163
+ flightController = {
3164
+ enqueueModel: function (json) {
3165
+ if (null === previousBlockedChunk) {
3166
+ var chunk = new ReactPromise(
3167
+ "resolved_model",
3168
+ json,
3169
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3170
+ );
3171
+ initializeModelChunk(chunk);
3172
+ "fulfilled" === chunk.status
3173
+ ? enqueue(chunk.value)
3174
+ : (chunk.then(enqueue, flightController.error),
3175
+ (previousBlockedChunk = chunk));
3176
+ } else {
3177
+ chunk = previousBlockedChunk;
3178
+ var _chunk = new ReactPromise("pending", null, null);
3179
+ _chunk.then(enqueue, flightController.error);
3180
+ previousBlockedChunk = _chunk;
3181
+ chunk.then(function () {
3182
+ previousBlockedChunk === _chunk &&
3183
+ (previousBlockedChunk = null);
3184
+ resolveModelChunk(response, _chunk, json, -1);
3113
3185
  });
3114
3186
  }
3115
- }
3116
- });
3117
- return type;
3118
- }
3119
- function asyncIterator() {
3120
- return this;
3187
+ },
3188
+ close: function () {
3189
+ if (!closed)
3190
+ if (((closed = !0), null === previousBlockedChunk))
3191
+ controller.close();
3192
+ else {
3193
+ var blockedChunk = previousBlockedChunk;
3194
+ previousBlockedChunk = null;
3195
+ blockedChunk.then(function () {
3196
+ return controller.close();
3197
+ });
3198
+ }
3199
+ },
3200
+ error: function (error) {
3201
+ if (!closed)
3202
+ if (((closed = !0), null === previousBlockedChunk))
3203
+ controller.error(error);
3204
+ else {
3205
+ var blockedChunk = previousBlockedChunk;
3206
+ previousBlockedChunk = null;
3207
+ blockedChunk.then(function () {
3208
+ return controller.error(error);
3209
+ });
3210
+ }
3211
+ }
3212
+ };
3213
+ resolveStream(response, reference, stream, flightController);
3214
+ return stream;
3121
3215
  }
3122
- function createIterator(next) {
3123
- next = { next: next };
3124
- next[ASYNC_ITERATOR] = asyncIterator;
3125
- return next;
3216
+ function FlightIterator(next) {
3217
+ this.next = next;
3126
3218
  }
3127
3219
  function parseAsyncIterable(response, reference, iterator) {
3128
3220
  reference = parseInt(reference.slice(2), 16);
@@ -3133,7 +3225,7 @@
3133
3225
  nextWriteIndex = 0,
3134
3226
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
3135
3227
  var nextReadIndex = 0;
3136
- return createIterator(function (arg) {
3228
+ return new FlightIterator(function (arg) {
3137
3229
  if (void 0 !== arg)
3138
3230
  throw Error(
3139
3231
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -3212,19 +3304,30 @@
3212
3304
  });
3213
3305
  return iterator;
3214
3306
  }
3215
- function parseModelString(response, obj, key, value, reference) {
3307
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
3216
3308
  if ("$" === value[0]) {
3217
3309
  switch (value[1]) {
3218
3310
  case "$":
3219
- return value.slice(1);
3311
+ return (
3312
+ null !== arrayRoot &&
3313
+ bumpArrayCount(arrayRoot, value.length - 1, response),
3314
+ value.slice(1)
3315
+ );
3220
3316
  case "@":
3221
3317
  return (
3222
3318
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3223
3319
  );
3224
3320
  case "h":
3225
3321
  return (
3226
- (value = value.slice(2)),
3227
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
3322
+ (arrayRoot = value.slice(2)),
3323
+ getOutlinedModel(
3324
+ response,
3325
+ arrayRoot,
3326
+ obj,
3327
+ key,
3328
+ null,
3329
+ loadServerReference$1
3330
+ )
3228
3331
  );
3229
3332
  case "T":
3230
3333
  if (
@@ -3240,27 +3343,44 @@
3240
3343
  );
3241
3344
  case "Q":
3242
3345
  return (
3243
- (value = value.slice(2)),
3244
- getOutlinedModel(response, value, obj, key, createMap)
3346
+ (arrayRoot = value.slice(2)),
3347
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
3245
3348
  );
3246
3349
  case "W":
3247
3350
  return (
3248
- (value = value.slice(2)),
3249
- getOutlinedModel(response, value, obj, key, createSet)
3351
+ (arrayRoot = value.slice(2)),
3352
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
3250
3353
  );
3251
3354
  case "K":
3252
3355
  obj = value.slice(2);
3253
- var formPrefix = response._prefix + obj + "_",
3254
- data = new FormData();
3255
- response._formData.forEach(function (entry, entryKey) {
3256
- entryKey.startsWith(formPrefix) &&
3257
- data.append(entryKey.slice(formPrefix.length), entry);
3258
- });
3259
- return data;
3356
+ obj = response._prefix + obj + "_";
3357
+ key = new FormData();
3358
+ response = response._formData;
3359
+ arrayRoot = Array.from(response.keys());
3360
+ for (value = 0; value < arrayRoot.length; value++)
3361
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
3362
+ for (
3363
+ var entries = response.getAll(reference),
3364
+ newKey = reference.slice(obj.length),
3365
+ j = 0;
3366
+ j < entries.length;
3367
+ j++
3368
+ )
3369
+ key.append(newKey, entries[j]);
3370
+ response.delete(reference);
3371
+ }
3372
+ return key;
3260
3373
  case "i":
3261
3374
  return (
3262
- (value = value.slice(2)),
3263
- getOutlinedModel(response, value, obj, key, extractIterator)
3375
+ (arrayRoot = value.slice(2)),
3376
+ getOutlinedModel(
3377
+ response,
3378
+ arrayRoot,
3379
+ obj,
3380
+ key,
3381
+ null,
3382
+ extractIterator
3383
+ )
3264
3384
  );
3265
3385
  case "I":
3266
3386
  return Infinity;
@@ -3273,15 +3393,50 @@
3273
3393
  case "D":
3274
3394
  return new Date(Date.parse(value.slice(2)));
3275
3395
  case "n":
3276
- return BigInt(value.slice(2));
3396
+ obj = value.slice(2);
3397
+ if (obj.length > MAX_BIGINT_DIGITS)
3398
+ throw Error(
3399
+ "BigInt is too large. Received " +
3400
+ obj.length +
3401
+ " digits but the limit is " +
3402
+ MAX_BIGINT_DIGITS +
3403
+ "."
3404
+ );
3405
+ null !== arrayRoot &&
3406
+ bumpArrayCount(arrayRoot, obj.length, response);
3407
+ return BigInt(obj);
3277
3408
  }
3278
3409
  switch (value[1]) {
3279
3410
  case "A":
3280
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
3411
+ return parseTypedArray(
3412
+ response,
3413
+ value,
3414
+ ArrayBuffer,
3415
+ 1,
3416
+ obj,
3417
+ key,
3418
+ arrayRoot
3419
+ );
3281
3420
  case "O":
3282
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
3421
+ return parseTypedArray(
3422
+ response,
3423
+ value,
3424
+ Int8Array,
3425
+ 1,
3426
+ obj,
3427
+ key,
3428
+ arrayRoot
3429
+ );
3283
3430
  case "o":
3284
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
3431
+ return parseTypedArray(
3432
+ response,
3433
+ value,
3434
+ Uint8Array,
3435
+ 1,
3436
+ obj,
3437
+ key,
3438
+ arrayRoot
3439
+ );
3285
3440
  case "U":
3286
3441
  return parseTypedArray(
3287
3442
  response,
@@ -3289,22 +3444,79 @@
3289
3444
  Uint8ClampedArray,
3290
3445
  1,
3291
3446
  obj,
3292
- key
3447
+ key,
3448
+ arrayRoot
3293
3449
  );
3294
3450
  case "S":
3295
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
3451
+ return parseTypedArray(
3452
+ response,
3453
+ value,
3454
+ Int16Array,
3455
+ 2,
3456
+ obj,
3457
+ key,
3458
+ arrayRoot
3459
+ );
3296
3460
  case "s":
3297
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
3461
+ return parseTypedArray(
3462
+ response,
3463
+ value,
3464
+ Uint16Array,
3465
+ 2,
3466
+ obj,
3467
+ key,
3468
+ arrayRoot
3469
+ );
3298
3470
  case "L":
3299
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
3471
+ return parseTypedArray(
3472
+ response,
3473
+ value,
3474
+ Int32Array,
3475
+ 4,
3476
+ obj,
3477
+ key,
3478
+ arrayRoot
3479
+ );
3300
3480
  case "l":
3301
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
3481
+ return parseTypedArray(
3482
+ response,
3483
+ value,
3484
+ Uint32Array,
3485
+ 4,
3486
+ obj,
3487
+ key,
3488
+ arrayRoot
3489
+ );
3302
3490
  case "G":
3303
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
3491
+ return parseTypedArray(
3492
+ response,
3493
+ value,
3494
+ Float32Array,
3495
+ 4,
3496
+ obj,
3497
+ key,
3498
+ arrayRoot
3499
+ );
3304
3500
  case "g":
3305
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
3501
+ return parseTypedArray(
3502
+ response,
3503
+ value,
3504
+ Float64Array,
3505
+ 8,
3506
+ obj,
3507
+ key,
3508
+ arrayRoot
3509
+ );
3306
3510
  case "M":
3307
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
3511
+ return parseTypedArray(
3512
+ response,
3513
+ value,
3514
+ BigInt64Array,
3515
+ 8,
3516
+ obj,
3517
+ key,
3518
+ arrayRoot
3519
+ );
3308
3520
  case "m":
3309
3521
  return parseTypedArray(
3310
3522
  response,
@@ -3312,10 +3524,19 @@
3312
3524
  BigUint64Array,
3313
3525
  8,
3314
3526
  obj,
3315
- key
3527
+ key,
3528
+ arrayRoot
3316
3529
  );
3317
3530
  case "V":
3318
- return parseTypedArray(response, value, DataView, 1, obj, key);
3531
+ return parseTypedArray(
3532
+ response,
3533
+ value,
3534
+ DataView,
3535
+ 1,
3536
+ obj,
3537
+ key,
3538
+ arrayRoot
3539
+ );
3319
3540
  case "B":
3320
3541
  return (
3321
3542
  (obj = parseInt(value.slice(2), 16)),
@@ -3333,8 +3554,16 @@
3333
3554
  return parseAsyncIterable(response, value, !0);
3334
3555
  }
3335
3556
  value = value.slice(1);
3336
- return getOutlinedModel(response, value, obj, key, createModel);
3557
+ return getOutlinedModel(
3558
+ response,
3559
+ value,
3560
+ obj,
3561
+ key,
3562
+ arrayRoot,
3563
+ createModel
3564
+ );
3337
3565
  }
3566
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
3338
3567
  return value;
3339
3568
  }
3340
3569
  function createResponse(
@@ -3346,13 +3575,17 @@
3346
3575
  3 < arguments.length && void 0 !== arguments[3]
3347
3576
  ? arguments[3]
3348
3577
  : new FormData(),
3578
+ arraySizeLimit =
3579
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
3349
3580
  chunks = new Map();
3350
3581
  return {
3351
3582
  _bundlerConfig: bundlerConfig,
3352
3583
  _prefix: formFieldPrefix,
3353
3584
  _formData: backingFormData,
3354
3585
  _chunks: chunks,
3355
- _temporaryReferences: temporaryReferences
3586
+ _temporaryReferences: temporaryReferences,
3587
+ _rootArrayContexts: new WeakMap(),
3588
+ _arraySizeLimit: arraySizeLimit
3356
3589
  };
3357
3590
  }
3358
3591
  function resolveField(response, key, value) {
@@ -3368,13 +3601,24 @@
3368
3601
  function close(response) {
3369
3602
  reportGlobalError(response, Error("Connection closed."));
3370
3603
  }
3371
- function loadServerReference(bundlerConfig, id, bound) {
3604
+ function loadServerReference(bundlerConfig, metaData) {
3605
+ var id = metaData.id;
3606
+ if ("string" !== typeof id) return null;
3372
3607
  var serverReference = resolveServerReference(bundlerConfig, id);
3373
3608
  bundlerConfig = preloadModule(serverReference);
3374
- return bound
3375
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
3609
+ metaData = metaData.bound;
3610
+ return metaData instanceof Promise
3611
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
3376
3612
  _ref = _ref[0];
3377
3613
  var fn = requireModule(serverReference);
3614
+ if (_ref.length > MAX_BOUND_ARGS)
3615
+ throw Error(
3616
+ "Server Function has too many bound arguments. Received " +
3617
+ _ref.length +
3618
+ " but the limit is " +
3619
+ MAX_BOUND_ARGS +
3620
+ "."
3621
+ );
3378
3622
  return fn.bind.apply(fn, [null].concat(_ref));
3379
3623
  })
3380
3624
  : bundlerConfig
@@ -3383,8 +3627,19 @@
3383
3627
  })
3384
3628
  : Promise.resolve(requireModule(serverReference));
3385
3629
  }
3386
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
3387
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
3630
+ function decodeBoundActionMetaData(
3631
+ body,
3632
+ serverManifest,
3633
+ formFieldPrefix,
3634
+ arraySizeLimit
3635
+ ) {
3636
+ body = createResponse(
3637
+ serverManifest,
3638
+ formFieldPrefix,
3639
+ void 0,
3640
+ body,
3641
+ arraySizeLimit
3642
+ );
3388
3643
  close(body);
3389
3644
  body = getChunk(body, 0);
3390
3645
  body.then(function () {});
@@ -3811,13 +4066,14 @@
3811
4066
  patchConsole(console, "table"),
3812
4067
  patchConsole(console, "trace"),
3813
4068
  patchConsole(console, "warn"));
3814
- var ObjectPrototype = Object.prototype,
4069
+ var ObjectPrototype$1 = Object.prototype,
3815
4070
  stringify = JSON.stringify,
3816
4071
  PENDING$1 = 0,
3817
4072
  COMPLETED = 1,
3818
4073
  ABORTED = 3,
3819
4074
  ERRORED$1 = 4,
3820
4075
  RENDERING = 5,
4076
+ __PROTO__$1 = "__proto__",
3821
4077
  OPENING = 10,
3822
4078
  ABORTING = 12,
3823
4079
  CLOSING = 13,
@@ -3840,16 +4096,23 @@
3840
4096
  case "fulfilled":
3841
4097
  if ("function" === typeof resolve) {
3842
4098
  for (
3843
- var inspectedValue = this.value, cycleProtection = 0;
4099
+ var inspectedValue = this.value,
4100
+ cycleProtection = 0,
4101
+ visited = new Set();
3844
4102
  inspectedValue instanceof ReactPromise;
3845
4103
 
3846
4104
  ) {
3847
4105
  cycleProtection++;
3848
- if (inspectedValue === this || 1e3 < cycleProtection) {
4106
+ if (
4107
+ inspectedValue === this ||
4108
+ visited.has(inspectedValue) ||
4109
+ 1e3 < cycleProtection
4110
+ ) {
3849
4111
  "function" === typeof reject &&
3850
4112
  reject(Error("Cannot have cyclic thenables."));
3851
4113
  return;
3852
4114
  }
4115
+ visited.add(inspectedValue);
3853
4116
  if ("fulfilled" === inspectedValue.status)
3854
4117
  inspectedValue = inspectedValue.value;
3855
4118
  else break;
@@ -3870,7 +4133,15 @@
3870
4133
  "function" === typeof reject && reject(this.reason);
3871
4134
  }
3872
4135
  };
3873
- var initializingHandler = null;
4136
+ var ObjectPrototype = Object.prototype,
4137
+ ArrayPrototype = Array.prototype,
4138
+ initializingHandler = null;
4139
+ FlightIterator.prototype = {};
4140
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
4141
+ return this;
4142
+ };
4143
+ var MAX_BIGINT_DIGITS = 300,
4144
+ MAX_BOUND_ARGS = 1e3;
3874
4145
  exports.createClientModuleProxy = function (moduleId) {
3875
4146
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3876
4147
  return new Proxy(moduleId, proxyHandlers$1);
@@ -3880,20 +4151,24 @@
3880
4151
  };
3881
4152
  exports.decodeAction = function (body, serverManifest) {
3882
4153
  var formData = new FormData(),
3883
- action = null;
4154
+ action = null,
4155
+ seenActions = new Set();
3884
4156
  body.forEach(function (value, key) {
3885
4157
  key.startsWith("$ACTION_")
3886
4158
  ? key.startsWith("$ACTION_REF_")
3887
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
4159
+ ? seenActions.has(key) ||
4160
+ (seenActions.add(key),
4161
+ (value = "$ACTION_" + key.slice(12) + ":"),
3888
4162
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
3889
- (action = loadServerReference(
3890
- serverManifest,
3891
- value.id,
3892
- value.bound
3893
- )))
4163
+ (action = loadServerReference(serverManifest, value)))
3894
4164
  : key.startsWith("$ACTION_ID_") &&
3895
- ((value = key.slice(11)),
3896
- (action = loadServerReference(serverManifest, value, null)))
4165
+ !seenActions.has(key) &&
4166
+ (seenActions.add(key),
4167
+ (value = key.slice(11)),
4168
+ (action = loadServerReference(serverManifest, {
4169
+ id: value,
4170
+ bound: null
4171
+ })))
3897
4172
  : formData.append(key, value);
3898
4173
  });
3899
4174
  return null === action
@@ -3929,7 +4204,8 @@
3929
4204
  webpackMap,
3930
4205
  "",
3931
4206
  options ? options.temporaryReferences : void 0,
3932
- body
4207
+ body,
4208
+ options ? options.arraySizeLimit : void 0
3933
4209
  );
3934
4210
  webpackMap = getChunk(body, 0);
3935
4211
  close(body);
@@ -3943,7 +4219,9 @@
3943
4219
  var response = createResponse(
3944
4220
  webpackMap,
3945
4221
  "",
3946
- options ? options.temporaryReferences : void 0
4222
+ options ? options.temporaryReferences : void 0,
4223
+ void 0,
4224
+ options ? options.arraySizeLimit : void 0
3947
4225
  ),
3948
4226
  pendingFiles = 0,
3949
4227
  queuedFields = [];
@@ -3967,13 +4245,13 @@
3967
4245
  );
3968
4246
  else {
3969
4247
  pendingFiles++;
3970
- var JSCompiler_object_inline_chunks_154 = [];
4248
+ var JSCompiler_object_inline_chunks_149 = [];
3971
4249
  value.on("data", function (chunk) {
3972
- JSCompiler_object_inline_chunks_154.push(chunk);
4250
+ JSCompiler_object_inline_chunks_149.push(chunk);
3973
4251
  });
3974
4252
  value.on("end", function () {
3975
4253
  try {
3976
- var blob = new Blob(JSCompiler_object_inline_chunks_154, {
4254
+ var blob = new Blob(JSCompiler_object_inline_chunks_149, {
3977
4255
  type: mimeType
3978
4256
  });
3979
4257
  response._formData.append(name, blob, filename);