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