react-server-dom-parcel 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.
@@ -2497,6 +2497,13 @@
2497
2497
  value
2498
2498
  ) {
2499
2499
  task.model = value;
2500
+ "__proto__" === parentPropertyName &&
2501
+ callWithDebugContextInDEV(request, task, function () {
2502
+ console.error(
2503
+ "Expected not to serialize an object with own property `__proto__`. When parsed this property will be omitted.%s",
2504
+ describeObjectForErrorMessage(parent, parentPropertyName)
2505
+ );
2506
+ });
2500
2507
  if (value === REACT_ELEMENT_TYPE) return "$";
2501
2508
  if (null === value) return null;
2502
2509
  if ("object" === typeof value) {
@@ -2690,7 +2697,7 @@
2690
2697
  if (value instanceof Date) return "$D" + value.toJSON();
2691
2698
  elementReference = getPrototypeOf(value);
2692
2699
  if (
2693
- elementReference !== ObjectPrototype &&
2700
+ elementReference !== ObjectPrototype$1 &&
2694
2701
  (null === elementReference ||
2695
2702
  null !== getPrototypeOf(elementReference))
2696
2703
  )
@@ -3354,7 +3361,7 @@
3354
3361
  return serializeDebugBlob(request, value);
3355
3362
  if (getIteratorFn(value)) return Array.from(value);
3356
3363
  request = getPrototypeOf(value);
3357
- if (request !== ObjectPrototype && null !== request) {
3364
+ if (request !== ObjectPrototype$1 && null !== request) {
3358
3365
  counter = Object.create(null);
3359
3366
  for (env in value)
3360
3367
  if (hasOwnProperty.call(value, env) || isGetter(request, env))
@@ -4198,12 +4205,12 @@
4198
4205
  this.value = value;
4199
4206
  this.reason = reason;
4200
4207
  }
4201
- function wakeChunk(response, listeners, value) {
4208
+ function wakeChunk(response, listeners, value, chunk) {
4202
4209
  for (var i = 0; i < listeners.length; i++) {
4203
4210
  var listener = listeners[i];
4204
4211
  "function" === typeof listener
4205
4212
  ? listener(value)
4206
- : fulfillReference(response, listener, value);
4213
+ : fulfillReference(response, listener, value, chunk.reason);
4207
4214
  }
4208
4215
  }
4209
4216
  function rejectChunk(response, listeners, error) {
@@ -4214,27 +4221,6 @@
4214
4221
  : rejectReference(response, listener.handler, error);
4215
4222
  }
4216
4223
  }
4217
- function resolveBlockedCycle(resolvedChunk, reference) {
4218
- var referencedChunk = reference.handler.chunk;
4219
- if (null === referencedChunk) return null;
4220
- if (referencedChunk === resolvedChunk) return reference.handler;
4221
- reference = referencedChunk.value;
4222
- if (null !== reference)
4223
- for (
4224
- referencedChunk = 0;
4225
- referencedChunk < reference.length;
4226
- referencedChunk++
4227
- ) {
4228
- var listener = reference[referencedChunk];
4229
- if (
4230
- "function" !== typeof listener &&
4231
- ((listener = resolveBlockedCycle(resolvedChunk, listener)),
4232
- null !== listener)
4233
- )
4234
- return listener;
4235
- }
4236
- return null;
4237
- }
4238
4224
  function triggerErrorOnChunk(response, chunk, error) {
4239
4225
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
4240
4226
  chunk.reason.error(error);
@@ -4258,57 +4244,25 @@
4258
4244
  chunk.value = value;
4259
4245
  chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
4260
4246
  if (null !== resolveListeners)
4261
- a: switch ((initializeModelChunk(chunk), chunk.status)) {
4247
+ switch ((initializeModelChunk(chunk), chunk.status)) {
4262
4248
  case "fulfilled":
4263
- wakeChunk(response, resolveListeners, chunk.value);
4249
+ wakeChunk(response, resolveListeners, chunk.value, chunk);
4264
4250
  break;
4265
4251
  case "blocked":
4266
- for (value = 0; value < resolveListeners.length; value++)
4267
- if (
4268
- ((id = resolveListeners[value]), "function" !== typeof id)
4269
- ) {
4270
- var cyclicHandler = resolveBlockedCycle(chunk, id);
4271
- if (null !== cyclicHandler)
4272
- switch (
4273
- (fulfillReference(response, id, cyclicHandler.value),
4274
- resolveListeners.splice(value, 1),
4275
- value--,
4276
- null !== rejectListeners &&
4277
- ((id = rejectListeners.indexOf(id)),
4278
- -1 !== id && rejectListeners.splice(id, 1)),
4279
- chunk.status)
4280
- ) {
4281
- case "fulfilled":
4282
- wakeChunk(response, resolveListeners, chunk.value);
4283
- break a;
4284
- case "rejected":
4285
- null !== rejectListeners &&
4286
- rejectChunk(response, rejectListeners, chunk.reason);
4287
- break a;
4288
- }
4289
- }
4290
4252
  case "pending":
4291
4253
  if (chunk.value)
4292
- for (
4293
- response = 0;
4294
- response < resolveListeners.length;
4295
- response++
4296
- )
4297
- chunk.value.push(resolveListeners[response]);
4254
+ for (value = 0; value < resolveListeners.length; value++)
4255
+ chunk.value.push(resolveListeners[value]);
4298
4256
  else chunk.value = resolveListeners;
4299
4257
  if (chunk.reason) {
4300
4258
  if (rejectListeners)
4301
- for (
4302
- resolveListeners = 0;
4303
- resolveListeners < rejectListeners.length;
4304
- resolveListeners++
4305
- )
4306
- chunk.reason.push(rejectListeners[resolveListeners]);
4259
+ for (value = 0; value < rejectListeners.length; value++)
4260
+ chunk.reason.push(rejectListeners[value]);
4307
4261
  } else chunk.reason = rejectListeners;
4308
4262
  break;
4309
4263
  case "rejected":
4310
4264
  rejectListeners &&
4311
- wakeChunk(response, rejectListeners, chunk.reason);
4265
+ rejectChunk(response, rejectListeners, chunk.reason);
4312
4266
  }
4313
4267
  }
4314
4268
  }
@@ -4332,15 +4286,51 @@
4332
4286
  );
4333
4287
  }
4334
4288
  function loadServerReference$1(response, metaData, parentObject, key) {
4289
+ function reject(error) {
4290
+ var rejectListeners = blockedPromise.reason,
4291
+ erroredPromise = blockedPromise;
4292
+ erroredPromise.status = "rejected";
4293
+ erroredPromise.value = null;
4294
+ erroredPromise.reason = error;
4295
+ null !== rejectListeners &&
4296
+ rejectChunk(response, rejectListeners, error);
4297
+ rejectReference(response, handler, error);
4298
+ }
4335
4299
  var id = metaData.id;
4336
4300
  if ("string" !== typeof id || "then" === key) return null;
4301
+ var cachedPromise = metaData.$$promise;
4302
+ if (void 0 !== cachedPromise) {
4303
+ if ("fulfilled" === cachedPromise.status)
4304
+ return (
4305
+ (cachedPromise = cachedPromise.value),
4306
+ "__proto__" === key ? null : (parentObject[key] = cachedPromise)
4307
+ );
4308
+ initializingHandler
4309
+ ? ((id = initializingHandler), id.deps++)
4310
+ : (id = initializingHandler =
4311
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
4312
+ cachedPromise.then(
4313
+ resolveReference.bind(null, response, id, parentObject, key),
4314
+ rejectReference.bind(null, response, id)
4315
+ );
4316
+ return null;
4317
+ }
4318
+ var blockedPromise = new ReactPromise("blocked", null, null);
4319
+ metaData.$$promise = blockedPromise;
4337
4320
  var serverReference = resolveServerReference(response._bundlerConfig, id);
4338
- id = metaData.bound;
4339
- var promise = preloadModule(serverReference);
4340
- if (promise)
4341
- id instanceof ReactPromise && (promise = Promise.all([promise, id]));
4342
- else if (id instanceof ReactPromise) promise = Promise.resolve(id);
4343
- else return requireModule(serverReference);
4321
+ cachedPromise = metaData.bound;
4322
+ if ((id = preloadModule(serverReference)))
4323
+ cachedPromise instanceof ReactPromise &&
4324
+ (id = Promise.all([id, cachedPromise]));
4325
+ else if (cachedPromise instanceof ReactPromise)
4326
+ id = Promise.resolve(cachedPromise);
4327
+ else
4328
+ return (
4329
+ (cachedPromise = requireModule(serverReference)),
4330
+ (id = blockedPromise),
4331
+ (id.status = "fulfilled"),
4332
+ (id.value = cachedPromise)
4333
+ );
4344
4334
  if (initializingHandler) {
4345
4335
  var handler = initializingHandler;
4346
4336
  handler.deps++;
@@ -4352,93 +4342,107 @@
4352
4342
  deps: 1,
4353
4343
  errored: !1
4354
4344
  };
4355
- promise.then(
4356
- function () {
4357
- var resolvedValue = requireModule(serverReference);
4358
- if (metaData.bound) {
4359
- var promiseValue = metaData.bound.value;
4360
- promiseValue = Array.isArray(promiseValue)
4361
- ? promiseValue.slice(0)
4362
- : [];
4363
- promiseValue.unshift(null);
4364
- resolvedValue = resolvedValue.bind.apply(
4365
- resolvedValue,
4366
- promiseValue
4345
+ id.then(function () {
4346
+ var resolvedValue = requireModule(serverReference);
4347
+ if (metaData.bound) {
4348
+ var promiseValue = metaData.bound.value;
4349
+ promiseValue = isArrayImpl(promiseValue) ? promiseValue.slice(0) : [];
4350
+ if (promiseValue.length > MAX_BOUND_ARGS) {
4351
+ reject(
4352
+ Error(
4353
+ "Server Function has too many bound arguments. Received " +
4354
+ promiseValue.length +
4355
+ " but the limit is " +
4356
+ MAX_BOUND_ARGS +
4357
+ "."
4358
+ )
4367
4359
  );
4360
+ return;
4368
4361
  }
4369
- parentObject[key] = resolvedValue;
4370
- "" === key &&
4371
- null === handler.value &&
4372
- (handler.value = resolvedValue);
4373
- handler.deps--;
4374
- 0 === handler.deps &&
4375
- ((resolvedValue = handler.chunk),
4376
- null !== resolvedValue &&
4377
- "blocked" === resolvedValue.status &&
4378
- ((promiseValue = resolvedValue.value),
4379
- (resolvedValue.status = "fulfilled"),
4380
- (resolvedValue.value = handler.value),
4381
- (resolvedValue.reason = null),
4382
- null !== promiseValue &&
4383
- wakeChunk(response, promiseValue, handler.value)));
4384
- },
4385
- function (error) {
4386
- if (!handler.errored) {
4387
- handler.errored = !0;
4388
- handler.value = null;
4389
- handler.reason = error;
4390
- var chunk = handler.chunk;
4391
- null !== chunk &&
4392
- "blocked" === chunk.status &&
4393
- triggerErrorOnChunk(response, chunk, error);
4394
- }
4362
+ promiseValue.unshift(null);
4363
+ resolvedValue = resolvedValue.bind.apply(resolvedValue, promiseValue);
4395
4364
  }
4396
- );
4365
+ promiseValue = blockedPromise.value;
4366
+ var initializedPromise = blockedPromise;
4367
+ initializedPromise.status = "fulfilled";
4368
+ initializedPromise.value = resolvedValue;
4369
+ initializedPromise.reason = null;
4370
+ null !== promiseValue &&
4371
+ wakeChunk(response, promiseValue, resolvedValue, initializedPromise);
4372
+ resolveReference(response, handler, parentObject, key, resolvedValue);
4373
+ }, reject);
4397
4374
  return null;
4398
4375
  }
4399
- function reviveModel(response, parentObj, parentKey, value, reference) {
4376
+ function reviveModel(
4377
+ response,
4378
+ parentObj,
4379
+ parentKey,
4380
+ value,
4381
+ reference,
4382
+ arrayRoot
4383
+ ) {
4400
4384
  if ("string" === typeof value)
4401
4385
  return parseModelString(
4402
4386
  response,
4403
4387
  parentObj,
4404
4388
  parentKey,
4405
4389
  value,
4406
- reference
4390
+ reference,
4391
+ arrayRoot
4407
4392
  );
4408
4393
  if ("object" === typeof value && null !== value)
4409
4394
  if (
4410
4395
  (void 0 !== reference &&
4411
4396
  void 0 !== response._temporaryReferences &&
4412
4397
  response._temporaryReferences.set(value, reference),
4413
- Array.isArray(value))
4414
- )
4415
- for (var i = 0; i < value.length; i++)
4416
- value[i] = reviveModel(
4398
+ isArrayImpl(value))
4399
+ ) {
4400
+ if (null === arrayRoot) {
4401
+ var childContext = { count: 0, fork: !1 };
4402
+ response._rootArrayContexts.set(value, childContext);
4403
+ } else childContext = arrayRoot;
4404
+ 1 < value.length && (childContext.fork = !0);
4405
+ bumpArrayCount(childContext, value.length + 1, response);
4406
+ for (parentObj = 0; parentObj < value.length; parentObj++)
4407
+ value[parentObj] = reviveModel(
4417
4408
  response,
4418
4409
  value,
4419
- "" + i,
4420
- value[i],
4421
- void 0 !== reference ? reference + ":" + i : void 0
4410
+ "" + parentObj,
4411
+ value[parentObj],
4412
+ void 0 !== reference ? reference + ":" + parentObj : void 0,
4413
+ childContext
4422
4414
  );
4423
- else
4424
- for (i in value)
4425
- hasOwnProperty.call(value, i) &&
4426
- ((parentObj =
4427
- void 0 !== reference && -1 === i.indexOf(":")
4428
- ? reference + ":" + i
4429
- : void 0),
4430
- (parentObj = reviveModel(
4431
- response,
4432
- value,
4433
- i,
4434
- value[i],
4435
- parentObj
4436
- )),
4437
- void 0 !== parentObj || "__proto__" === i
4438
- ? (value[i] = parentObj)
4439
- : delete value[i]);
4415
+ } else
4416
+ for (childContext in value)
4417
+ hasOwnProperty.call(value, childContext) &&
4418
+ ("__proto__" === childContext
4419
+ ? delete value[childContext]
4420
+ : ((parentObj =
4421
+ void 0 !== reference && -1 === childContext.indexOf(":")
4422
+ ? reference + ":" + childContext
4423
+ : void 0),
4424
+ (parentObj = reviveModel(
4425
+ response,
4426
+ value,
4427
+ childContext,
4428
+ value[childContext],
4429
+ parentObj,
4430
+ null
4431
+ )),
4432
+ void 0 !== parentObj
4433
+ ? (value[childContext] = parentObj)
4434
+ : delete value[childContext]));
4440
4435
  return value;
4441
4436
  }
4437
+ function bumpArrayCount(arrayContext, slots, response) {
4438
+ if (
4439
+ (arrayContext.count += slots) > response._arraySizeLimit &&
4440
+ arrayContext.fork
4441
+ )
4442
+ throw Error(
4443
+ "Maximum array nesting exceeded. Large nested arrays can be dangerous. Try adding intermediate objects."
4444
+ );
4445
+ }
4442
4446
  function initializeModelChunk(chunk) {
4443
4447
  var prevHandler = initializingHandler;
4444
4448
  initializingHandler = null;
@@ -4452,13 +4456,15 @@
4452
4456
  chunk.value = null;
4453
4457
  chunk.reason = null;
4454
4458
  try {
4455
- var rawModel = JSON.parse(resolvedModel),
4456
- value = reviveModel(
4459
+ var rawModel = JSON.parse(resolvedModel);
4460
+ resolvedModel = { count: 0, fork: !1 };
4461
+ var value = reviveModel(
4457
4462
  response,
4458
4463
  { "": rawModel },
4459
4464
  "",
4460
4465
  rawModel,
4461
- _chunk$reason
4466
+ _chunk$reason,
4467
+ resolvedModel
4462
4468
  ),
4463
4469
  resolveListeners = chunk.value;
4464
4470
  if (null !== resolveListeners)
@@ -4470,19 +4476,20 @@
4470
4476
  var listener = resolveListeners[rawModel];
4471
4477
  "function" === typeof listener
4472
4478
  ? listener(value)
4473
- : fulfillReference(response, listener, value);
4479
+ : fulfillReference(response, listener, value, resolvedModel);
4474
4480
  }
4475
4481
  if (null !== initializingHandler) {
4476
4482
  if (initializingHandler.errored) throw initializingHandler.reason;
4477
4483
  if (0 < initializingHandler.deps) {
4478
4484
  initializingHandler.value = value;
4485
+ initializingHandler.reason = resolvedModel;
4479
4486
  initializingHandler.chunk = chunk;
4480
4487
  return;
4481
4488
  }
4482
4489
  }
4483
4490
  chunk.status = "fulfilled";
4484
4491
  chunk.value = value;
4485
- chunk.reason = null;
4492
+ chunk.reason = resolvedModel;
4486
4493
  } catch (error) {
4487
4494
  (chunk.status = "rejected"), (chunk.reason = error);
4488
4495
  } finally {
@@ -4497,7 +4504,8 @@
4497
4504
  ? triggerErrorOnChunk(response, chunk, error)
4498
4505
  : "fulfilled" === chunk.status &&
4499
4506
  null !== chunk.reason &&
4500
- chunk.reason.error(error);
4507
+ ((chunk = chunk.reason),
4508
+ "function" === typeof chunk.error && chunk.error(error));
4501
4509
  });
4502
4510
  }
4503
4511
  function getChunk(response, id) {
@@ -4518,40 +4526,74 @@
4518
4526
  chunks.set(id, chunk));
4519
4527
  return chunk;
4520
4528
  }
4521
- function fulfillReference(response, reference, value) {
4529
+ function fulfillReference(response, reference, value, arrayRoot) {
4522
4530
  var handler = reference.handler,
4523
4531
  parentObject = reference.parentObject,
4524
4532
  key = reference.key,
4525
4533
  map = reference.map,
4526
4534
  path = reference.path;
4527
4535
  try {
4528
- for (var i = 1; i < path.length; i++) {
4536
+ for (
4537
+ var localLength = 0,
4538
+ rootArrayContexts = response._rootArrayContexts,
4539
+ i = 1;
4540
+ i < path.length;
4541
+ i++
4542
+ ) {
4529
4543
  var name = path[i];
4530
4544
  if (
4531
4545
  "object" !== typeof value ||
4532
- !hasOwnProperty.call(value, name) ||
4533
- value instanceof Promise
4546
+ null === value ||
4547
+ (getPrototypeOf(value) !== ObjectPrototype &&
4548
+ getPrototypeOf(value) !== ArrayPrototype) ||
4549
+ !hasOwnProperty.call(value, name)
4534
4550
  )
4535
4551
  throw Error("Invalid reference.");
4536
4552
  value = value[name];
4553
+ if (isArrayImpl(value))
4554
+ (localLength = 0),
4555
+ (arrayRoot = rootArrayContexts.get(value) || arrayRoot);
4556
+ else if (((arrayRoot = null), "string" === typeof value))
4557
+ localLength = value.length;
4558
+ else if ("bigint" === typeof value) {
4559
+ var n = Math.abs(Number(value));
4560
+ localLength = 0 === n ? 1 : Math.floor(Math.log10(n)) + 1;
4561
+ } else localLength = ArrayBuffer.isView(value) ? value.byteLength : 0;
4537
4562
  }
4538
- var mappedValue = map(response, value, parentObject, key);
4539
- parentObject[key] = mappedValue;
4540
- "" === key && null === handler.value && (handler.value = mappedValue);
4563
+ var resolvedValue = map(response, value, parentObject, key);
4564
+ var referenceArrayRoot = reference.arrayRoot;
4565
+ null !== referenceArrayRoot &&
4566
+ (null !== arrayRoot
4567
+ ? (arrayRoot.fork && (referenceArrayRoot.fork = !0),
4568
+ bumpArrayCount(referenceArrayRoot, arrayRoot.count, response))
4569
+ : 0 < localLength &&
4570
+ bumpArrayCount(referenceArrayRoot, localLength, response));
4541
4571
  } catch (error) {
4542
- rejectReference(response, reference.handler, error);
4572
+ rejectReference(response, handler, error);
4543
4573
  return;
4544
4574
  }
4575
+ resolveReference(response, handler, parentObject, key, resolvedValue);
4576
+ }
4577
+ function resolveReference(
4578
+ response,
4579
+ handler,
4580
+ parentObject,
4581
+ key,
4582
+ resolvedValue
4583
+ ) {
4584
+ "__proto__" !== key && (parentObject[key] = resolvedValue);
4585
+ "" === key && null === handler.value && (handler.value = resolvedValue);
4545
4586
  handler.deps--;
4546
4587
  0 === handler.deps &&
4547
- ((reference = handler.chunk),
4548
- null !== reference &&
4549
- "blocked" === reference.status &&
4550
- ((value = reference.value),
4551
- (reference.status = "fulfilled"),
4552
- (reference.value = handler.value),
4553
- (reference.reason = handler.reason),
4554
- null !== value && wakeChunk(response, value, handler.value)));
4588
+ ((parentObject = handler.chunk),
4589
+ null !== parentObject &&
4590
+ "blocked" === parentObject.status &&
4591
+ ((key = parentObject.value),
4592
+ (parentObject.status = "fulfilled"),
4593
+ (parentObject.value = handler.value),
4594
+ (parentObject.reason = handler.reason),
4595
+ null !== key &&
4596
+ wakeChunk(response, key, handler.value, parentObject)));
4555
4597
  }
4556
4598
  function rejectReference(response, handler, error) {
4557
4599
  handler.errored ||
@@ -4563,29 +4605,66 @@
4563
4605
  "blocked" === handler.status &&
4564
4606
  triggerErrorOnChunk(response, handler, error));
4565
4607
  }
4566
- function getOutlinedModel(response, reference, parentObject, key, map) {
4608
+ function getOutlinedModel(
4609
+ response,
4610
+ reference,
4611
+ parentObject,
4612
+ key,
4613
+ referenceArrayRoot,
4614
+ map
4615
+ ) {
4567
4616
  reference = reference.split(":");
4568
- var id = parseInt(reference[0], 16);
4569
- id = getChunk(response, id);
4570
- switch (id.status) {
4617
+ var id = parseInt(reference[0], 16),
4618
+ chunk = getChunk(response, id);
4619
+ switch (chunk.status) {
4571
4620
  case "resolved_model":
4572
- initializeModelChunk(id);
4621
+ initializeModelChunk(chunk);
4573
4622
  }
4574
- switch (id.status) {
4623
+ switch (chunk.status) {
4575
4624
  case "fulfilled":
4576
- id = id.value;
4577
- for (var i = 1; i < reference.length; i++) {
4578
- var name = reference[i];
4625
+ id = chunk.value;
4626
+ chunk = chunk.reason;
4627
+ for (
4628
+ var localLength = 0,
4629
+ rootArrayContexts = response._rootArrayContexts,
4630
+ i = 1;
4631
+ i < reference.length;
4632
+ i++
4633
+ ) {
4634
+ localLength = reference[i];
4579
4635
  if (
4580
4636
  "object" !== typeof id ||
4581
- !hasOwnProperty.call(id, name) ||
4582
- id instanceof Promise
4637
+ null === id ||
4638
+ (getPrototypeOf(id) !== ObjectPrototype &&
4639
+ getPrototypeOf(id) !== ArrayPrototype) ||
4640
+ !hasOwnProperty.call(id, localLength)
4583
4641
  )
4584
4642
  throw Error("Invalid reference.");
4585
- id = id[name];
4643
+ id = id[localLength];
4644
+ isArrayImpl(id)
4645
+ ? ((localLength = 0),
4646
+ (chunk = rootArrayContexts.get(id) || chunk))
4647
+ : ((chunk = null),
4648
+ "string" === typeof id
4649
+ ? (localLength = id.length)
4650
+ : "bigint" === typeof id
4651
+ ? ((localLength = Math.abs(Number(id))),
4652
+ (localLength =
4653
+ 0 === localLength
4654
+ ? 1
4655
+ : Math.floor(Math.log10(localLength)) + 1))
4656
+ : (localLength = ArrayBuffer.isView(id)
4657
+ ? id.byteLength
4658
+ : 0));
4586
4659
  }
4587
- return map(response, id, parentObject, key);
4588
- case "pending":
4660
+ parentObject = map(response, id, parentObject, key);
4661
+ null !== referenceArrayRoot &&
4662
+ (null !== chunk
4663
+ ? (chunk.fork && (referenceArrayRoot.fork = !0),
4664
+ bumpArrayCount(referenceArrayRoot, chunk.count, response))
4665
+ : 0 < localLength &&
4666
+ bumpArrayCount(referenceArrayRoot, localLength, response));
4667
+ return parentObject;
4589
4668
  case "blocked":
4590
4669
  return (
4591
4670
  initializingHandler
@@ -4598,31 +4677,34 @@
4598
4677
  deps: 1,
4599
4678
  errored: !1
4600
4679
  }),
4601
- (parentObject = {
4680
+ (referenceArrayRoot = {
4602
4681
  handler: response,
4603
4682
  parentObject: parentObject,
4604
4683
  key: key,
4605
4684
  map: map,
4606
- path: reference
4685
+ path: reference,
4686
+ arrayRoot: referenceArrayRoot
4607
4687
  }),
4608
- null === id.value
4609
- ? (id.value = [parentObject])
4610
- : id.value.push(parentObject),
4611
- null === id.reason
4612
- ? (id.reason = [parentObject])
4613
- : id.reason.push(parentObject),
4688
+ null === chunk.value
4689
+ ? (chunk.value = [referenceArrayRoot])
4690
+ : chunk.value.push(referenceArrayRoot),
4691
+ null === chunk.reason
4692
+ ? (chunk.reason = [referenceArrayRoot])
4693
+ : chunk.reason.push(referenceArrayRoot),
4614
4694
  null
4615
4695
  );
4696
+ case "pending":
4697
+ throw Error("Invalid forward reference.");
4616
4698
  default:
4617
4699
  return (
4618
4700
  initializingHandler
4619
4701
  ? ((initializingHandler.errored = !0),
4620
4702
  (initializingHandler.value = null),
4621
- (initializingHandler.reason = id.reason))
4703
+ (initializingHandler.reason = chunk.reason))
4622
4704
  : (initializingHandler = {
4623
4705
  chunk: null,
4624
4706
  value: null,
4625
- reason: id.reason,
4707
+ reason: chunk.reason,
4626
4708
  deps: 0,
4627
4709
  errored: !0
4628
4710
  }),
@@ -4631,12 +4713,21 @@
4631
4713
  }
4632
4714
  }
4633
4715
  function createMap(response, model) {
4716
+ if (!isArrayImpl(model)) throw Error("Invalid Map initializer.");
4717
+ if (!0 === model.$$consumed) throw Error("Already initialized Map.");
4718
+ model.$$consumed = !0;
4634
4719
  return new Map(model);
4635
4720
  }
4636
4721
  function createSet(response, model) {
4722
+ if (!isArrayImpl(model)) throw Error("Invalid Set initializer.");
4723
+ if (!0 === model.$$consumed) throw Error("Already initialized Set.");
4724
+ model.$$consumed = !0;
4637
4725
  return new Set(model);
4638
4726
  }
4639
4727
  function extractIterator(response, model) {
4728
+ if (!isArrayImpl(model)) throw Error("Invalid Iterator initializer.");
4729
+ if (!0 === model.$$consumed) throw Error("Already initialized Iterator.");
4730
+ model.$$consumed = !0;
4640
4731
  return model[Symbol.iterator]();
4641
4732
  }
4642
4733
  function createModel(response, model, parentObject, key) {
@@ -4648,13 +4739,34 @@
4648
4739
  constructor,
4649
4740
  bytesPerElement,
4650
4741
  parentObject,
4651
- parentKey
4742
+ parentKey,
4743
+ referenceArrayRoot
4652
4744
  ) {
4745
+ function reject(error) {
4746
+ if (!handler.errored) {
4747
+ handler.errored = !0;
4748
+ handler.value = null;
4749
+ handler.reason = error;
4750
+ var chunk = handler.chunk;
4751
+ null !== chunk &&
4752
+ "blocked" === chunk.status &&
4753
+ triggerErrorOnChunk(response, chunk, error);
4754
+ }
4755
+ }
4653
4756
  reference = parseInt(reference.slice(2), 16);
4654
- bytesPerElement = response._prefix + reference;
4655
- if (response._chunks.has(reference))
4757
+ var key = response._prefix + reference;
4758
+ bytesPerElement = response._chunks;
4759
+ if (bytesPerElement.has(reference))
4656
4760
  throw Error("Already initialized typed array.");
4657
- reference = response._formData.get(bytesPerElement).arrayBuffer();
4761
+ bytesPerElement.set(
4762
+ reference,
4763
+ new ReactPromise(
4764
+ "rejected",
4765
+ null,
4766
+ Error("Already initialized typed array.")
4767
+ )
4768
+ );
4769
+ reference = response._formData.get(key).arrayBuffer();
4658
4770
  if (initializingHandler) {
4659
4771
  var handler = initializingHandler;
4660
4772
  handler.deps++;
@@ -4666,40 +4778,32 @@
4666
4778
  deps: 1,
4667
4779
  errored: !1
4668
4780
  };
4669
- reference.then(
4670
- function (buffer) {
4671
- buffer =
4781
+ reference.then(function (buffer) {
4782
+ try {
4783
+ null !== referenceArrayRoot &&
4784
+ bumpArrayCount(referenceArrayRoot, buffer.byteLength, response);
4785
+ var resolvedValue =
4672
4786
  constructor === ArrayBuffer ? buffer : new constructor(buffer);
4673
- parentObject[parentKey] = buffer;
4787
+ "__proto__" !== key && (parentObject[parentKey] = resolvedValue);
4674
4788
  "" === parentKey &&
4675
4789
  null === handler.value &&
4676
- (handler.value = buffer);
4677
- handler.deps--;
4678
- if (
4679
- 0 === handler.deps &&
4680
- ((buffer = handler.chunk),
4681
- null !== buffer && "blocked" === buffer.status)
4682
- ) {
4683
- var resolveListeners = buffer.value;
4684
- buffer.status = "fulfilled";
4685
- buffer.value = handler.value;
4686
- buffer.reason = null;
4687
- null !== resolveListeners &&
4688
- wakeChunk(response, resolveListeners, handler.value);
4689
- }
4690
- },
4691
- function (error) {
4692
- if (!handler.errored) {
4693
- handler.errored = !0;
4694
- handler.value = null;
4695
- handler.reason = error;
4696
- var chunk = handler.chunk;
4697
- null !== chunk &&
4698
- "blocked" === chunk.status &&
4699
- triggerErrorOnChunk(response, chunk, error);
4700
- }
4790
+ (handler.value = resolvedValue);
4791
+ } catch (x) {
4792
+ reject(x);
4793
+ return;
4701
4794
  }
4702
- );
4795
+ handler.deps--;
4796
+ 0 === handler.deps &&
4797
+ ((buffer = handler.chunk),
4798
+ null !== buffer &&
4799
+ "blocked" === buffer.status &&
4800
+ ((resolvedValue = buffer.value),
4801
+ (buffer.status = "fulfilled"),
4802
+ (buffer.value = handler.value),
4803
+ (buffer.reason = null),
4804
+ null !== resolvedValue &&
4805
+ wakeChunk(response, resolvedValue, handler.value, buffer)));
4806
+ }, reject);
4703
4807
  return null;
4704
4808
  }
4705
4809
  function resolveStream(response, id, stream, controller) {
@@ -4717,90 +4821,78 @@
4717
4821
  : controller.enqueueModel(chunks));
4718
4822
  }
4719
4823
  function parseReadableStream(response, reference, type) {
4824
+ function enqueue(value) {
4825
+ "bytes" !== type || ArrayBuffer.isView(value)
4826
+ ? controller.enqueue(value)
4827
+ : flightController.error(Error("Invalid data for bytes stream."));
4828
+ }
4720
4829
  reference = parseInt(reference.slice(2), 16);
4721
4830
  if (response._chunks.has(reference))
4722
4831
  throw Error("Already initialized stream.");
4723
4832
  var controller = null,
4724
- closed = !1;
4725
- type = new ReadableStream({
4726
- type: type,
4727
- start: function (c) {
4728
- controller = c;
4729
- }
4730
- });
4731
- var previousBlockedChunk = null;
4732
- resolveStream(response, reference, type, {
4733
- enqueueModel: function (json) {
4734
- if (null === previousBlockedChunk) {
4735
- var chunk = new ReactPromise(
4736
- "resolved_model",
4737
- json,
4738
- _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4739
- );
4740
- initializeModelChunk(chunk);
4741
- "fulfilled" === chunk.status
4742
- ? controller.enqueue(chunk.value)
4743
- : (chunk.then(
4744
- function (v) {
4745
- return controller.enqueue(v);
4746
- },
4747
- function (e) {
4748
- return controller.error(e);
4749
- }
4750
- ),
4751
- (previousBlockedChunk = chunk));
4752
- } else {
4753
- chunk = previousBlockedChunk;
4754
- var _chunk = new ReactPromise("pending", null, null);
4755
- _chunk.then(
4756
- function (v) {
4757
- return controller.enqueue(v);
4758
- },
4759
- function (e) {
4760
- return controller.error(e);
4761
- }
4762
- );
4763
- previousBlockedChunk = _chunk;
4764
- chunk.then(function () {
4765
- previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4766
- resolveModelChunk(response, _chunk, json, -1);
4767
- });
4833
+ closed = !1,
4834
+ stream = new ReadableStream({
4835
+ type: type,
4836
+ start: function (c) {
4837
+ controller = c;
4768
4838
  }
4769
- },
4770
- close: function () {
4771
- if (!closed)
4772
- if (((closed = !0), null === previousBlockedChunk))
4773
- controller.close();
4774
- else {
4775
- var blockedChunk = previousBlockedChunk;
4776
- previousBlockedChunk = null;
4777
- blockedChunk.then(function () {
4778
- return controller.close();
4779
- });
4780
- }
4781
- },
4782
- error: function (error) {
4783
- if (!closed)
4784
- if (((closed = !0), null === previousBlockedChunk))
4785
- controller.error(error);
4786
- else {
4787
- var blockedChunk = previousBlockedChunk;
4788
- previousBlockedChunk = null;
4789
- blockedChunk.then(function () {
4790
- return controller.error(error);
4839
+ }),
4840
+ previousBlockedChunk = null,
4841
+ flightController = {
4842
+ enqueueModel: function (json) {
4843
+ if (null === previousBlockedChunk) {
4844
+ var chunk = new ReactPromise(
4845
+ "resolved_model",
4846
+ json,
4847
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4848
+ );
4849
+ initializeModelChunk(chunk);
4850
+ "fulfilled" === chunk.status
4851
+ ? enqueue(chunk.value)
4852
+ : (chunk.then(enqueue, flightController.error),
4853
+ (previousBlockedChunk = chunk));
4854
+ } else {
4855
+ chunk = previousBlockedChunk;
4856
+ var _chunk = new ReactPromise("pending", null, null);
4857
+ _chunk.then(enqueue, flightController.error);
4858
+ previousBlockedChunk = _chunk;
4859
+ chunk.then(function () {
4860
+ previousBlockedChunk === _chunk &&
4861
+ (previousBlockedChunk = null);
4862
+ resolveModelChunk(response, _chunk, json, -1);
4791
4863
  });
4792
4864
  }
4793
- }
4794
- });
4795
- return type;
4796
- }
4797
- function asyncIterator() {
4798
- return this;
4865
+ },
4866
+ close: function () {
4867
+ if (!closed)
4868
+ if (((closed = !0), null === previousBlockedChunk))
4869
+ controller.close();
4870
+ else {
4871
+ var blockedChunk = previousBlockedChunk;
4872
+ previousBlockedChunk = null;
4873
+ blockedChunk.then(function () {
4874
+ return controller.close();
4875
+ });
4876
+ }
4877
+ },
4878
+ error: function (error) {
4879
+ if (!closed)
4880
+ if (((closed = !0), null === previousBlockedChunk))
4881
+ controller.error(error);
4882
+ else {
4883
+ var blockedChunk = previousBlockedChunk;
4884
+ previousBlockedChunk = null;
4885
+ blockedChunk.then(function () {
4886
+ return controller.error(error);
4887
+ });
4888
+ }
4889
+ }
4890
+ };
4891
+ resolveStream(response, reference, stream, flightController);
4892
+ return stream;
4799
4893
  }
4800
- function createIterator(next) {
4801
- next = { next: next };
4802
- next[ASYNC_ITERATOR] = asyncIterator;
4803
- return next;
4894
+ function FlightIterator(next) {
4895
+ this.next = next;
4804
4896
  }
4805
4897
  function parseAsyncIterable(response, reference, iterator) {
4806
4898
  reference = parseInt(reference.slice(2), 16);
@@ -4811,7 +4903,7 @@
4811
4903
  nextWriteIndex = 0,
4812
4904
  iterable = _defineProperty({}, ASYNC_ITERATOR, function () {
4813
4905
  var nextReadIndex = 0;
4814
- return createIterator(function (arg) {
4906
+ return new FlightIterator(function (arg) {
4815
4907
  if (void 0 !== arg)
4816
4908
  throw Error(
4817
4909
  "Values cannot be passed to next() of AsyncIterables passed to Client Components."
@@ -4890,19 +4982,30 @@
4890
4982
  });
4891
4983
  return iterator;
4892
4984
  }
4893
- function parseModelString(response, obj, key, value, reference) {
4985
+ function parseModelString(response, obj, key, value, reference, arrayRoot) {
4894
4986
  if ("$" === value[0]) {
4895
4987
  switch (value[1]) {
4896
4988
  case "$":
4897
- return value.slice(1);
4989
+ return (
4990
+ null !== arrayRoot &&
4991
+ bumpArrayCount(arrayRoot, value.length - 1, response),
4992
+ value.slice(1)
4993
+ );
4898
4994
  case "@":
4899
4995
  return (
4900
4996
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
4901
4997
  );
4902
4998
  case "h":
4903
4999
  return (
4904
- (value = value.slice(2)),
4905
- getOutlinedModel(response, value, obj, key, loadServerReference$1)
5000
+ (arrayRoot = value.slice(2)),
5001
+ getOutlinedModel(
5002
+ response,
5003
+ arrayRoot,
5004
+ obj,
5005
+ key,
5006
+ null,
5007
+ loadServerReference$1
5008
+ )
4906
5009
  );
4907
5010
  case "T":
4908
5011
  if (
@@ -4918,27 +5021,44 @@
4918
5021
  );
4919
5022
  case "Q":
4920
5023
  return (
4921
- (value = value.slice(2)),
4922
- getOutlinedModel(response, value, obj, key, createMap)
5024
+ (arrayRoot = value.slice(2)),
5025
+ getOutlinedModel(response, arrayRoot, obj, key, null, createMap)
4923
5026
  );
4924
5027
  case "W":
4925
5028
  return (
4926
- (value = value.slice(2)),
4927
- getOutlinedModel(response, value, obj, key, createSet)
5029
+ (arrayRoot = value.slice(2)),
5030
+ getOutlinedModel(response, arrayRoot, obj, key, null, createSet)
4928
5031
  );
4929
5032
  case "K":
4930
5033
  obj = value.slice(2);
4931
- var formPrefix = response._prefix + obj + "_",
4932
- data = new FormData();
4933
- response._formData.forEach(function (entry, entryKey) {
4934
- entryKey.startsWith(formPrefix) &&
4935
- data.append(entryKey.slice(formPrefix.length), entry);
4936
- });
4937
- return data;
5034
+ obj = response._prefix + obj + "_";
5035
+ key = new FormData();
5036
+ response = response._formData;
5037
+ arrayRoot = Array.from(response.keys());
5038
+ for (value = 0; value < arrayRoot.length; value++)
5039
+ if (((reference = arrayRoot[value]), reference.startsWith(obj))) {
5040
+ for (
5041
+ var entries = response.getAll(reference),
5042
+ newKey = reference.slice(obj.length),
5043
+ j = 0;
5044
+ j < entries.length;
5045
+ j++
5046
+ )
5047
+ key.append(newKey, entries[j]);
5048
+ response.delete(reference);
5049
+ }
5050
+ return key;
4938
5051
  case "i":
4939
5052
  return (
4940
- (value = value.slice(2)),
4941
- getOutlinedModel(response, value, obj, key, extractIterator)
5053
+ (arrayRoot = value.slice(2)),
5054
+ getOutlinedModel(
5055
+ response,
5056
+ arrayRoot,
5057
+ obj,
5058
+ key,
5059
+ null,
5060
+ extractIterator
5061
+ )
4942
5062
  );
4943
5063
  case "I":
4944
5064
  return Infinity;
@@ -4951,15 +5071,48 @@
4951
5071
  case "D":
4952
5072
  return new Date(Date.parse(value.slice(2)));
4953
5073
  case "n":
4954
- return BigInt(value.slice(2));
4955
- }
4956
- switch (value[1]) {
5074
+ obj = value.slice(2);
5075
+ if (obj.length > MAX_BIGINT_DIGITS)
5076
+ throw Error(
5077
+ "BigInt is too large. Received " +
5078
+ obj.length +
5079
+ " digits but the limit is " +
5080
+ MAX_BIGINT_DIGITS +
5081
+ "."
5082
+ );
5083
+ null !== arrayRoot &&
5084
+ bumpArrayCount(arrayRoot, obj.length, response);
5085
+ return BigInt(obj);
4957
5086
  case "A":
4958
- return parseTypedArray(response, value, ArrayBuffer, 1, obj, key);
5087
+ return parseTypedArray(
5088
+ response,
5089
+ value,
5090
+ ArrayBuffer,
5091
+ 1,
5092
+ obj,
5093
+ key,
5094
+ arrayRoot
5095
+ );
4959
5096
  case "O":
4960
- return parseTypedArray(response, value, Int8Array, 1, obj, key);
5097
+ return parseTypedArray(
5098
+ response,
5099
+ value,
5100
+ Int8Array,
5101
+ 1,
5102
+ obj,
5103
+ key,
5104
+ arrayRoot
5105
+ );
4961
5106
  case "o":
4962
- return parseTypedArray(response, value, Uint8Array, 1, obj, key);
5107
+ return parseTypedArray(
5108
+ response,
5109
+ value,
5110
+ Uint8Array,
5111
+ 1,
5112
+ obj,
5113
+ key,
5114
+ arrayRoot
5115
+ );
4963
5116
  case "U":
4964
5117
  return parseTypedArray(
4965
5118
  response,
@@ -4967,22 +5120,79 @@
4967
5120
  Uint8ClampedArray,
4968
5121
  1,
4969
5122
  obj,
4970
- key
5123
+ key,
5124
+ arrayRoot
4971
5125
  );
4972
5126
  case "S":
4973
- return parseTypedArray(response, value, Int16Array, 2, obj, key);
5127
+ return parseTypedArray(
5128
+ response,
5129
+ value,
5130
+ Int16Array,
5131
+ 2,
5132
+ obj,
5133
+ key,
5134
+ arrayRoot
5135
+ );
4974
5136
  case "s":
4975
- return parseTypedArray(response, value, Uint16Array, 2, obj, key);
5137
+ return parseTypedArray(
5138
+ response,
5139
+ value,
5140
+ Uint16Array,
5141
+ 2,
5142
+ obj,
5143
+ key,
5144
+ arrayRoot
5145
+ );
4976
5146
  case "L":
4977
- return parseTypedArray(response, value, Int32Array, 4, obj, key);
5147
+ return parseTypedArray(
5148
+ response,
5149
+ value,
5150
+ Int32Array,
5151
+ 4,
5152
+ obj,
5153
+ key,
5154
+ arrayRoot
5155
+ );
4978
5156
  case "l":
4979
- return parseTypedArray(response, value, Uint32Array, 4, obj, key);
5157
+ return parseTypedArray(
5158
+ response,
5159
+ value,
5160
+ Uint32Array,
5161
+ 4,
5162
+ obj,
5163
+ key,
5164
+ arrayRoot
5165
+ );
4980
5166
  case "G":
4981
- return parseTypedArray(response, value, Float32Array, 4, obj, key);
5167
+ return parseTypedArray(
5168
+ response,
5169
+ value,
5170
+ Float32Array,
5171
+ 4,
5172
+ obj,
5173
+ key,
5174
+ arrayRoot
5175
+ );
4982
5176
  case "g":
4983
- return parseTypedArray(response, value, Float64Array, 8, obj, key);
5177
+ return parseTypedArray(
5178
+ response,
5179
+ value,
5180
+ Float64Array,
5181
+ 8,
5182
+ obj,
5183
+ key,
5184
+ arrayRoot
5185
+ );
4984
5186
  case "M":
4985
- return parseTypedArray(response, value, BigInt64Array, 8, obj, key);
5187
+ return parseTypedArray(
5188
+ response,
5189
+ value,
5190
+ BigInt64Array,
5191
+ 8,
5192
+ obj,
5193
+ key,
5194
+ arrayRoot
5195
+ );
4986
5196
  case "m":
4987
5197
  return parseTypedArray(
4988
5198
  response,
@@ -4990,17 +5200,24 @@
4990
5200
  BigUint64Array,
4991
5201
  8,
4992
5202
  obj,
4993
- key
5203
+ key,
5204
+ arrayRoot
4994
5205
  );
4995
5206
  case "V":
4996
- return parseTypedArray(response, value, DataView, 1, obj, key);
5207
+ return parseTypedArray(
5208
+ response,
5209
+ value,
5210
+ DataView,
5211
+ 1,
5212
+ obj,
5213
+ key,
5214
+ arrayRoot
5215
+ );
4997
5216
  case "B":
4998
5217
  return (
4999
5218
  (obj = parseInt(value.slice(2), 16)),
5000
5219
  response._formData.get(response._prefix + obj)
5001
5220
  );
5002
- }
5003
- switch (value[1]) {
5004
5221
  case "R":
5005
5222
  return parseReadableStream(response, value, void 0);
5006
5223
  case "r":
@@ -5011,8 +5228,16 @@
5011
5228
  return parseAsyncIterable(response, value, !0);
5012
5229
  }
5013
5230
  value = value.slice(1);
5014
- return getOutlinedModel(response, value, obj, key, createModel);
5231
+ return getOutlinedModel(
5232
+ response,
5233
+ value,
5234
+ obj,
5235
+ key,
5236
+ arrayRoot,
5237
+ createModel
5238
+ );
5015
5239
  }
5240
+ null !== arrayRoot && bumpArrayCount(arrayRoot, value.length, response);
5016
5241
  return value;
5017
5242
  }
5018
5243
  function createResponse(
@@ -5024,6 +5249,8 @@
5024
5249
  3 < arguments.length && void 0 !== arguments[3]
5025
5250
  ? arguments[3]
5026
5251
  : new FormData(),
5252
+ arraySizeLimit =
5253
+ 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 1e6,
5027
5254
  chunks = new Map();
5028
5255
  return {
5029
5256
  _bundlerConfig: bundlerConfig,
@@ -5032,7 +5259,9 @@
5032
5259
  _chunks: chunks,
5033
5260
  _closed: !1,
5034
5261
  _closedReason: null,
5035
- _temporaryReferences: temporaryReferences
5262
+ _temporaryReferences: temporaryReferences,
5263
+ _rootArrayContexts: new WeakMap(),
5264
+ _arraySizeLimit: arraySizeLimit
5036
5265
  };
5037
5266
  }
5038
5267
  function resolveField(response, key, value) {
@@ -5048,13 +5277,24 @@
5048
5277
  function close(response) {
5049
5278
  reportGlobalError(response, Error("Connection closed."));
5050
5279
  }
5051
- function loadServerReference(bundlerConfig, id, bound) {
5280
+ function loadServerReference(bundlerConfig, metaData) {
5281
+ var id = metaData.id;
5282
+ if ("string" !== typeof id) return null;
5052
5283
  var serverReference = resolveServerReference(bundlerConfig, id);
5053
5284
  bundlerConfig = preloadModule(serverReference);
5054
- return bound
5055
- ? Promise.all([bound, bundlerConfig]).then(function (_ref) {
5285
+ metaData = metaData.bound;
5286
+ return metaData instanceof Promise
5287
+ ? Promise.all([metaData, bundlerConfig]).then(function (_ref) {
5056
5288
  _ref = _ref[0];
5057
5289
  var fn = requireModule(serverReference);
5290
+ if (_ref.length > MAX_BOUND_ARGS)
5291
+ throw Error(
5292
+ "Server Function has too many bound arguments. Received " +
5293
+ _ref.length +
5294
+ " but the limit is " +
5295
+ MAX_BOUND_ARGS +
5296
+ "."
5297
+ );
5058
5298
  return fn.bind.apply(fn, [null].concat(_ref));
5059
5299
  })
5060
5300
  : bundlerConfig
@@ -5063,8 +5303,19 @@
5063
5303
  })
5064
5304
  : Promise.resolve(requireModule(serverReference));
5065
5305
  }
5066
- function decodeBoundActionMetaData(body, serverManifest, formFieldPrefix) {
5067
- body = createResponse(serverManifest, formFieldPrefix, void 0, body);
5306
+ function decodeBoundActionMetaData(
5307
+ body,
5308
+ serverManifest,
5309
+ formFieldPrefix,
5310
+ arraySizeLimit
5311
+ ) {
5312
+ body = createResponse(
5313
+ serverManifest,
5314
+ formFieldPrefix,
5315
+ void 0,
5316
+ body,
5317
+ arraySizeLimit
5318
+ );
5068
5319
  close(body);
5069
5320
  body = getChunk(body, 0);
5070
5321
  body.then(function () {});
@@ -5073,20 +5324,24 @@
5073
5324
  }
5074
5325
  function decodeAction$1(body, serverManifest) {
5075
5326
  var formData = new FormData(),
5076
- action = null;
5327
+ action = null,
5328
+ seenActions = new Set();
5077
5329
  body.forEach(function (value, key) {
5078
5330
  key.startsWith("$ACTION_")
5079
5331
  ? key.startsWith("$ACTION_REF_")
5080
- ? ((value = "$ACTION_" + key.slice(12) + ":"),
5332
+ ? seenActions.has(key) ||
5333
+ (seenActions.add(key),
5334
+ (value = "$ACTION_" + key.slice(12) + ":"),
5081
5335
  (value = decodeBoundActionMetaData(body, serverManifest, value)),
5082
- (action = loadServerReference(
5083
- serverManifest,
5084
- value.id,
5085
- value.bound
5086
- )))
5336
+ (action = loadServerReference(serverManifest, value)))
5087
5337
  : key.startsWith("$ACTION_ID_") &&
5088
- ((value = key.slice(11)),
5089
- (action = loadServerReference(serverManifest, value, null)))
5338
+ !seenActions.has(key) &&
5339
+ (seenActions.add(key),
5340
+ (value = key.slice(11)),
5341
+ (action = loadServerReference(serverManifest, {
5342
+ id: value,
5343
+ bound: null
5344
+ })))
5090
5345
  : formData.append(key, value);
5091
5346
  });
5092
5347
  return null === action
@@ -5762,7 +6017,7 @@
5762
6017
  patchConsole(console, "table"),
5763
6018
  patchConsole(console, "trace"),
5764
6019
  patchConsole(console, "warn"));
5765
- var ObjectPrototype = Object.prototype,
6020
+ var ObjectPrototype$1 = Object.prototype,
5766
6021
  stringify = JSON.stringify,
5767
6022
  ABORTING = 12,
5768
6023
  CLOSED = 14,
@@ -5788,16 +6043,23 @@
5788
6043
  case "fulfilled":
5789
6044
  if ("function" === typeof resolve) {
5790
6045
  for (
5791
- var inspectedValue = this.value, cycleProtection = 0;
6046
+ var inspectedValue = this.value,
6047
+ cycleProtection = 0,
6048
+ visited = new Set();
5792
6049
  inspectedValue instanceof ReactPromise;
5793
6050
 
5794
6051
  ) {
5795
6052
  cycleProtection++;
5796
- if (inspectedValue === this || 1e3 < cycleProtection) {
6053
+ if (
6054
+ inspectedValue === this ||
6055
+ visited.has(inspectedValue) ||
6056
+ 1e3 < cycleProtection
6057
+ ) {
5797
6058
  "function" === typeof reject &&
5798
6059
  reject(Error("Cannot have cyclic thenables."));
5799
6060
  return;
5800
6061
  }
6062
+ visited.add(inspectedValue);
5801
6063
  if ("fulfilled" === inspectedValue.status)
5802
6064
  inspectedValue = inspectedValue.value;
5803
6065
  else break;
@@ -5818,7 +6080,15 @@
5818
6080
  "function" === typeof reject && reject(this.reason);
5819
6081
  }
5820
6082
  };
5821
- var initializingHandler = null,
6083
+ var ObjectPrototype = Object.prototype,
6084
+ ArrayPrototype = Array.prototype,
6085
+ initializingHandler = null;
6086
+ FlightIterator.prototype = {};
6087
+ FlightIterator.prototype[ASYNC_ITERATOR] = function () {
6088
+ return this;
6089
+ };
6090
+ var MAX_BIGINT_DIGITS = 300,
6091
+ MAX_BOUND_ARGS = 1e3,
5822
6092
  serverManifest = {};
5823
6093
  exports.createClientReference = function (
5824
6094
  id,
@@ -5853,7 +6123,8 @@
5853
6123
  serverManifest,
5854
6124
  "",
5855
6125
  options ? options.temporaryReferences : void 0,
5856
- body
6126
+ body,
6127
+ options ? options.arraySizeLimit : void 0
5857
6128
  );
5858
6129
  options = getChunk(body, 0);
5859
6130
  close(body);
@@ -5881,7 +6152,9 @@
5881
6152
  response = createResponse(
5882
6153
  serverManifest,
5883
6154
  "",
5884
- options ? options.temporaryReferences : void 0
6155
+ options ? options.temporaryReferences : void 0,
6156
+ void 0,
6157
+ options ? options.arraySizeLimit : void 0
5885
6158
  );
5886
6159
  iterator.next().then(progress, error);
5887
6160
  return getChunk(response, 0);
@@ -5890,7 +6163,9 @@
5890
6163
  var response = createResponse(
5891
6164
  serverManifest,
5892
6165
  "",
5893
- options ? options.temporaryReferences : void 0
6166
+ options ? options.temporaryReferences : void 0,
6167
+ void 0,
6168
+ options ? options.arraySizeLimit : void 0
5894
6169
  ),
5895
6170
  pendingFiles = 0,
5896
6171
  queuedFields = [];
@@ -5914,13 +6189,13 @@
5914
6189
  );
5915
6190
  else {
5916
6191
  pendingFiles++;
5917
- var JSCompiler_object_inline_chunks_263 = [];
6192
+ var JSCompiler_object_inline_chunks_258 = [];
5918
6193
  value.on("data", function (chunk) {
5919
- JSCompiler_object_inline_chunks_263.push(chunk);
6194
+ JSCompiler_object_inline_chunks_258.push(chunk);
5920
6195
  });
5921
6196
  value.on("end", function () {
5922
6197
  try {
5923
- var blob = new Blob(JSCompiler_object_inline_chunks_263, {
6198
+ var blob = new Blob(JSCompiler_object_inline_chunks_258, {
5924
6199
  type: mimeType
5925
6200
  });
5926
6201
  response._formData.append(name, blob, filename);