react-server-dom-webpack 19.2.3 → 19.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2384,6 +2384,13 @@
2384
2384
  value
2385
2385
  ) {
2386
2386
  task.model = value;
2387
+ "__proto__" === parentPropertyName &&
2388
+ callWithDebugContextInDEV(request, task, function () {
2389
+ console.error(
2390
+ "Expected not to serialize an object with own property `__proto__`. When parsed this property will be omitted.%s",
2391
+ describeObjectForErrorMessage(parent, parentPropertyName)
2392
+ );
2393
+ });
2387
2394
  if (value === REACT_ELEMENT_TYPE) return "$";
2388
2395
  if (null === value) return null;
2389
2396
  if ("object" === typeof value) {
@@ -2577,7 +2584,7 @@
2577
2584
  if (value instanceof Date) return "$D" + value.toJSON();
2578
2585
  elementReference = getPrototypeOf(value);
2579
2586
  if (
2580
- elementReference !== ObjectPrototype &&
2587
+ elementReference !== ObjectPrototype$1 &&
2581
2588
  (null === elementReference ||
2582
2589
  null !== getPrototypeOf(elementReference))
2583
2590
  )
@@ -3159,7 +3166,7 @@
3159
3166
  return serializeDebugBlob(request, value);
3160
3167
  if (getIteratorFn(value)) return Array.from(value);
3161
3168
  request = getPrototypeOf(value);
3162
- if (request !== ObjectPrototype && null !== request) {
3169
+ if (request !== ObjectPrototype$1 && null !== request) {
3163
3170
  counter = Object.create(null);
3164
3171
  for (env in value)
3165
3172
  if (hasOwnProperty.call(value, env) || isGetter(request, env))
@@ -3948,12 +3955,12 @@
3948
3955
  this.value = value;
3949
3956
  this.reason = reason;
3950
3957
  }
3951
- function wakeChunk(response, listeners, value) {
3958
+ function wakeChunk(response, listeners, value, chunk) {
3952
3959
  for (var i = 0; i < listeners.length; i++) {
3953
3960
  var listener = listeners[i];
3954
3961
  "function" === typeof listener
3955
3962
  ? listener(value)
3956
- : fulfillReference(response, listener, value);
3963
+ : fulfillReference(response, listener, value, chunk.reason);
3957
3964
  }
3958
3965
  }
3959
3966
  function rejectChunk(response, listeners, error) {
@@ -3964,27 +3971,6 @@
3964
3971
  : rejectReference(response, listener.handler, error);
3965
3972
  }
3966
3973
  }
3967
- function resolveBlockedCycle(resolvedChunk, reference) {
3968
- var referencedChunk = reference.handler.chunk;
3969
- if (null === referencedChunk) return null;
3970
- if (referencedChunk === resolvedChunk) return reference.handler;
3971
- reference = referencedChunk.value;
3972
- if (null !== reference)
3973
- for (
3974
- referencedChunk = 0;
3975
- referencedChunk < reference.length;
3976
- referencedChunk++
3977
- ) {
3978
- var listener = reference[referencedChunk];
3979
- if (
3980
- "function" !== typeof listener &&
3981
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
3982
- null !== listener)
3983
- )
3984
- return listener;
3985
- }
3986
- return null;
3987
- }
3988
3974
  function triggerErrorOnChunk(response, chunk, error) {
3989
3975
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
3990
3976
  chunk.reason.error(error);
@@ -4008,57 +3994,25 @@
4008
3994
  chunk.value = value;
4009
3995
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
4010
3996
  if (null !== resolveListeners)
4011
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
3997
+ switch ((initializeModelChunk(chunk), chunk.status)) {
4012
3998
  case "fulfilled":
4013
- wakeChunk(response, resolveListeners, chunk.value);
3999
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
4014
4000
  break;
4015
4001
  case "blocked":
4016
- for (value = 0; value < resolveListeners.length; value++)
4017
- if (
4018
- ((id = resolveListeners[value]), "function" !== typeof id)
4019
- ) {
4020
- var cyclicHandler = resolveBlockedCycle(chunk, id);
4021
- if (null !== cyclicHandler)
4022
- switch (
4023
- (fulfillReference(response, id, cyclicHandler.value),
4024
- resolveListeners.splice(value, 1),
4025
- value--,
4026
- null !== rejectListeners &&
4027
- ((id = rejectListeners.indexOf(id)),
4028
- -1 !== id && rejectListeners.splice(id, 1)),
4029
- chunk.status)
4030
- ) {
4031
- case "fulfilled":
4032
- wakeChunk(response, resolveListeners, chunk.value);
4033
- break a;
4034
- case "rejected":
4035
- null !== rejectListeners &&
4036
- rejectChunk(response, rejectListeners, chunk.reason);
4037
- break a;
4038
- }
4039
- }
4040
4002
  case "pending":
4041
4003
  if (chunk.value)
4042
- for (
4043
- response = 0;
4044
- response < resolveListeners.length;
4045
- response++
4046
- )
4047
- chunk.value.push(resolveListeners[response]);
4004
+ for (value = 0; value < resolveListeners.length; value++)
4005
+ chunk.value.push(resolveListeners[value]);
4048
4006
  else chunk.value = resolveListeners;
4049
4007
  if (chunk.reason) {
4050
4008
  if (rejectListeners)
4051
- for (
4052
- resolveListeners = 0;
4053
- resolveListeners < rejectListeners.length;
4054
- resolveListeners++
4055
- )
4056
- chunk.reason.push(rejectListeners[resolveListeners]);
4009
+ for (value = 0; value < rejectListeners.length; value++)
4010
+ chunk.reason.push(rejectListeners[value]);
4057
4011
  } else chunk.reason = rejectListeners;
4058
4012
  break;
4059
4013
  case "rejected":
4060
4014
  rejectListeners &&
4061
- wakeChunk(response, rejectListeners, chunk.reason);
4015
+ rejectChunk(response, rejectListeners, chunk.reason);
4062
4016
  }
4063
4017
  }
4064
4018
  }
@@ -4082,15 +4036,51 @@
4082
4036
  );
4083
4037
  }
