react-server-dom-webpack 19.2.0 → 19.2.2

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.
@@ -2374,7 +2374,7 @@
2374
2374
  function serializeServerReference(request, serverReference) {
2375
2375
  var writtenServerReferences = request.writtenServerReferences,
2376
2376
  existingId = writtenServerReferences.get(serverReference);
2377
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
2377
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
2378
2378
  existingId = serverReference.$$bound;
2379
2379
  existingId = null === existingId ? null : Promise.resolve(existingId);
2380
2380
  var id = serverReference.$$id,
@@ -2400,7 +2400,7 @@
2400
2400
  : { id: id, bound: existingId };
2401
2401
  request = outlineModel(request, existingId);
2402
2402
  writtenServerReferences.set(serverReference, request);
2403
- return "$F" + request.toString(16);
2403
+ return "$h" + request.toString(16);
2404
2404
  }
2405
2405
  function serializeLargeTextString(request, text) {
2406
2406
  request.pendingChunks++;
@@ -4340,37 +4340,65 @@
4340
4340
  if ("fulfilled" === moduleExports.status)
4341
4341
  moduleExports = moduleExports.value;
4342
4342
  else throw moduleExports.reason;
4343
- return "*" === metadata[2]
4344
- ? moduleExports
4345
- : "" === metadata[2]
4346
- ? moduleExports.__esModule
4347
- ? moduleExports.default
4348
- : moduleExports
4349
- : moduleExports[metadata[2]];
4350
- }
4351
- function Chunk(status, value, reason, response) {
4343
+ if ("*" === metadata[2]) return moduleExports;
4344
+ if ("" === metadata[2])
4345
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
4346
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
4347
+ return moduleExports[metadata[2]];
4348
+ }
4349
+ function ReactPromise(status, value, reason) {
4352
4350
  this.status = status;
4353
4351
  this.value = value;
4354
4352
  this.reason = reason;
4355
- this._response = response;
4356
4353
  }
