@vitejs/plugin-rsc 0.5.1 → 0.5.3

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.
Files changed (76) hide show
  1. package/README.md +37 -6
  2. package/dist/{browser-U86erGOy.js → browser-Dtp2JGlz.js} +2 -2
  3. package/dist/{browser-C8KlM-b7.d.ts → browser-_r3sM3qR.d.ts} +1 -1
  4. package/dist/browser.d.ts +3 -3
  5. package/dist/browser.js +4 -4
  6. package/dist/{chunk-Cdb3zUqJ.js → chunk-ezxmLbPQ.js} +12 -10
  7. package/dist/{cjs-zUv66MZg.js → cjs-D5eQjp5l.js} +2 -2
  8. package/dist/core/browser.d.ts +1 -1
  9. package/dist/core/browser.js +3 -3
  10. package/dist/core/plugin.js +1 -1
  11. package/dist/core/rsc.d.ts +2 -2
  12. package/dist/core/rsc.js +3 -3
  13. package/dist/core/ssr.d.ts +2 -2
  14. package/dist/core/ssr.js +3 -3
  15. package/dist/{encryption-runtime-D5_PLt4C.js → encryption-runtime-BeCv59UO.js} +3 -3
  16. package/dist/index.d.ts +2 -2
  17. package/dist/index.js +8 -8
  18. package/dist/{picocolors-BRKobevN.js → picocolors-AGVbN-ya.js} +3 -3
  19. package/dist/{plugin-fbbM1muv.d.ts → plugin-24ZutaDY.d.ts} +1 -1
  20. package/dist/{plugin-DNwmUjn4.js → plugin-yqduHnqG.js} +37 -19
  21. package/dist/plugin.d.ts +2 -2
  22. package/dist/plugin.js +8 -8
  23. package/dist/plugins/cjs.js +3 -3
  24. package/dist/react/browser.d.ts +3 -3
  25. package/dist/react/browser.js +4 -4
  26. package/dist/react/rsc.d.ts +3 -3
  27. package/dist/react/rsc.js +4 -4
  28. package/dist/react/ssr.d.ts +3 -3
  29. package/dist/react/ssr.js +4 -4
  30. package/dist/{rsc-bL1QvQCm.js → rsc-CvqvlKO2.js} +2 -2
  31. package/dist/{rsc-B_DQ_Sju.js → rsc-DCIXw4uj.js} +2 -2
  32. package/dist/{rsc-OCbFObYE.d.ts → rsc-GHO-HEzG.d.ts} +1 -1
  33. package/dist/{rsc-03j1e3xp.d.ts → rsc-g5utSLBE.d.ts} +3 -3
  34. package/dist/rsc.d.ts +4 -4
  35. package/dist/rsc.js +6 -6
  36. package/dist/{ssr-DzY6rnEv.js → ssr-B-bLmlbm.js} +1 -1
  37. package/dist/{ssr-fBV4xXen.d.ts → ssr-CB7zlVBC.d.ts} +1 -1
  38. package/dist/{ssr-EH7rBPkK.js → ssr-CDPTWY93.js} +2 -2
  39. package/dist/ssr.d.ts +3 -3
  40. package/dist/ssr.js +5 -5
  41. package/dist/transforms/index.d.ts +1 -1
  42. package/dist/transforms/index.js +2 -2
  43. package/dist/{transforms-CSPqW3RX.js → transforms-BcLQCXiC.js} +2 -2
  44. package/dist/utils/encryption-runtime.d.ts +1 -1
  45. package/dist/utils/encryption-runtime.js +6 -6
  46. package/dist/utils/rpc.js +1 -1
  47. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.development.js +8 -10
  48. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.browser.production.js +7 -8
  49. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.edge.development.js +6 -8
  50. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.edge.production.js +7 -8
  51. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.development.js +6 -8
  52. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.production.js +7 -8
  53. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.unbundled.development.js +5 -6
  54. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-client.node.unbundled.production.js +6 -6
  55. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.development.js +430 -197
  56. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.browser.production.js +425 -201
  57. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.development.js +438 -204
  58. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.edge.production.js +428 -203
  59. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.development.js +475 -228
  60. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.production.js +469 -227
  61. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.unbundled.development.js +473 -225
  62. package/dist/vendor/react-server-dom/cjs/react-server-dom-webpack-server.node.unbundled.production.js +467 -224
  63. package/dist/vendor/react-server-dom/package.json +3 -3
  64. package/package.json +13 -13
  65. /package/dist/{browser-B4C0Zb4m.js → browser-BJvYpz0J.js} +0 -0
  66. /package/dist/{browser-CDBRiZjk.d.ts → browser-nNQlWmRe.d.ts} +0 -0
  67. /package/dist/{dist-CNbFy2EZ.js → dist-BRSdGcl7.js} +0 -0
  68. /package/dist/{encryption-runtime-BDgc4dBr.d.ts → encryption-runtime-C6wgt7G4.d.ts} +0 -0
  69. /package/dist/{encryption-utils-DdqSKS_O.js → encryption-utils-6p8t4Xqm.js} +0 -0
  70. /package/dist/{index-DJ0AhQ9B.d.ts → index-CM9Mmb_C.d.ts} +0 -0
  71. /package/dist/{index-BY8KUQhI.d.ts → index-CvmuS4Ks.d.ts} +0 -0
  72. /package/dist/{plugin-4UFT-s0w.js → plugin-D1MQNdps.js} +0 -0
  73. /package/dist/{rpc-nwJuNojy.js → rpc-DgBxsMKW.js} +0 -0
  74. /package/dist/{shared-DlspEItJ.js → shared-BbMae1Gg.js} +0 -0
  75. /package/dist/{shared-C8PSRwR2.js → shared-DEpnONZf.js} +0 -0
  76. /package/dist/{ssr-Dgbl_mOS.d.ts → ssr-Bnw-VQBr.d.ts} +0 -0
