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.
@@ -1736,6 +1736,13 @@
1736
1736
  value
1737
1737
  ) {
1738
1738
  task.model = value;
1739
+ parentPropertyName === __PROTO__$1 &&
1740
+ callWithDebugContextInDEV(request, task, function () {
1741
+ console.error(
1742
+ "Expected not to serialize an object with own property `__proto__`. When parsed this property will be omitted.%s",
1743
+ describeObjectForErrorMessage(parent, parentPropertyName)
1744
+ );
1745
+ });
1739
1746
  if (value === REACT_ELEMENT_TYPE) return "$";
1740
1747
  if (null === value) return null;
1741
1748
  if ("object" === typeof value) {
@@ -1909,7 +1916,7 @@
1909
1916
  if (value instanceof Date) return "$D" + value.toJSON();
1910
1917
  elementReference = getPrototypeOf(value);
1911
1918
  if (
1912
- elementReference !== ObjectPrototype &&
1919
+ elementReference !== ObjectPrototype$1 &&
1913
1920
  (null === elementReference ||
1914
1921
  null !== getPrototypeOf(elementReference))
1915
1922
  )
@@ -2831,12 +2838,12 @@
2831
2838
  this.value = value;
2832
2839
  this.reason = reason;
2833
2840
  }
2834
- function wakeChunk(response, listeners, value) {
2841
+ function wakeChunk(response, listeners, value, chunk) {
2835
2842
  for (var i = 0; i < listeners.length; i++) {
2836
2843
  var listener = listeners[i];
2837
2844
  "function" === typeof listener
2838
2845
  ? listener(value)
2839
- : fulfillReference(response, listener, value);
2846
+ : fulfillReference(response, listener, value, chunk.reason);
2840
2847
  }
2841
2848
  }
2842
2849
  function rejectChunk(response, listeners, error) {
@@ -2847,27 +2854,6 @@
2847
2854
  : rejectReference(response, listener.handler, error);
2848
2855
  }
2849
2856
  }
2850
- function resolveBlockedCycle(resolvedChunk, reference) {
2851
- var referencedChunk = reference.handler.chunk;
2852
- if (null === referencedChunk) return null;
2853
- if (referencedChunk === resolvedChunk) return reference.handler;
2854
- reference = referencedChunk.value;
2855
- if (null !== reference)
2856
- for (
2857
- referencedChunk = 0;
2858
- referencedChunk < reference.length;
2859
- referencedChunk++
2860
- ) {
2861
- var listener = reference[referencedChunk];
2862
- if (
2863
- "function" !== typeof listener &&
2864
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2865
- null !== listener)
2866
- )
2867
- return listener;
2868
- }
2869
- return null;
2870
- }
2871
2857
  function triggerErrorOnChunk(response, chunk, error) {
2872
2858
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2873
2859
  chunk.reason.error(error);
@@ -2891,57 +2877,25 @@
2891
2877
  chunk.value = value;
2892
2878
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2893
2879
  if (null !== resolveListeners)
2894
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
2880
+ switch ((initializeModelChunk(chunk), chunk.status)) {
2895
2881
  case "fulfilled":
2896
- wakeChunk(response, resolveListeners, chunk.value);
2882
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
2897
2883
  break;
2898
2884
  case "blocked":
2899
- for (value = 0; value < resolveListeners.length; value++)
2900
- if (
2901
- ((id = resolveListeners[value]), "function" !== typeof id)
2902
- ) {
2903
- var cyclicHandler = resolveBlockedCycle(chunk, id);
2904
- if (null !== cyclicHandler)
2905
- switch (
2906
- (fulfillReference(response, id, cyclicHandler.value),
2907
- resolveListeners.splice(value, 1),
2908
- value--,
2909
- null !== rejectListeners &&
2910
- ((id = rejectListeners.indexOf(id)),
2911
- -1 !== id && rejectListeners.splice(id, 1)),
2912
- chunk.status)
2913
- ) {
2914
- case "fulfilled":
2915
- wakeChunk(response, resolveListeners, chunk.value);
2916
- break a;
2917
- case "rejected":
2918
- null !== rejectListeners &&
2919
- rejectChunk(response, rejectListeners, chunk.reason);
2920
- break a;
2921
- }
2922
- }
2923
2885
  case "pending":
2924
2886
  if (chunk.value)
2925
- for (
2926
- response = 0;
2927
- response < resolveListeners.length;
2928
- response++
2929
- )
2930
- chunk.value.push(resolveListeners[response]);
2887
+ for (value = 0; value < resolveListeners.length; value++)
2888
+ chunk.value.push(resolveListeners[value]);
2931
2889
  else chunk.value = resolveListeners;
2932
2890
  if (chunk.reason) {
2933
2891
  if (rejectListeners)
2934
- for (
2935
- resolveListeners = 0;
2936
- resolveListeners < rejectListeners.length;
2937
- resolveListeners++
2938
- )
2939
- chunk.reason.push(rejectListeners[resolveListeners]);
2892
+ for (value = 0; value < rejectListeners.length; value++)
2893
+ chunk.reason.push(rejectListeners[value]);
2940
2894
  } else chunk.reason = rejectListeners;
2941
2895
  break;
2942
2896
  case "rejected":
2943
2897
  rejectListeners &&
2944
- wakeChunk(response, rejectListeners, chunk.reason);
2898
+ rejectChunk(response, rejectListeners, chunk.reason);
2945
2899
  }
2946
2900
  }
2947
2901
  }
@@ -2965,15 +2919,51 @@
2965
2919
  );
2966
2920
  }