4357
- function createPendingChunk(response) {
4358
- return new Chunk("pending", null, null, response);
4354
+ function wakeChunk(response, listeners, value) {
4355
+ for (var i = 0; i < listeners.length; i++) {
4356
+ var listener = listeners[i];
4357
+ "function" === typeof listener
4358
+ ? listener(value)
4359
+ : fulfillReference(response, listener, value);
4360
+ }
4359
4361
  }
4360
- function wakeChunk(listeners, value) {
4361
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
4362
+ function rejectChunk(response, listeners, error) {
4363
+ for (var i = 0; i < listeners.length; i++) {
4364
+ var listener = listeners[i];
4365
+ "function" === typeof listener
4366
+ ? listener(error)
4367
+ : rejectReference(response, listener.handler, error);
4368
+ }
4369
+ }
4370
+ function resolveBlockedCycle(resolvedChunk, reference) {
4371
+ var referencedChunk = reference.handler.chunk;
4372
+ if (null === referencedChunk) return null;
4373
+ if (referencedChunk === resolvedChunk) return reference.handler;
4374
+ reference = referencedChunk.value;
4375
+ if (null !== reference)
4376
+ for (
4377
+ referencedChunk = 0;
4378
+ referencedChunk < reference.length;
4379
+ referencedChunk++
4380
+ ) {
4381
+ var listener = reference[referencedChunk];
4382
+ if (
4383
+ "function" !== typeof listener &&
4384
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
4385
+ null !== listener)
4386
+ )
4387
+ return listener;
4388
+ }
4389
+ return null;
4362
4390
  }
4363
- function triggerErrorOnChunk(chunk, error) {
4391
+ function triggerErrorOnChunk(response, chunk, error) {
4364
4392
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
4365
4393
  chunk.reason.error(error);
4366
4394
  else {
4367
4395
  var listeners = chunk.reason;
4368
4396
  chunk.status = "rejected";
4369
4397
  chunk.reason = error;
4370
- null !== listeners && wakeChunk(listeners, error);
4398
+ null !== listeners && rejectChunk(response, listeners, error);
4371
4399
  }
4372
4400
  }
4373
- function resolveModelChunk(chunk, value, id) {
4401
+ function resolveModelChunk(response, chunk, value, id) {
4374
4402
  if ("pending" !== chunk.status)
4375
4403
  (chunk = chunk.reason),
4376
4404
  "C" === value[0]
@@ -4381,42 +4409,74 @@
4381
4409
  rejectListeners = chunk.reason;
4382
4410
  chunk.status = "resolved_model";
4383
4411
  chunk.value = value;
4384
- chunk.reason = id;
4412
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
4385
4413
  if (null !== resolveListeners)
4386
- switch ((initializeModelChunk(chunk), chunk.status)) {
4414
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
4387
4415
  case "fulfilled":
4388
- wakeChunk(resolveListeners, chunk.value);
4416
+ wakeChunk(response, resolveListeners, chunk.value);
4389
4417
  break;
4390
- case "pending":
4391
4418
  case "blocked":
4392
- case "cyclic":
4419
+ for (value = 0; value < resolveListeners.length; value++)
4420
+ if (
4421
+ ((id = resolveListeners[value]), "function" !== typeof id)
4422
+ ) {
4423
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
4424
+ if (null !== cyclicHandler)
4425
+ switch (
4426
+ (fulfillReference(response, id, cyclicHandler.value),
4427
+ resolveListeners.splice(value, 1),
4428
+ value--,
4429
+ null !== rejectListeners &&
4430
+ ((id = rejectListeners.indexOf(id)),
4431
+ -1 !== id && rejectListeners.splice(id, 1)),
4432
+ chunk.status)
4433
+ ) {
4434
+ case "fulfilled":
4435
+ wakeChunk(response, resolveListeners, chunk.value);
4436
+ break a;
4437
+ case "rejected":
4438
+ null !== rejectListeners &&
4439
+ rejectChunk(response, rejectListeners, chunk.reason);
4440
+ break a;
4441
+ }
4442
+ }
4443
+ case "pending":
4393
4444
  if (chunk.value)
4394
- for (value = 0; value < resolveListeners.length; value++)
4395
- chunk.value.push(resolveListeners[value]);
4445
+ for (
4446
+ response = 0;
4447
+ response < resolveListeners.length;
4448
+ response++
4449
+ )
4450
+ chunk.value.push(resolveListeners[response]);
4396
4451
  else chunk.value = resolveListeners;
4397
4452
  if (chunk.reason) {
4398
4453
  if (rejectListeners)
4399
- for (value = 0; value < rejectListeners.length; value++)
4400
- chunk.reason.push(rejectListeners[value]);
4454
+ for (
4455
+ resolveListeners = 0;
4456
+ resolveListeners < rejectListeners.length;
4457
+ resolveListeners++
4458
+ )
4459
+ chunk.reason.push(rejectListeners[resolveListeners]);
4401
4460
  } else chunk.reason = rejectListeners;
4402
4461
  break;
4403
4462
  case "rejected":
4404
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
4463
+ rejectListeners &&
4464
+ wakeChunk(response, rejectListeners, chunk.reason);
4405
4465
  }
4406
4466
  }
4407
4467
  }
4408
4468
  function createResolvedIteratorResultChunk(response, value, done) {
4409
- return new Chunk(
4469
+ return new ReactPromise(
4410
4470
  "resolved_model",
4411
4471
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
4412
4472
  value +
4413
4473
  "}",
4414
- -1,
4415
- response
4474
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4416
4475
  );
4417
4476
  }
4418
- function resolveIteratorResultChunk(chunk, value, done) {
4477
+ function resolveIteratorResultChunk(response, chunk, value, done) {
4419
4478
  resolveModelChunk(
4479
+ response,
4420
4480
  chunk,
4421
4481
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
4422
4482
  value +
@@ -4424,38 +4484,68 @@
4424
4484
  -1
4425
4485
  );
4426
4486
  }
4427
- function loadServerReference$1(
4428
- response,
4429
- id,
4430
- bound,
4431
- parentChunk,
4432
- parentObject,
4433
- key
4434
- ) {
4487
+ function loadServerReference$1(response, metaData, parentObject, key) {
4488
+ var id = metaData.id;
4489
+ if ("string" !== typeof id || "then" === key) return null;
4435
4490
  var serverReference = resolveServerReference(response._bundlerConfig, id);
4436
- id = preloadModule(serverReference);
4437
- if (bound)
4438
- bound = Promise.all([bound, id]).then(function (_ref) {
4439
- _ref = _ref[0];
4440
- var fn = requireModule(serverReference);
4441
- return fn.bind.apply(fn, [null].concat(_ref));
4442
- });
4443
- else if (id)
4444
- bound = Promise.resolve(id).then(function () {
4445
- return requireModule(serverReference);
4446
- });
4491
+ id = metaData.bound;
4492
+ var promise = preloadModule(serverReference);
4493
+ if (promise)
4494
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
4495
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
4447
4496
  else return requireModule(serverReference);
4448
- bound.then(
4449
- createModelResolver(
4450
- parentChunk,
4451
- parentObject,
4452
- key,
4453
- !1,
4454
- response,
4455
- createModel,
4456
- []
4457
- ),
4458
- createModelReject(parentChunk)
4497
+ if (initializingHandler) {
4498
+ var handler = initializingHandler;
4499
+ handler.deps++;
4500
+ } else
4501
+ handler = initializingHandler = {
4502
+ chunk: null,
4503
+ value: null,
4504
+ reason: null,
4505
+ deps: 1,
4506
+ errored: !1
4507
+ };
4508
+ promise.then(
4509
+ function () {
4510
+ var resolvedValue = requireModule(serverReference);
4511
+ if (metaData.bound) {
4512
+ var promiseValue = metaData.bound.value;
4513
+ promiseValue = Array.isArray(promiseValue)
4514
+ ? promiseValue.slice(0)
4515
+ : [];
4516
+ promiseValue.unshift(null);
4517
+ resolvedValue = resolvedValue.bind.apply(
4518
+ resolvedValue,
4519
+ promiseValue
4520
+ );
4521
+ }
4522
+ parentObject[key] = resolvedValue;
4523
+ "" === key &&
4524
+ null === handler.value &&
4525
+ (handler.value = resolvedValue);
4526
+ handler.deps--;
4527
+ 0 === handler.deps &&
4528
+ ((resolvedValue = handler.chunk),
4529
+ null !== resolvedValue &&
4530
+ "blocked" === resolvedValue.status &&
4531
+ ((promiseValue = resolvedValue.value),
4532
+ (resolvedValue.status = "fulfilled"),
4533
+ (resolvedValue.value = handler.value),
4534
+ (resolvedValue.reason = null),
4535
+ null !== promiseValue &&
4536
+ wakeChunk(response, promiseValue, handler.value)));
4537
+ },
4538
+ function (error) {
4539
+ if (!handler.errored) {
4540
+ handler.errored = !0;
4541
+ handler.value = null;
4542
+ handler.reason = error;
4543
+ var chunk = handler.chunk;
4544
+ null !== chunk &&
4545
+ "blocked" === chunk.status &&
4546
+ triggerErrorOnChunk(response, chunk, error);
4547
+ }
4548
+ }
4459
4549
  );
4460
4550
  return null;
4461
4551
  }
@@ -4497,53 +4587,70 @@
4497
4587
  value[i],
4498
4588
  parentObj
4499
4589
  )),
4500
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
4590
+ void 0 !== parentObj || "__proto__" === i
4591
+ ? (value[i] = parentObj)
4592
+ : delete value[i]);
4501
4593
  return value;
4502
4594
  }
4503
4595
  function initializeModelChunk(chunk) {
4504
- var prevChunk = initializingChunk,
4505
- prevBlocked = initializingChunkBlockedModel;
4506
- initializingChunk = chunk;
4507
- initializingChunkBlockedModel = null;
4508
- var rootReference =
4509
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
4510
- resolvedModel = chunk.value;
4511
- chunk.status = "cyclic";
4596
+ var prevHandler = initializingHandler;
4597
+ initializingHandler = null;
4598
+ var _chunk$reason = chunk.reason,
4599
+ response = _chunk$reason[RESPONSE_SYMBOL];
4600
+ _chunk$reason = _chunk$reason.id;
4601
+ _chunk$reason =
4602
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
4603
+ var resolvedModel = chunk.value;
4604
+ chunk.status = "blocked";
4512
4605
  chunk.value = null;
4513
4606
  chunk.reason = null;
4514
4607
  try {
4515
4608
  var rawModel = JSON.parse(resolvedModel),
4516
4609
  value = reviveModel(
4517
- chunk._response,
4610
+ response,
4518
4611
  { "": rawModel },
4519
4612
  "",
4520
4613
  rawModel,
4521
- rootReference
4522
- );
4523
- if (
4524
- null !== initializingChunkBlockedModel &&
4525
- 0 < initializingChunkBlockedModel.deps
4526
- )
4527
- (initializingChunkBlockedModel.value = value),
4528
- (chunk.status = "blocked");
4529
- else {
4530
- var resolveListeners = chunk.value;
4531
- chunk.status = "fulfilled";
4532
- chunk.value = value;
4533
- null !== resolveListeners && wakeChunk(resolveListeners, value);
4614
+ _chunk$reason
4615
+ ),
4616
+ resolveListeners = chunk.value;
4617
+ if (null !== resolveListeners)
4618
+ for (
4619
+ chunk.value = null, chunk.reason = null, rawModel = 0;
4620
+ rawModel < resolveListeners.length;
4621
+ rawModel++
4622
+ ) {
4623
+ var listener = resolveListeners[rawModel];
4624
+ "function" === typeof listener
4625
+ ? listener(value)
4626
+ : fulfillReference(response, listener, value);
4627
+ }
4628
+ if (null !== initializingHandler) {
4629
+ if (initializingHandler.errored) throw initializingHandler.reason;
4630
+ if (0 < initializingHandler.deps) {
4631
+ initializingHandler.value = value;
4632
+ initializingHandler.chunk = chunk;
4633
+ return;
4634
+ }
4534
4635
  }
4636
+ chunk.status = "fulfilled";
4637
+ chunk.value = value;
4638
+ chunk.reason = null;
4535
4639
  } catch (error) {
4536
4640
  (chunk.status = "rejected"), (chunk.reason = error);
4537
4641
  } finally {
4538
- (initializingChunk = prevChunk),
4539
- (initializingChunkBlockedModel = prevBlocked);
4642
+ initializingHandler = prevHandler;
4540
4643
  }
4541
4644
  }
4542
4645
  function reportGlobalError(response, error) {
4543
4646
  response._closed = !0;
4544
4647
  response._closedReason = error;
4545
4648
  response._chunks.forEach(function (chunk) {
4546
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
4649
+ "pending" === chunk.status
4650
+ ? triggerErrorOnChunk(response, chunk, error)
4651
+ : "fulfilled" === chunk.status &&
4652
+ null !== chunk.reason &&
4653
+ chunk.reason.error(error);
4547
4654
  });
4548
4655
  }
4549
4656
  function getChunk(response, id) {
@@ -4552,50 +4659,62 @@
4552
4659
  chunk ||
4553
4660
  ((chunk = response._formData.get(response._prefix + id)),
4554
4661
  (chunk =
4555
- null != chunk
4556
- ? new Chunk("resolved_model", chunk, id, response)
4662
+ "string" === typeof chunk
4663
+ ? new ReactPromise(
4664
+ "resolved_model",
4665
+ chunk,
4666
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
4667
+ )
4557
4668
  : response._closed
4558
- ? new Chunk("rejected", null, response._closedReason, response)
4559
- : createPendingChunk(response)),
4669
+ ? new ReactPromise("rejected", null, response._closedReason)
4670
+ : new ReactPromise("pending", null, null)),
4560
4671
  chunks.set(id, chunk));
4561
4672
  return chunk;
4562
4673
  }
4563
- function createModelResolver(
4564
- chunk,
4565
- parentObject,
4566
- key,
4567
- cyclic,
4568
- response,
4569
- map,
4570
- path
4571
- ) {
4572
- if (initializingChunkBlockedModel) {
4573
- var blocked = initializingChunkBlockedModel;
4574
- cyclic || blocked.deps++;
4575
- } else
4576
- blocked = initializingChunkBlockedModel = {
4577
- deps: cyclic ? 0 : 1,
4578
- value: null
4579
- };
4580
- return function (value) {
4581
- for (var i = 1; i < path.length; i++) value = value[path[i]];
4582
- parentObject[key] = map(response, value);
4583
- "" === key &&
4584
- null === blocked.value &&
4585
- (blocked.value = parentObject[key]);
4586
- blocked.deps--;
4587
- 0 === blocked.deps &&
4588
- "blocked" === chunk.status &&
4589
- ((value = chunk.value),
4590
- (chunk.status = "fulfilled"),
4591
- (chunk.value = blocked.value),
4592
- null !== value && wakeChunk(value, blocked.value));
4593
- };
4594
- }
4595
- function createModelReject(chunk) {
4596
- return function (error) {
4597
- return triggerErrorOnChunk(chunk, error);
4598
- };
4674
+ function fulfillReference(response, reference, value) {
4675
+ var handler = reference.handler,
4676
+ parentObject = reference.parentObject,
4677
+ key = reference.key,
4678
+ map = reference.map,
4679
+ path = reference.path;
4680
+ try {
4681
+ for (var i = 1; i < path.length; i++) {
4682
+ var name = path[i];
4683
+ if (
4684
+ "object" !== typeof value ||
4685
+ !hasOwnProperty.call(value, name) ||
4686
+ value instanceof Promise
4687
+ )
4688
+ throw Error("Invalid reference.");
4689
+ value = value[name];
4690
+ }
4691
+ var mappedValue = map(response, value, parentObject, key);
4692
+ parentObject[key] = mappedValue;
4693
+ "" === key && null === handler.value && (handler.value = mappedValue);
4694
+ } catch (error) {
4695
+ rejectReference(response, reference.handler, error);
4696
+ return;
4697
+ }
4698
+ handler.deps--;
4699
+ 0 === handler.deps &&
4700
+ ((reference = handler.chunk),
4701
+ null !== reference &&
4702
+ "blocked" === reference.status &&
4703
+ ((value = reference.value),
4704
+ (reference.status = "fulfilled"),
4705
+ (reference.value = handler.value),
4706
+ (reference.reason = handler.reason),
4707
+ null !== value && wakeChunk(response, value, handler.value)));
4708
+ }
4709
+ function rejectReference(response, handler, error) {
4710
+ handler.errored ||
4711
+ ((handler.errored = !0),
4712
+ (handler.value = null),
4713
+ (handler.reason = error),
4714
+ (handler = handler.chunk),
4715
+ null !== handler &&
4716
+ "blocked" === handler.status &&
4717
+ triggerErrorOnChunk(response, handler, error));
4599
4718
  }
4600
4719
  function getOutlinedModel(response, reference, parentObject, key, map) {
4601
4720
  reference = reference.split(":");
@@ -4607,29 +4726,61 @@
4607
4726
  }
4608
4727
  switch (id.status) {
4609
4728
  case "fulfilled":
4610
- parentObject = id.value;
4611
- for (key = 1; key < reference.length; key++)
4612
- parentObject = parentObject[reference[key]];
4613
- return map(response, parentObject);
4729
+ id = id.value;
4730
+ for (var i = 1; i < reference.length; i++) {
4731
+ var name = reference[i];
4732
+ if (
4733
+ "object" !== typeof id ||
4734
+ !hasOwnProperty.call(id, name) ||
4735
+ id instanceof Promise
4736
+ )
4737
+ throw Error("Invalid reference.");
4738
+ id = id[name];
4739
+ }
4740
+ return map(response, id, parentObject, key);
4614
4741
  case "pending":
4615
4742
  case "blocked":
4616
- case "cyclic":
4617
- var parentChunk = initializingChunk;
4618
- id.then(
4619
- createModelResolver(
4620
- parentChunk,
4621
- parentObject,
4622
- key,
4623
- "cyclic" === id.status,
4624
- response,
4625
- map,
4626
- reference
4627
- ),
4628
- createModelReject(parentChunk)
4743
+ return (
4744
+ initializingHandler
4745
+ ? ((response = initializingHandler), response.deps++)
4746
+ : (response = initializingHandler =
4747
+ {
4748
+ chunk: null,
4749
+ value: null,
4750
+ reason: null,
4751
+ deps: 1,
4752
+ errored: !1
4753
+ }),
4754
+ (parentObject = {
4755
+ handler: response,
4756
+ parentObject: parentObject,
4757
+ key: key,
4758
+ map: map,
4759
+ path: reference
4760
+ }),
4761
+ null === id.value
4762
+ ? (id.value = [parentObject])
4763
+ : id.value.push(parentObject),
4764
+ null === id.reason
4765
+ ? (id.reason = [parentObject])
4766
+ : id.reason.push(parentObject),
4767
+ null
4629
4768
  );
4630
- return null;
4631
4769
  default:
4632
- throw id.reason;
4770
+ return (
4771
+ initializingHandler
4772
+ ? ((initializingHandler.errored = !0),
4773
+ (initializingHandler.value = null),
4774
+ (initializingHandler.reason = id.reason))
4775
+ : (initializingHandler = {
4776
+ chunk: null,
4777
+ value: null,
4778
+ reason: id.reason,
4779
+ deps: 0,
4780
+ errored: !0
4781
+ }),
4782
+ null
4783
+ );
4633
4784
  }
4634
4785
  }
4635
4786
  function createMap(response, model) {
@@ -4641,8 +4792,8 @@
4641
4792
  function extractIterator(response, model) {
4642
4793
  return model[Symbol.iterator]();
4643
4794
  }
4644
- function createModel(response, model) {
4645
- return model;
4795
+ function createModel(response, model, parentObject, key) {
4796
+ return "then" === key && "function" === typeof model ? null : model;
4646
4797
  }
4647
4798
  function parseTypedArray(
4648
4799
  response,
@@ -4653,44 +4804,77 @@
4653
4804
  parentKey
4654
4805
  ) {
4655
4806
  reference = parseInt(reference.slice(2), 16);
4656
- reference = response._formData.get(response._prefix + reference);
4657
- reference =
4658
- constructor === ArrayBuffer
4659
- ? reference.arrayBuffer()
4660
- : reference.arrayBuffer().then(function (buffer) {
4661
- return new constructor(buffer);
4662
- });
4663
- bytesPerElement = initializingChunk;
4807
+ bytesPerElement = response._prefix + reference;
4808
+ if (response._chunks.has(reference))
4809
+ throw Error("Already initialized typed array.");
4810
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
4811
+ if (initializingHandler) {
4812
+ var handler = initializingHandler;
4813
+ handler.deps++;
4814
+ } else
4815
+ handler = initializingHandler = {
4816
+ chunk: null,
4817
+ value: null,
4818
+ reason: null,
4819
+ deps: 1,
4820
+ errored: !1
4821
+ };
4664
4822
  reference.then(
4665
- createModelResolver(
4666
- bytesPerElement,
4667
- parentObject,
4668
- parentKey,
4669
- !1,
4670
- response,
4671
- createModel,
4672
- []
4673
- ),
4674
- createModelReject(bytesPerElement)
4823
+ function (buffer) {
4824
+ buffer =
4825
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
4826
+ parentObject[parentKey] = buffer;
4827
+ "" === parentKey &&
4828
+ null === handler.value &&
4829
+ (handler.value = buffer);
4830
+ handler.deps--;
4831
+ if (
4832
+ 0 === handler.deps &&
4833
+ ((buffer = handler.chunk),
4834
+ null !== buffer && "blocked" === buffer.status)
4835
+ ) {
4836
+ var resolveListeners = buffer.value;
4837
+ buffer.status = "fulfilled";
4838
+ buffer.value = handler.value;
4839
+ buffer.reason = null;
4840
+ null !== resolveListeners &&
4841
+ wakeChunk(response, resolveListeners, handler.value);
4842
+ }
4843
+ },
4844
+ function (error) {
4845
+ if (!handler.errored) {
4846
+ handler.errored = !0;
4847
+ handler.value = null;
4848
+ handler.reason = error;
4849
+ var chunk = handler.chunk;
4850
+ null !== chunk &&
4851
+ "blocked" === chunk.status &&
4852
+ triggerErrorOnChunk(response, chunk, error);
4853
+ }
4854
+ }
4675
4855
  );
4676
4856
  return null;
4677
4857
  }
4678
4858
  function resolveStream(response, id, stream, controller) {
4679
4859
  var chunks = response._chunks;
4680
- stream = new Chunk("fulfilled", stream, controller, response);
4860
+ stream = new ReactPromise("fulfilled", stream, controller);
4681
4861
  chunks.set(id, stream);
4682
4862
  response = response._formData.getAll(response._prefix + id);
4683
4863
  for (id = 0; id < response.length; id++)
4684
4864
  (chunks = response[id]),
4685
- "C" === chunks[0]
4686
- ? controller.close(
4687
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
4688
- )
4689
- : controller.enqueueModel(chunks);
4865
+ "string" === typeof chunks &&
4866
+ ("C" === chunks[0]
4867
+ ? controller.close(
4868
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
4869
+ )
4870
+ : controller.enqueueModel(chunks));
4690
4871
  }
4691
4872
  function parseReadableStream(response, reference, type) {
4692
4873
  reference = parseInt(reference.slice(2), 16);
4693
- var controller = null;
4874
+ if (response._chunks.has(reference))
4875
+ throw Error("Already initialized stream.");
4876
+ var controller = null,
4877
+ closed = !1;
4694
4878
  type = new ReadableStream({
4695
4879
  type: type,
4696
4880
  start: function (c) {
@@ -4701,7 +4885,11 @@
4701
4885
  resolveStream(response, reference, type, {
4702
4886
  enqueueModel: function (json) {
4703
4887
  if (null === previousBlockedChunk) {
4704
- var chunk = new Chunk("resolved_model", json, -1, response);
4888
+ var chunk = new ReactPromise(
4889
+ "resolved_model",
4890
+ json,
4891
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4892
+ );
4705
4893
  initializeModelChunk(chunk);
4706
4894
  "fulfilled" === chunk.status
4707
4895
  ? controller.enqueue(chunk.value)
@@ -4716,7 +4904,7 @@
4716
4904
  (previousBlockedChunk = chunk));
4717
4905
  } else {
4718
4906
  chunk = previousBlockedChunk;
4719
- var _chunk = createPendingChunk(response);
4907
+ var _chunk = new ReactPromise("pending", null, null);
4720
4908
  _chunk.then(
4721
4909
  function (v) {
4722
4910
  return controller.enqueue(v);
@@ -4728,29 +4916,33 @@
4728
4916
  previousBlockedChunk = _chunk;
4729
4917
  chunk.then(function () {
4730
4918
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4731
- resolveModelChunk(_chunk, json, -1);
4919
+ resolveModelChunk(response, _chunk, json, -1);
4732
4920
  });
4733
4921
  }
4734
4922
  },
4735
4923
  close: function () {
4736
- if (null === previousBlockedChunk) controller.close();
4737
- else {
4738
- var blockedChunk = previousBlockedChunk;
4739
- previousBlockedChunk = null;
4740
- blockedChunk.then(function () {
4741
- return controller.close();
4742
- });
4743
- }
4924
+ if (!closed)
4925
+ if (((closed = !0), null === previousBlockedChunk))
4926
+ controller.close();
4927
+ else {
4928
+ var blockedChunk = previousBlockedChunk;
4929
+ previousBlockedChunk = null;
4930
+ blockedChunk.then(function () {
4931
+ return controller.close();
4932
+ });
4933
+ }
4744
4934
  },
4745
4935
  error: function (error) {
4746
- if (null === previousBlockedChunk) controller.error(error);
4747
- else {
4748
- var blockedChunk = previousBlockedChunk;
4749
- previousBlockedChunk = null;
4750
- blockedChunk.then(function () {
4751
- return controller.error(error);
4752
- });
4753
- }
4936
+ if (!closed)
4937
+ if (((closed = !0), null === previousBlockedChunk))
4938
+ controller.error(error);
4939
+ else {
4940
+ var blockedChunk = previousBlockedChunk;
4941
+ previousBlockedChunk = null;
4942
+ blockedChunk.then(function () {
4943
+ return controller.error(error);
4944
+ });
4945
+ }
4754
4946
  }
4755
4947
  });
4756
4948
  return type;
@@ -4765,6 +4957,8 @@
4765
4957
  }
4766
4958
  function parseAsyncIterable(response, reference, iterator) {
4767
4959
  reference = parseInt(reference.slice(2), 16);
4960
+ if (response._chunks.has(reference))
4961
+ throw Error("Already initialized stream.");
4768
4962
  var buffer = [],
4769
4963
  closed = !1,
4770
4964
  nextWriteIndex = 0,
@@ -4777,13 +4971,12 @@
4777
4971
  );
4778
4972
  if (nextReadIndex === buffer.length) {
4779
4973
  if (closed)
4780
- return new Chunk(
4974
+ return new ReactPromise(
4781
4975
  "fulfilled",
4782
4976
  { done: !0, value: void 0 },
4783
- null,
4784
- response
4977
+ null
4785
4978
  );
4786
- buffer[nextReadIndex] = createPendingChunk(response);
4979
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
4787
4980
  }
4788
4981
  return buffer[nextReadIndex++];
4789
4982
  });
@@ -4797,34 +4990,55 @@
4797
4990
  value,
4798
4991
  !1
4799
4992
  ))
4800
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
4993
+ : resolveIteratorResultChunk(
4994
+ response,
4995
+ buffer[nextWriteIndex],
4996
+ value,
4997
+ !1
4998
+ );
4801
4999
  nextWriteIndex++;
4802
5000
  },
4803
5001
  close: function (value) {
4804
- closed = !0;
4805
- nextWriteIndex === buffer.length
4806
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
5002
+ if (!closed)
5003
+ for (
5004
+ closed = !0,
5005
+ nextWriteIndex === buffer.length
5006
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
5007
+ response,
5008
+ value,
5009
+ !0
5010
+ ))
5011
+ : resolveIteratorResultChunk(
5012
+ response,
5013
+ buffer[nextWriteIndex],
5014
+ value,
5015
+ !0
5016
+ ),
5017
+ nextWriteIndex++;
5018
+ nextWriteIndex < buffer.length;
5019
+
5020
+ )
5021
+ resolveIteratorResultChunk(
4807
5022
  response,
4808
- value,
5023
+ buffer[nextWriteIndex++],
5024
+ '"$undefined"',
4809
5025
  !0
4810
- ))
4811
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
4812
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
4813
- resolveIteratorResultChunk(
4814
- buffer[nextWriteIndex++],
4815
- '"$undefined"',
4816
- !0
4817
- );
5026
+ );
4818
5027
  },