@@ -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
+ }
4362
4369
  }
4363
- function triggerErrorOnChunk(chunk, error) {
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;
4390
+ }
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,67 @@
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) 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
+ null !== promiseValue &&
4535
+ wakeChunk(response, promiseValue, handler.value)));
4536
+ },
4537
+ function (error) {
4538
+ if (!handler.errored) {
4539
+ handler.errored = !0;
4540
+ handler.value = null;
4541
+ handler.reason = error;
4542
+ var chunk = handler.chunk;
4543
+ null !== chunk &&
4544
+ "blocked" === chunk.status &&
4545
+ triggerErrorOnChunk(response, chunk, error);
4546
+ }
4547
+ }
4459
4548
  );
4460
4549
  return null;
4461
4550
  }
@@ -4497,53 +4586,66 @@
4497
4586
  value[i],
4498
4587
  parentObj
4499
4588
  )),
4500
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
4589
+ void 0 !== parentObj || "__proto__" === i
4590
+ ? (value[i] = parentObj)
4591
+ : delete value[i]);
4501
4592
  return value;
4502
4593
  }
4503
4594
  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";
4595
+ var prevHandler = initializingHandler;
4596
+ initializingHandler = null;
4597
+ var _chunk$reason = chunk.reason,
4598
+ response = _chunk$reason[RESPONSE_SYMBOL];
4599
+ _chunk$reason = _chunk$reason.id;
4600
+ _chunk$reason =
4601
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
4602
+ var resolvedModel = chunk.value;
4603
+ chunk.status = "blocked";
4512
4604
  chunk.value = null;
4513
4605
  chunk.reason = null;