2967
2921
  function loadServerReference$1(response, metaData, parentObject, key) {
2922
+ function reject(error) {
2923
+ var rejectListeners = blockedPromise.reason,
2924
+ erroredPromise = blockedPromise;
2925
+ erroredPromise.status = "rejected";
2926
+ erroredPromise.value = null;
2927
+ erroredPromise.reason = error;
2928
+ null !== rejectListeners &&
2929
+ rejectChunk(response, rejectListeners, error);
2930
+ rejectReference(response, handler, error);
2931
+ }
2968
2932
  var id = metaData.id;
2969
2933
  if ("string" !== typeof id || "then" === key) return null;
2934
+ var cachedPromise = metaData.$$promise;
2935
+ if (void 0 !== cachedPromise) {
2936
+ if ("fulfilled" === cachedPromise.status)
2937
+ return (
2938
+ (cachedPromise = cachedPromise.value),
2939
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
2940
+ );
2941
+ initializingHandler
2942
+ ? ((id = initializingHandler), id.deps++)
2943
+ : (id = initializingHandler =
2944
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2945
+ cachedPromise.then(
2946
+ resolveReference.bind(null, response, id, parentObject, key),
2947
+ rejectReference.bind(null, response, id)
2948
+ );
2949
+ return null;
2950
+ }
2951
+ var blockedPromise = new ReactPromise("blocked", null, null);
2952
+ metaData.$$promise = blockedPromise;
2970
2953
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2971
- id = metaData.bound;
2972
- var promise = preloadModule(serverReference);
2973
- if (promise)
2974
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2975
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2976
- else return requireModule(serverReference);
2954
+ cachedPromise = metaData.bound;
2955
+ if ((id = preloadModule(serverReference)))
2956
+ cachedPromise instanceof ReactPromise &&
2957
+ (id = Promise.all([id, cachedPromise]));
2958
+ else if (cachedPromise instanceof ReactPromise)
2959
+ id = Promise.resolve(cachedPromise);
2960
+ else
2961
+ return (
2962
+ (cachedPromise = requireModule(serverReference)),
2963
+ (id = blockedPromise),
2964
+ (id.status = "fulfilled"),
2965
+ (id.value = cachedPromise)
2966
+ );
2977
2967
  if (initializingHandler) {
2978
2968
  var handler = initializingHandler;
2979
2969
  handler.deps++;
@@ -2985,93 +2975,107 @@
2985
2975
  deps: 1,
2986
2976
  errored: !1
2987
2977
  };
2988
- promise.then(
2989
- function () {
2990
- var resolvedValue = requireModule(serverReference);
2991
- if (metaData.bound) {
2992
- var promiseValue = metaData.bound.value;
2993
- promiseValue = Array.isArray(promiseValue)
2994
- ? promiseValue.slice(0)
2995
- : [];
2996
- promiseValue.unshift(null);
2997
- resolvedValue = resolvedValue.bind.apply(
2998
- resolvedValue,
2999
- promiseValue
2978
+ id.then(function () {
2979
+ var resolvedValue = requireModule(serverReference);
2980
+ if (metaData.bound) {
2981
+ var promiseValue = metaData.bound.value;
2982
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
2983
+ if (promiseValue.length > MAX_BOUND_ARGS) {
2984
+ reject(
2985
+ Error(
2986
+ "Server Function has too many bound arguments. Received " +
2987
+ promiseValue.length +
2988
+ " but the limit is " +
2989
+ MAX_BOUND_ARGS +
2990
+ "."
2991
+ )
3000
2992
  );
2993
+ return;
3001
2994
  }
3002
- parentObject[key] = resolvedValue;
3003
- "" === key &&
3004
- null === handler.value &&
3005
- (handler.value = resolvedValue);
3006
- handler.deps--;
3007
- 0 === handler.deps &&
3008
- ((resolvedValue = handler.chunk),
3009
- null !== resolvedValue &&
3010
- "blocked" === resolvedValue.status &&
3011
- ((promiseValue = resolvedValue.value),
3012
- (resolvedValue.status = "fulfilled"),
3013
- (resolvedValue.value = handler.value),
3014
- (resolvedValue.reason = null),
3015
- null !== promiseValue &&
3016
- wakeChunk(response, promiseValue, handler.value)));
3017
- },
3018
- function (error) {
3019
- if (!handler.errored) {
3020
- handler.errored = !0;
3021
- handler.value = null;
3022
- handler.reason = error;
3023
- var chunk = handler.chunk;
3024
- null !== chunk &&
3025
- "blocked" === chunk.status &&
3026
- triggerErrorOnChunk(response, chunk, error);
3027
- }
2995
+ promiseValue.unshift(null);
2996
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
3028
2997
  }
3029
- );
2998
+ promiseValue = blockedPromise.value;
2999
+ var initializedPromise = blockedPromise;
3000
+ initializedPromise.status = "fulfilled";
3001
+ initializedPromise.value = resolvedValue;
3002
+ initializedPromise.reason = null;
3003
+ null !== promiseValue &&
3004
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
3005
+ resolveReference(response, handler, parentObject, key, resolvedValue);
3006
+ }, reject);
3030
3007
  return null;
3031
3008
  }
3032
- function reviveModel(response, parentObj, parentKey, value, reference) {
3009
+ function reviveModel(
3010
+ response,
3011
+ parentObj,
3012
+ parentKey,
3013
+ value,
3014
+ reference,
3015
+ arrayRoot
3016
+ ) {
3033
3017
  if ("string" === typeof value)
3034
3018
  return parseModelString(
3035
3019
  response,
3036
3020
  parentObj,
3037
3021
  parentKey,
3038
3022
  value,
3039
- reference
3023
+ reference,
3024
+ arrayRoot
3040
3025
  );
3041
3026
  if ("object" === typeof value && null !== value)
3042
3027
  if (
3043
3028
  (void 0 !== reference &&
3044
3029
  void 0 !== response._temporaryReferences &&
3045
3030
  response._temporaryReferences.set(value, reference),
3046
- Array.isArray(value))
3047
- )
3048
- for (var i = 0; i < value.length; i++)
3049
- value[i] = reviveModel(
3031
+ isArrayImpl(value))
3032
+ ) {
3033
+ if (null === arrayRoot) {
3034
+ var childContext = { count: 0, fork: !1 };
3035
+ response._rootArrayContexts.set(value, childContext);
3036
+ } else childContext = arrayRoot;
3037
+ 1 < value.length && (childContext.fork = !0);
3038
+ bumpArrayCount(childContext, value.length + 1, response);
3039
+ for (parentObj = 0; parentObj < value.length; parentObj++)
3040
+ value[parentObj] = reviveModel(
3050
3041
  response,
3051
3042
  value,
3052
- "" + i,
3053
- value[i],
3054
- void 0 !== reference ? reference + ":" + i : void 0
3043
+ "" + parentObj,
3044
+ value[parentObj],
3045
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
3046
+ childContext
3055
3047
  );
3056
- else
3057
- for (i in value)
3058
- hasOwnProperty.call(value, i) &&
3059
- ((parentObj =
3060
- void 0 !== reference && -1 === i.indexOf(":")
3061
- ? reference + ":" + i
3062
- : void 0),
3063
- (parentObj = reviveModel(
3064
- response,
3065
- value,
3066
- i,
3067
- value[i],
3068
- parentObj
3069
- )),
3070
- void 0 !== parentObj || "__proto__" === i
3071
- ? (value[i] = parentObj)
3072
- : delete value[i]);
3048
+ } else
3049
+ for (childContext in value)
3050
+ hasOwnProperty.call(value, childContext) &&
3051
+ ("__proto__" === childContext
3052
+ ? delete value[childContext]
3053
+ : ((parentObj =
3054
+ void 0 !== reference && -1 === childContext.indexOf(":")
3055
+ ? reference + ":" + childContext
3056
+ : void 0),
3057
+ (parentObj = reviveModel(
3058
+ response,
3059
+ value,
3060
+ childContext,
3061
+ value[childContext],
3062
+ parentObj,
3063
+ null
3064
+ )),
3065
+ void 0 !== parentObj
3066
+ ? (value[childContext] = parentObj)
3067
+ : delete value[childContext]));
3073
3068
  return value;
3074
3069
  }
3070
+ function bumpArrayCount(arrayContext, slots, response) {
3071
+ if (
3072
+ (arrayContext.count += slots) > response._arraySizeLimit &&
3073
+ arrayContext.fork
3074
+ )
3075
+ throw Error(
3076
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
3077
+ );
3078
+ }
3075
3079
  function initializeModelChunk(chunk) {
3076
3080
  var prevHandler = initializingHandler;
3077
3081
  initializingHandler = null;
@@ -3085,13 +3089,15 @@
3085
3089
  chunk.value = null;
3086
3090
  chunk.reason = null;
3087
3091
  try {
3088
- var rawModel = JSON.parse(resolvedModel),
3089
- value = reviveModel(
3092
+ var rawModel = JSON.parse(resolvedModel);
3093
+ resolvedModel = { count: 0, fork: !1 };
3094
+ var value = reviveModel(
3090
3095
  response,
3091
3096
  { "": rawModel },
3092
3097
  "",
3093
3098
  rawModel,
3094
- _chunk$reason
3099
+ _chunk$reason,
3100
+ resolvedModel
3095
3101
  ),
3096
3102
  resolveListeners = chunk.value;
3097
3103
  if (null !== resolveListeners)
@@ -3103,19 +3109,20 @@
3103
3109
  var listener = resolveListeners[rawModel];
3104
3110
  "function" === typeof listener
3105
3111
  ? listener(value)
3106
- : fulfillReference(response, listener, value);
3112
+ : fulfillReference(response, listener, value, resolvedModel);
3107
3113
  }
3108
3114
  if (null !== initializingHandler) {
3109
3115
  if (initializingHandler.errored) throw initializingHandler.reason;
3110
3116
  if (0 < initializingHandler.deps) {
3111
3117
  initializingHandler.value = value;
3118
+ initializingHandler.reason = resolvedModel;
3112
3119
  initializingHandler.chunk = chunk;
3113
3120
  return;
3114
3121
  }
3115
3122
  }
3116
3123
  chunk.status = "fulfilled";
3117
3124
  chunk.value = value;
3118
- chunk.reason = null;
3125
+ chunk.reason = resolvedModel;
3119
3126
  } catch (error) {
3120
3127
  (chunk.status = "rejected"), (chunk.reason = error);
3121
3128
  } finally {
@@ -3130,7 +3137,8 @@
3130
3137
  ? triggerErrorOnChunk(response, chunk, error)
3131
3138
  : "fulfilled" === chunk.status &&
3132
3139
  null !== chunk.reason &&
3133
- chunk.reason.error(error);
3140
+ ((chunk = chunk.reason),
3141
+ "function" === typeof chunk.error && chunk.error(error));
3134
3142
  });
3135
3143
  }
3136
3144
  function getChunk(response, id) {
@@ -3151,40 +3159,74 @@
3151
3159
  chunks.set(id, chunk));
3152
3160
  return chunk;
3153
3161
  }
3154
- function fulfillReference(response, reference, value) {
3162
+ function fulfillReference(response, reference, value, arrayRoot) {
3155
3163
  var handler = reference.handler,
3156
3164
  parentObject = reference.parentObject,
3157
3165
  key = reference.key,
3158
3166
  map = reference.map,
3159
3167
  path = reference.path;
3160
3168
  try {
3161
- for (var i = 1; i < path.length; i++) {
3169
+ for (
3170
+ var localLength = 0,
3171
+ rootArrayContexts = response._rootArrayContexts,
3172
+ i = 1;
3173
+ i < path.length;
3174
+ i++
3175
+ ) {
3162
3176
  var name = path[i];
3163
3177
  if (
3164
3178
  "object" !== typeof value ||
3165
- !hasOwnProperty.call(value, name) ||
3166
- value instanceof Promise
3179
+ null === value ||
3180
+ (getPrototypeOf(value) !== ObjectPrototype &&
3181
+ getPrototypeOf(value) !== ArrayPrototype) ||
3182
+ !hasOwnProperty.call(value, name)
3167
3183
  )
3168
3184
  throw Error("Invalid reference.");
3169
3185
  value = value[name];
3186
+ if (isArrayImpl(value))
3187
+ (localLength = 0),
3188
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
3189
+ else if (((arrayRoot = null), "string" === typeof value))
3190
+ localLength = value.length;
3191
+ else if ("bigint" === typeof value) {
3192
+ var n = Math.abs(Number(value));
3193
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
3194
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
3170
3195
  }
3171
- var mappedValue = map(response, value, parentObject, key);
3172
- parentObject[key] = mappedValue;
3173
- "" === key && null === handler.value && (handler.value = mappedValue);
3196
+ var resolvedValue = map(response, value, parentObject, key);
3197
+ var referenceArrayRoot = reference.arrayRoot;
3198
+ null !== referenceArrayRoot &&
3199
+ (null !== arrayRoot
3200
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
3201
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
3202
+ : 0 < localLength &&
3203
+ bumpArrayCount(referenceArrayRoot, localLength, response));
3174
3204
  } catch (error) {
3175
- rejectReference(response, reference.handler, error);
3205
+ rejectReference(response, handler, error);
3176
3206
  return;
3177
3207
  }
3208
+ resolveReference(response, handler, parentObject, key, resolvedValue);
3209
+ }
3210
+ function resolveReference(
3211
+ response,
3212
+ handler,
3213
+ parentObject,
3214
+ key,
3215
+ resolvedValue
3216
+ ) {
3217
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
3218
+ "" === key && null === handler.value && (handler.value = resolvedValue);
3178
3219
  handler.deps--;
3179
3220
  0 === handler.deps &&
3180
- ((reference = handler.chunk),
3181
- null !== reference &&
3182
- "blocked" === reference.status &&
3183
- ((value = reference.value),
3184
- (reference.status = "fulfilled"),
3185
- (reference.value = handler.value),
3186
- (reference.reason = handler.reason),
3187
- null !== value && wakeChunk(response, value, handler.value)));
3221
+ ((parentObject = handler.chunk),
3222
+ null !== parentObject &&
3223
+ "blocked" === parentObject.status &&
3224
+ ((key = parentObject.value),
3225
+ (parentObject.status = "fulfilled"),
3226
+ (parentObject.value = handler.value),
3227
+ (parentObject.reason = handler.reason),
3228
+ null !== key &&
3229
+ wakeChunk(response, key, handler.value, parentObject)));
3188
3230
  }
3189
3231
  function rejectReference(response, handler, error) {
3190
3232
  handler.errored ||
@@ -3196,29 +3238,66 @@
3196
3238
  "blocked" === handler.status &&
3197
3239
  triggerErrorOnChunk(response, handler, error));
3198
3240
  }
3199
- function getOutlinedModel(response, reference, parentObject, key, map) {
3241
+ function getOutlinedModel(
3242
+ response,
3243
+ reference,
3244
+ parentObject,
3245
+ key,
3246
+ referenceArrayRoot,
3247
+ map
3248
+ ) {
3200
3249
  reference = reference.split(":");
3201
- var id = parseInt(reference[0], 16);
3202
- id = getChunk(response, id);
3203
- switch (id.status) {
3250
+ var id = parseInt(reference[0], 16),
3251
+ chunk = getChunk(response, id);
3252
+ switch (chunk.status) {
3204
3253
  case "resolved_model":
3205
- initializeModelChunk(id);
3254
+ initializeModelChunk(chunk);
3206
3255
  }
3207
- switch (id.status) {
3256
+ switch (chunk.status) {
3208
3257
  case "fulfilled":
3209
- id = id.value;
3210
- for (var i = 1; i < reference.length; i++) {
3211
- var name = reference[i];
3258
+ id = chunk.value;
3259
+ chunk = chunk.reason;
3260
+ for (
3261
+ var localLength = 0,
3262
+ rootArrayContexts = response._rootArrayContexts,
3263
+ i = 1;
3264
+ i < reference.length;
3265
+ i++
3266
+ ) {
3267
+ localLength = reference[i];
3212
3268
  if (
3213
3269
  "object" !== typeof id ||
3214
- !hasOwnProperty.call(id, name) ||
3215
- id instanceof Promise
3270
+ null === id ||
3271
+ (getPrototypeOf(id) !== ObjectPrototype &&
3272
+ getPrototypeOf(id) !== ArrayPrototype) ||
3273
+ !hasOwnProperty.call(id, localLength)
3216
3274
  )
3217
3275
  throw Error("Invalid reference.");
3218
- id = id[name];
3276
+ id = id[localLength];
3277
+ isArrayImpl(id)
3278
+ ? ((localLength = 0),
3279
+ (chunk = rootArrayContexts.get(id) || chunk))
3280
+ : ((chunk = null),
3281
+ "string" === typeof id
3282
+ ? (localLength = id.length)
3283
+ : "bigint" === typeof id
3284
+ ? ((localLength = Math.abs(Number(id))),
3285
+ (localLength =
3286
+ 0 === localLength
3287
+ ? 1
3288
+ : Math.floor(Math.log10(localLength)) + 1))
3289
+ : (localLength = ArrayBuffer.isView(id)
3290
+ ? id.byteLength
3291
+ : 0));
3219
3292
  }
3220
- return map(response, id, parentObject, key);
3221
- case "pending":
3293
+ parentObject = map(response, id, parentObject, key);
3294
+ null !== referenceArrayRoot &&
3295
+ (null !== chunk
3296
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
3297
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
3298
+ : 0 < localLength &&
3299
+ bumpArrayCount(referenceArrayRoot, localLength, response));
3300
+ return parentObject;
3222
3301
  case "blocked":
3223
3302
  return (
3224
3303
  initializingHandler
@@ -3231,31 +3310,34 @@
3231
3310
  deps: 1,
3232
3311
  errored: !1
3233
3312
  }),
3234
- (parentObject = {
3313
+ (referenceArrayRoot = {
3235
3314
  handler: response,
3236
3315
  parentObject: parentObject,
3237
3316
  key: key,
3238
3317
  map: map,
3239
- path: reference
3318
+ path: reference,
3319
+ arrayRoot: referenceArrayRoot
3240
3320
  }),
3241
- null === id.value
3242
- ? (id.value = [parentObject])
3243
- : id.value.push(parentObject),
3244
- null === id.reason
3245
- ? (id.reason = [parentObject])
3246
- : id.reason.push(parentObject),
3321
+ null === chunk.value
3322
+ ? (chunk.value = [referenceArrayRoot])
3323
+ : chunk.value.push(referenceArrayRoot),
3324
+ null === chunk.reason
3325
+ ? (chunk.reason = [referenceArrayRoot])
3326
+ : chunk.reason.push(referenceArrayRoot),
3247
3327
  null
3248
3328
  );
3329
+ case "pending":
3330
+ throw Error("Invalid forward reference.");
3249
3331
  default:
3250
3332
  return (
3251
3333
  initializingHandler
3252
3334
  ? ((initializingHandler.errored = !0),
3253
3335
  (initializingHandler.value = null),
3254
- (initializingHandler.reason = id.reason))
3336
+ (initializingHandler.reason = chunk.reason))
3255
3337
  : (initializingHandler = {
3256
3338
  chunk: null,
3257
3339
  value: null,
3258
- reason: id.reason,
3340
+ reason: chunk.reason,
3259
3341
  deps: 0,
3260
3342
  errored: !0
3261
3343
  }),
@@ -3264,12 +3346,21 @@
3264
3346
  }
3265
3347
  }
3266
3348
  function createMap(response, model) {
3349
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
3350
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
3351
+ model.$$consumed = !0;
3267
3352
  return new Map(model);
3268
3353
  }
3269
3354
  function createSet(response, model) {
3355
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
3356
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
3357
+ model.$$consumed = !0;
3270
3358
  return new Set(model);
3271
3359
  }
3272
3360
  function extractIterator(response, model) {
3361
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
3362
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
3363
+ model.$$consumed = !0;
3273
3364
  return model[Symbol.iterator]();
3274
3365
  }
3275
3366
  function createModel(response, model, parentObject, key) {
@@ -3281,13 +3372,34 @@
3281
3372
  constructor,
3282
3373
  bytesPerElement,
3283
3374
  parentObject,
3284
- parentKey
3375
+ parentKey,
3376
+ referenceArrayRoot
3285
3377
  ) {
3378
+ function reject(error) {
3379
+ if (!handler.errored) {
3380
+ handler.errored = !0;
3381
+ handler.value = null;
3382
+ handler.reason = error;
3383
+ var chunk = handler.chunk;
3384
+ null !== chunk &&
3385
+ "blocked" === chunk.status &&
3386
+ triggerErrorOnChunk(response, chunk, error);
3387
+ }
3388
+ }
3286
3389
  reference = parseInt(reference.slice(2), 16);
3287
- bytesPerElement = response._prefix + reference;
3288
- if (response._chunks.has(reference))
3390
+ var key = response._prefix + reference;
3391
+ bytesPerElement = response._chunks;
3392
+ if (bytesPerElement.has(reference))
3289
3393
  throw Error("Already initialized typed array.");
3290
- reference = response._formData.get(bytesPerElement).arrayBuffer();
3394
+ bytesPerElement.set(
3395
+ reference,
3396
+ new ReactPromise(
3397
+ "rejected",
3398
+ null,
3399
+ Error("Already initialized typed array.")
3400
+ )
3401
+ );
3402
+ reference = response._formData.get(key).arrayBuffer();
3291
3403
  if (initializingHandler) {
3292
3404
  var handler = initializingHandler;
3293
3405
  handler.deps++;
@@ -3299,40 +3411,32 @@
3299
3411
  deps: 1,
3300
3412
  errored: !1
3301
3413
  };
3302
- reference.then(
3303
- function (buffer) {
3304
- buffer =
3414
+ reference.then(function (buffer) {
3415
+ try {
3416
+ null !== referenceArrayRoot &&
3417
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
3418
+ var resolvedValue =
3305
3419
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
3306
- parentObject[parentKey] = buffer;
3420
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
3307
3421
  "" === parentKey &&
3308
3422
  null === handler.value &&
3309
- (handler.value = buffer);
3310
- handler.deps--;
3311
- if (
3312
- 0 === handler.deps &&
3313
- ((buffer = handler.chunk),
3314
- null !== buffer && "blocked" === buffer.status)
3315
- ) {
3316
- var resolveListeners = buffer.value;
3317
- buffer.status = "fulfilled";
3318
- buffer.value = handler.value;
3319
- buffer.reason = null;
3320
- null !== resolveListeners &&
3321
- wakeChunk(response, resolveListeners, handler.value);
3322
- }
3323
- },
3324
- function (error) {
3325
- if (!handler.errored) {
3326
- handler.errored = !0;
3327
- handler.value = null;
3328
- handler.reason = error;
3329
- var chunk = handler.chunk;
3330
- null !== chunk &&
3331
- "blocked" === chunk.status &&
3332
- triggerErrorOnChunk(response, chunk, error);
3333
- }
3423
+ (handler.value = resolvedValue);
3424
+ } catch (x) {
3425
+ reject(x);
3426
+ return;
3334
3427
  }
3335
- );
3428
+ handler.deps--;
3429
+ 0 === handler.deps &&
3430
+ ((buffer = handler.chunk),
3431
+ null !== buffer &&
3432
+ "blocked" === buffer.status &&
3433
+ ((resolvedValue = buffer.value),
3434
+ (buffer.status = "fulfilled"),
3435
+ (buffer.value = handler.value),
3436
+ (buffer.reason = null),
3437
+ null !== resolvedValue &&
3438
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
3439
+ }, reject);
3336
3440
  return null;
3337
3441
  }
3338
3442
  function resolveStream(response, id, stream, controller) {
@@ -3350,90 +3454,78 @@
3350
3454
  : controller.enqueueModel(chunks));
3351
3455
  }
3352
3456
  function parseReadableStream(response, reference, type) {
3457
+ function enqueue(value) {
3458
+ "bytes" !== type || ArrayBuffer.isView(value)
3459
+ ? controller.enqueue(value)
3460
+ : flightController.error(Error("Invalid data for bytes stream."));
3461
+ }
3353
3462
  reference = parseInt(reference.slice(2), 16);
3354
3463
  if (response._chunks.has(reference))
3355
3464
  throw Error("Already initialized stream.");
3356
3465
  var controller = null,
3357
- closed = !1;
3358
- type = new ReadableStream({
3359
- type: type,
3360
- start: function (c) {
3361
- controller = c;
3362
- }
3363
- });
3364
- var previousBlockedChunk = null;
3365
- resolveStream(response, reference, type, {
3366
- enqueueModel: function (json) {
3367
- if (null === previousBlockedChunk) {
3368
- var chunk = new ReactPromise(
3369
- "resolved_model",
3370
- json,
3371
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3372
- );
3373
- initializeModelChunk(chunk);
3374
- "fulfilled" === chunk.status
3375
- ? controller.enqueue(chunk.value)
3376
- : (chunk.then(
3377
- function (v) {
3378
- return controller.enqueue(v);
3379
- },
3380
- function (e) {
3381
- return controller.error(e);
3382
- }
3383
- ),
3384
- (previousBlockedChunk = chunk));
3385
- } else {
3386
- chunk = previousBlockedChunk;
3387
- var _chunk = new ReactPromise("pending", null, null);
3388
- _chunk.then(
3389
- function (v) {
3390
- return controller.enqueue(v);
3391
- },
3392
- function (e) {
3393
- return controller.error(e);
3394
- }
3395
- );
3396
- previousBlockedChunk = _chunk;
3397
- chunk.then(function () {
3398
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3399
- resolveModelChunk(response, _chunk, json, -1);
3400
- });
3466
+ closed = !1,
3467
+ stream = new ReadableStream({
3468
+ type: type,
3469
+ start: function (c) {
3470
+ controller = c;
3401
3471
  }
3402
- },
3403
- close: function () {
3404
- if (!closed)
3405
- if (((closed = !0), null === previousBlockedChunk))
3406
- controller.close();
3407
- else {
3408
- var blockedChunk = previousBlockedChunk;
3409
- previousBlockedChunk = null;
3410
- blockedChunk.then(function () {
3411
- return controller.close();
3412
- });
3413
- }
3414
- },
3415
- error: function (error) {
3416
- if (!closed)
3417
- if (((closed = !0), null === previousBlockedChunk))
3418
- controller.error(error);
3419
- else {
3420
- var blockedChunk = previousBlockedChunk;
3421
- previousBlockedChunk = null;
3422
- blockedChunk.then(function () {
3423
- return controller.error(error);
3472
+ }),
3473
+ previousBlockedChunk = null,
3474
+ flightController = {
3475
+ enqueueModel: function (json) {
3476
+ if (null === previousBlockedChunk) {
3477
+ var chunk = new ReactPromise(
3478
+ "resolved_model",
3479
+ json,
3480
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3481
+ );
3482
+ initializeModelChunk(chunk);
3483
+ "fulfilled" === chunk.status
3484
+ ? enqueue(chunk.value)
3485
+ : (chunk.then(enqueue, flightController.error),
3486
+ (previousBlockedChunk = chunk));
3487
+ } else {
3488
+ chunk = previousBlockedChunk;
3489
+ var _chunk = new ReactPromise("pending", null, null);
3490
+ _chunk.then(enqueue, flightController.error);
3491
+ previousBlockedChunk = _chunk;
3492
+ chunk.then(function () {
3493
+ previousBlockedChunk === _chunk &&
3494
+ (previousBlockedChunk = null);
3495
+ resolveModelChunk(response, _chunk, json, -1);
3424
3496
  });
3425
3497
  }
3426
- }
3427
- });
3428
- return type;
3429
- }
3430
- function asyncIterator() {
3431
- return this;
3498
+ },
3499
+ close: function () {
3500
+ if (!closed)
3501
+ if (((closed = !0), null === previousBlockedChunk))
3502
+ controller.close();
3503
+ else {
3504
+ var blockedChunk = previousBlockedChunk;
3505
+ previousBlockedChunk = null;
3506
+ blockedChunk.then(function () {
3507
+ return controller.close();
3508
+ });
3509
+ }
3510
+ },
3511
+ error: function (error) {
3512
+ if (!closed)
3513
+ if (((closed = !0), null === previousBlockedChunk))
3514
+ controller.error(error);
3515
+ else {
3516
+ var blockedChunk = previousBlockedChunk;
3517
+ previousBlockedChunk = null;
3518
+ blockedChunk.then(function () {
3519
+ return controller.error(error);
3520
+ });
3521
+ }
3522
+ }
3523
+ };
3524
+ resolveStream(response, reference, stream, flightController);
3525
+ return stream;
3432
3526
  }
3433
- function createIterator(next) {
3434
- next = { next: next };
3435
- next[ASYNC_ITERATOR] = asyncIterator;
3436
- return next;
3527
+ function FlightIterator(next) {
3528
+ this.next = next;
3437
3529
  }
3438
3530
  function parseAsyncIterable(response, reference, iterator) {
3439
3531
  reference = parseInt(reference.slice(2), 16);
@@ -3444,7 +3536,7 @@
3444
3536
  nextWriteIndex = 0,
3445
3537
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
3446
3538
  var nextReadIndex = 0;
3447
- return createIterator(function (arg) {
3539
+ return new FlightIterator(function (arg) {
3448
3540
  if (void 0 !== arg)
3449
3541
  throw Error(
3450
3542
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -3523,19 +3615,30 @@
3523
3615
  });
3524
3616
  return iterator;
3525
3617
  }
3526
- function parseModelString(response, obj, key, value, reference) {
3618
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
3527
3619
  if ("$" === value[0]) {
3528
3620
  switch (value[1]) {
3529
3621
  case "$":
3530
- return value.slice(1);
3622
+ return (
3623
+ null !== arrayRoot &&
3624
+ bumpArrayCount(arrayRoot, value.length - 1, response),
3625
+ value.slice(1)
3626
+ );
3531
3627
  case "@":
3532
3628
  return (
3533
3629
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3534
3630
  );
3535
3631
  case "h":
3536
3632
  return (
3537
- (value = value.slice(2)),
3538
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
3633
+ (arrayRoot = value.slice(2)),
3634
+ getOutlinedModel(
3635
+ response,
3636
+ arrayRoot,
3637
+ obj,
3638
+ key,
3639
+ null,
3640
+ loadServerReference$1
3641
+ )
3539
3642
  );
3540
3643
  case "T":
3541
3644
  if (
@@ -3551,27 +3654,44 @@
3551
3654
  );
3552
3655
  case "Q":
3553
3656
  return (
3554
- (value = value.slice(2)),
3555
- getOutlinedModel(response, value, obj, key, createMap)
3657
+ (arrayRoot = value.slice(2)),
3658
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
3556
3659
  );
3557
3660
  case "W":
3558
3661
  return (
3559
- (value = value.slice(2)),
3560
- getOutlinedModel(response, value, obj, key, createSet)
3662
+ (arrayRoot = value.slice(2)),
3663
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
3561
3664
  );
3562
3665
  case "K":
3563
3666
  obj = value.slice(2);
3564
- var formPrefix = response._prefix + obj + "_",
3565
- data = new FormData();
3566
- response._formData.forEach(function (entry, entryKey) {
3567
- entryKey.startsWith(formPrefix) &&
3568
- data.append(entryKey.slice(formPrefix.length), entry);
3569
- });
3570
- return data;
3667
+ obj = response._prefix + obj + "_";
3668
+ key = new FormData();
3669
+ response = response._formData;
3670
+ arrayRoot = Array.from(response.keys());
3671
+ for (value = 0; value < arrayRoot.length; value++)
3672
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
3673
+ for (
3674
+ var entries = response.getAll(reference),
3675
+ newKey = reference.slice(obj.length),
3676
+ j = 0;
3677
+ j < entries.length;
3678
+ j++
3679
+ )
3680
+ key.append(newKey, entries[j]);
3681
+ response.delete(reference);
3682
+ }
3683
+ return key;
3571
3684
  case "i":
3572
3685
  return (
3573
- (value = value.slice(2)),
3574
- getOutlinedModel(response, value, obj, key, extractIterator)
3686
+ (arrayRoot = value.slice(2)),
3687
+ getOutlinedModel(
3688
+ response,
3689
+ arrayRoot,
3690
+ obj,
3691
+ key,
3692
+ null,
3693
+ extractIterator
3694
+ )
3575
3695
  );
3576
3696
  case "I":
3577
3697
  return Infinity;
@@ -3584,15 +3704,48 @@
3584
3704
  case "D":
3585
3705
  return new Date(Date.parse(value.slice(2)));
3586
3706
  case "n":
3587
- return BigInt(value.slice(2));
3588
- }
3589
- switch (value[1]) {
3707
+ obj = value.slice(2);
3708
+ if (obj.length > MAX_BIGINT_DIGITS)
3709
+ throw Error(
3710
+ "BigInt is too large. Received " +
3711
+ obj.length +
3712
+ " digits but the limit is " +
3713
+ MAX_BIGINT_DIGITS +
3714
+ "."
3715
+ );
3716
+ null !== arrayRoot &&
3717
+ bumpArrayCount(arrayRoot, obj.length, response);
3718
+ return BigInt(obj);
3590
3719
  case "A":
3591
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
3720
+ return parseTypedArray(
3721
+ response,
3722
+ value,
3723
+ ArrayBuffer,
3724
+ 1,
3725
+ obj,
3726
+ key,
3727
+ arrayRoot
3728
+ );
3592
3729
  case "O":
3593
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
3730
+ return parseTypedArray(
3731
+ response,
3732
+ value,
3733
+ Int8Array,
3734
+ 1,
3735
+ obj,
3736
+ key,
3737
+ arrayRoot
3738
+ );
3594
3739
  case "o":
3595
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
3740
+ return parseTypedArray(
3741
+ response,
3742
+ value,
3743
+ Uint8Array,
3744
+ 1,
3745
+ obj,
3746
+ key,
3747
+ arrayRoot
3748
+ );
3596
3749
  case "U":
3597
3750
  return parseTypedArray(
3598
3751
  response,
@@ -3600,22 +3753,79 @@
3600
3753
  Uint8ClampedArray,
3601
3754
  1,
3602
3755
  obj,
3603
- key
3756
+ key,
3757
+ arrayRoot
3604
3758
  );
3605
3759
  case "S":
3606
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
3760
+ return parseTypedArray(
3761
+ response,
3762
+ value,
3763
+ Int16Array,
3764
+ 2,
3765
+ obj,
3766
+ key,
3767
+ arrayRoot
3768
+ );
3607
3769
  case "s":
3608
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
3770
+ return parseTypedArray(
3771
+ response,
3772
+ value,
3773
+ Uint16Array,
3774
+ 2,
3775
+ obj,
3776
+ key,
3777
+ arrayRoot
3778
+ );
3609
3779
  case "L":
3610
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
3780
+ return parseTypedArray(
3781
+ response,
3782
+ value,
3783
+ Int32Array,
3784
+ 4,
3785
+ obj,
3786
+ key,
3787
+ arrayRoot
3788
+ );
3611
3789
  case "l":
3612
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
3790
+ return parseTypedArray(
3791
+ response,
3792
+ value,
3793
+ Uint32Array,
3794
+ 4,
3795
+ obj,
3796
+ key,
3797
+ arrayRoot
3798
+ );
3613
3799
  case "G":
3614
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
3800
+ return parseTypedArray(
3801
+ response,
3802
+ value,
3803
+ Float32Array,
3804
+ 4,
3805
+ obj,
3806
+ key,
3807
+ arrayRoot
3808
+ );
3615
3809
  case "g":
3616
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
3810
+ return parseTypedArray(
3811
+ response,
3812
+ value,
3813
+ Float64Array,
3814
+ 8,
3815
+ obj,
3816
+ key,
3817
+ arrayRoot
3818
+ );
3617
3819
  case "M":
3618
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
3820
+ return parseTypedArray(
3821
+ response,
3822
+ value,
3823
+ BigInt64Array,
3824
+ 8,
3825
+ obj,
3826
+ key,
3827
+ arrayRoot
3828
+ );
3619
3829
  case "m":
3620
3830
  return parseTypedArray(
3621
3831
  response,
@@ -3623,17 +3833,24 @@
3623
3833
  BigUint64Array,
3624
3834
  8,
3625
3835
  obj,
3626
- key
3836
+ key,
3837
+ arrayRoot
3627
3838
  );
3628
3839
  case "V":
3629
- return parseTypedArray(response, value, DataView, 1, obj, key);
3840
+ return parseTypedArray(
3841
+ response,
3842
+ value,
3843
+ DataView,
3844
+ 1,
3845
+ obj,
3846
+ key,
3847
+ arrayRoot
3848
+ );
3630
3849
  case "B":
3631
3850
  return (
3632
3851
  (obj = parseInt(value.slice(2), 16)),
3633
3852
  response._formData.get(response._prefix + obj)
3634
3853
  );
3635
- }
3636
- switch (value[1]) {
3637
3854
  case "R":
3638
3855
  return parseReadableStream(response, value, void 0);
3639
3856
  case "r":
@@ -3644,8 +3861,16 @@
3644
3861
  return parseAsyncIterable(response, value, !0);
3645
3862
  }
3646
3863
  value = value.slice(1);
3647
- return getOutlinedModel(response, value, obj, key, createModel);
3864
+ return getOutlinedModel(
3865
+ response,
3866
+ value,
3867
+ obj,
3868
+ key,
3869
+ arrayRoot,
3870
+ createModel
3871
+ );
3648
3872
  }
3873
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
3649
3874
  return value;
3650
3875
  }
3651
3876
  function createResponse(
@@ -3657,6 +3882,8 @@
3657
3882
  3 < arguments.length && void 0 !== arguments[3]
3658
3883
  ? arguments[3]
3659
3884
  : new FormData(),
3885
+ arraySizeLimit =
3886
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
3660
3887
  chunks = new Map();
3661
3888
  return {
3662
3889
  _bundlerConfig: bundlerConfig,
@@ -3665,19 +3892,32 @@
3665
3892
  _chunks: chunks,
3666
3893
  _closed: !1,
3667
3894
  _closedReason: null,
3668
- _temporaryReferences: temporaryReferences
3895
+ _temporaryReferences: temporaryReferences,
3896
+ _rootArrayContexts: new WeakMap(),
3897
+ _arraySizeLimit: arraySizeLimit
3669
3898
  };
3670
3899
  }
3671
3900
  function close(response) {
3672
3901
  reportGlobalError(response, Error("Connection closed."));
3673
3902
  }
3674
- function loadServerReference(bundlerConfig, id, bound) {
3903
+ function loadServerReference(bundlerConfig, metaData) {
3904
+ var id = metaData.id;
3905
+ if ("string" !== typeof id) return null;
3675
3906
  var serverReference = resolveServerReference(bundlerConfig, id);
3676
3907
  bundlerConfig = preloadModule(serverReference);
3677
- return bound
3678
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
3908
+ metaData = metaData.bound;
3909
+ return metaData instanceof Promise
3910
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
3679
3911
  _ref = _ref[0];
3680
3912
  var fn = requireModule(serverReference);
3913
+ if (_ref.length > MAX_BOUND_ARGS)
3914
+ throw Error(
3915
+ "Server Function has too many bound arguments. Received " +
3916
+ _ref.length +
3917
+ " but the limit is " +
3918
+ MAX_BOUND_ARGS +
3919
+ "."
3920
+ );
3681
3921
  return fn.bind.apply(fn, [null].concat(_ref));
3682
3922
  })
3683
3923
  : bundlerConfig
@@ -3686,8 +3926,19 @@
3686
3926
  })
3687
3927
  : Promise.resolve(requireModule(serverReference));
3688
3928
  }
3689
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
3690
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
3929
+ function decodeBoundActionMetaData(
3930
+ body,
3931
+ serverManifest,
3932
+ formFieldPrefix,
3933
+ arraySizeLimit
3934
+ ) {
3935
+ body = createResponse(
3936
+ serverManifest,
3937
+ formFieldPrefix,
3938
+ void 0,
3939
+ body,
3940
+ arraySizeLimit
3941
+ );
3691
3942
  close(body);
3692
3943
  body = getChunk(body, 0);
3693
3944
  body.then(function () {});
@@ -4137,13 +4388,14 @@
4137
4388
  patchConsole(console, "table"),
4138
4389
  patchConsole(console, "trace"),
4139
4390
  patchConsole(console, "warn"));
4140
- var ObjectPrototype = Object.prototype,
4391
+ var ObjectPrototype$1 = Object.prototype,
4141
4392
  stringify = JSON.stringify,
4142
4393
  PENDING$1 = 0,
4143
4394
  COMPLETED = 1,
4144
4395
  ABORTED = 3,
4145
4396
  ERRORED$1 = 4,
4146
4397
  RENDERING = 5,
4398
+ __PROTO__$1 = "__proto__",
4147
4399
  OPENING = 10,
4148
4400
  ABORTING = 12,
4149
4401
  CLOSING = 13,
@@ -4166,16 +4418,23 @@
4166
4418
  case "fulfilled":
4167
4419
  if ("function" === typeof resolve) {
4168
4420
  for (
4169
- var inspectedValue = this.value, cycleProtection = 0;
4421
+ var inspectedValue = this.value,
4422
+ cycleProtection = 0,
4423
+ visited = new Set();
4170
4424
  inspectedValue instanceof ReactPromise;
4171
4425
 
4172
4426
  ) {
4173
4427
  cycleProtection++;
4174
- if (inspectedValue === this || 1e3 < cycleProtection) {
4428
+ if (
4429
+ inspectedValue === this ||
4430
+ visited.has(inspectedValue) ||
4431
+ 1e3 < cycleProtection
4432
+ ) {
4175
4433
  "function" === typeof reject &&
4176
4434
  reject(Error("Cannot have cyclic thenables."));
4177
4435
  return;
4178
4436
  }
4437
+ visited.add(inspectedValue);
4179
4438
  if ("fulfilled" === inspectedValue.status)
4180
4439
  inspectedValue = inspectedValue.value;
4181
4440
  else break;
@@ -4196,7 +4455,15 @@
4196
4455
  "function" === typeof reject && reject(this.reason);
4197
4456
  }
4198
4457
  };
4199
- var initializingHandler = null;
4458
+ var ObjectPrototype = Object.prototype,
4459
+ ArrayPrototype = Array.prototype,
4460
+ initializingHandler = null;
4461
+ FlightIterator.prototype = {};
4462
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
4463
+ return this;
4464
+ };
4465
+ var MAX_BIGINT_DIGITS = 300,
4466
+ MAX_BOUND_ARGS = 1e3;
4200
4467
  exports.createClientModuleProxy = function (moduleId) {
4201
4468
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
4202
4469
  return new Proxy(moduleId, proxyHandlers$1);
@@ -4206,20 +4473,24 @@
4206
4473
  };
4207
4474
  exports.decodeAction = function (body, serverManifest) {
4208
4475
  var formData = new FormData(),
4209
- action = null;
4476
+ action = null,
4477
+ seenActions = new Set();
4210
4478
  body.forEach(function (value, key) {
4211
4479
  key.startsWith("$ACTION_")
4212
4480
  ? key.startsWith("$ACTION_REF_")
4213
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
4481
+ ? seenActions.has(key) ||
4482
+ (seenActions.add(key),
4483
+ (value = "$ACTION_" + key.slice(12) + ":"),
4214
4484
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
4215
- (action = loadServerReference(
4216
- serverManifest,
4217
- value.id,
4218
- value.bound
4219
- )))
4485
+ (action = loadServerReference(serverManifest, value)))
4220
4486
  : key.startsWith("$ACTION_ID_") &&
4221
- ((value = key.slice(11)),
4222
- (action = loadServerReference(serverManifest, value, null)))
4487
+ !seenActions.has(key) &&
4488
+ (seenActions.add(key),
4489
+ (value = key.slice(11)),
4490
+ (action = loadServerReference(serverManifest, {
4491
+ id: value,
4492
+ bound: null
4493
+ })))
4223
4494
  : formData.append(key, value);
4224
4495
  });
4225
4496
  return null === action
@@ -4255,7 +4526,8 @@
4255
4526
  webpackMap,
4256
4527
  "",
4257
4528
  options ? options.temporaryReferences : void 0,
4258
- body
4529
+ body,
4530
+ options ? options.arraySizeLimit : void 0
4259
4531
  );
4260
4532
  webpackMap = getChunk(body, 0);
4261
4533
  close(body);
@@ -4295,7 +4567,9 @@
4295
4567
  response$jscomp$0 = createResponse(
4296
4568
  webpackMap,
4297
4569
  "",
4298
- options ? options.temporaryReferences : void 0
4570
+ options ? options.temporaryReferences : void 0,
4571
+ void 0,
4572
+ options ? options.arraySizeLimit : void 0
4299
4573
  );
4300
4574
  iterator.next().then(progress, error);
4301
4575
  return getChunk(response$jscomp$0, 0);