4819
5028
  error: function (error) {
4820
- closed = !0;
4821
- for (
4822
- nextWriteIndex === buffer.length &&
4823
- (buffer[nextWriteIndex] = createPendingChunk(response));
4824
- nextWriteIndex < buffer.length;
5029
+ if (!closed)
5030
+ for (
5031
+ closed = !0,
5032
+ nextWriteIndex === buffer.length &&
5033
+ (buffer[nextWriteIndex] = new ReactPromise(
5034
+ "pending",
5035
+ null,
5036
+ null
5037
+ ));
5038
+ nextWriteIndex < buffer.length;
4825
5039
 
4826
- )
4827
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
5040
+ )
5041
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
4828
5042
  }
4829
5043
  });
4830
5044
  return iterator;
@@ -4838,24 +5052,10 @@
4838
5052
  return (
4839
5053
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
4840
5054
  );
4841
- case "F":
5055
+ case "h":
4842
5056
  return (
4843
5057
  (value = value.slice(2)),
4844
- (value = getOutlinedModel(
4845
- response,
4846
- value,
4847
- obj,
4848
- key,
4849
- createModel
4850
- )),
4851
- loadServerReference$1(
4852
- response,
4853
- value.id,
4854
- value.bound,
4855
- initializingChunk,
4856
- obj,
4857
- key
4858
- )
5058
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
4859
5059
  );