4514
4606
  try {
4515
4607
  var rawModel = JSON.parse(resolvedModel),
4516
4608
  value = reviveModel(
4517
- chunk._response,
4609
+ response,
4518
4610
  { "": rawModel },
4519
4611
  "",
4520
4612
  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);
4613
+ _chunk$reason
4614
+ ),
4615
+ resolveListeners = chunk.value;
4616
+ if (null !== resolveListeners)
4617
+ for (
4618
+ chunk.value = null, chunk.reason = null, rawModel = 0;
4619
+ rawModel < resolveListeners.length;
4620
+ rawModel++
4621
+ ) {
4622
+ var listener = resolveListeners[rawModel];
4623
+ "function" === typeof listener
4624
+ ? listener(value)
4625
+ : fulfillReference(response, listener, value);
4626
+ }
4627
+ if (null !== initializingHandler) {
4628
+ if (initializingHandler.errored) throw initializingHandler.reason;
4629
+ if (0 < initializingHandler.deps) {
4630
+ initializingHandler.value = value;
4631
+ initializingHandler.chunk = chunk;
4632
+ return;
4633
+ }
4534
4634
  }
4635
+ chunk.status = "fulfilled";
4636
+ chunk.value = value;
4535
4637
  } catch (error) {
4536
4638
  (chunk.status = "rejected"), (chunk.reason = error);
4537
4639
  } finally {
4538
- (initializingChunk = prevChunk),
4539
- (initializingChunkBlockedModel = prevBlocked);
4640
+ initializingHandler = prevHandler;
4540
4641
  }
4541
4642
  }
4542
4643
  function reportGlobalError(response, error) {
4543
4644
  response._closed = !0;
4544
4645
  response._closedReason = error;
4545
4646
  response._chunks.forEach(function (chunk) {
4546
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
4647
+ "pending" === chunk.status &&
4648
+ triggerErrorOnChunk(response, chunk, error);
4547
4649
  });
4548
4650
  }
4549
4651
  function getChunk(response, id) {
@@ -4552,50 +4654,108 @@
4552
4654
  chunk ||
4553
4655
  ((chunk = response._formData.get(response._prefix + id)),
4554
4656
  (chunk =
4555
- null != chunk
4556
- ? new Chunk("resolved_model", chunk, id, response)
4657
+ "string" === typeof chunk
4658
+ ? new ReactPromise(
4659
+ "resolved_model",
4660
+ chunk,
4661
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
4662
+ )
4557
4663
  : response._closed
4558
- ? new Chunk("rejected", null, response._closedReason, response)
4559
- : createPendingChunk(response)),
4664
+ ? new ReactPromise("rejected", null, response._closedReason)
4665
+ : new ReactPromise("pending", null, null)),
4560
4666
  chunks.set(id, chunk));
4561
4667
  return chunk;
4562
4668
  }
