react-server-dom-webpack 19.1.4 → 19.1.6

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.
@@ -1673,6 +1673,13 @@
1673
1673
  value
1674
1674
  ) {
1675
1675
  task.model = value;
1676
+ parentPropertyName === __PROTO__$1 &&
1677
+ callWithDebugContextInDEV(request, task, function () {
1678
+ console.error(
1679
+ "Expected not to serialize an object with own property `__proto__`. When parsed this property will be omitted.%s",
1680
+ describeObjectForErrorMessage(parent, parentPropertyName)
1681
+ );
1682
+ });
1676
1683
  if (value === REACT_ELEMENT_TYPE) return "$";
1677
1684
  if (null === value) return null;
1678
1685
  if ("object" === typeof value) {
@@ -1846,7 +1853,7 @@
1846
1853
  if (value instanceof Date) return "$D" + value.toJSON();
1847
1854
  elementReference = getPrototypeOf(value);
1848
1855
  if (
1849
- elementReference !== ObjectPrototype &&
1856
+ elementReference !== ObjectPrototype$1 &&
1850
1857
  (null === elementReference ||
1851
1858
  null !== getPrototypeOf(elementReference))
1852
1859
  )
@@ -2757,12 +2764,12 @@
2757
2764
  this.value = value;
2758
2765
  this.reason = reason;
2759
2766
  }
2760
- function wakeChunk(response, listeners, value) {
2767
+ function wakeChunk(response, listeners, value, chunk) {
2761
2768
  for (var i = 0; i < listeners.length; i++) {
2762
2769
  var listener = listeners[i];
2763
2770
  "function" === typeof listener
2764
2771
  ? listener(value)
2765
- : fulfillReference(response, listener, value);
2772
+ : fulfillReference(response, listener, value, chunk.reason);
2766
2773
  }
2767
2774
  }
2768
2775
  function rejectChunk(response, listeners, error) {
@@ -2773,27 +2780,6 @@
2773
2780
  : rejectReference(response, listener.handler, error);
2774
2781
  }
2775
2782
  }
2776
- function resolveBlockedCycle(resolvedChunk, reference) {
2777
- var referencedChunk = reference.handler.chunk;
2778
- if (null === referencedChunk) return null;
2779
- if (referencedChunk === resolvedChunk) return reference.handler;
2780
- reference = referencedChunk.value;
2781
- if (null !== reference)
2782
- for (
2783
- referencedChunk = 0;
2784
- referencedChunk < reference.length;
2785
- referencedChunk++
2786
- ) {
2787
- var listener = reference[referencedChunk];
2788
- if (
2789
- "function" !== typeof listener &&
2790
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2791
- null !== listener)
2792
- )
2793
- return listener;
2794
- }
2795
- return null;
2796
- }
2797
2783
  function triggerErrorOnChunk(response, chunk, error) {
2798
2784
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2799
2785
  chunk.reason.error(error);
@@ -2817,57 +2803,25 @@
2817
2803
  chunk.value = value;
2818
2804
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2819
2805
  if (null !== resolveListeners)
2820
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
2806
+ switch ((initializeModelChunk(chunk), chunk.status)) {
2821
2807
  case "fulfilled":
2822
- wakeChunk(response, resolveListeners, chunk.value);
2808
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
2823
2809
  break;
2824
2810
  case "blocked":
2825
- for (value = 0; value < resolveListeners.length; value++)
2826
- if (
2827
- ((id = resolveListeners[value]), "function" !== typeof id)
2828
- ) {
2829
- var cyclicHandler = resolveBlockedCycle(chunk, id);
2830
- if (null !== cyclicHandler)
2831
- switch (
2832
- (fulfillReference(response, id, cyclicHandler.value),
2833
- resolveListeners.splice(value, 1),
2834
- value--,
2835
- null !== rejectListeners &&
2836
- ((id = rejectListeners.indexOf(id)),
2837
- -1 !== id && rejectListeners.splice(id, 1)),
2838
- chunk.status)
2839
- ) {
2840
- case "fulfilled":
2841
- wakeChunk(response, resolveListeners, chunk.value);
2842
- break a;
2843
- case "rejected":
2844
- null !== rejectListeners &&
2845
- rejectChunk(response, rejectListeners, chunk.reason);
2846
- break a;
2847
- }
2848
- }
2849
2811
  case "pending":
2850
2812
  if (chunk.value)
2851
- for (
2852
- response = 0;
2853
- response < resolveListeners.length;
2854
- response++
2855
- )
2856
- chunk.value.push(resolveListeners[response]);
2813
+ for (value = 0; value < resolveListeners.length; value++)
2814
+ chunk.value.push(resolveListeners[value]);
2857
2815
  else chunk.value = resolveListeners;
2858
2816
  if (chunk.reason) {
2859
2817
  if (rejectListeners)
2860
- for (
2861
- resolveListeners = 0;
2862
- resolveListeners < rejectListeners.length;
2863
- resolveListeners++
2864
- )
2865
- chunk.reason.push(rejectListeners[resolveListeners]);
2818
+ for (value = 0; value < rejectListeners.length; value++)
2819
+ chunk.reason.push(rejectListeners[value]);
2866
2820
  } else chunk.reason = rejectListeners;
2867
2821
  break;
2868
2822
  case "rejected":
2869
2823
  rejectListeners &&
2870
- wakeChunk(response, rejectListeners, chunk.reason);
2824
+ rejectChunk(response, rejectListeners, chunk.reason);
2871
2825
  }
2872
2826
  }
2873
2827
  }
@@ -2891,15 +2845,51 @@
2891
2845
  );
2892
2846
  }