4860
5060
  case "T":
4861
5061
  if (
@@ -4991,10 +5191,12 @@
4991
5191
  function resolveField(response, key, value) {
4992
5192
  response._formData.append(key, value);
4993
5193
  var prefix = response._prefix;
4994
- key.startsWith(prefix) &&
4995
- ((response = response._chunks),
4996
- (key = +key.slice(prefix.length)),
4997
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
5194
+ if (key.startsWith(prefix)) {
5195
+ var chunks = response._chunks;
5196
+ key = +key.slice(prefix.length);
5197
+ (chunks = chunks.get(key)) &&
5198
+ resolveModelChunk(response, chunks, value, key);
5199
+ }
4998
5200
  }
4999
5201
  function close(response) {
5000
5202
  reportGlobalError(response, Error("Connection closed."));
@@ -5189,6 +5391,13 @@
5189
5391
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
5190
5392
  FunctionBind = Function.prototype.bind,
5191
5393
  ArraySlice = Array.prototype.slice,
5394
+ serverReferenceToString = {
5395
+ value: function () {
5396
+ return "function () { [omitted code] }";
5397
+ },
5398
+ configurable: !0,
5399
+ writable: !0
5400
+ },
5192
5401
  PROMISE_PROTOTYPE = Promise.prototype,
5193
5402
  deepProxyHandlers = {
5194
5403
  get: function (target, name) {
@@ -5746,33 +5955,48 @@
5746
5955
  debugNoOutline = null,
5747
5956
  emptyRoot = {},
5748
5957
  decoderOptions = { stream: !0 },
5749
- chunkCache = new Map();
5750
- Chunk.prototype = Object.create(Promise.prototype);
5751
- Chunk.prototype.then = function (resolve, reject) {
5958
+ chunkCache = new Map(),
5959
+ RESPONSE_SYMBOL = Symbol();
5960
+ ReactPromise.prototype = Object.create(Promise.prototype);
5961
+ ReactPromise.prototype.then = function (resolve, reject) {
5752
5962
  switch (this.status) {
5753
5963
  case "resolved_model":
5754
5964
  initializeModelChunk(this);
5755
5965
  }
5756
5966
  switch (this.status) {
5757
5967
  case "fulfilled":
5758
- resolve(this.value);
5968
+ if ("function" === typeof resolve) {
5969
+ for (
5970
+ var inspectedValue = this.value;
5971
+ inspectedValue instanceof ReactPromise;
5972
+
5973
+ ) {
5974
+ if (inspectedValue === this) {
5975
+ "function" === typeof reject &&
5976
+ reject(Error("Cannot have cyclic thenables."));
5977
+ return;
5978
+ }
5979
+ if ("fulfilled" === inspectedValue.status)
5980
+ inspectedValue = inspectedValue.value;
5981
+ else break;
5982
+ }
5983
+ resolve(this.value);
5984
+ }
5759
5985
  break;
5760
5986
  case "pending":
5761
5987
  case "blocked":
5762
- case "cyclic":
5763
- resolve &&
5988
+ "function" === typeof resolve &&
5764
5989
  (null === this.value && (this.value = []),
5765
5990
  this.value.push(resolve));
5766
- reject &&
5991
+ "function" === typeof reject &&
5767
5992
  (null === this.reason && (this.reason = []),
5768
5993
  this.reason.push(reject));
5769
5994
  break;
5770
5995
  default:
5771
- reject(this.reason);
5996
+ "function" === typeof reject && reject(this.reason);
5772
5997
  }
5773
5998
  };
5774
- var initializingChunk = null,
5775
- initializingChunkBlockedModel = null;
5999
+ var initializingHandler = null;
5776
6000
  exports.createClientModuleProxy = function (moduleId) {
5777
6001
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
5778
6002
  return new Proxy(moduleId, proxyHandlers$1);
@@ -5881,38 +6105,50 @@
5881
6105
  pendingFiles = 0,
5882
6106
  queuedFields = [];
5883
6107
  busboyStream.on("field", function (name, value) {
5884
- 0 < pendingFiles
5885
- ? queuedFields.push(name, value)
5886
- : resolveField(response, name, value);
6108
+ if (0 < pendingFiles) queuedFields.push(name, value);
6109
+ else
6110
+ try {
6111
+ resolveField(response, name, value);
6112
+ } catch (error) {
6113
+ busboyStream.destroy(error);
6114
+ }
5887
6115
  });
5888
6116
  busboyStream.on("file", function (name, value, _ref2) {
5889
6117
  var filename = _ref2.filename,
5890
6118
  mimeType = _ref2.mimeType;
5891
6119
  if ("base64" === _ref2.encoding.toLowerCase())
5892
- throw Error(
5893
- "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
6120
+ busboyStream.destroy(
6121
+ Error(
6122
+ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
6123
+ )
5894
6124
  );
5895
- pendingFiles++;
5896
- var JSCompiler_object_inline_chunks_250 = [];
5897
- value.on("data", function (chunk) {
5898
- JSCompiler_object_inline_chunks_250.push(chunk);
5899
- });
5900
- value.on("end", function () {
5901
- var blob = new Blob(JSCompiler_object_inline_chunks_250, {
5902
- type: mimeType
6125
+ else {
6126
+ pendingFiles++;
6127
+ var JSCompiler_object_inline_chunks_263 = [];
6128
+ value.on("data", function (chunk) {
6129
+ JSCompiler_object_inline_chunks_263.push(chunk);
5903
6130
  });
5904
- response._formData.append(name, blob, filename);
5905
- pendingFiles--;
5906
- if (0 === pendingFiles) {
5907
- for (blob = 0; blob < queuedFields.length; blob += 2)
5908
- resolveField(
5909
- response,
5910
- queuedFields[blob],
5911
- queuedFields[blob + 1]
5912
- );
5913
- queuedFields.length = 0;
5914
- }
5915
- });
6131
+ value.on("end", function () {
6132
+ try {
6133
+ var blob = new Blob(JSCompiler_object_inline_chunks_263, {
6134
+ type: mimeType
6135
+ });
6136
+ response._formData.append(name, blob, filename);
6137
+ pendingFiles--;
6138
+ if (0 === pendingFiles) {
6139
+ for (blob = 0; blob < queuedFields.length; blob += 2)
6140
+ resolveField(
6141
+ response,
6142
+ queuedFields[blob],
6143
+ queuedFields[blob + 1]
6144
+ );
6145
+ queuedFields.length = 0;
6146
+ }
6147
+ } catch (error) {
6148
+ busboyStream.destroy(error);
6149
+ }
6150
+ });
6151
+ }
5916
6152
  });
5917
6153
  busboyStream.on("finish", function () {
5918
6154
  close(response);
@@ -6030,7 +6266,8 @@
6030
6266
  },
6031
6267
  $$bound: { value: null, configurable: !0 },
6032
6268
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
6033
- bind: { value: bind, configurable: !0 }
6269
+ bind: { value: bind, configurable: !0 },
6270
+ toString: serverReferenceToString
6034
6271
  });
6035
6272
  };
6036
6273
  exports.renderToPipeableStream = function (model, webpackMap, options) {