4563
- function createModelResolver(
4564
- chunk,
4669
+ function fulfillReference(response, reference, value) {
4670
+ for (
4671
+ var handler = reference.handler,
4672
+ parentObject = reference.parentObject,
4673
+ key = reference.key,
4674
+ map = reference.map,
4675
+ path = reference.path,
4676
+ i = 1;
4677
+ i < path.length;
4678
+ i++
4679
+ ) {
4680
+ for (; value instanceof ReactPromise; ) {
4681
+ switch (value.status) {
4682
+ case "resolved_model":
4683
+ initializeModelChunk(value);
4684
+ }
4685
+ switch (value.status) {
4686
+ case "fulfilled":
4687
+ value = value.value;
4688
+ continue;
4689
+ case "blocked":
4690
+ case "pending":
4691
+ path.splice(0, i - 1);
4692
+ null === value.value
4693
+ ? (value.value = [reference])
4694
+ : value.value.push(reference);
4695
+ null === value.reason
4696
+ ? (value.reason = [reference])
4697
+ : value.reason.push(reference);
4698
+ return;
4699
+ default:
4700
+ rejectReference(response, reference.handler, value.reason);
4701
+ return;
4702
+ }
4703
+ }
4704
+ var name = path[i];
4705
+ "object" === typeof value &&
4706
+ hasOwnProperty.call(value, name) &&
4707
+ (value = value[name]);
4708
+ }
4709
+ reference = map(response, value, parentObject, key);
4710
+ parentObject[key] = reference;
4711
+ "" === key && null === handler.value && (handler.value = reference);
4712
+ handler.deps--;
4713
+ 0 === handler.deps &&
4714
+ ((parentObject = handler.chunk),
4715
+ null !== parentObject &&
4716
+ "blocked" === parentObject.status &&
4717
+ ((key = parentObject.value),
4718
+ (parentObject.status = "fulfilled"),
4719
+ (parentObject.value = handler.value),
4720
+ (parentObject.reason = handler.reason),
4721
+ null !== key && wakeChunk(response, key, handler.value)));
4722
+ }
4723
+ function rejectReference(response, handler, error) {
4724
+ handler.errored ||
4725
+ ((handler.errored = !0),
4726
+ (handler.value = null),
4727
+ (handler.reason = error),
4728
+ (handler = handler.chunk),
4729
+ null !== handler &&
4730
+ "blocked" === handler.status &&
4731
+ triggerErrorOnChunk(response, handler, error));
4732
+ }
4733
+ function waitForReference(
4734
+ referencedChunk,
4565
4735
  parentObject,
4566
4736
  key,
4567
- cyclic,
4568
4737
  response,
4569
4738
  map,
4570
4739
  path
4571
4740
  ) {
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);
4741
+ initializingHandler
4742
+ ? ((response = initializingHandler), response.deps++)
4743
+ : (response = initializingHandler =
4744
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
4745
+ parentObject = {
4746
+ handler: response,
4747
+ parentObject: parentObject,
4748
+ key: key,
4749
+ map: map,
4750
+ path: path
4598
4751
  };
4752
+ null === referencedChunk.value
4753
+ ? (referencedChunk.value = [parentObject])
4754
+ : referencedChunk.value.push(parentObject);
4755
+ null === referencedChunk.reason
4756
+ ? (referencedChunk.reason = [parentObject])
4757
+ : referencedChunk.reason.push(parentObject);
4758
+ return null;
4599
4759
  }
4600
4760
  function getOutlinedModel(response, reference, parentObject, key, map) {
4601
4761
  reference = reference.split(":");
@@ -4607,29 +4767,75 @@
4607
4767
  }
4608
4768
  switch (id.status) {
4609
4769
  case "fulfilled":
4610
- parentObject = id.value;
4611
- for (key = 1; key < reference.length; key++)
4612
- parentObject = parentObject[reference[key]];
4613
- return map(response, parentObject);
4770
+ var value = id.value;
4771
+ for (id = 1; id < reference.length; id++) {
4772
+ for (; value instanceof ReactPromise; ) {
4773
+ switch (value.status) {
4774
+ case "resolved_model":
4775
+ initializeModelChunk(value);
4776
+ }
4777
+ switch (value.status) {
4778
+ case "fulfilled":
4779
+ value = value.value;
4780
+ break;
4781
+ case "blocked":
4782
+ case "pending":
4783
+ return waitForReference(
4784
+ value,
4785
+ parentObject,
4786
+ key,
4787
+ response,
4788
+ map,
4789
+ reference.slice(id - 1)
4790
+ );
4791
+ default:
4792
+ return (
4793
+ initializingHandler
4794
+ ? ((initializingHandler.errored = !0),
4795
+ (initializingHandler.value = null),
4796
+ (initializingHandler.reason = value.reason))
4797
+ : (initializingHandler = {
4798
+ chunk: null,
4799
+ value: null,
4800
+ reason: value.reason,
4801
+ deps: 0,
4802
+ errored: !0
4803
+ }),
4804
+ null
4805
+ );
4806
+ }
4807
+ }
4808
+ var name = reference[id];
4809
+ "object" === typeof value &&
4810
+ hasOwnProperty.call(value, name) &&
4811
+ (value = value[name]);
4812
+ }
4813
+ return map(response, value, parentObject, key);
4614
4814
  case "pending":
4615
4815
  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)
4816
+ return waitForReference(
4817
+ id,
4818
+ parentObject,
4819
+ key,
4820
+ response,
4821
+ map,
4822
+ reference
4629
4823
  );
4630
- return null;
4631
4824
  default:
4632
- throw id.reason;
4825
+ return (
4826
+ initializingHandler
4827
+ ? ((initializingHandler.errored = !0),
4828
+ (initializingHandler.value = null),
4829
+ (initializingHandler.reason = id.reason))
4830
+ : (initializingHandler = {
4831
+ chunk: null,
4832
+ value: null,
4833
+ reason: id.reason,
4834
+ deps: 0,
4835
+ errored: !0
4836
+ }),
4837
+ null
4838
+ );
4633
4839
  }