2893
2847
  function loadServerReference$1(response, metaData, parentObject, key) {
2848
+ function reject(error) {
2849
+ var rejectListeners = blockedPromise.reason,
2850
+ erroredPromise = blockedPromise;
2851
+ erroredPromise.status = "rejected";
2852
+ erroredPromise.value = null;
2853
+ erroredPromise.reason = error;
2854
+ null !== rejectListeners &&
2855
+ rejectChunk(response, rejectListeners, error);
2856
+ rejectReference(response, handler, error);
2857
+ }
2894
2858
  var id = metaData.id;
2895
2859
  if ("string" !== typeof id || "then" === key) return null;
2860
+ var cachedPromise = metaData.$$promise;
2861
+ if (void 0 !== cachedPromise) {
2862
+ if ("fulfilled" === cachedPromise.status)
2863
+ return (
2864
+ (cachedPromise = cachedPromise.value),
2865
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
2866
+ );
2867
+ initializingHandler
2868
+ ? ((id = initializingHandler), id.deps++)
2869
+ : (id = initializingHandler =
2870
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2871
+ cachedPromise.then(
2872
+ resolveReference.bind(null, response, id, parentObject, key),
2873
+ rejectReference.bind(null, response, id)
2874
+ );
2875
+ return null;
2876
+ }
2877
+ var blockedPromise = new ReactPromise("blocked", null, null);
2878
+ metaData.$$promise = blockedPromise;
2896
2879
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2897
- id = metaData.bound;
2898
- var promise = preloadModule(serverReference);
2899
- if (promise)
2900
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2901
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2902
- else return requireModule(serverReference);
2880
+ cachedPromise = metaData.bound;
2881
+ if ((id = preloadModule(serverReference)))
2882
+ cachedPromise instanceof ReactPromise &&
2883
+ (id = Promise.all([id, cachedPromise]));
2884
+ else if (cachedPromise instanceof ReactPromise)
2885
+ id = Promise.resolve(cachedPromise);
2886
+ else
2887
+ return (
2888
+ (cachedPromise = requireModule(serverReference)),
2889
+ (id = blockedPromise),
2890
+ (id.status = "fulfilled"),
2891
+ (id.value = cachedPromise)
2892
+ );
2903
2893
  if (initializingHandler) {
2904
2894
  var handler = initializingHandler;
2905
2895
  handler.deps++;
@@ -2911,93 +2901,107 @@
2911
2901
  deps: 1,
2912
2902
  errored: !1
2913
2903
  };
2914
- promise.then(
2915
- function () {
2916
- var resolvedValue = requireModule(serverReference);
2917
- if (metaData.bound) {
2918
- var promiseValue = metaData.bound.value;
2919
- promiseValue = Array.isArray(promiseValue)
2920
- ? promiseValue.slice(0)
2921
- : [];
2922
- promiseValue.unshift(null);
2923
- resolvedValue = resolvedValue.bind.apply(
2924
- resolvedValue,
2925
- promiseValue
2904
+ id.then(function () {
2905
+ var resolvedValue = requireModule(serverReference);
2906
+ if (metaData.bound) {
2907
+ var promiseValue = metaData.bound.value;
2908
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
2909
+ if (promiseValue.length > MAX_BOUND_ARGS) {
2910
+ reject(
2911
+ Error(
2912
+ "Server Function has too many bound arguments. Received " +
2913
+ promiseValue.length +
2914
+ " but the limit is " +
2915
+ MAX_BOUND_ARGS +
2916
+ "."
2917
+ )
2926
2918
  );
2919
+ return;
2927
2920
  }
2928
- parentObject[key] = resolvedValue;
2929
- "" === key &&
2930
- null === handler.value &&
2931
- (handler.value = resolvedValue);
2932
- handler.deps--;
2933
- 0 === handler.deps &&
2934
- ((resolvedValue = handler.chunk),
2935
- null !== resolvedValue &&
2936
- "blocked" === resolvedValue.status &&
2937
- ((promiseValue = resolvedValue.value),
2938
- (resolvedValue.status = "fulfilled"),
2939
- (resolvedValue.value = handler.value),
2940
- (resolvedValue.reason = null),
2941
- null !== promiseValue &&
2942
- wakeChunk(response, promiseValue, handler.value)));
2943
- },
2944
- function (error) {
2945
- if (!handler.errored) {
2946
- handler.errored = !0;
2947
- handler.value = null;
2948
- handler.reason = error;
2949
- var chunk = handler.chunk;
2950
- null !== chunk &&
2951
- "blocked" === chunk.status &&
2952
- triggerErrorOnChunk(response, chunk, error);
2953
- }
2921
+ promiseValue.unshift(null);
2922
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
2954
2923
  }
2955
- );
2924
+ promiseValue = blockedPromise.value;
2925
+ var initializedPromise = blockedPromise;
2926
+ initializedPromise.status = "fulfilled";
2927
+ initializedPromise.value = resolvedValue;
2928
+ initializedPromise.reason = null;
2929
+ null !== promiseValue &&
2930
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
2931
+ resolveReference(response, handler, parentObject, key, resolvedValue);
2932
+ }, reject);
2956
2933
  return null;
2957
2934
  }
2958
- function reviveModel(response, parentObj, parentKey, value, reference) {
2935
+ function reviveModel(
2936
+ response,
2937
+ parentObj,
2938
+ parentKey,
2939
+ value,
2940
+ reference,
2941
+ arrayRoot
2942
+ ) {
2959
2943
  if ("string" === typeof value)
2960
2944
  return parseModelString(
2961
2945
  response,
2962
2946
  parentObj,
2963
2947
  parentKey,
2964
2948
  value,
2965
- reference
2949
+ reference,
2950
+ arrayRoot
2966
2951
  );
2967
2952
  if ("object" === typeof value && null !== value)
2968
2953
  if (
2969
2954
  (void 0 !== reference &&
2970
2955
  void 0 !== response._temporaryReferences &&
2971
2956
  response._temporaryReferences.set(value, reference),
2972
- Array.isArray(value))
2973
- )
2974
- for (var i = 0; i < value.length; i++)
2975
- value[i] = reviveModel(
2957
+ isArrayImpl(value))
2958
+ ) {
2959
+ if (null === arrayRoot) {
2960
+ var childContext = { count: 0, fork: !1 };
2961
+ response._rootArrayContexts.set(value, childContext);
2962
+ } else childContext = arrayRoot;
2963
+ 1 < value.length && (childContext.fork = !0);
2964
+ bumpArrayCount(childContext, value.length + 1, response);
2965
+ for (parentObj = 0; parentObj < value.length; parentObj++)
2966
+ value[parentObj] = reviveModel(
2976
2967
  response,
2977
2968
  value,
2978
- "" + i,
2979
- value[i],
2980
- void 0 !== reference ? reference + ":" + i : void 0
2969
+ "" + parentObj,
2970
+ value[parentObj],
2971
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
2972
+ childContext
2981
2973
  );
2982
- else
2983
- for (i in value)
2984
- hasOwnProperty.call(value, i) &&
2985
- ((parentObj =
2986
- void 0 !== reference && -1 === i.indexOf(":")
2987
- ? reference + ":" + i
2988
- : void 0),
2989
- (parentObj = reviveModel(
2990
- response,
2991
- value,
2992
- i,
2993
- value[i],
2994
- parentObj
2995
- )),
2996
- void 0 !== parentObj || "__proto__" === i
2997
- ? (value[i] = parentObj)
2998
- : delete value[i]);
2974
+ } else
2975
+ for (childContext in value)
2976
+ hasOwnProperty.call(value, childContext) &&
2977
+ ("__proto__" === childContext
2978
+ ? delete value[childContext]
2979
+ : ((parentObj =
2980
+ void 0 !== reference && -1 === childContext.indexOf(":")
2981
+ ? reference + ":" + childContext
2982
+ : void 0),
2983
+ (parentObj = reviveModel(
2984
+ response,
2985
+ value,
2986
+ childContext,
2987
+ value[childContext],
2988
+ parentObj,
2989
+ null
2990
+ )),
2991
+ void 0 !== parentObj
2992
+ ? (value[childContext] = parentObj)
2993
+ : delete value[childContext]));
2999
2994
  return value;
3000
2995
  }
2996
+ function bumpArrayCount(arrayContext, slots, response) {
2997
+ if (
2998
+ (arrayContext.count += slots) > response._arraySizeLimit &&
2999
+ arrayContext.fork
3000
+ )
3001
+ throw Error(
3002
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
3003
+ );
3004
+ }
3001
3005
  function initializeModelChunk(chunk) {
3002
3006
  var prevHandler = initializingHandler;
3003
3007
  initializingHandler = null;
@@ -3011,13 +3015,15 @@
3011
3015
  chunk.value = null;
3012
3016
  chunk.reason = null;
3013
3017
  try {
3014
- var rawModel = JSON.parse(resolvedModel),
3015
- value = reviveModel(
3018
+ var rawModel = JSON.parse(resolvedModel);
3019
+ resolvedModel = { count: 0, fork: !1 };
3020
+ var value = reviveModel(
3016
3021
  response,
3017
3022
  { "": rawModel },
3018
3023
  "",
3019
3024
  rawModel,
3020
- _chunk$reason
3025
+ _chunk$reason,
3026
+ resolvedModel
3021
3027
  ),
3022
3028
  resolveListeners = chunk.value;
3023
3029
  if (null !== resolveListeners)
@@ -3029,19 +3035,20 @@
3029
3035
  var listener = resolveListeners[rawModel];
3030
3036
  "function" === typeof listener
3031
3037
  ? listener(value)
3032
- : fulfillReference(response, listener, value);
3038
+ : fulfillReference(response, listener, value, resolvedModel);
3033
3039
  }
3034
3040
  if (null !== initializingHandler) {
3035
3041
  if (initializingHandler.errored) throw initializingHandler.reason;
3036
3042
  if (0 < initializingHandler.deps) {
3037
3043
  initializingHandler.value = value;
3044
+ initializingHandler.reason = resolvedModel;
3038
3045
  initializingHandler.chunk = chunk;
3039
3046
  return;
3040
3047
  }
3041
3048
  }
3042
3049
  chunk.status = "fulfilled";
3043
3050
  chunk.value = value;
3044
- chunk.reason = null;
3051
+ chunk.reason = resolvedModel;
3045
3052
  } catch (error) {
3046
3053
  (chunk.status = "rejected"), (chunk.reason = error);
3047
3054
  } finally {
@@ -3056,7 +3063,8 @@
3056
3063
  ? triggerErrorOnChunk(response, chunk, error)
3057
3064
  : "fulfilled" === chunk.status &&
3058
3065
  null !== chunk.reason &&
3059
- chunk.reason.error(error);
3066
+ ((chunk = chunk.reason),
3067
+ "function" === typeof chunk.error && chunk.error(error));
3060
3068
  });
3061
3069
  }
3062
3070
  function getChunk(response, id) {
@@ -3077,40 +3085,74 @@
3077
3085
  chunks.set(id, chunk));
3078
3086
  return chunk;
3079
3087
  }
3080
- function fulfillReference(response, reference, value) {
3088
+ function fulfillReference(response, reference, value, arrayRoot) {
3081
3089
  var handler = reference.handler,
3082
3090
  parentObject = reference.parentObject,
3083
3091
  key = reference.key,
3084
3092
  map = reference.map,
3085
3093
  path = reference.path;
3086
3094
  try {
3087
- for (var i = 1; i < path.length; i++) {
3095
+ for (
3096
+ var localLength = 0,
3097
+ rootArrayContexts = response._rootArrayContexts,
3098
+ i = 1;
3099
+ i < path.length;
3100
+ i++
3101
+ ) {
3088
3102
  var name = path[i];
3089
3103
  if (
3090
3104
  "object" !== typeof value ||
3091
- !hasOwnProperty.call(value, name) ||
3092
- value instanceof Promise
3105
+ null === value ||
3106
+ (getPrototypeOf(value) !== ObjectPrototype &&
3107
+ getPrototypeOf(value) !== ArrayPrototype) ||
3108
+ !hasOwnProperty.call(value, name)
3093
3109
  )
3094
3110
  throw Error("Invalid reference.");
3095
3111
  value = value[name];
3112
+ if (isArrayImpl(value))
3113
+ (localLength = 0),
3114
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
3115
+ else if (((arrayRoot = null), "string" === typeof value))
3116
+ localLength = value.length;
3117
+ else if ("bigint" === typeof value) {
3118
+ var n = Math.abs(Number(value));
3119
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
3120
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
3096
3121
  }
3097
- var mappedValue = map(response, value, parentObject, key);
3098
- parentObject[key] = mappedValue;
3099
- "" === key && null === handler.value && (handler.value = mappedValue);
3122
+ var resolvedValue = map(response, value, parentObject, key);
3123
+ var referenceArrayRoot = reference.arrayRoot;
3124
+ null !== referenceArrayRoot &&
3125
+ (null !== arrayRoot
3126
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
3127
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
3128
+ : 0 < localLength &&
3129
+ bumpArrayCount(referenceArrayRoot, localLength, response));
3100
3130
  } catch (error) {
3101
- rejectReference(response, reference.handler, error);
3131
+ rejectReference(response, handler, error);
3102
3132
  return;
3103
3133
  }
3134
+ resolveReference(response, handler, parentObject, key, resolvedValue);
3135
+ }
3136
+ function resolveReference(
3137
+ response,
3138
+ handler,
3139
+ parentObject,
3140
+ key,
3141
+ resolvedValue
3142
+ ) {
3143
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
3144
+ "" === key && null === handler.value && (handler.value = resolvedValue);
3104
3145
  handler.deps--;
3105
3146
  0 === handler.deps &&
3106
- ((reference = handler.chunk),
3107
- null !== reference &&
3108
- "blocked" === reference.status &&
3109
- ((value = reference.value),
3110
- (reference.status = "fulfilled"),
3111
- (reference.value = handler.value),
3112
- (reference.reason = handler.reason),
3113
- null !== value && wakeChunk(response, value, handler.value)));
3147
+ ((parentObject = handler.chunk),
3148
+ null !== parentObject &&
3149
+ "blocked" === parentObject.status &&
3150
+ ((key = parentObject.value),
3151
+ (parentObject.status = "fulfilled"),
3152
+ (parentObject.value = handler.value),
3153
+ (parentObject.reason = handler.reason),
3154
+ null !== key &&
3155
+ wakeChunk(response, key, handler.value, parentObject)));
3114
3156
  }
3115
3157
  function rejectReference(response, handler, error) {
3116
3158
  handler.errored ||
@@ -3122,29 +3164,66 @@
3122
3164
  "blocked" === handler.status &&
3123
3165
  triggerErrorOnChunk(response, handler, error));
3124
3166
  }
3125
- function getOutlinedModel(response, reference, parentObject, key, map) {
3167
+ function getOutlinedModel(
3168
+ response,
3169
+ reference,
3170
+ parentObject,
3171
+ key,
3172
+ referenceArrayRoot,
3173
+ map
3174
+ ) {
3126
3175
  reference = reference.split(":");
3127
- var id = parseInt(reference[0], 16);
3128
- id = getChunk(response, id);
3129
- switch (id.status) {
3176
+ var id = parseInt(reference[0], 16),
3177
+ chunk = getChunk(response, id);
3178
+ switch (chunk.status) {
3130
3179
  case "resolved_model":
3131
- initializeModelChunk(id);
3180
+ initializeModelChunk(chunk);
3132
3181
  }
3133
- switch (id.status) {
3182
+ switch (chunk.status) {
3134
3183
  case "fulfilled":
3135
- id = id.value;
3136
- for (var i = 1; i < reference.length; i++) {
3137
- var name = reference[i];
3184
+ id = chunk.value;
3185
+ chunk = chunk.reason;
3186
+ for (
3187
+ var localLength = 0,
3188
+ rootArrayContexts = response._rootArrayContexts,
3189
+ i = 1;
3190
+ i < reference.length;
3191
+ i++
3192
+ ) {
3193
+ localLength = reference[i];
3138
3194
  if (
3139
3195
  "object" !== typeof id ||
3140
- !hasOwnProperty.call(id, name) ||
3141
- id instanceof Promise
3196
+ null === id ||
3197
+ (getPrototypeOf(id) !== ObjectPrototype &&
3198
+ getPrototypeOf(id) !== ArrayPrototype) ||
3199
+ !hasOwnProperty.call(id, localLength)
3142
3200
  )
3143
3201
  throw Error("Invalid reference.");
3144
- id = id[name];
3202
+ id = id[localLength];
3203
+ isArrayImpl(id)
3204
+ ? ((localLength = 0),
3205
+ (chunk = rootArrayContexts.get(id) || chunk))
3206
+ : ((chunk = null),
3207
+ "string" === typeof id
3208
+ ? (localLength = id.length)
3209
+ : "bigint" === typeof id
3210
+ ? ((localLength = Math.abs(Number(id))),
3211
+ (localLength =
3212
+ 0 === localLength
3213
+ ? 1
3214
+ : Math.floor(Math.log10(localLength)) + 1))
3215
+ : (localLength = ArrayBuffer.isView(id)
3216
+ ? id.byteLength
3217
+ : 0));
3145
3218
  }
3146
- return map(response, id, parentObject, key);
3147
- case "pending":
3219
+ parentObject = map(response, id, parentObject, key);
3220
+ null !== referenceArrayRoot &&
3221
+ (null !== chunk
3222
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
3223
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
3224
+ : 0 < localLength &&
3225
+ bumpArrayCount(referenceArrayRoot, localLength, response));
3226
+ return parentObject;
3148
3227
  case "blocked":
3149
3228
  return (
3150
3229
  initializingHandler
@@ -3157,31 +3236,34 @@
3157
3236
  deps: 1,
3158
3237
  errored: !1
3159
3238
  }),
3160
- (parentObject = {
3239
+ (referenceArrayRoot = {
3161
3240
  handler: response,
3162
3241
  parentObject: parentObject,
3163
3242
  key: key,
3164
3243
  map: map,
3165
- path: reference
3244
+ path: reference,
3245
+ arrayRoot: referenceArrayRoot
3166
3246
  }),
3167
- null === id.value
3168
- ? (id.value = [parentObject])
3169
- : id.value.push(parentObject),
3170
- null === id.reason
3171
- ? (id.reason = [parentObject])
3172
- : id.reason.push(parentObject),
3247
+ null === chunk.value
3248
+ ? (chunk.value = [referenceArrayRoot])
3249
+ : chunk.value.push(referenceArrayRoot),
3250
+ null === chunk.reason
3251
+ ? (chunk.reason = [referenceArrayRoot])
3252
+ : chunk.reason.push(referenceArrayRoot),
3173
3253
  null
3174
3254
  );
3255
+ case "pending":
3256
+ throw Error("Invalid forward reference.");
3175
3257
  default:
3176
3258
  return (
3177
3259
  initializingHandler
3178
3260
  ? ((initializingHandler.errored = !0),
3179
3261
  (initializingHandler.value = null),
3180
- (initializingHandler.reason = id.reason))
3262
+ (initializingHandler.reason = chunk.reason))
3181
3263
  : (initializingHandler = {
3182
3264
  chunk: null,
3183
3265
  value: null,
3184
- reason: id.reason,
3266
+ reason: chunk.reason,
3185
3267
  deps: 0,
3186
3268
  errored: !0
3187
3269
  }),
@@ -3190,12 +3272,21 @@
3190
3272
  }
3191
3273
  }
3192
3274
  function createMap(response, model) {
3275
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
3276
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
3277
+ model.$$consumed = !0;
3193
3278
  return new Map(model);
3194
3279
  }
3195
3280
  function createSet(response, model) {
3281
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
3282
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
3283
+ model.$$consumed = !0;
3196
3284
  return new Set(model);
3197
3285
  }
3198
3286
  function extractIterator(response, model) {
3287
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
3288
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
3289
+ model.$$consumed = !0;
3199
3290
  return model[Symbol.iterator]();
3200
3291
  }
3201
3292
  function createModel(response, model, parentObject, key) {
@@ -3207,13 +3298,34 @@
3207
3298
  constructor,
3208
3299
  bytesPerElement,
3209
3300
  parentObject,
3210
- parentKey
3301
+ parentKey,
3302
+ referenceArrayRoot
3211
3303
  ) {
3304
+ function reject(error) {
3305
+ if (!handler.errored) {
3306
+ handler.errored = !0;
3307
+ handler.value = null;
3308
+ handler.reason = error;
3309
+ var chunk = handler.chunk;
3310
+ null !== chunk &&
3311
+ "blocked" === chunk.status &&
3312
+ triggerErrorOnChunk(response, chunk, error);
3313
+ }
3314
+ }
3212
3315
  reference = parseInt(reference.slice(2), 16);
3213
- bytesPerElement = response._prefix + reference;
3214
- if (response._chunks.has(reference))
3316
+ var key = response._prefix + reference;
3317
+ bytesPerElement = response._chunks;
3318
+ if (bytesPerElement.has(reference))
3215
3319
  throw Error("Already initialized typed array.");
3216
- reference = response._formData.get(bytesPerElement).arrayBuffer();
3320
+ bytesPerElement.set(
3321
+ reference,
3322
+ new ReactPromise(
3323
+ "rejected",
3324
+ null,
3325
+ Error("Already initialized typed array.")
3326
+ )
3327
+ );
3328
+ reference = response._formData.get(key).arrayBuffer();
3217
3329
  if (initializingHandler) {
3218
3330
  var handler = initializingHandler;
3219
3331
  handler.deps++;
@@ -3225,40 +3337,32 @@
3225
3337
  deps: 1,
3226
3338
  errored: !1
3227
3339
  };
3228
- reference.then(
3229
- function (buffer) {
3230
- buffer =
3340
+ reference.then(function (buffer) {
3341
+ try {
3342
+ null !== referenceArrayRoot &&
3343
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
3344
+ var resolvedValue =
3231
3345
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
3232
- parentObject[parentKey] = buffer;
3346
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
3233
3347
  "" === parentKey &&
3234
3348
  null === handler.value &&
3235
- (handler.value = buffer);
3236
- handler.deps--;
3237
- if (
3238
- 0 === handler.deps &&
3239
- ((buffer = handler.chunk),
3240
- null !== buffer && "blocked" === buffer.status)
3241
- ) {
3242
- var resolveListeners = buffer.value;
3243
- buffer.status = "fulfilled";
3244
- buffer.value = handler.value;
3245
- buffer.reason = null;
3246
- null !== resolveListeners &&
3247
- wakeChunk(response, resolveListeners, handler.value);
3248
- }
3249
- },
3250
- function (error) {
3251
- if (!handler.errored) {
3252
- handler.errored = !0;
3253
- handler.value = null;
3254
- handler.reason = error;
3255
- var chunk = handler.chunk;
3256
- null !== chunk &&
3257
- "blocked" === chunk.status &&
3258
- triggerErrorOnChunk(response, chunk, error);
3259
- }
3349
+ (handler.value = resolvedValue);
3350
+ } catch (x) {
3351
+ reject(x);
3352
+ return;
3260
3353
  }
3261
- );
3354
+ handler.deps--;
3355
+ 0 === handler.deps &&
3356
+ ((buffer = handler.chunk),
3357
+ null !== buffer &&
3358
+ "blocked" === buffer.status &&
3359
+ ((resolvedValue = buffer.value),
3360
+ (buffer.status = "fulfilled"),
3361
+ (buffer.value = handler.value),
3362
+ (buffer.reason = null),
3363
+ null !== resolvedValue &&
3364
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
3365
+ }, reject);
3262
3366
  return null;
3263
3367
  }
3264
3368
  function resolveStream(response, id, stream, controller) {
@@ -3276,90 +3380,78 @@
3276
3380
  : controller.enqueueModel(chunks));
3277
3381
  }
3278
3382
  function parseReadableStream(response, reference, type) {
3383
+ function enqueue(value) {
3384
+ "bytes" !== type || ArrayBuffer.isView(value)
3385
+ ? controller.enqueue(value)
3386
+ : flightController.error(Error("Invalid data for bytes stream."));
3387
+ }
3279
3388
  reference = parseInt(reference.slice(2), 16);
3280
3389
  if (response._chunks.has(reference))
3281
3390
  throw Error("Already initialized stream.");
3282
3391
  var controller = null,
3283
- closed = !1;
3284
- type = new ReadableStream({
3285
- type: type,
3286
- start: function (c) {
3287
- controller = c;
3288
- }
3289
- });
3290
- var previousBlockedChunk = null;
3291
- resolveStream(response, reference, type, {
3292
- enqueueModel: function (json) {
3293
- if (null === previousBlockedChunk) {
3294
- var chunk = new ReactPromise(
3295
- "resolved_model",
3296
- json,
3297
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3298
- );
3299
- initializeModelChunk(chunk);
3300
- "fulfilled" === chunk.status
3301
- ? controller.enqueue(chunk.value)
3302
- : (chunk.then(
3303
- function (v) {
3304
- return controller.enqueue(v);
3305
- },
3306
- function (e) {
3307
- return controller.error(e);
3308
- }
3309
- ),
3310
- (previousBlockedChunk = chunk));
3311
- } else {
3312
- chunk = previousBlockedChunk;
3313
- var _chunk = new ReactPromise("pending", null, null);
3314
- _chunk.then(
3315
- function (v) {
3316
- return controller.enqueue(v);
3317
- },
3318
- function (e) {
3319
- return controller.error(e);
3320
- }
3321
- );
3322
- previousBlockedChunk = _chunk;
3323
- chunk.then(function () {
3324
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3325
- resolveModelChunk(response, _chunk, json, -1);
3326
- });
3392
+ closed = !1,
3393
+ stream = new ReadableStream({
3394
+ type: type,
3395
+ start: function (c) {
3396
+ controller = c;
3327
3397
  }
3328
- },
3329
- close: function () {
3330
- if (!closed)
3331
- if (((closed = !0), null === previousBlockedChunk))
3332
- controller.close();
3333
- else {
3334
- var blockedChunk = previousBlockedChunk;
3335
- previousBlockedChunk = null;
3336
- blockedChunk.then(function () {
3337
- return controller.close();
3338
- });
3339
- }
3340
- },
3341
- error: function (error) {
3342
- if (!closed)
3343
- if (((closed = !0), null === previousBlockedChunk))
3344
- controller.error(error);
3345
- else {
3346
- var blockedChunk = previousBlockedChunk;
3347
- previousBlockedChunk = null;
3348
- blockedChunk.then(function () {
3349
- return controller.error(error);
3398
+ }),
3399
+ previousBlockedChunk = null,
3400
+ flightController = {
3401
+ enqueueModel: function (json) {
3402
+ if (null === previousBlockedChunk) {
3403
+ var chunk = new ReactPromise(
3404
+ "resolved_model",
3405
+ json,
3406
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3407
+ );
3408
+ initializeModelChunk(chunk);
3409
+ "fulfilled" === chunk.status
3410
+ ? enqueue(chunk.value)
3411
+ : (chunk.then(enqueue, flightController.error),
3412
+ (previousBlockedChunk = chunk));
3413
+ } else {
3414
+ chunk = previousBlockedChunk;
3415
+ var _chunk = new ReactPromise("pending", null, null);
3416
+ _chunk.then(enqueue, flightController.error);
3417
+ previousBlockedChunk = _chunk;
3418
+ chunk.then(function () {
3419
+ previousBlockedChunk === _chunk &&
3420
+ (previousBlockedChunk = null);
3421
+ resolveModelChunk(response, _chunk, json, -1);
3350
3422
  });
3351
3423
  }
3352
- }
3353
- });
3354
- return type;
3355
- }
3356
- function asyncIterator() {
3357
- return this;
3424
+ },
3425
+ close: function () {
3426
+ if (!closed)
3427
+ if (((closed = !0), null === previousBlockedChunk))
3428
+ controller.close();
3429
+ else {
3430
+ var blockedChunk = previousBlockedChunk;
3431
+ previousBlockedChunk = null;
3432
+ blockedChunk.then(function () {
3433
+ return controller.close();
3434
+ });
3435
+ }
3436
+ },
3437
+ error: function (error) {
3438
+ if (!closed)
3439
+ if (((closed = !0), null === previousBlockedChunk))
3440
+ controller.error(error);
3441
+ else {
3442
+ var blockedChunk = previousBlockedChunk;
3443
+ previousBlockedChunk = null;
3444
+ blockedChunk.then(function () {
3445
+ return controller.error(error);
3446
+ });
3447
+ }
3448
+ }
3449
+ };
3450
+ resolveStream(response, reference, stream, flightController);
3451
+ return stream;
3358
3452
  }
3359
- function createIterator(next) {
3360
- next = { next: next };
3361
- next[ASYNC_ITERATOR] = asyncIterator;
3362
- return next;
3453
+ function FlightIterator(next) {
3454
+ this.next = next;
3363
3455
  }
3364
3456
  function parseAsyncIterable(response, reference, iterator) {
3365
3457
  reference = parseInt(reference.slice(2), 16);
@@ -3370,7 +3462,7 @@
3370
3462
  nextWriteIndex = 0,
3371
3463
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
3372
3464
  var nextReadIndex = 0;
3373
- return createIterator(function (arg) {
3465
+ return new FlightIterator(function (arg) {
3374
3466
  if (void 0 !== arg)
3375
3467
  throw Error(
3376
3468
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -3449,19 +3541,30 @@
3449
3541
  });
3450
3542
  return iterator;
3451
3543
  }
3452
- function parseModelString(response, obj, key, value, reference) {
3544
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
3453
3545
  if ("$" === value[0]) {
3454
3546
  switch (value[1]) {
3455
3547
  case "$":
3456
- return value.slice(1);
3548
+ return (
3549
+ null !== arrayRoot &&
3550
+ bumpArrayCount(arrayRoot, value.length - 1, response),
3551
+ value.slice(1)
3552
+ );
3457
3553
  case "@":
3458
3554
  return (
3459
3555
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3460
3556
  );
3461
3557
  case "h":
3462
3558
  return (
3463
- (value = value.slice(2)),
3464
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
3559
+ (arrayRoot = value.slice(2)),
3560
+ getOutlinedModel(
3561
+ response,
3562
+ arrayRoot,
3563
+ obj,
3564
+ key,
3565
+ null,
3566
+ loadServerReference$1
3567
+ )
3465
3568
  );
3466
3569
  case "T":
3467
3570
  if (
@@ -3477,27 +3580,44 @@
3477
3580
  );
3478
3581
  case "Q":
3479
3582
  return (
3480
- (value = value.slice(2)),
3481
- getOutlinedModel(response, value, obj, key, createMap)
3583
+ (arrayRoot = value.slice(2)),
3584
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
3482
3585
  );
3483
3586
  case "W":
3484
3587
  return (
3485
- (value = value.slice(2)),
3486
- getOutlinedModel(response, value, obj, key, createSet)
3588
+ (arrayRoot = value.slice(2)),
3589
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
3487
3590
  );
3488
3591
  case "K":
3489
3592
  obj = value.slice(2);
3490
- var formPrefix = response._prefix + obj + "_",
3491
- data = new FormData();
3492
- response._formData.forEach(function (entry, entryKey) {
3493
- entryKey.startsWith(formPrefix) &&
3494
- data.append(entryKey.slice(formPrefix.length), entry);
3495
- });
3496
- return data;
3593
+ obj = response._prefix + obj + "_";
3594
+ key = new FormData();
3595
+ response = response._formData;
3596
+ arrayRoot = Array.from(response.keys());
3597
+ for (value = 0; value < arrayRoot.length; value++)
3598
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
3599
+ for (
3600
+ var entries = response.getAll(reference),
3601
+ newKey = reference.slice(obj.length),
3602
+ j = 0;
3603
+ j < entries.length;
3604
+ j++
3605
+ )
3606
+ key.append(newKey, entries[j]);
3607
+ response.delete(reference);
3608
+ }
3609
+ return key;
3497
3610
  case "i":
3498
3611
  return (
3499
- (value = value.slice(2)),
3500
- getOutlinedModel(response, value, obj, key, extractIterator)
3612
+ (arrayRoot = value.slice(2)),
3613
+ getOutlinedModel(
3614
+ response,
3615
+ arrayRoot,
3616
+ obj,
3617
+ key,
3618
+ null,
3619
+ extractIterator
3620
+ )
3501
3621
  );
3502
3622
  case "I":
3503
3623
  return Infinity;
@@ -3510,15 +3630,48 @@
3510
3630
  case "D":
3511
3631
  return new Date(Date.parse(value.slice(2)));
3512
3632
  case "n":
3513
- return BigInt(value.slice(2));
3514
- }
3515
- switch (value[1]) {
3633
+ obj = value.slice(2);
3634
+ if (obj.length > MAX_BIGINT_DIGITS)
3635
+ throw Error(
3636
+ "BigInt is too large. Received " +
3637
+ obj.length +
3638
+ " digits but the limit is " +
3639
+ MAX_BIGINT_DIGITS +
3640
+ "."
3641
+ );
3642
+ null !== arrayRoot &&
3643
+ bumpArrayCount(arrayRoot, obj.length, response);
3644
+ return BigInt(obj);
3516
3645
  case "A":
3517
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
3646
+ return parseTypedArray(
3647
+ response,
3648
+ value,
3649
+ ArrayBuffer,
3650
+ 1,
3651
+ obj,
3652
+ key,
3653
+ arrayRoot
3654
+ );
3518
3655
  case "O":
3519
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
3656
+ return parseTypedArray(
3657
+ response,
3658
+ value,
3659
+ Int8Array,
3660
+ 1,
3661
+ obj,
3662
+ key,
3663
+ arrayRoot
3664
+ );
3520
3665
  case "o":
3521
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
3666
+ return parseTypedArray(
3667
+ response,
3668
+ value,
3669
+ Uint8Array,
3670
+ 1,
3671
+ obj,
3672
+ key,
3673
+ arrayRoot
3674
+ );
3522
3675
  case "U":
3523
3676
  return parseTypedArray(
3524
3677
  response,
@@ -3526,22 +3679,79 @@
3526
3679
  Uint8ClampedArray,
3527
3680
  1,
3528
3681
  obj,
3529
- key
3682
+ key,
3683
+ arrayRoot
3530
3684
  );
3531
3685
  case "S":
3532
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
3686
+ return parseTypedArray(
3687
+ response,
3688
+ value,
3689
+ Int16Array,
3690
+ 2,
3691
+ obj,
3692
+ key,
3693
+ arrayRoot
3694
+ );
3533
3695
  case "s":
3534
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
3696
+ return parseTypedArray(
3697
+ response,
3698
+ value,
3699
+ Uint16Array,
3700
+ 2,
3701
+ obj,
3702
+ key,
3703
+ arrayRoot
3704
+ );
3535
3705
  case "L":
3536
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
3706
+ return parseTypedArray(
3707
+ response,
3708
+ value,
3709
+ Int32Array,
3710
+ 4,
3711
+ obj,
3712
+ key,
3713
+ arrayRoot
3714
+ );
3537
3715
  case "l":
3538
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
3716
+ return parseTypedArray(
3717
+ response,
3718
+ value,
3719
+ Uint32Array,
3720
+ 4,
3721
+ obj,
3722
+ key,
3723
+ arrayRoot
3724
+ );
3539
3725
  case "G":
3540
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
3726
+ return parseTypedArray(
3727
+ response,
3728
+ value,
3729
+ Float32Array,
3730
+ 4,
3731
+ obj,
3732
+ key,
3733
+ arrayRoot
3734
+ );
3541
3735
  case "g":
3542
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
3736
+ return parseTypedArray(
3737
+ response,
3738
+ value,
3739
+ Float64Array,
3740
+ 8,
3741
+ obj,
3742
+ key,
3743
+ arrayRoot
3744
+ );
3543
3745
  case "M":
3544
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
3746
+ return parseTypedArray(
3747
+ response,
3748
+ value,
3749
+ BigInt64Array,
3750
+ 8,
3751
+ obj,
3752
+ key,
3753
+ arrayRoot
3754
+ );
3545
3755
  case "m":
3546
3756
  return parseTypedArray(
3547
3757
  response,
@@ -3549,17 +3759,24 @@
3549
3759
  BigUint64Array,
3550
3760
  8,
3551
3761
  obj,
3552
- key
3762
+ key,
3763
+ arrayRoot
3553
3764
  );
3554
3765
  case "V":
3555
- return parseTypedArray(response, value, DataView, 1, obj, key);
3766
+ return parseTypedArray(
3767
+ response,
3768
+ value,
3769
+ DataView,
3770
+ 1,
3771
+ obj,
3772
+ key,
3773
+ arrayRoot
3774
+ );
3556
3775
  case "B":
3557
3776
  return (
3558
3777
  (obj = parseInt(value.slice(2), 16)),
3559
3778
  response._formData.get(response._prefix + obj)
3560
3779
  );
3561
- }
3562
- switch (value[1]) {
3563
3780
  case "R":
3564
3781
  return parseReadableStream(response, value, void 0);
3565
3782
  case "r":
@@ -3570,8 +3787,16 @@
3570
3787
  return parseAsyncIterable(response, value, !0);
3571
3788
  }
3572
3789
  value = value.slice(1);
3573
- return getOutlinedModel(response, value, obj, key, createModel);
3790
+ return getOutlinedModel(
3791
+ response,
3792
+ value,
3793
+ obj,
3794
+ key,
3795
+ arrayRoot,
3796
+ createModel
3797
+ );
3574
3798
  }
3799
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
3575
3800
  return value;
3576
3801
  }
3577
3802
  function createResponse(
@@ -3583,6 +3808,8 @@
3583
3808
  3 < arguments.length && void 0 !== arguments[3]
3584
3809
  ? arguments[3]
3585
3810
  : new FormData(),
3811
+ arraySizeLimit =
3812
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
3586
3813
  chunks = new Map();
3587
3814
  return {
3588
3815
  _bundlerConfig: bundlerConfig,
@@ -3591,19 +3818,32 @@
3591
3818
  _chunks: chunks,
3592
3819
  _closed: !1,
3593
3820
  _closedReason: null,
3594
- _temporaryReferences: temporaryReferences
3821
+ _temporaryReferences: temporaryReferences,
3822
+ _rootArrayContexts: new WeakMap(),
3823
+ _arraySizeLimit: arraySizeLimit
3595
3824
  };
3596
3825
  }
3597
3826
  function close(response) {
3598
3827
  reportGlobalError(response, Error("Connection closed."));
3599
3828
  }
3600
- function loadServerReference(bundlerConfig, id, bound) {
3829
+ function loadServerReference(bundlerConfig, metaData) {
3830
+ var id = metaData.id;
3831
+ if ("string" !== typeof id) return null;
3601
3832
  var serverReference = resolveServerReference(bundlerConfig, id);
3602
3833
  bundlerConfig = preloadModule(serverReference);
3603
- return bound
3604
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
3834
+ metaData = metaData.bound;
3835
+ return metaData instanceof Promise
3836
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
3605
3837
  _ref = _ref[0];
3606
3838
  var fn = requireModule(serverReference);
3839
+ if (_ref.length > MAX_BOUND_ARGS)
3840
+ throw Error(
3841
+ "Server Function has too many bound arguments. Received " +
3842
+ _ref.length +
3843
+ " but the limit is " +
3844
+ MAX_BOUND_ARGS +
3845
+ "."
3846
+ );
3607
3847
  return fn.bind.apply(fn, [null].concat(_ref));
3608
3848
  })
3609
3849
  : bundlerConfig
@@ -3612,8 +3852,19 @@
3612
3852
  })
3613
3853
  : Promise.resolve(requireModule(serverReference));
3614
3854
  }
3615
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
3616
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
3855
+ function decodeBoundActionMetaData(
3856
+ body,
3857
+ serverManifest,
3858
+ formFieldPrefix,
3859
+ arraySizeLimit
3860
+ ) {
3861
+ body = createResponse(
3862
+ serverManifest,
3863
+ formFieldPrefix,
3864
+ void 0,
3865
+ body,
3866
+ arraySizeLimit
3867
+ );
3617
3868
  close(body);
3618
3869
  body = getChunk(body, 0);
3619
3870
  body.then(function () {});
@@ -4059,13 +4310,14 @@
4059
4310
  patchConsole(console, "table"),
4060
4311
  patchConsole(console, "trace"),
4061
4312
  patchConsole(console, "warn"));
4062
- var ObjectPrototype = Object.prototype,
4313
+ var ObjectPrototype$1 = Object.prototype,
4063
4314
  stringify = JSON.stringify,
4064
4315
  PENDING$1 = 0,
4065
4316
  COMPLETED = 1,
4066
4317
  ABORTED = 3,
4067
4318
  ERRORED$1 = 4,
4068
4319
  RENDERING = 5,
4320
+ __PROTO__$1 = "__proto__",
4069
4321
  OPENING = 10,
4070
4322
  ABORTING = 12,
4071
4323
  CLOSING = 13,
@@ -4096,16 +4348,23 @@
4096
4348
  case "fulfilled":
4097
4349
  if ("function" === typeof resolve) {
4098
4350
  for (
4099
- var inspectedValue = this.value, cycleProtection = 0;
4351
+ var inspectedValue = this.value,
4352
+ cycleProtection = 0,
4353
+ visited = new Set();
4100
4354
  inspectedValue instanceof ReactPromise;
4101
4355
 
4102
4356
  ) {
4103
4357
  cycleProtection++;
4104
- if (inspectedValue === this || 1e3 < cycleProtection) {
4358
+ if (
4359
+ inspectedValue === this ||
4360
+ visited.has(inspectedValue) ||
4361
+ 1e3 < cycleProtection
4362
+ ) {
4105
4363
  "function" === typeof reject &&
4106
4364
  reject(Error("Cannot have cyclic thenables."));
4107
4365
  return;
4108
4366
  }
4367
+ visited.add(inspectedValue);
4109
4368
  if ("fulfilled" === inspectedValue.status)
4110
4369
  inspectedValue = inspectedValue.value;
4111
4370
  else break;
@@ -4126,7 +4385,15 @@
4126
4385
  "function" === typeof reject && reject(this.reason);
4127
4386
  }
4128
4387
  };
4129
- var initializingHandler = null;
4388
+ var ObjectPrototype = Object.prototype,
4389
+ ArrayPrototype = Array.prototype,
4390
+ initializingHandler = null;
4391
+ FlightIterator.prototype = {};
4392
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
4393
+ return this;
4394
+ };
4395
+ var MAX_BIGINT_DIGITS = 300,
4396
+ MAX_BOUND_ARGS = 1e3;
4130
4397
  exports.createClientModuleProxy = function (moduleId) {
4131
4398
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
4132
4399
  return new Proxy(moduleId, proxyHandlers$1);
@@ -4136,20 +4403,24 @@
4136
4403
  };
4137
4404
  exports.decodeAction = function (body, serverManifest) {
4138
4405
  var formData = new FormData(),
4139
- action = null;
4406
+ action = null,
4407
+ seenActions = new Set();
4140
4408
  body.forEach(function (value, key) {
4141
4409
  key.startsWith("$ACTION_")
4142
4410
  ? key.startsWith("$ACTION_REF_")
4143
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
4411
+ ? seenActions.has(key) ||
4412
+ (seenActions.add(key),
4413
+ (value = "$ACTION_" + key.slice(12) + ":"),
4144
4414
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
4145
- (action = loadServerReference(
4146
- serverManifest,
4147
- value.id,
4148
- value.bound
4149
- )))
4415
+ (action = loadServerReference(serverManifest, value)))
4150
4416
  : key.startsWith("$ACTION_ID_") &&
4151
- ((value = key.slice(11)),
4152
- (action = loadServerReference(serverManifest, value, null)))
4417
+ !seenActions.has(key) &&
4418
+ (seenActions.add(key),
4419
+ (value = key.slice(11)),
4420
+ (action = loadServerReference(serverManifest, {
4421
+ id: value,
4422
+ bound: null
4423
+ })))
4153
4424
  : formData.append(key, value);
4154
4425
  });
4155
4426
  return null === action
@@ -4185,7 +4456,8 @@
4185
4456
  webpackMap,
4186
4457
  "",
4187
4458
  options ? options.temporaryReferences : void 0,
4188
- body
4459
+ body,
4460
+ options ? options.arraySizeLimit : void 0
4189
4461
  );
4190
4462
  webpackMap = getChunk(body, 0);
4191
4463
  close(body);