4084
4038
  function loadServerReference$1(response, metaData, parentObject, key) {
4039
+ function reject(error) {
4040
+ var rejectListeners = blockedPromise.reason,
4041
+ erroredPromise = blockedPromise;
4042
+ erroredPromise.status = "rejected";
4043
+ erroredPromise.value = null;
4044
+ erroredPromise.reason = error;
4045
+ null !== rejectListeners &&
4046
+ rejectChunk(response, rejectListeners, error);
4047
+ rejectReference(response, handler, error);
4048
+ }
4085
4049
  var id = metaData.id;
4086
4050
  if ("string" !== typeof id || "then" === key) return null;
4051
+ var cachedPromise = metaData.$$promise;
4052
+ if (void 0 !== cachedPromise) {
4053
+ if ("fulfilled" === cachedPromise.status)
4054
+ return (
4055
+ (cachedPromise = cachedPromise.value),
4056
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
4057
+ );
4058
+ initializingHandler
4059
+ ? ((id = initializingHandler), id.deps++)
4060
+ : (id = initializingHandler =
4061
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
4062
+ cachedPromise.then(
4063
+ resolveReference.bind(null, response, id, parentObject, key),
4064
+ rejectReference.bind(null, response, id)
4065
+ );
4066
+ return null;
4067
+ }
4068
+ var blockedPromise = new ReactPromise("blocked", null, null);
4069
+ metaData.$$promise = blockedPromise;
4087
4070
  var serverReference = resolveServerReference(response._bundlerConfig, id);
4088
- id = metaData.bound;
4089
- var promise = preloadModule(serverReference);
4090
- if (promise)
4091
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
4092
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
4093
- else return requireModule(serverReference);
4071
+ cachedPromise = metaData.bound;
4072
+ if ((id = preloadModule(serverReference)))
4073
+ cachedPromise instanceof ReactPromise &&
4074
+ (id = Promise.all([id, cachedPromise]));
4075
+ else if (cachedPromise instanceof ReactPromise)
4076
+ id = Promise.resolve(cachedPromise);
4077
+ else
4078
+ return (
4079
+ (cachedPromise = requireModule(serverReference)),
4080
+ (id = blockedPromise),
4081
+ (id.status = "fulfilled"),
4082
+ (id.value = cachedPromise)
4083
+ );
4094
4084
  if (initializingHandler) {
4095
4085
  var handler = initializingHandler;
4096
4086
  handler.deps++;
@@ -4102,93 +4092,107 @@
4102
4092
  deps: 1,
4103
4093
  errored: !1
4104
4094
  };
4105
- promise.then(
4106
- function () {
4107
- var resolvedValue = requireModule(serverReference);
4108
- if (metaData.bound) {
4109
- var promiseValue = metaData.bound.value;
4110
- promiseValue = Array.isArray(promiseValue)
4111
- ? promiseValue.slice(0)
4112
- : [];
4113
- promiseValue.unshift(null);
4114
- resolvedValue = resolvedValue.bind.apply(
4115
- resolvedValue,
4116
- promiseValue
4095
+ id.then(function () {
4096
+ var resolvedValue = requireModule(serverReference);
4097
+ if (metaData.bound) {
4098
+ var promiseValue = metaData.bound.value;
4099
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
4100
+ if (promiseValue.length > MAX_BOUND_ARGS) {
4101
+ reject(
4102
+ Error(
4103
+ "Server Function has too many bound arguments. Received " +
4104
+ promiseValue.length +
4105
+ " but the limit is " +
4106
+ MAX_BOUND_ARGS +
4107
+ "."
4108
+ )
4117
4109
  );
4110
+ return;
4118
4111
  }
4119
- parentObject[key] = resolvedValue;
4120
- "" === key &&
4121
- null === handler.value &&
4122
- (handler.value = resolvedValue);
4123
- handler.deps--;
4124
- 0 === handler.deps &&
4125
- ((resolvedValue = handler.chunk),
4126
- null !== resolvedValue &&
4127
- "blocked" === resolvedValue.status &&
4128
- ((promiseValue = resolvedValue.value),
4129
- (resolvedValue.status = "fulfilled"),
4130
- (resolvedValue.value = handler.value),
4131
- (resolvedValue.reason = null),
4132
- null !== promiseValue &&
4133
- wakeChunk(response, promiseValue, handler.value)));
4134
- },
4135
- function (error) {
4136
- if (!handler.errored) {
4137
- handler.errored = !0;
4138
- handler.value = null;
4139
- handler.reason = error;
4140
- var chunk = handler.chunk;
4141
- null !== chunk &&
4142
- "blocked" === chunk.status &&
4143
- triggerErrorOnChunk(response, chunk, error);
4144
- }
4112
+ promiseValue.unshift(null);
4113
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
4145
4114
  }
4146
- );
4115
+ promiseValue = blockedPromise.value;
4116
+ var initializedPromise = blockedPromise;
4117
+ initializedPromise.status = "fulfilled";
4118
+ initializedPromise.value = resolvedValue;
4119
+ initializedPromise.reason = null;
4120
+ null !== promiseValue &&
4121
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
4122
+ resolveReference(response, handler, parentObject, key, resolvedValue);
4123
+ }, reject);
4147
4124
  return null;
4148
4125
  }
4149
- function reviveModel(response, parentObj, parentKey, value, reference) {
4126
+ function reviveModel(
4127
+ response,
4128
+ parentObj,
4129
+ parentKey,
4130
+ value,
4131
+ reference,
4132
+ arrayRoot
4133
+ ) {
4150
4134
  if ("string" === typeof value)
4151
4135
  return parseModelString(
4152
4136
  response,
4153
4137
  parentObj,
4154
4138
  parentKey,
4155
4139
  value,
4156
- reference
4140
+ reference,
4141
+ arrayRoot
4157
4142
  );
4158
4143
  if ("object" === typeof value && null !== value)
4159
4144
  if (
4160
4145
  (void 0 !== reference &&
4161
4146
  void 0 !== response._temporaryReferences &&
4162
4147
  response._temporaryReferences.set(value, reference),
4163
- Array.isArray(value))
4164
- )
4165
- for (var i = 0; i < value.length; i++)
4166
- value[i] = reviveModel(
4148
+ isArrayImpl(value))
4149
+ ) {
4150
+ if (null === arrayRoot) {
4151
+ var childContext = { count: 0, fork: !1 };
4152
+ response._rootArrayContexts.set(value, childContext);
4153
+ } else childContext = arrayRoot;
4154
+ 1 < value.length && (childContext.fork = !0);
4155
+ bumpArrayCount(childContext, value.length + 1, response);
4156
+ for (parentObj = 0; parentObj < value.length; parentObj++)
4157
+ value[parentObj] = reviveModel(
4167
4158
  response,
4168
4159
  value,
4169
- "" + i,
4170
- value[i],
4171
- void 0 !== reference ? reference + ":" + i : void 0
4160
+ "" + parentObj,
4161
+ value[parentObj],
4162
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
4163
+ childContext
4172
4164
  );
4173
- else
4174
- for (i in value)
4175
- hasOwnProperty.call(value, i) &&
4176
- ((parentObj =
4177
- void 0 !== reference && -1 === i.indexOf(":")
4178
- ? reference + ":" + i
4179
- : void 0),
4180
- (parentObj = reviveModel(
4181
- response,
4182
- value,
4183
- i,
4184
- value[i],
4185
- parentObj
4186
- )),
4187
- void 0 !== parentObj || "__proto__" === i
4188
- ? (value[i] = parentObj)
4189
- : delete value[i]);
4165
+ } else
4166
+ for (childContext in value)
4167
+ hasOwnProperty.call(value, childContext) &&
4168
+ ("__proto__" === childContext
4169
+ ? delete value[childContext]
4170
+ : ((parentObj =
4171
+ void 0 !== reference && -1 === childContext.indexOf(":")
4172
+ ? reference + ":" + childContext
4173
+ : void 0),
4174
+ (parentObj = reviveModel(
4175
+ response,
4176
+ value,
4177
+ childContext,
4178
+ value[childContext],
4179
+ parentObj,
4180
+ null
4181
+ )),
4182
+ void 0 !== parentObj
4183
+ ? (value[childContext] = parentObj)
4184
+ : delete value[childContext]));
4190
4185
  return value;
4191
4186
  }
4187
+ function bumpArrayCount(arrayContext, slots, response) {
4188
+ if (
4189
+ (arrayContext.count += slots) > response._arraySizeLimit &&
4190
+ arrayContext.fork
4191
+ )
4192
+ throw Error(
4193
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
4194
+ );
4195
+ }
4192
4196
  function initializeModelChunk(chunk) {
4193
4197
  var prevHandler = initializingHandler;
4194
4198
  initializingHandler = null;
@@ -4202,13 +4206,15 @@
4202
4206
  chunk.value = null;
4203
4207
  chunk.reason = null;
4204
4208
  try {
4205
- var rawModel = JSON.parse(resolvedModel),
4206
- value = reviveModel(
4209
+ var rawModel = JSON.parse(resolvedModel);
4210
+ resolvedModel = { count: 0, fork: !1 };
4211
+ var value = reviveModel(
4207
4212
  response,
4208
4213
  { "": rawModel },
4209
4214
  "",
4210
4215
  rawModel,
4211
- _chunk$reason
4216
+ _chunk$reason,
4217
+ resolvedModel
4212
4218
  ),
4213
4219
  resolveListeners = chunk.value;
4214
4220
  if (null !== resolveListeners)
@@ -4220,19 +4226,20 @@
4220
4226
  var listener = resolveListeners[rawModel];
4221
4227
  "function" === typeof listener
4222
4228
  ? listener(value)
4223
- : fulfillReference(response, listener, value);
4229
+ : fulfillReference(response, listener, value, resolvedModel);
4224
4230
  }
4225
4231
  if (null !== initializingHandler) {
4226
4232
  if (initializingHandler.errored) throw initializingHandler.reason;
4227
4233
  if (0 < initializingHandler.deps) {
4228
4234
  initializingHandler.value = value;
4235
+ initializingHandler.reason = resolvedModel;
4229
4236
  initializingHandler.chunk = chunk;
4230
4237
  return;
4231
4238
  }
4232
4239
  }
4233
4240
  chunk.status = "fulfilled";
4234
4241
  chunk.value = value;
4235
- chunk.reason = null;
4242
+ chunk.reason = resolvedModel;
4236
4243
  } catch (error) {
4237
4244
  (chunk.status = "rejected"), (chunk.reason = error);
4238
4245
  } finally {
@@ -4247,7 +4254,8 @@
4247
4254
  ? triggerErrorOnChunk(response, chunk, error)
4248
4255
  : "fulfilled" === chunk.status &&
4249
4256
  null !== chunk.reason &&
4250
- chunk.reason.error(error);
4257
+ ((chunk = chunk.reason),
4258
+ "function" === typeof chunk.error && chunk.error(error));
4251
4259
  });
4252
4260
  }
4253
4261
  function getChunk(response, id) {
@@ -4268,40 +4276,74 @@
4268
4276
  chunks.set(id, chunk));
4269
4277
  return chunk;
4270
4278
  }
4271
- function fulfillReference(response, reference, value) {
4279
+ function fulfillReference(response, reference, value, arrayRoot) {
4272
4280
  var handler = reference.handler,
4273
4281
  parentObject = reference.parentObject,
4274
4282
  key = reference.key,
4275
4283
  map = reference.map,
4276
4284
  path = reference.path;
4277
4285
  try {
4278
- for (var i = 1; i < path.length; i++) {
4286
+ for (
4287
+ var localLength = 0,
4288
+ rootArrayContexts = response._rootArrayContexts,
4289
+ i = 1;
4290
+ i < path.length;
4291
+ i++
4292
+ ) {
4279
4293
  var name = path[i];
4280
4294
  if (
4281
4295
  "object" !== typeof value ||
4282
- !hasOwnProperty.call(value, name) ||
4283
- value instanceof Promise
4296
+ null === value ||
4297
+ (getPrototypeOf(value) !== ObjectPrototype &&
4298
+ getPrototypeOf(value) !== ArrayPrototype) ||
4299
+ !hasOwnProperty.call(value, name)
4284
4300
  )
4285
4301
  throw Error("Invalid reference.");
4286
4302
  value = value[name];
4303
+ if (isArrayImpl(value))
4304
+ (localLength = 0),
4305
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
4306
+ else if (((arrayRoot = null), "string" === typeof value))
4307
+ localLength = value.length;
4308
+ else if ("bigint" === typeof value) {
4309
+ var n = Math.abs(Number(value));
4310
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
4311
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
4287
4312
  }
4288
- var mappedValue = map(response, value, parentObject, key);
4289
- parentObject[key] = mappedValue;
4290
- "" === key && null === handler.value && (handler.value = mappedValue);
4313
+ var resolvedValue = map(response, value, parentObject, key);
4314
+ var referenceArrayRoot = reference.arrayRoot;
4315
+ null !== referenceArrayRoot &&
4316
+ (null !== arrayRoot
4317
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
4318
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
4319
+ : 0 < localLength &&
4320
+ bumpArrayCount(referenceArrayRoot, localLength, response));
4291
4321
  } catch (error) {
4292
- rejectReference(response, reference.handler, error);
4322
+ rejectReference(response, handler, error);
4293
4323
  return;
4294
4324
  }
4325
+ resolveReference(response, handler, parentObject, key, resolvedValue);
4326
+ }
4327
+ function resolveReference(
4328
+ response,
4329
+ handler,
4330
+ parentObject,
4331
+ key,
4332
+ resolvedValue
4333
+ ) {
4334
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
4335
+ "" === key && null === handler.value && (handler.value = resolvedValue);
4295
4336
  handler.deps--;
4296
4337
  0 === handler.deps &&
4297
- ((reference = handler.chunk),
4298
- null !== reference &&
4299
- "blocked" === reference.status &&
4300
- ((value = reference.value),
4301
- (reference.status = "fulfilled"),
4302
- (reference.value = handler.value),
4303
- (reference.reason = handler.reason),
4304
- null !== value && wakeChunk(response, value, handler.value)));
4338
+ ((parentObject = handler.chunk),
4339
+ null !== parentObject &&
4340
+ "blocked" === parentObject.status &&
4341
+ ((key = parentObject.value),
4342
+ (parentObject.status = "fulfilled"),
4343
+ (parentObject.value = handler.value),
4344
+ (parentObject.reason = handler.reason),
4345
+ null !== key &&
4346
+ wakeChunk(response, key, handler.value, parentObject)));
4305
4347
  }
4306
4348
  function rejectReference(response, handler, error) {
4307
4349
  handler.errored ||
@@ -4313,29 +4355,66 @@
4313
4355
  "blocked" === handler.status &&
4314
4356
  triggerErrorOnChunk(response, handler, error));
4315
4357
  }
4316
- function getOutlinedModel(response, reference, parentObject, key, map) {
4358
+ function getOutlinedModel(
4359
+ response,
4360
+ reference,
4361
+ parentObject,
4362
+ key,
4363
+ referenceArrayRoot,
4364
+ map
4365
+ ) {
4317
4366
  reference = reference.split(":");
4318
- var id = parseInt(reference[0], 16);
4319
- id = getChunk(response, id);
4320
- switch (id.status) {
4367
+ var id = parseInt(reference[0], 16),
4368
+ chunk = getChunk(response, id);
4369
+ switch (chunk.status) {
4321
4370
  case "resolved_model":
4322
- initializeModelChunk(id);
4371
+ initializeModelChunk(chunk);
4323
4372
  }
4324
- switch (id.status) {
4373
+ switch (chunk.status) {
4325
4374
  case "fulfilled":
4326
- id = id.value;
4327
- for (var i = 1; i < reference.length; i++) {
4328
- var name = reference[i];
4375
+ id = chunk.value;
4376
+ chunk = chunk.reason;
4377
+ for (
4378
+ var localLength = 0,
4379
+ rootArrayContexts = response._rootArrayContexts,
4380
+ i = 1;
4381
+ i < reference.length;
4382
+ i++
4383
+ ) {
4384
+ localLength = reference[i];
4329
4385
  if (
4330
4386
  "object" !== typeof id ||
4331
- !hasOwnProperty.call(id, name) ||
4332
- id instanceof Promise
4387
+ null === id ||
4388
+ (getPrototypeOf(id) !== ObjectPrototype &&
4389
+ getPrototypeOf(id) !== ArrayPrototype) ||
4390
+ !hasOwnProperty.call(id, localLength)
4333
4391
  )
4334
4392
  throw Error("Invalid reference.");
4335
- id = id[name];
4393
+ id = id[localLength];
4394
+ isArrayImpl(id)
4395
+ ? ((localLength = 0),
4396
+ (chunk = rootArrayContexts.get(id) || chunk))
4397
+ : ((chunk = null),
4398
+ "string" === typeof id
4399
+ ? (localLength = id.length)
4400
+ : "bigint" === typeof id
4401
+ ? ((localLength = Math.abs(Number(id))),
4402
+ (localLength =
4403
+ 0 === localLength
4404
+ ? 1
4405
+ : Math.floor(Math.log10(localLength)) + 1))
4406
+ : (localLength = ArrayBuffer.isView(id)
4407
+ ? id.byteLength
4408
+ : 0));
4336
4409
  }
4337
- return map(response, id, parentObject, key);
4338
- case "pending":
4410
+ parentObject = map(response, id, parentObject, key);
4411
+ null !== referenceArrayRoot &&
4412
+ (null !== chunk
4413
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
4414
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
4415
+ : 0 < localLength &&
4416
+ bumpArrayCount(referenceArrayRoot, localLength, response));
4417
+ return parentObject;
4339
4418
  case "blocked":
4340
4419
  return (
4341
4420
  initializingHandler
@@ -4348,31 +4427,34 @@
4348
4427
  deps: 1,
4349
4428
  errored: !1
4350
4429
  }),
4351
- (parentObject = {
4430
+ (referenceArrayRoot = {
4352
4431
  handler: response,
4353
4432
  parentObject: parentObject,
4354
4433
  key: key,
4355
4434
  map: map,
4356
- path: reference
4435
+ path: reference,
4436
+ arrayRoot: referenceArrayRoot
4357
4437
  }),
4358
- null === id.value
4359
- ? (id.value = [parentObject])
4360
- : id.value.push(parentObject),
4361
- null === id.reason
4362
- ? (id.reason = [parentObject])
4363
- : id.reason.push(parentObject),
4438
+ null === chunk.value
4439
+ ? (chunk.value = [referenceArrayRoot])
4440
+ : chunk.value.push(referenceArrayRoot),
4441
+ null === chunk.reason
4442
+ ? (chunk.reason = [referenceArrayRoot])
4443
+ : chunk.reason.push(referenceArrayRoot),
4364
4444
  null
4365
4445
  );
4446
+ case "pending":
4447
+ throw Error("Invalid forward reference.");
4366
4448
  default:
4367
4449
  return (
4368
4450
  initializingHandler
4369
4451
  ? ((initializingHandler.errored = !0),
4370
4452
  (initializingHandler.value = null),
4371
- (initializingHandler.reason = id.reason))
4453
+ (initializingHandler.reason = chunk.reason))
4372
4454
  : (initializingHandler = {
4373
4455
  chunk: null,
4374
4456
  value: null,
4375
- reason: id.reason,
4457
+ reason: chunk.reason,
4376
4458
  deps: 0,
4377
4459
  errored: !0
4378
4460
  }),
@@ -4381,12 +4463,21 @@
4381
4463
  }
4382
4464
  }
4383
4465
  function createMap(response, model) {
4466
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
4467
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
4468
+ model.$$consumed = !0;
4384
4469
  return new Map(model);
4385
4470
  }
4386
4471
  function createSet(response, model) {
4472
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
4473
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
4474
+ model.$$consumed = !0;
4387
4475
  return new Set(model);
4388
4476
  }
4389
4477
  function extractIterator(response, model) {
4478
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
4479
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
4480
+ model.$$consumed = !0;
4390
4481
  return model[Symbol.iterator]();
4391
4482
  }
4392
4483
  function createModel(response, model, parentObject, key) {
@@ -4398,13 +4489,34 @@
4398
4489
  constructor,
4399
4490
  bytesPerElement,
4400
4491
  parentObject,
4401
- parentKey
4492
+ parentKey,
4493
+ referenceArrayRoot
4402
4494
  ) {
4495
+ function reject(error) {
4496
+ if (!handler.errored) {
4497
+ handler.errored = !0;
4498
+ handler.value = null;
4499
+ handler.reason = error;
4500
+ var chunk = handler.chunk;
4501
+ null !== chunk &&
4502
+ "blocked" === chunk.status &&
4503
+ triggerErrorOnChunk(response, chunk, error);
4504
+ }
4505
+ }
4403
4506
  reference = parseInt(reference.slice(2), 16);
4404
- bytesPerElement = response._prefix + reference;
4405
- if (response._chunks.has(reference))
4507
+ var key = response._prefix + reference;
4508
+ bytesPerElement = response._chunks;
4509
+ if (bytesPerElement.has(reference))
4406
4510
  throw Error("Already initialized typed array.");
4407
- reference = response._formData.get(bytesPerElement).arrayBuffer();
4511
+ bytesPerElement.set(
4512
+ reference,
4513
+ new ReactPromise(
4514
+ "rejected",
4515
+ null,
4516
+ Error("Already initialized typed array.")
4517
+ )
4518
+ );
4519
+ reference = response._formData.get(key).arrayBuffer();
4408
4520
  if (initializingHandler) {
4409
4521
  var handler = initializingHandler;
4410
4522
  handler.deps++;
@@ -4416,40 +4528,32 @@
4416
4528
  deps: 1,
4417
4529
  errored: !1
4418
4530
  };
4419
- reference.then(
4420
- function (buffer) {
4421
- buffer =
4531
+ reference.then(function (buffer) {
4532
+ try {
4533
+ null !== referenceArrayRoot &&
4534
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
4535
+ var resolvedValue =
4422
4536
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
4423
- parentObject[parentKey] = buffer;
4537
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
4424
4538
  "" === parentKey &&
4425
4539
  null === handler.value &&
4426
- (handler.value = buffer);
4427
- handler.deps--;
4428
- if (
4429
- 0 === handler.deps &&
4430
- ((buffer = handler.chunk),
4431
- null !== buffer && "blocked" === buffer.status)
4432
- ) {
4433
- var resolveListeners = buffer.value;
4434
- buffer.status = "fulfilled";
4435
- buffer.value = handler.value;
4436
- buffer.reason = null;
4437
- null !== resolveListeners &&
4438
- wakeChunk(response, resolveListeners, handler.value);
4439
- }
4440
- },
4441
- function (error) {
4442
- if (!handler.errored) {
4443
- handler.errored = !0;
4444
- handler.value = null;
4445
- handler.reason = error;
4446
- var chunk = handler.chunk;
4447
- null !== chunk &&
4448
- "blocked" === chunk.status &&
4449
- triggerErrorOnChunk(response, chunk, error);
4450
- }
4540
+ (handler.value = resolvedValue);
4541
+ } catch (x) {
4542
+ reject(x);
4543
+ return;
4451
4544
  }
4452
- );
4545
+ handler.deps--;
4546
+ 0 === handler.deps &&
4547
+ ((buffer = handler.chunk),
4548
+ null !== buffer &&
4549
+ "blocked" === buffer.status &&
4550
+ ((resolvedValue = buffer.value),
4551
+ (buffer.status = "fulfilled"),
4552
+ (buffer.value = handler.value),
4553
+ (buffer.reason = null),
4554
+ null !== resolvedValue &&
4555
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
4556
+ }, reject);
4453
4557
  return null;
4454
4558
  }
4455
4559
  function resolveStream(response, id, stream, controller) {
@@ -4467,90 +4571,78 @@
4467
4571
  : controller.enqueueModel(chunks));
4468
4572
  }
4469
4573
  function parseReadableStream(response, reference, type) {
4574
+ function enqueue(value) {
4575
+ "bytes" !== type || ArrayBuffer.isView(value)
4576
+ ? controller.enqueue(value)
4577
+ : flightController.error(Error("Invalid data for bytes stream."));
4578
+ }
4470
4579
  reference = parseInt(reference.slice(2), 16);
4471
4580
  if (response._chunks.has(reference))
4472
4581
  throw Error("Already initialized stream.");
4473
4582
  var controller = null,
4474
- closed = !1;
4475
- type = new ReadableStream({
4476
- type: type,
4477
- start: function (c) {
4478
- controller = c;
4479
- }
4480
- });
4481
- var previousBlockedChunk = null;
4482
- resolveStream(response, reference, type, {
4483
- enqueueModel: function (json) {
4484
- if (null === previousBlockedChunk) {
4485
- var chunk = new ReactPromise(
4486
- "resolved_model",
4487
- json,
4488
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4489
- );
4490
- initializeModelChunk(chunk);
4491
- "fulfilled" === chunk.status
4492
- ? controller.enqueue(chunk.value)
4493
- : (chunk.then(
4494
- function (v) {
4495
- return controller.enqueue(v);
4496
- },
4497
- function (e) {
4498
- return controller.error(e);
4499
- }
4500
- ),
4501
- (previousBlockedChunk = chunk));
4502
- } else {
4503
- chunk = previousBlockedChunk;
4504
- var _chunk = new ReactPromise("pending", null, null);
4505
- _chunk.then(
4506
- function (v) {
4507
- return controller.enqueue(v);
4508
- },
4509
- function (e) {
4510
- return controller.error(e);
4511
- }
4512
- );
4513
- previousBlockedChunk = _chunk;
4514
- chunk.then(function () {
4515
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4516
- resolveModelChunk(response, _chunk, json, -1);
4517
- });
4583
+ closed = !1,
4584
+ stream = new ReadableStream({
4585
+ type: type,
4586
+ start: function (c) {
4587
+ controller = c;
4518
4588
  }
4519
- },
4520
- close: function () {
4521
- if (!closed)
4522
- if (((closed = !0), null === previousBlockedChunk))
4523
- controller.close();
4524
- else {
4525
- var blockedChunk = previousBlockedChunk;
4526
- previousBlockedChunk = null;
4527
- blockedChunk.then(function () {
4528
- return controller.close();
4529
- });
4530
- }
4531
- },
4532
- error: function (error) {
4533
- if (!closed)
4534
- if (((closed = !0), null === previousBlockedChunk))
4535
- controller.error(error);
4536
- else {
4537
- var blockedChunk = previousBlockedChunk;
4538
- previousBlockedChunk = null;
4539
- blockedChunk.then(function () {
4540
- return controller.error(error);
4589
+ }),
4590
+ previousBlockedChunk = null,
4591
+ flightController = {
4592
+ enqueueModel: function (json) {
4593
+ if (null === previousBlockedChunk) {
4594
+ var chunk = new ReactPromise(
4595
+ "resolved_model",
4596
+ json,
4597
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4598
+ );
4599
+ initializeModelChunk(chunk);
4600
+ "fulfilled" === chunk.status
4601
+ ? enqueue(chunk.value)
4602
+ : (chunk.then(enqueue, flightController.error),
4603
+ (previousBlockedChunk = chunk));
4604
+ } else {
4605
+ chunk = previousBlockedChunk;
4606
+ var _chunk = new ReactPromise("pending", null, null);
4607
+ _chunk.then(enqueue, flightController.error);
4608
+ previousBlockedChunk = _chunk;
4609
+ chunk.then(function () {
4610
+ previousBlockedChunk === _chunk &&
4611
+ (previousBlockedChunk = null);
4612
+ resolveModelChunk(response, _chunk, json, -1);
4541
4613
  });
4542
4614
  }
4543
- }
4544
- });
4545
- return type;
4546
- }
4547
- function asyncIterator() {
4548
- return this;
4615
+ },
4616
+ close: function () {
4617
+ if (!closed)
4618
+ if (((closed = !0), null === previousBlockedChunk))
4619
+ controller.close();
4620
+ else {
4621
+ var blockedChunk = previousBlockedChunk;
4622
+ previousBlockedChunk = null;
4623
+ blockedChunk.then(function () {
4624
+ return controller.close();
4625
+ });
4626
+ }
4627
+ },
4628
+ error: function (error) {
4629
+ if (!closed)
4630
+ if (((closed = !0), null === previousBlockedChunk))
4631
+ controller.error(error);
4632
+ else {
4633
+ var blockedChunk = previousBlockedChunk;
4634
+ previousBlockedChunk = null;
4635
+ blockedChunk.then(function () {
4636
+ return controller.error(error);
4637
+ });
4638
+ }
4639
+ }
4640
+ };
4641
+ resolveStream(response, reference, stream, flightController);
4642
+ return stream;
4549
4643
  }
4550
- function createIterator(next) {
4551
- next = { next: next };
4552
- next[ASYNC_ITERATOR] = asyncIterator;
4553
- return next;
4644
+ function FlightIterator(next) {
4645
+ this.next = next;
4554
4646
  }
4555
4647
  function parseAsyncIterable(response, reference, iterator) {
4556
4648
  reference = parseInt(reference.slice(2), 16);
@@ -4561,7 +4653,7 @@
4561
4653
  nextWriteIndex = 0,
4562
4654
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
4563
4655
  var nextReadIndex = 0;
4564
- return createIterator(function (arg) {
4656
+ return new FlightIterator(function (arg) {
4565
4657
  if (void 0 !== arg)
4566
4658
  throw Error(
4567
4659
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -4640,19 +4732,30 @@
4640
4732
  });
4641
4733
  return iterator;
4642
4734
  }
4643
- function parseModelString(response, obj, key, value, reference) {
4735
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
4644
4736
  if ("$" === value[0]) {
4645
4737
  switch (value[1]) {
4646
4738
  case "$":
4647
- return value.slice(1);
4739
+ return (
4740
+ null !== arrayRoot &&
4741
+ bumpArrayCount(arrayRoot, value.length - 1, response),
4742
+ value.slice(1)
4743
+ );
4648
4744
  case "@":
4649
4745
  return (
4650
4746
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
4651
4747
  );
4652
4748
  case "h":
4653
4749
  return (
4654
- (value = value.slice(2)),
4655
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
4750
+ (arrayRoot = value.slice(2)),
4751
+ getOutlinedModel(
4752
+ response,
4753
+ arrayRoot,
4754
+ obj,
4755
+ key,
4756
+ null,
4757
+ loadServerReference$1
4758
+ )
4656
4759
  );
4657
4760
  case "T":
4658
4761
  if (
@@ -4668,27 +4771,44 @@
4668
4771
  );
4669
4772
  case "Q":
4670
4773
  return (
4671
- (value = value.slice(2)),
4672
- getOutlinedModel(response, value, obj, key, createMap)
4774
+ (arrayRoot = value.slice(2)),
4775
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
4673
4776
  );
4674
4777
  case "W":
4675
4778
  return (
4676
- (value = value.slice(2)),
4677
- getOutlinedModel(response, value, obj, key, createSet)
4779
+ (arrayRoot = value.slice(2)),
4780
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
4678
4781
  );
4679
4782
  case "K":
4680
4783
  obj = value.slice(2);
4681
- var formPrefix = response._prefix + obj + "_",
4682
- data = new FormData();
4683
- response._formData.forEach(function (entry, entryKey) {
4684
- entryKey.startsWith(formPrefix) &&
4685
- data.append(entryKey.slice(formPrefix.length), entry);
4686
- });
4687
- return data;
4784
+ obj = response._prefix + obj + "_";
4785
+ key = new FormData();
4786
+ response = response._formData;
4787
+ arrayRoot = Array.from(response.keys());
4788
+ for (value = 0; value < arrayRoot.length; value++)
4789
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
4790
+ for (
4791
+ var entries = response.getAll(reference),
4792
+ newKey = reference.slice(obj.length),
4793
+ j = 0;
4794
+ j < entries.length;
4795
+ j++
4796
+ )
4797
+ key.append(newKey, entries[j]);
4798
+ response.delete(reference);
4799
+ }
4800
+ return key;
4688
4801
  case "i":
4689
4802
  return (
4690
- (value = value.slice(2)),
4691
- getOutlinedModel(response, value, obj, key, extractIterator)
4803
+ (arrayRoot = value.slice(2)),
4804
+ getOutlinedModel(
4805
+ response,
4806
+ arrayRoot,
4807
+ obj,
4808
+ key,
4809
+ null,
4810
+ extractIterator
4811
+ )
4692
4812
  );
4693
4813
  case "I":
4694
4814
  return Infinity;
@@ -4701,15 +4821,48 @@
4701
4821
  case "D":
4702
4822
  return new Date(Date.parse(value.slice(2)));
4703
4823
  case "n":
4704
- return BigInt(value.slice(2));
4705
- }
4706
- switch (value[1]) {
4824
+ obj = value.slice(2);
4825
+ if (obj.length > MAX_BIGINT_DIGITS)
4826
+ throw Error(
4827
+ "BigInt is too large. Received " +
4828
+ obj.length +
4829
+ " digits but the limit is " +
4830
+ MAX_BIGINT_DIGITS +
4831
+ "."
4832
+ );
4833
+ null !== arrayRoot &&
4834
+ bumpArrayCount(arrayRoot, obj.length, response);
4835
+ return BigInt(obj);
4707
4836
  case "A":
4708
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
4837
+ return parseTypedArray(
4838
+ response,
4839
+ value,
4840
+ ArrayBuffer,
4841
+ 1,
4842
+ obj,
4843
+ key,
4844
+ arrayRoot
4845
+ );
4709
4846
  case "O":
4710
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
4847
+ return parseTypedArray(
4848
+ response,
4849
+ value,
4850
+ Int8Array,
4851
+ 1,
4852
+ obj,
4853
+ key,
4854
+ arrayRoot
4855
+ );
4711
4856
  case "o":
4712
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
4857
+ return parseTypedArray(
4858
+ response,
4859
+ value,
4860
+ Uint8Array,
4861
+ 1,
4862
+ obj,
4863
+ key,
4864
+ arrayRoot
4865
+ );
4713
4866
  case "U":
4714
4867
  return parseTypedArray(
4715
4868
  response,
@@ -4717,22 +4870,79 @@
4717
4870
  Uint8ClampedArray,
4718
4871
  1,
4719
4872
  obj,
4720
- key
4873
+ key,
4874
+ arrayRoot
4721
4875
  );
4722
4876
  case "S":
4723
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
4877
+ return parseTypedArray(
4878
+ response,
4879
+ value,
4880
+ Int16Array,
4881
+ 2,
4882
+ obj,
4883
+ key,
4884
+ arrayRoot
4885
+ );
4724
4886
  case "s":
4725
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
4887
+ return parseTypedArray(
4888
+ response,
4889
+ value,
4890
+ Uint16Array,
4891
+ 2,
4892
+ obj,
4893
+ key,
4894
+ arrayRoot
4895
+ );
4726
4896
  case "L":
4727
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
4897
+ return parseTypedArray(
4898
+ response,
4899
+ value,
4900
+ Int32Array,
4901
+ 4,
4902
+ obj,
4903
+ key,
4904
+ arrayRoot
4905
+ );
4728
4906
  case "l":
4729
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
4907
+ return parseTypedArray(
4908
+ response,
4909
+ value,
4910
+ Uint32Array,
4911
+ 4,
4912
+ obj,
4913
+ key,
4914
+ arrayRoot
4915
+ );
4730
4916
  case "G":
4731
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
4917
+ return parseTypedArray(
4918
+ response,
4919
+ value,
4920
+ Float32Array,
4921
+ 4,
4922
+ obj,
4923
+ key,
4924
+ arrayRoot
4925
+ );
4732
4926
  case "g":
4733
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
4927
+ return parseTypedArray(
4928
+ response,
4929
+ value,
4930
+ Float64Array,
4931
+ 8,
4932
+ obj,
4933
+ key,
4934
+ arrayRoot
4935
+ );
4734
4936
  case "M":
4735
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
4937
+ return parseTypedArray(
4938
+ response,
4939
+ value,
4940
+ BigInt64Array,
4941
+ 8,
4942
+ obj,
4943
+ key,
4944
+ arrayRoot
4945
+ );
4736
4946
  case "m":
4737
4947
  return parseTypedArray(
4738
4948
  response,
@@ -4740,17 +4950,24 @@
4740
4950
  BigUint64Array,
4741
4951
  8,
4742
4952
  obj,
4743
- key
4953
+ key,
4954
+ arrayRoot
4744
4955
  );
4745
4956
  case "V":
4746
- return parseTypedArray(response, value, DataView, 1, obj, key);
4957
+ return parseTypedArray(
4958
+ response,
4959
+ value,
4960
+ DataView,
4961
+ 1,
4962
+ obj,
4963
+ key,
4964
+ arrayRoot
4965
+ );
4747
4966
  case "B":
4748
4967
  return (
4749
4968
  (obj = parseInt(value.slice(2), 16)),
4750
4969
  response._formData.get(response._prefix + obj)
4751
4970
  );
4752
- }
4753
- switch (value[1]) {
4754
4971
  case "R":
4755
4972
  return parseReadableStream(response, value, void 0);
4756
4973
  case "r":
@@ -4761,8 +4978,16 @@
4761
4978
  return parseAsyncIterable(response, value, !0);
4762
4979
  }
4763
4980
  value = value.slice(1);
4764
- return getOutlinedModel(response, value, obj, key, createModel);
4981
+ return getOutlinedModel(
4982
+ response,
4983
+ value,
4984
+ obj,
4985
+ key,
4986
+ arrayRoot,
4987
+ createModel
4988
+ );
4765
4989
  }
4990
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
4766
4991
  return value;
4767
4992
  }
4768
4993
  function createResponse(
@@ -4774,6 +4999,8 @@
4774
4999
  3 < arguments.length && void 0 !== arguments[3]
4775
5000
  ? arguments[3]
4776
5001
  : new FormData(),
5002
+ arraySizeLimit =
5003
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
4777
5004
  chunks = new Map();
4778
5005
  return {
4779
5006
  _bundlerConfig: bundlerConfig,
@@ -4782,19 +5009,32 @@
4782
5009
  _chunks: chunks,
4783
5010
  _closed: !1,
4784
5011
  _closedReason: null,
4785
- _temporaryReferences: temporaryReferences
5012
+ _temporaryReferences: temporaryReferences,
5013
+ _rootArrayContexts: new WeakMap(),
5014
+ _arraySizeLimit: arraySizeLimit
4786
5015
  };
4787
5016
  }
4788
5017
  function close(response) {
4789
5018
  reportGlobalError(response, Error("Connection closed."));
4790
5019
  }
4791
- function loadServerReference(bundlerConfig, id, bound) {
5020
+ function loadServerReference(bundlerConfig, metaData) {
5021
+ var id = metaData.id;
5022
+ if ("string" !== typeof id) return null;
4792
5023
  var serverReference = resolveServerReference(bundlerConfig, id);
4793
5024
  bundlerConfig = preloadModule(serverReference);
4794
- return bound
4795
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
5025
+ metaData = metaData.bound;
5026
+ return metaData instanceof Promise
5027
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
4796
5028
  _ref = _ref[0];
4797
5029
  var fn = requireModule(serverReference);
5030
+ if (_ref.length > MAX_BOUND_ARGS)
5031
+ throw Error(
5032
+ "Server Function has too many bound arguments. Received " +
5033
+ _ref.length +
5034
+ " but the limit is " +
5035
+ MAX_BOUND_ARGS +
5036
+ "."
5037
+ );
4798
5038
  return fn.bind.apply(fn, [null].concat(_ref));
4799
5039
  })
4800
5040
  : bundlerConfig
@@ -4803,8 +5043,19 @@
4803
5043
  })
4804
5044
  : Promise.resolve(requireModule(serverReference));
4805
5045
  }
4806
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
4807
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
5046
+ function decodeBoundActionMetaData(
5047
+ body,
5048
+ serverManifest,
5049
+ formFieldPrefix,
5050
+ arraySizeLimit
5051
+ ) {
5052
+ body = createResponse(
5053
+ serverManifest,
5054
+ formFieldPrefix,
5055
+ void 0,
5056
+ body,
5057
+ arraySizeLimit
5058
+ );
4808
5059
  close(body);
4809
5060
  body = getChunk(body, 0);
4810
5061
  body.then(function () {});
@@ -5314,7 +5565,7 @@
5314
5565
  patchConsole(console, "table"),
5315
5566
  patchConsole(console, "trace"),
5316
5567
  patchConsole(console, "warn"));
5317
- var ObjectPrototype = Object.prototype,
5568
+ var ObjectPrototype$1 = Object.prototype,
5318
5569
  stringify = JSON.stringify,
5319
5570
  ABORTING = 12,
5320
5571
  CLOSED = 14,
@@ -5341,16 +5592,23 @@
5341
5592
  case "fulfilled":
5342
5593
  if ("function" === typeof resolve) {
5343
5594
  for (
5344
- var inspectedValue = this.value, cycleProtection = 0;
5595
+ var inspectedValue = this.value,
5596
+ cycleProtection = 0,
5597
+ visited = new Set();
5345
5598
  inspectedValue instanceof ReactPromise;
5346
5599
 
5347
5600
  ) {
5348
5601
  cycleProtection++;
5349
- if (inspectedValue === this || 1e3 < cycleProtection) {
5602
+ if (
5603
+ inspectedValue === this ||
5604
+ visited.has(inspectedValue) ||
5605
+ 1e3 < cycleProtection
5606
+ ) {
5350
5607
  "function" === typeof reject &&
5351
5608
  reject(Error("Cannot have cyclic thenables."));
5352
5609
  return;
5353
5610
  }
5611
+ visited.add(inspectedValue);
5354
5612
  if ("fulfilled" === inspectedValue.status)
5355
5613
  inspectedValue = inspectedValue.value;
5356
5614
  else break;
@@ -5371,7 +5629,15 @@
5371
5629
  "function" === typeof reject && reject(this.reason);
5372
5630
  }
5373
5631
  };
5374
- var initializingHandler = null;
5632
+ var ObjectPrototype = Object.prototype,
5633
+ ArrayPrototype = Array.prototype,
5634
+ initializingHandler = null;
5635
+ FlightIterator.prototype = {};
5636
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
5637
+ return this;
5638
+ };
5639
+ var MAX_BIGINT_DIGITS = 300,
5640
+ MAX_BOUND_ARGS = 1e3;
5375
5641
  exports.createClientModuleProxy = function (moduleId) {
5376
5642
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
5377
5643
  return new Proxy(moduleId, proxyHandlers$1);
@@ -5381,20 +5647,24 @@
5381
5647
  };
5382
5648
  exports.decodeAction = function (body, serverManifest) {
5383
5649
  var formData = new FormData(),
5384
- action = null;
5650
+ action = null,
5651
+ seenActions = new Set();
5385
5652
  body.forEach(function (value, key) {
5386
5653
  key.startsWith("$ACTION_")
5387
5654
  ? key.startsWith("$ACTION_REF_")
5388
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
5655
+ ? seenActions.has(key) ||
5656
+ (seenActions.add(key),
5657
+ (value = "$ACTION_" + key.slice(12) + ":"),
5389
5658
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
5390
- (action = loadServerReference(
5391
- serverManifest,
5392
- value.id,
5393
- value.bound
5394
- )))
5659
+ (action = loadServerReference(serverManifest, value)))
5395
5660
  : key.startsWith("$ACTION_ID_") &&
5396
- ((value = key.slice(11)),
5397
- (action = loadServerReference(serverManifest, value, null)))
5661
+ !seenActions.has(key) &&
5662
+ (seenActions.add(key),
5663
+ (value = key.slice(11)),
5664
+ (action = loadServerReference(serverManifest, {
5665
+ id: value,
5666
+ bound: null
5667
+ })))
5398
5668
  : formData.append(key, value);
5399
5669
  });
5400
5670
  return null === action
@@ -5430,7 +5700,8 @@
5430
5700
  webpackMap,
5431
5701
  "",
5432
5702
  options ? options.temporaryReferences : void 0,
5433
- body
5703
+ body,
5704
+ options ? options.arraySizeLimit : void 0
5434
5705
  );
5435
5706
  webpackMap = getChunk(body, 0);
5436
5707
  close(body);
@@ -5470,7 +5741,9 @@
5470
5741
  response$jscomp$0 = createResponse(
5471
5742
  webpackMap,
5472
5743
  "",
5473
- options ? options.temporaryReferences : void 0
5744
+ options ? options.temporaryReferences : void 0,
5745
+ void 0,
5746
+ options ? options.arraySizeLimit : void 0
5474
5747
  );
5475
5748
  iterator.next().then(progress, error);
5476
5749
  return getChunk(response$jscomp$0, 0);