4634
4840
  }
4635
4841
  function createMap(response, model) {
@@ -4653,40 +4859,68 @@
4653
4859
  parentKey
4654
4860
  ) {
4655
4861
  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;
4862
+ reference = response._formData
4863
+ .get(response._prefix + reference)
4864
+ .arrayBuffer();
4865
+ if (initializingHandler) {
4866
+ var handler = initializingHandler;
4867
+ handler.deps++;
4868
+ } else
4869
+ handler = initializingHandler = {
4870
+ chunk: null,
4871
+ value: null,
4872
+ reason: null,
4873
+ deps: 1,
4874
+ errored: !1
4875
+ };
4664
4876
  reference.then(
4665
- createModelResolver(
4666
- bytesPerElement,
4667
- parentObject,
4668
- parentKey,
4669
- !1,
4670
- response,
4671
- createModel,
4672
- []
4673
- ),
4674
- createModelReject(bytesPerElement)
4877
+ function (buffer) {
4878
+ buffer =
4879
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
4880
+ parentObject[parentKey] = buffer;
4881
+ "" === parentKey &&
4882
+ null === handler.value &&
4883
+ (handler.value = buffer);
4884
+ handler.deps--;
4885
+ if (
4886
+ 0 === handler.deps &&
4887
+ ((buffer = handler.chunk),
4888
+ null !== buffer && "blocked" === buffer.status)
4889
+ ) {
4890
+ var resolveListeners = buffer.value;
4891
+ buffer.status = "fulfilled";
4892
+ buffer.value = handler.value;
4893
+ null !== resolveListeners &&
4894
+ wakeChunk(response, resolveListeners, handler.value);
4895
+ }
4896
+ },
4897
+ function (error) {
4898
+ if (!handler.errored) {
4899
+ handler.errored = !0;
4900
+ handler.value = null;
4901
+ handler.reason = error;
4902
+ var chunk = handler.chunk;
4903
+ null !== chunk &&
4904
+ "blocked" === chunk.status &&
4905
+ triggerErrorOnChunk(response, chunk, error);
4906
+ }
4907
+ }
4675
4908
  );
4676
4909
  return null;
4677
4910
  }
4678
4911
  function resolveStream(response, id, stream, controller) {
4679
4912
  var chunks = response._chunks;
4680
- stream = new Chunk("fulfilled", stream, controller, response);
4913
+ stream = new ReactPromise("fulfilled", stream, controller);
4681
4914
  chunks.set(id, stream);
4682
4915
  response = response._formData.getAll(response._prefix + id);
4683
4916
  for (id = 0; id < response.length; id++)
4684
4917
  (chunks = response[id]),
4685
- "C" === chunks[0]
4686
- ? controller.close(
4687
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
4688
- )
4689
- : controller.enqueueModel(chunks);
4918
+ "string" === typeof chunks &&
4919
+ ("C" === chunks[0]
4920
+ ? controller.close(
4921
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
4922
+ )
4923
+ : controller.enqueueModel(chunks));
4690
4924
  }
