@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
@@ -4305,35 +4305,64 @@
4305
4305
  if ("fulfilled" === moduleExports.status)
4306
4306
  moduleExports = moduleExports.value;
4307
4307
  else throw moduleExports.reason;
4308
- return "*" === metadata.name
4309
- ? moduleExports
4310
- : "" === metadata.name
4311
- ? moduleExports.default
4312
- : moduleExports[metadata.name];
4308
+ if ("*" === metadata.name) return moduleExports;
4309
+ if ("" === metadata.name) return moduleExports.default;
4310
+ if (hasOwnProperty.call(moduleExports, metadata.name))
4311
+ return moduleExports[metadata.name];
4313
4312
  }
4314
- function Chunk(status, value, reason, response) {
4313
+ function ReactPromise(status, value, reason) {
4315
4314
  this.status = status;
4316
4315
  this.value = value;
4317
4316
  this.reason = reason;
4318
- this._response = response;
4319
4317
  }
4320
- function createPendingChunk(response) {
4321
- return new Chunk("pending", null, null, response);
4318
+ function wakeChunk(response, listeners, value) {
4319
+ for (var i = 0; i < listeners.length; i++) {
4320
+ var listener = listeners[i];
4321
+ "function" === typeof listener
4322
+ ? listener(value)
4323
+ : fulfillReference(response, listener, value);
4324
+ }
4325
+ }
4326
+ function rejectChunk(response, listeners, error) {
4327
+ for (var i = 0; i < listeners.length; i++) {
4328
+ var listener = listeners[i];
4329
+ "function" === typeof listener
4330
+ ? listener(error)
4331
+ : rejectReference(response, listener.handler, error);
4332
+ }
4322
4333
  }
4323
- function wakeChunk(listeners, value) {
4324
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
4334
+ function resolveBlockedCycle(resolvedChunk, reference) {
4335
+ var referencedChunk = reference.handler.chunk;
4336
+ if (null === referencedChunk) return null;
4337
+ if (referencedChunk === resolvedChunk) return reference.handler;
4338
+ reference = referencedChunk.value;
4339
+ if (null !== reference)
4340
+ for (
4341
+ referencedChunk = 0;
4342
+ referencedChunk < reference.length;
4343
+ referencedChunk++
4344
+ ) {
4345
+ var listener = reference[referencedChunk];
4346
+ if (
4347
+ "function" !== typeof listener &&
4348
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
4349
+ null !== listener)
4350
+ )
4351
+ return listener;
4352
+ }
4353
+ return null;
4325
4354
  }
4326
- function triggerErrorOnChunk(chunk, error) {
4355
+ function triggerErrorOnChunk(response, chunk, error) {
4327
4356
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
4328
4357
  chunk.reason.error(error);
4329
4358
  else {
4330
4359
  var listeners = chunk.reason;
4331
4360
  chunk.status = "rejected";
4332
4361
  chunk.reason = error;
4333
- null !== listeners && wakeChunk(listeners, error);
4362
+ null !== listeners && rejectChunk(response, listeners, error);
4334
4363
  }
4335
4364
  }
4336
- function resolveModelChunk(chunk, value, id) {
4365
+ function resolveModelChunk(response, chunk, value, id) {
4337
4366
  if ("pending" !== chunk.status)
4338
4367
  (chunk = chunk.reason),
4339
4368
  "C" === value[0]
@@ -4344,42 +4373,74 @@
4344
4373
  rejectListeners = chunk.reason;
4345
4374
  chunk.status = "resolved_model";
4346
4375
  chunk.value = value;
4347
- chunk.reason = id;
4376
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
4348
4377
  if (null !== resolveListeners)
4349
- switch ((initializeModelChunk(chunk), chunk.status)) {
4378
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
4350
4379
  case "fulfilled":
4351
- wakeChunk(resolveListeners, chunk.value);
4380
+ wakeChunk(response, resolveListeners, chunk.value);
4352
4381
  break;
4353
- case "pending":
4354
4382
  case "blocked":
4355
- case "cyclic":
4383
+ for (value = 0; value < resolveListeners.length; value++)
4384
+ if (
4385
+ ((id = resolveListeners[value]), "function" !== typeof id)
4386
+ ) {
4387
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
4388
+ if (null !== cyclicHandler)
4389
+ switch (
4390
+ (fulfillReference(response, id, cyclicHandler.value),
4391
+ resolveListeners.splice(value, 1),
4392
+ value--,
4393
+ null !== rejectListeners &&
4394
+ ((id = rejectListeners.indexOf(id)),
4395
+ -1 !== id && rejectListeners.splice(id, 1)),
4396
+ chunk.status)
4397
+ ) {
4398
+ case "fulfilled":
4399
+ wakeChunk(response, resolveListeners, chunk.value);
4400
+ break a;
4401
+ case "rejected":
4402
+ null !== rejectListeners &&
4403
+ rejectChunk(response, rejectListeners, chunk.reason);
4404
+ break a;
4405
+ }
4406
+ }
4407
+ case "pending":
4356
4408
  if (chunk.value)
4357
- for (value = 0; value < resolveListeners.length; value++)
4358
- chunk.value.push(resolveListeners[value]);
4409
+ for (
4410
+ response = 0;
4411
+ response < resolveListeners.length;
4412
+ response++
4413
+ )
4414
+ chunk.value.push(resolveListeners[response]);
4359
4415
  else chunk.value = resolveListeners;
4360
4416
  if (chunk.reason) {
4361
4417
  if (rejectListeners)
4362
- for (value = 0; value < rejectListeners.length; value++)
4363
- chunk.reason.push(rejectListeners[value]);
4418
+ for (
4419
+ resolveListeners = 0;
4420
+ resolveListeners < rejectListeners.length;
4421
+ resolveListeners++
4422
+ )
4423
+ chunk.reason.push(rejectListeners[resolveListeners]);
4364
4424
  } else chunk.reason = rejectListeners;
4365
4425
  break;
4366
4426
  case "rejected":
4367
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
4427
+ rejectListeners &&
4428
+ wakeChunk(response, rejectListeners, chunk.reason);
4368
4429
  }
4369
4430
  }
4370
4431
  }
4371
4432
  function createResolvedIteratorResultChunk(response, value, done) {
4372
- return new Chunk(
4433
+ return new ReactPromise(
4373
4434
  "resolved_model",
4374
4435
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
4375
4436
  value +
4376
4437
  "}",
4377
- -1,
4378
- response
4438
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4379
4439
  );
4380
4440
  }
4381
- function resolveIteratorResultChunk(chunk, value, done) {
4441
+ function resolveIteratorResultChunk(response, chunk, value, done) {
4382
4442
  resolveModelChunk(
4443
+ response,
4383
4444
  chunk,
4384
4445
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
4385
4446
  value +
@@ -4387,38 +4448,67 @@
4387
4448
  -1
4388
4449
  );
4389
4450
  }
4390
- function loadServerReference$1(
4391
- response,
4392
- id,
4393
- bound,
4394
- parentChunk,
4395
- parentObject,
4396
- key
4397
- ) {
4451
+ function loadServerReference$1(response, metaData, parentObject, key) {
4452
+ var id = metaData.id;
4453
+ if ("string" !== typeof id) return null;
4398
4454
  var serverReference = resolveServerReference(response._bundlerConfig, id);
4399
- id = preloadModule(serverReference);
4400
- if (bound)
4401
- bound = Promise.all([bound, id]).then(function (_ref) {
4402
- _ref = _ref[0];
4403
- var fn = requireModule(serverReference);
4404
- return fn.bind.apply(fn, [null].concat(_ref));
4405
- });
4406
- else if (id)
4407
- bound = Promise.resolve(id).then(function () {
4408
- return requireModule(serverReference);
4409
- });
4455
+ id = metaData.bound;
4456
+ var promise = preloadModule(serverReference);
4457
+ if (promise)
4458
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
4459
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
4410
4460
  else return requireModule(serverReference);
4411
- bound.then(
4412
- createModelResolver(
4413
- parentChunk,
4414
- parentObject,
4415
- key,
4416
- !1,
4417
- response,
4418
- createModel,
4419
- []
4420
- ),
4421
- createModelReject(parentChunk)
4461
+ if (initializingHandler) {
4462
+ var handler = initializingHandler;
4463
+ handler.deps++;
4464
+ } else
4465
+ handler = initializingHandler = {
4466
+ chunk: null,
4467
+ value: null,
4468
+ reason: null,
4469
+ deps: 1,
4470
+ errored: !1
4471
+ };
4472
+ promise.then(
4473
+ function () {
4474
+ var resolvedValue = requireModule(serverReference);
4475
+ if (metaData.bound) {
4476
+ var promiseValue = metaData.bound.value;
4477
+ promiseValue = Array.isArray(promiseValue)
4478
+ ? promiseValue.slice(0)
4479
+ : [];
4480
+ promiseValue.unshift(null);
4481
+ resolvedValue = resolvedValue.bind.apply(
4482
+ resolvedValue,
4483
+ promiseValue
4484
+ );
4485
+ }
4486
+ parentObject[key] = resolvedValue;
4487
+ "" === key &&
4488
+ null === handler.value &&
4489
+ (handler.value = resolvedValue);
4490
+ handler.deps--;
4491
+ 0 === handler.deps &&
4492
+ ((resolvedValue = handler.chunk),
4493
+ null !== resolvedValue &&
4494
+ "blocked" === resolvedValue.status &&
4495
+ ((promiseValue = resolvedValue.value),
4496
+ (resolvedValue.status = "fulfilled"),
4497
+ (resolvedValue.value = handler.value),
4498
+ null !== promiseValue &&
4499
+ wakeChunk(response, promiseValue, handler.value)));
4500
+ },
4501
+ function (error) {
4502
+ if (!handler.errored) {
4503
+ handler.errored = !0;
4504
+ handler.value = null;
4505
+ handler.reason = error;
4506
+ var chunk = handler.chunk;
4507
+ null !== chunk &&
4508
+ "blocked" === chunk.status &&
4509
+ triggerErrorOnChunk(response, chunk, error);
4510
+ }
4511
+ }
4422
4512
  );
4423
4513
  return null;
4424
4514
  }
@@ -4460,53 +4550,66 @@
4460
4550
  value[i],
4461
4551
  parentObj
4462
4552
  )),
4463
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
4553
+ void 0 !== parentObj || "__proto__" === i
4554
+ ? (value[i] = parentObj)
4555
+ : delete value[i]);
4464
4556
  return value;
4465
4557
  }
4466
4558
  function initializeModelChunk(chunk) {
4467
- var prevChunk = initializingChunk,
4468
- prevBlocked = initializingChunkBlockedModel;
4469
- initializingChunk = chunk;
4470
- initializingChunkBlockedModel = null;
4471
- var rootReference =
4472
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
4473
- resolvedModel = chunk.value;
4474
- chunk.status = "cyclic";
4559
+ var prevHandler = initializingHandler;
4560
+ initializingHandler = null;
4561
+ var _chunk$reason = chunk.reason,
4562
+ response = _chunk$reason[RESPONSE_SYMBOL];
4563
+ _chunk$reason = _chunk$reason.id;
4564
+ _chunk$reason =
4565
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
4566
+ var resolvedModel = chunk.value;
4567
+ chunk.status = "blocked";
4475
4568
  chunk.value = null;
4476
4569
  chunk.reason = null;
4477
4570
  try {
4478
4571
  var rawModel = JSON.parse(resolvedModel),
4479
4572
  value = reviveModel(
4480
- chunk._response,
4573
+ response,
4481
4574
  { "": rawModel },
4482
4575
  "",
4483
4576
  rawModel,
4484
- rootReference
4485
- );
4486
- if (
4487
- null !== initializingChunkBlockedModel &&
4488
- 0 < initializingChunkBlockedModel.deps
4489
- )
4490
- (initializingChunkBlockedModel.value = value),
4491
- (chunk.status = "blocked");
4492
- else {
4493
- var resolveListeners = chunk.value;
4494
- chunk.status = "fulfilled";
4495
- chunk.value = value;
4496
- null !== resolveListeners && wakeChunk(resolveListeners, value);
4577
+ _chunk$reason
4578
+ ),
4579
+ resolveListeners = chunk.value;
4580
+ if (null !== resolveListeners)
4581
+ for (
4582
+ chunk.value = null, chunk.reason = null, rawModel = 0;
4583
+ rawModel < resolveListeners.length;
4584
+ rawModel++
4585
+ ) {
4586
+ var listener = resolveListeners[rawModel];
4587
+ "function" === typeof listener
4588
+ ? listener(value)
4589
+ : fulfillReference(response, listener, value);
4590
+ }
4591
+ if (null !== initializingHandler) {
4592
+ if (initializingHandler.errored) throw initializingHandler.reason;
4593
+ if (0 < initializingHandler.deps) {
4594
+ initializingHandler.value = value;
4595
+ initializingHandler.chunk = chunk;
4596
+ return;
4597
+ }
4497
4598
  }
4599
+ chunk.status = "fulfilled";
4600
+ chunk.value = value;
4498
4601
  } catch (error) {
4499
4602
  (chunk.status = "rejected"), (chunk.reason = error);
4500
4603
  } finally {
4501
- (initializingChunk = prevChunk),
4502
- (initializingChunkBlockedModel = prevBlocked);
4604
+ initializingHandler = prevHandler;
4503
4605
  }
4504
4606
  }
4505
4607
  function reportGlobalError(response, error) {
4506
4608
  response._closed = !0;
4507
4609
  response._closedReason = error;
4508
4610
  response._chunks.forEach(function (chunk) {
4509
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
4611
+ "pending" === chunk.status &&
4612
+ triggerErrorOnChunk(response, chunk, error);
4510
4613
  });
4511
4614
  }
4512
4615
  function getChunk(response, id) {
@@ -4515,50 +4618,108 @@
4515
4618
  chunk ||
4516
4619
  ((chunk = response._formData.get(response._prefix + id)),
4517
4620
  (chunk =
4518
- null != chunk
4519
- ? new Chunk("resolved_model", chunk, id, response)
4621
+ "string" === typeof chunk
4622
+ ? new ReactPromise(
4623
+ "resolved_model",
4624
+ chunk,
4625
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
4626
+ )
4520
4627
  : response._closed
4521
- ? new Chunk("rejected", null, response._closedReason, response)
4522
- : createPendingChunk(response)),
4628
+ ? new ReactPromise("rejected", null, response._closedReason)
4629
+ : new ReactPromise("pending", null, null)),
4523
4630
  chunks.set(id, chunk));
4524
4631
  return chunk;
4525
4632
  }
4526
- function createModelResolver(
4527
- chunk,
4633
+ function fulfillReference(response, reference, value) {
4634
+ for (
4635
+ var handler = reference.handler,
4636
+ parentObject = reference.parentObject,
4637
+ key = reference.key,
4638
+ map = reference.map,
4639
+ path = reference.path,
4640
+ i = 1;
4641
+ i < path.length;
4642
+ i++
4643
+ ) {
4644
+ for (; value instanceof ReactPromise; ) {
4645
+ switch (value.status) {
4646
+ case "resolved_model":
4647
+ initializeModelChunk(value);
4648
+ }
4649
+ switch (value.status) {
4650
+ case "fulfilled":
4651
+ value = value.value;
4652
+ continue;
4653
+ case "blocked":
4654
+ case "pending":
4655
+ path.splice(0, i - 1);
4656
+ null === value.value
4657
+ ? (value.value = [reference])
4658
+ : value.value.push(reference);
4659
+ null === value.reason
4660
+ ? (value.reason = [reference])
4661
+ : value.reason.push(reference);
4662
+ return;
4663
+ default:
4664
+ rejectReference(response, reference.handler, value.reason);
4665
+ return;
4666
+ }
4667
+ }
4668
+ var name = path[i];
4669
+ "object" === typeof value &&
4670
+ hasOwnProperty.call(value, name) &&
4671
+ (value = value[name]);
4672
+ }
4673
+ reference = map(response, value, parentObject, key);
4674
+ parentObject[key] = reference;
4675
+ "" === key && null === handler.value && (handler.value = reference);
4676
+ handler.deps--;
4677
+ 0 === handler.deps &&
4678
+ ((parentObject = handler.chunk),
4679
+ null !== parentObject &&
4680
+ "blocked" === parentObject.status &&
4681
+ ((key = parentObject.value),
4682
+ (parentObject.status = "fulfilled"),
4683
+ (parentObject.value = handler.value),
4684
+ (parentObject.reason = handler.reason),
4685
+ null !== key && wakeChunk(response, key, handler.value)));
4686
+ }
4687
+ function rejectReference(response, handler, error) {
4688
+ handler.errored ||
4689
+ ((handler.errored = !0),
4690
+ (handler.value = null),
4691
+ (handler.reason = error),
4692
+ (handler = handler.chunk),
4693
+ null !== handler &&
4694
+ "blocked" === handler.status &&
4695
+ triggerErrorOnChunk(response, handler, error));
4696
+ }
4697
+ function waitForReference(
4698
+ referencedChunk,
4528
4699
  parentObject,
4529
4700
  key,
4530
- cyclic,
4531
4701
  response,
4532
4702
  map,
4533
4703
  path
4534
4704
  ) {
4535
- if (initializingChunkBlockedModel) {
4536
- var blocked = initializingChunkBlockedModel;
4537
- cyclic || blocked.deps++;
4538
- } else
4539
- blocked = initializingChunkBlockedModel = {
4540
- deps: cyclic ? 0 : 1,
4541
- value: null
4542
- };
4543
- return function (value) {
4544
- for (var i = 1; i < path.length; i++) value = value[path[i]];
4545
- parentObject[key] = map(response, value);
4546
- "" === key &&
4547
- null === blocked.value &&
4548
- (blocked.value = parentObject[key]);
4549
- blocked.deps--;
4550
- 0 === blocked.deps &&
4551
- "blocked" === chunk.status &&
4552
- ((value = chunk.value),
4553
- (chunk.status = "fulfilled"),
4554
- (chunk.value = blocked.value),
4555
- null !== value && wakeChunk(value, blocked.value));
4556
- };
4557
- }
4558
- function createModelReject(chunk) {
4559
- return function (error) {
4560
- return triggerErrorOnChunk(chunk, error);
4705
+ initializingHandler
4706
+ ? ((response = initializingHandler), response.deps++)
4707
+ : (response = initializingHandler =
4708
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
4709
+ parentObject = {
4710
+ handler: response,
4711
+ parentObject: parentObject,
4712
+ key: key,
4713
+ map: map,
4714
+ path: path
4561
4715
  };
4716
+ null === referencedChunk.value
4717
+ ? (referencedChunk.value = [parentObject])
4718
+ : referencedChunk.value.push(parentObject);
4719
+ null === referencedChunk.reason
4720
+ ? (referencedChunk.reason = [parentObject])
4721
+ : referencedChunk.reason.push(parentObject);
4722
+ return null;
4562
4723
  }
4563
4724
  function getOutlinedModel(response, reference, parentObject, key, map) {
4564
4725
  reference = reference.split(":");
@@ -4570,29 +4731,75 @@
4570
4731
  }
4571
4732
  switch (id.status) {
4572
4733
  case "fulfilled":
4573
- parentObject = id.value;
4574
- for (key = 1; key < reference.length; key++)
4575
- parentObject = parentObject[reference[key]];
4576
- return map(response, parentObject);
4734
+ var value = id.value;
4735
+ for (id = 1; id < reference.length; id++) {
4736
+ for (; value instanceof ReactPromise; ) {
4737
+ switch (value.status) {
4738
+ case "resolved_model":
4739
+ initializeModelChunk(value);
4740
+ }
4741
+ switch (value.status) {
4742
+ case "fulfilled":
4743
+ value = value.value;
4744
+ break;
4745
+ case "blocked":
4746
+ case "pending":
4747
+ return waitForReference(
4748
+ value,
4749
+ parentObject,
4750
+ key,
4751
+ response,
4752
+ map,
4753
+ reference.slice(id - 1)
4754
+ );
4755
+ default:
4756
+ return (
4757
+ initializingHandler
4758
+ ? ((initializingHandler.errored = !0),
4759
+ (initializingHandler.value = null),
4760
+ (initializingHandler.reason = value.reason))
4761
+ : (initializingHandler = {
4762
+ chunk: null,
4763
+ value: null,
4764
+ reason: value.reason,
4765
+ deps: 0,
4766
+ errored: !0
4767
+ }),
4768
+ null
4769
+ );
4770
+ }
4771
+ }
4772
+ var name = reference[id];
4773
+ "object" === typeof value &&
4774
+ hasOwnProperty.call(value, name) &&
4775
+ (value = value[name]);
4776
+ }
4777
+ return map(response, value, parentObject, key);
4577
4778
  case "pending":
4578
4779
  case "blocked":
4579
- case "cyclic":
4580
- var parentChunk = initializingChunk;
4581
- id.then(
4582
- createModelResolver(
4583
- parentChunk,
4584
- parentObject,
4585
- key,
4586
- "cyclic" === id.status,
4587
- response,
4588
- map,
4589
- reference
4590
- ),
4591
- createModelReject(parentChunk)
4780
+ return waitForReference(
4781
+ id,
4782
+ parentObject,
4783
+ key,
4784
+ response,
4785
+ map,
4786
+ reference
4592
4787
  );
4593
- return null;
4594
4788
  default:
4595
- throw id.reason;
4789
+ return (
4790
+ initializingHandler
4791
+ ? ((initializingHandler.errored = !0),
4792
+ (initializingHandler.value = null),
4793
+ (initializingHandler.reason = id.reason))
4794
+ : (initializingHandler = {
4795
+ chunk: null,
4796
+ value: null,
4797
+ reason: id.reason,
4798
+ deps: 0,
4799
+ errored: !0
4800
+ }),
4801
+ null
4802
+ );
4596
4803
  }
4597
4804
  }
4598
4805
  function createMap(response, model) {
@@ -4616,40 +4823,68 @@
4616
4823
  parentKey
4617
4824
  ) {
4618
4825
  reference = parseInt(reference.slice(2), 16);
4619
- reference = response._formData.get(response._prefix + reference);
4620
- reference =
4621
- constructor === ArrayBuffer
4622
- ? reference.arrayBuffer()
4623
- : reference.arrayBuffer().then(function (buffer) {
4624
- return new constructor(buffer);
4625
- });
4626
- bytesPerElement = initializingChunk;
4826
+ reference = response._formData
4827
+ .get(response._prefix + reference)
4828
+ .arrayBuffer();
4829
+ if (initializingHandler) {
4830
+ var handler = initializingHandler;
4831
+ handler.deps++;
4832
+ } else
4833
+ handler = initializingHandler = {
4834
+ chunk: null,
4835
+ value: null,
4836
+ reason: null,
4837
+ deps: 1,
4838
+ errored: !1
4839
+ };
4627
4840
  reference.then(
4628
- createModelResolver(
4629
- bytesPerElement,
4630
- parentObject,
4631
- parentKey,
4632
- !1,
4633
- response,
4634
- createModel,
4635
- []
4636
- ),
4637
- createModelReject(bytesPerElement)
4841
+ function (buffer) {
4842
+ buffer =
4843
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
4844
+ parentObject[parentKey] = buffer;
4845
+ "" === parentKey &&
4846
+ null === handler.value &&
4847
+ (handler.value = buffer);
4848
+ handler.deps--;
4849
+ if (
4850
+ 0 === handler.deps &&
4851
+ ((buffer = handler.chunk),
4852
+ null !== buffer && "blocked" === buffer.status)
4853
+ ) {
4854
+ var resolveListeners = buffer.value;
4855
+ buffer.status = "fulfilled";
4856
+ buffer.value = handler.value;
4857
+ null !== resolveListeners &&
4858
+ wakeChunk(response, resolveListeners, handler.value);
4859
+ }
4860
+ },
4861
+ function (error) {
4862
+ if (!handler.errored) {
4863
+ handler.errored = !0;
4864
+ handler.value = null;
4865
+ handler.reason = error;
4866
+ var chunk = handler.chunk;
4867
+ null !== chunk &&
4868
+ "blocked" === chunk.status &&
4869
+ triggerErrorOnChunk(response, chunk, error);
4870
+ }
4871
+ }
4638
4872
  );
4639
4873
  return null;
4640
4874
  }
4641
4875
  function resolveStream(response, id, stream, controller) {
4642
4876
  var chunks = response._chunks;
4643
- stream = new Chunk("fulfilled", stream, controller, response);
4877
+ stream = new ReactPromise("fulfilled", stream, controller);
4644
4878
  chunks.set(id, stream);
4645
4879
  response = response._formData.getAll(response._prefix + id);
4646
4880
  for (id = 0; id < response.length; id++)
4647
4881
  (chunks = response[id]),
4648
- "C" === chunks[0]
4649
- ? controller.close(
4650
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
4651
- )
4652
- : controller.enqueueModel(chunks);
4882
+ "string" === typeof chunks &&
4883
+ ("C" === chunks[0]
4884
+ ? controller.close(
4885
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
4886
+ )
4887
+ : controller.enqueueModel(chunks));
4653
4888
  }
4654
4889
  function parseReadableStream(response, reference, type) {
4655
4890
  reference = parseInt(reference.slice(2), 16);
@@ -4664,7 +4899,11 @@
4664
4899
  resolveStream(response, reference, type, {
4665
4900
  enqueueModel: function (json) {
4666
4901
  if (null === previousBlockedChunk) {
4667
- var chunk = new Chunk("resolved_model", json, -1, response);
4902
+ var chunk = new ReactPromise(
4903
+ "resolved_model",
4904
+ json,
4905
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4906
+ );
4668
4907
  initializeModelChunk(chunk);
4669
4908
  "fulfilled" === chunk.status
4670
4909
  ? controller.enqueue(chunk.value)
@@ -4679,7 +4918,7 @@
4679
4918
  (previousBlockedChunk = chunk));
4680
4919
  } else {
4681
4920
  chunk = previousBlockedChunk;
4682
- var _chunk = createPendingChunk(response);
4921
+ var _chunk = new ReactPromise("pending", null, null);
4683
4922
  _chunk.then(
4684
4923
  function (v) {
4685
4924
  return controller.enqueue(v);
@@ -4691,7 +4930,7 @@
4691
4930
  previousBlockedChunk = _chunk;
4692
4931
  chunk.then(function () {
4693
4932
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4694
- resolveModelChunk(_chunk, json, -1);
4933
+ resolveModelChunk(response, _chunk, json, -1);
4695
4934
  });
4696
4935
  }
4697
4936
  },
@@ -4740,13 +4979,12 @@
4740
4979
  );
4741
4980
  if (nextReadIndex === buffer.length) {
4742
4981
  if (closed)
4743
- return new Chunk(
4982
+ return new ReactPromise(
4744
4983
  "fulfilled",
4745
4984
  { done: !0, value: void 0 },
4746
- null,
4747
- response
4985
+ null
4748
4986
  );
4749
- buffer[nextReadIndex] = createPendingChunk(response);
4987
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
4750
4988
  }
4751
4989
  return buffer[nextReadIndex++];
4752
4990
  });
@@ -4760,7 +4998,12 @@
4760
4998
  value,
4761
4999
  !1
4762
5000
  ))
4763
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
5001
+ : resolveIteratorResultChunk(
5002
+ response,
5003
+ buffer[nextWriteIndex],
5004
+ value,
5005
+ !1
5006
+ );
4764
5007
  nextWriteIndex++;
4765
5008
  },
4766
5009
  close: function (value) {
@@ -4771,9 +5014,15 @@
4771
5014
  value,
4772
5015
  !0
4773
5016
  ))
4774
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
5017
+ : resolveIteratorResultChunk(
5018
+ response,
5019
+ buffer[nextWriteIndex],
5020
+ value,
5021
+ !0
5022
+ );
4775
5023
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
4776
5024
  resolveIteratorResultChunk(
5025
+ response,
4777
5026
  buffer[nextWriteIndex++],
4778
5027
  '"$undefined"',
4779
5028
  !0
@@ -4783,11 +5032,11 @@
4783
5032
  closed = !0;
4784
5033
  for (
4785
5034
  nextWriteIndex === buffer.length &&
4786
- (buffer[nextWriteIndex] = createPendingChunk(response));
5035
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
4787
5036
  nextWriteIndex < buffer.length;
4788
5037
 
4789
5038
  )
4790
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
5039
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
4791
5040
  }
4792
5041
  });
4793
5042
  return iterator;
@@ -4804,21 +5053,7 @@
4804
5053
  case "F":
4805
5054
  return (
4806
5055
  (value = value.slice(2)),
4807
- (value = getOutlinedModel(
4808
- response,
4809
- value,
4810
- obj,
4811
- key,
4812
- createModel
4813
- )),
4814
- loadServerReference$1(
4815
- response,
4816
- value.id,
4817
- value.bound,
4818
- initializingChunk,
4819
- obj,
4820
- key
4821
- )
5056
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
4822
5057
  );
4823
5058
  case "T":
4824
5059
  if (
@@ -4954,10 +5189,12 @@
4954
5189
  function resolveField(response, key, value) {
4955
5190
  response._formData.append(key, value);
4956
5191
  var prefix = response._prefix;
4957
- key.startsWith(prefix) &&
4958
- ((response = response._chunks),
4959
- (key = +key.slice(prefix.length)),
4960
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
5192
+ if (key.startsWith(prefix)) {
5193
+ var chunks = response._chunks;
5194
+ key = +key.slice(prefix.length);
5195
+ (chunks = chunks.get(key)) &&
5196
+ resolveModelChunk(response, chunks, value, key);
5197
+ }
4961
5198
  }
4962
5199
  function close(response) {
4963
5200
  reportGlobalError(response, Error("Connection closed."));
@@ -5709,33 +5946,32 @@
5709
5946
  debugNoOutline = null,
5710
5947
  emptyRoot = {},
5711
5948
  decoderOptions = { stream: !0 },
5712
- asyncModuleCache = new Map();
5713
- Chunk.prototype = Object.create(Promise.prototype);
5714
- Chunk.prototype.then = function (resolve, reject) {
5949
+ asyncModuleCache = new Map(),
5950
+ RESPONSE_SYMBOL = Symbol();
5951
+ ReactPromise.prototype = Object.create(Promise.prototype);
5952
+ ReactPromise.prototype.then = function (resolve, reject) {
5715
5953
  switch (this.status) {
5716
5954
  case "resolved_model":
5717
5955
  initializeModelChunk(this);
5718
5956
  }
5719
5957
  switch (this.status) {
5720
5958
  case "fulfilled":
5721
- resolve(this.value);
5959
+ "function" === typeof resolve && resolve(this.value);
5722
5960
  break;
5723
5961
  case "pending":
5724
5962
  case "blocked":
5725
- case "cyclic":
5726
- resolve &&
5963
+ "function" === typeof resolve &&
5727
5964
  (null === this.value && (this.value = []),
5728
5965
  this.value.push(resolve));
5729
- reject &&
5966
+ "function" === typeof reject &&
5730
5967
  (null === this.reason && (this.reason = []),
5731
5968
  this.reason.push(reject));
5732
5969
  break;
5733
5970
  default:
5734
- reject(this.reason);
5971
+ "function" === typeof reject && reject(this.reason);
5735
5972
  }
5736
5973
  };
5737
- var initializingChunk = null,
5738
- initializingChunkBlockedModel = null;
5974
+ var initializingHandler = null;
5739
5975
  exports.createClientModuleProxy = function (moduleId) {
5740
5976
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
5741
5977
  return new Proxy(moduleId, proxyHandlers$1);
@@ -5844,38 +6080,50 @@
5844
6080
  pendingFiles = 0,
5845
6081
  queuedFields = [];
5846
6082
  busboyStream.on("field", function (name, value) {
5847
- 0 < pendingFiles
5848
- ? queuedFields.push(name, value)
5849
- : resolveField(response, name, value);
6083
+ if (0 < pendingFiles) queuedFields.push(name, value);
6084
+ else
6085
+ try {
6086
+ resolveField(response, name, value);
6087
+ } catch (error) {
6088
+ busboyStream.destroy(error);
6089
+ }
5850
6090
  });
5851
6091
  busboyStream.on("file", function (name, value, _ref2) {
5852
6092
  var filename = _ref2.filename,
5853
6093
  mimeType = _ref2.mimeType;
5854
6094
  if ("base64" === _ref2.encoding.toLowerCase())
5855
- throw Error(
5856
- "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."
6095
+ busboyStream.destroy(
6096
+ Error(
6097
+ "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."
6098
+ )
5857
6099
  );
5858
- pendingFiles++;
5859
- var JSCompiler_object_inline_chunks_250 = [];
5860
- value.on("data", function (chunk) {
5861
- JSCompiler_object_inline_chunks_250.push(chunk);
5862
- });
5863
- value.on("end", function () {
5864
- var blob = new Blob(JSCompiler_object_inline_chunks_250, {
5865
- type: mimeType
6100
+ else {
6101
+ pendingFiles++;
6102
+ var JSCompiler_object_inline_chunks_253 = [];
6103
+ value.on("data", function (chunk) {
6104
+ JSCompiler_object_inline_chunks_253.push(chunk);
5866
6105
  });
5867
- response._formData.append(name, blob, filename);
5868
- pendingFiles--;
5869
- if (0 === pendingFiles) {
5870
- for (blob = 0; blob < queuedFields.length; blob += 2)
5871
- resolveField(
5872
- response,
5873
- queuedFields[blob],
5874
- queuedFields[blob + 1]
5875
- );
5876
- queuedFields.length = 0;
5877
- }
5878
- });
6106
+ value.on("end", function () {
6107
+ try {
6108
+ var blob = new Blob(JSCompiler_object_inline_chunks_253, {
6109
+ type: mimeType
6110
+ });
6111
+ response._formData.append(name, blob, filename);
6112
+ pendingFiles--;
6113
+ if (0 === pendingFiles) {
6114
+ for (blob = 0; blob < queuedFields.length; blob += 2)
6115
+ resolveField(
6116
+ response,
6117
+ queuedFields[blob],
6118
+ queuedFields[blob + 1]
6119
+ );
6120
+ queuedFields.length = 0;
6121
+ }
6122
+ } catch (error) {
6123
+ busboyStream.destroy(error);
6124
+ }
6125
+ });
6126
+ }
5879
6127
  });
5880
6128
  busboyStream.on("finish", function () {
5881
6129
  close(response);