4691
4925
  function parseReadableStream(response, reference, type) {
4692
4926
  reference = parseInt(reference.slice(2), 16);
@@ -4701,7 +4935,11 @@
4701
4935
  resolveStream(response, reference, type, {
4702
4936
  enqueueModel: function (json) {
4703
4937
  if (null === previousBlockedChunk) {
4704
- var chunk = new Chunk("resolved_model", json, -1, response);
4938
+ var chunk = new ReactPromise(
4939
+ "resolved_model",
4940
+ json,
4941
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4942
+ );
4705
4943
  initializeModelChunk(chunk);
4706
4944
  "fulfilled" === chunk.status
4707
4945
  ? controller.enqueue(chunk.value)
@@ -4716,7 +4954,7 @@
4716
4954
  (previousBlockedChunk = chunk));
4717
4955
  } else {
4718
4956
  chunk = previousBlockedChunk;
4719
- var _chunk = createPendingChunk(response);
4957
+ var _chunk = new ReactPromise("pending", null, null);
4720
4958
  _chunk.then(
4721
4959
  function (v) {
4722
4960
  return controller.enqueue(v);
@@ -4728,7 +4966,7 @@
4728
4966
  previousBlockedChunk = _chunk;
4729
4967
  chunk.then(function () {
4730
4968
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4731
- resolveModelChunk(_chunk, json, -1);
4969
+ resolveModelChunk(response, _chunk, json, -1);
4732
4970
  });
4733
4971
  }
4734
4972
  },
@@ -4777,13 +5015,12 @@
4777
5015
  );
4778
5016
  if (nextReadIndex === buffer.length) {
4779
5017
  if (closed)
4780
- return new Chunk(
5018
+ return new ReactPromise(
4781
5019
  "fulfilled",
4782
5020
  { done: !0, value: void 0 },
4783
- null,
4784
- response
5021
+ null
4785
5022
  );
4786
- buffer[nextReadIndex] = createPendingChunk(response);
5023
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
4787
5024
  }
4788
5025
  return buffer[nextReadIndex++];
4789
5026
  });
@@ -4797,7 +5034,12 @@
4797
5034
  value,
4798
5035
  !1
4799
5036
  ))
4800
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
5037
+ : resolveIteratorResultChunk(
5038
+ response,
5039
+ buffer[nextWriteIndex],
5040
+ value,
5041
+ !1
5042
+ );
4801
5043
  nextWriteIndex++;
4802
5044
  },
4803
5045
  close: function (value) {
@@ -4808,9 +5050,15 @@
4808
5050
  value,
4809
5051
  !0
4810
5052
  ))
4811
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
5053
+ : resolveIteratorResultChunk(
5054
+ response,
5055
+ buffer[nextWriteIndex],
5056
+ value,
5057
+ !0
5058
+ );
4812
5059
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
4813
5060
  resolveIteratorResultChunk(
5061
+ response,
4814
5062
  buffer[nextWriteIndex++],
4815
5063
  '"$undefined"',
4816
5064
  !0
@@ -4820,11 +5068,11 @@
4820
5068
  closed = !0;
4821
5069
  for (
4822
5070
  nextWriteIndex === buffer.length &&
4823
- (buffer[nextWriteIndex] = createPendingChunk(response));
5071
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
4824
5072
  nextWriteIndex < buffer.length;
4825
5073
 
4826
5074
  )
4827
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
5075
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
4828
5076
  }
4829
5077
  });
4830
5078
  return iterator;
@@ -4841,21 +5089,7 @@
4841
5089
  case "F":
4842
5090
  return (
4843
5091
  (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
- )
5092
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
4859
5093
  );
4860
5094
  case "T":
4861
5095
  if (
@@ -4991,10 +5225,12 @@
4991
5225
  function resolveField(response, key, value) {
4992
5226
  response._formData.append(key, value);
4993
5227
  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));
5228
+ if (key.startsWith(prefix)) {
5229
+ var chunks = response._chunks;
5230
+ key = +key.slice(prefix.length);
5231
+ (chunks = chunks.get(key)) &&
5232
+ resolveModelChunk(response, chunks, value, key);
5233
+ }
4998
5234
  }
4999
5235
  function close(response) {
5000
5236
  reportGlobalError(response, Error("Connection closed."));
@@ -5746,33 +5982,32 @@
5746
5982
  debugNoOutline = null,
5747
5983
  emptyRoot = {},
5748
5984
  decoderOptions = { stream: !0 },
5749
- chunkCache = new Map();
5750
- Chunk.prototype = Object.create(Promise.prototype);
5751
- Chunk.prototype.then = function (resolve, reject) {
5985
+ chunkCache = new Map(),
5986
+ RESPONSE_SYMBOL = Symbol();
5987
+ ReactPromise.prototype = Object.create(Promise.prototype);
5988
+ ReactPromise.prototype.then = function (resolve, reject) {
5752
5989
  switch (this.status) {
5753
5990
  case "resolved_model":
5754
5991
  initializeModelChunk(this);
5755
5992
  }
5756
5993
  switch (this.status) {
5757
5994
  case "fulfilled":
5758
- resolve(this.value);
5995
+ "function" === typeof resolve && resolve(this.value);
5759
5996
  break;
5760
5997
  case "pending":
5761
5998
  case "blocked":
5762
- case "cyclic":
5763
- resolve &&
5999
+ "function" === typeof resolve &&
5764
6000
  (null === this.value && (this.value = []),
5765
6001
  this.value.push(resolve));
5766
- reject &&
6002
+ "function" === typeof reject &&
5767
6003
  (null === this.reason && (this.reason = []),
5768
6004
  this.reason.push(reject));
5769
6005
  break;
5770
6006
  default:
5771
- reject(this.reason);
6007
+ "function" === typeof reject && reject(this.reason);
5772
6008
  }
5773
6009
  };
5774
- var initializingChunk = null,
5775
- initializingChunkBlockedModel = null;
6010
+ var initializingHandler = null;
5776
6011
  exports.createClientModuleProxy = function (moduleId) {
5777
6012
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
5778
6013
  return new Proxy(moduleId, proxyHandlers$1);
@@ -5881,38 +6116,50 @@
5881
6116
  pendingFiles = 0,
5882
6117
  queuedFields = [];
5883
6118
  busboyStream.on("field", function (name, value) {
5884
- 0 < pendingFiles
5885
- ? queuedFields.push(name, value)
5886
- : resolveField(response, name, value);
6119
+ if (0 < pendingFiles) queuedFields.push(name, value);
6120
+ else
6121
+ try {
6122
+ resolveField(response, name, value);
6123
+ } catch (error) {
6124
+ busboyStream.destroy(error);
6125
+ }
5887
6126
  });
5888
6127
  busboyStream.on("file", function (name, value, _ref2) {
5889
6128
  var filename = _ref2.filename,
5890
6129
  mimeType = _ref2.mimeType;
5891
6130
  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."
6131
+ busboyStream.destroy(
6132
+ Error(
6133
+ "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."
6134
+ )
5894
6135
  );
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
6136
+ else {
6137
+ pendingFiles++;
6138
+ var JSCompiler_object_inline_chunks_253 = [];
6139
+ value.on("data", function (chunk) {
6140
+ JSCompiler_object_inline_chunks_253.push(chunk);
5903
6141
  });
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
- });
6142
+ value.on("end", function () {
6143
+ try {
6144
+ var blob = new Blob(JSCompiler_object_inline_chunks_253, {
6145
+ type: mimeType
6146
+ });
6147
+ response._formData.append(name, blob, filename);
6148
+ pendingFiles--;
6149
+ if (0 === pendingFiles) {
6150
+ for (blob = 0; blob < queuedFields.length; blob += 2)
6151
+ resolveField(
6152
+ response,
6153
+ queuedFields[blob],
6154
+ queuedFields[blob + 1]
6155
+ );
6156
+ queuedFields.length = 0;
6157
+ }
6158
+ } catch (error) {
6159
+ busboyStream.destroy(error);
6160
+ }
6161
+ });
6162
+ }
5916
6163
  });
5917
6164
  busboyStream.on("finish", function () {
5918
6165
  close(response);