@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
@@ -3937,37 +3937,65 @@
3937
3937
  if ("fulfilled" === moduleExports.status)
3938
3938
  moduleExports = moduleExports.value;
3939
3939
  else throw moduleExports.reason;
3940
- return "*" === metadata[2]
3941
- ? moduleExports
3942
- : "" === metadata[2]
3943
- ? moduleExports.__esModule
3944
- ? moduleExports.default
3945
- : moduleExports
3946
- : moduleExports[metadata[2]];
3947
- }
3948
- function Chunk(status, value, reason, response) {
3940
+ if ("*" === metadata[2]) return moduleExports;
3941
+ if ("" === metadata[2])
3942
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
3943
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
3944
+ return moduleExports[metadata[2]];
3945
+ }
3946
+ function ReactPromise(status, value, reason) {
3949
3947
  this.status = status;
3950
3948
  this.value = value;
3951
3949
  this.reason = reason;
3952
- this._response = response;
3953
3950
  }
3954
- function createPendingChunk(response) {
3955
- return new Chunk("pending", null, null, response);
3951
+ function wakeChunk(response, listeners, value) {
3952
+ for (var i = 0; i < listeners.length; i++) {
3953
+ var listener = listeners[i];
3954
+ "function" === typeof listener
3955
+ ? listener(value)
3956
+ : fulfillReference(response, listener, value);
3957
+ }
3956
3958
  }
3957
- function wakeChunk(listeners, value) {
3958
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
3959
+ function rejectChunk(response, listeners, error) {
3960
+ for (var i = 0; i < listeners.length; i++) {
3961
+ var listener = listeners[i];
3962
+ "function" === typeof listener
3963
+ ? listener(error)
3964
+ : rejectReference(response, listener.handler, error);
3965
+ }
3959
3966
  }
3960
- function triggerErrorOnChunk(chunk, error) {
3967
+ function resolveBlockedCycle(resolvedChunk, reference) {
3968
+ var referencedChunk = reference.handler.chunk;
3969
+ if (null === referencedChunk) return null;
3970
+ if (referencedChunk === resolvedChunk) return reference.handler;
3971
+ reference = referencedChunk.value;
3972
+ if (null !== reference)
3973
+ for (
3974
+ referencedChunk = 0;
3975
+ referencedChunk < reference.length;
3976
+ referencedChunk++
3977
+ ) {
3978
+ var listener = reference[referencedChunk];
3979
+ if (
3980
+ "function" !== typeof listener &&
3981
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
3982
+ null !== listener)
3983
+ )
3984
+ return listener;
3985
+ }
3986
+ return null;
3987
+ }
3988
+ function triggerErrorOnChunk(response, chunk, error) {
3961
3989
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
3962
3990
  chunk.reason.error(error);
3963
3991
  else {
3964
3992
  var listeners = chunk.reason;
3965
3993
  chunk.status = "rejected";
3966
3994
  chunk.reason = error;
3967
- null !== listeners && wakeChunk(listeners, error);
3995
+ null !== listeners && rejectChunk(response, listeners, error);
3968
3996
  }
3969
3997
  }
3970
- function resolveModelChunk(chunk, value, id) {
3998
+ function resolveModelChunk(response, chunk, value, id) {
3971
3999
  if ("pending" !== chunk.status)
3972
4000
  (chunk = chunk.reason),
3973
4001
  "C" === value[0]
@@ -3978,42 +4006,74 @@
3978
4006
  rejectListeners = chunk.reason;
3979
4007
  chunk.status = "resolved_model";
3980
4008
  chunk.value = value;
3981
- chunk.reason = id;
4009
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
3982
4010
  if (null !== resolveListeners)
3983
- switch ((initializeModelChunk(chunk), chunk.status)) {
4011
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
3984
4012
  case "fulfilled":
3985
- wakeChunk(resolveListeners, chunk.value);
4013
+ wakeChunk(response, resolveListeners, chunk.value);
3986
4014
  break;
3987
- case "pending":
3988
4015
  case "blocked":
3989
- case "cyclic":
4016
+ for (value = 0; value < resolveListeners.length; value++)
4017
+ if (
4018
+ ((id = resolveListeners[value]), "function" !== typeof id)
4019
+ ) {
4020
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
4021
+ if (null !== cyclicHandler)
4022
+ switch (
4023
+ (fulfillReference(response, id, cyclicHandler.value),
4024
+ resolveListeners.splice(value, 1),
4025
+ value--,
4026
+ null !== rejectListeners &&
4027
+ ((id = rejectListeners.indexOf(id)),
4028
+ -1 !== id && rejectListeners.splice(id, 1)),
4029
+ chunk.status)
4030
+ ) {
4031
+ case "fulfilled":
4032
+ wakeChunk(response, resolveListeners, chunk.value);
4033
+ break a;
4034
+ case "rejected":
4035
+ null !== rejectListeners &&
4036
+ rejectChunk(response, rejectListeners, chunk.reason);
4037
+ break a;
4038
+ }
4039
+ }
4040
+ case "pending":
3990
4041
  if (chunk.value)
3991
- for (value = 0; value < resolveListeners.length; value++)
3992
- chunk.value.push(resolveListeners[value]);
4042
+ for (
4043
+ response = 0;
4044
+ response < resolveListeners.length;
4045
+ response++
4046
+ )
4047
+ chunk.value.push(resolveListeners[response]);
3993
4048
  else chunk.value = resolveListeners;
3994
4049
  if (chunk.reason) {
3995
4050
  if (rejectListeners)
3996
- for (value = 0; value < rejectListeners.length; value++)
3997
- chunk.reason.push(rejectListeners[value]);
4051
+ for (
4052
+ resolveListeners = 0;
4053
+ resolveListeners < rejectListeners.length;
4054
+ resolveListeners++
4055
+ )
4056
+ chunk.reason.push(rejectListeners[resolveListeners]);
3998
4057
  } else chunk.reason = rejectListeners;
3999
4058
  break;
4000
4059
  case "rejected":
4001
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
4060
+ rejectListeners &&
4061
+ wakeChunk(response, rejectListeners, chunk.reason);
4002
4062
  }
4003
4063
  }
4004
4064
  }
4005
4065
  function createResolvedIteratorResultChunk(response, value, done) {
4006
- return new Chunk(
4066
+ return new ReactPromise(
4007
4067
  "resolved_model",
4008
4068
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
4009
4069
  value +
4010
4070
  "}",
4011
- -1,
4012
- response
4071
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4013
4072
  );
4014
4073
  }
4015
- function resolveIteratorResultChunk(chunk, value, done) {
4074
+ function resolveIteratorResultChunk(response, chunk, value, done) {
4016
4075
  resolveModelChunk(
4076
+ response,
4017
4077
  chunk,
4018
4078
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
4019
4079
  value +
@@ -4021,38 +4081,67 @@
4021
4081
  -1
4022
4082
  );
4023
4083
  }
4024
- function loadServerReference$1(
4025
- response,
4026
- id,
4027
- bound,
4028
- parentChunk,
4029
- parentObject,
4030
- key
4031
- ) {
4084
+ function loadServerReference$1(response, metaData, parentObject, key) {
4085
+ var id = metaData.id;
4086
+ if ("string" !== typeof id) return null;
4032
4087
  var serverReference = resolveServerReference(response._bundlerConfig, id);
4033
- id = preloadModule(serverReference);
4034
- if (bound)
4035
- bound = Promise.all([bound, id]).then(function (_ref) {
4036
- _ref = _ref[0];
4037
- var fn = requireModule(serverReference);
4038
- return fn.bind.apply(fn, [null].concat(_ref));
4039
- });
4040
- else if (id)
4041
- bound = Promise.resolve(id).then(function () {
4042
- return requireModule(serverReference);
4043
- });
4088
+ id = metaData.bound;
4089
+ var promise = preloadModule(serverReference);
4090
+ if (promise)
4091
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
4092
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
4044
4093
  else return requireModule(serverReference);
4045
- bound.then(
4046
- createModelResolver(
4047
- parentChunk,
4048
- parentObject,
4049
- key,
4050
- !1,
4051
- response,
4052
- createModel,
4053
- []
4054
- ),
4055
- createModelReject(parentChunk)
4094
+ if (initializingHandler) {
4095
+ var handler = initializingHandler;
4096
+ handler.deps++;
4097
+ } else
4098
+ handler = initializingHandler = {
4099
+ chunk: null,
4100
+ value: null,
4101
+ reason: null,
4102
+ deps: 1,
4103
+ errored: !1
4104
+ };
4105
+ promise.then(
4106
+ function () {
4107
+ var resolvedValue = requireModule(serverReference);
4108
+ if (metaData.bound) {
4109
+ var promiseValue = metaData.bound.value;
4110
+ promiseValue = Array.isArray(promiseValue)
4111
+ ? promiseValue.slice(0)
4112
+ : [];
4113
+ promiseValue.unshift(null);
4114
+ resolvedValue = resolvedValue.bind.apply(
4115
+ resolvedValue,
4116
+ promiseValue
4117
+ );
4118
+ }
4119
+ parentObject[key] = resolvedValue;
4120
+ "" === key &&
4121
+ null === handler.value &&
4122
+ (handler.value = resolvedValue);
4123
+ handler.deps--;
4124
+ 0 === handler.deps &&
4125
+ ((resolvedValue = handler.chunk),
4126
+ null !== resolvedValue &&
4127
+ "blocked" === resolvedValue.status &&
4128
+ ((promiseValue = resolvedValue.value),
4129
+ (resolvedValue.status = "fulfilled"),
4130
+ (resolvedValue.value = handler.value),
4131
+ null !== promiseValue &&
4132
+ wakeChunk(response, promiseValue, handler.value)));
4133
+ },
4134
+ function (error) {
4135
+ if (!handler.errored) {
4136
+ handler.errored = !0;
4137
+ handler.value = null;
4138
+ handler.reason = error;
4139
+ var chunk = handler.chunk;
4140
+ null !== chunk &&
4141
+ "blocked" === chunk.status &&
4142
+ triggerErrorOnChunk(response, chunk, error);
4143
+ }
4144
+ }
4056
4145
  );
4057
4146
  return null;
4058
4147
  }
@@ -4094,53 +4183,66 @@
4094
4183
  value[i],
4095
4184
  parentObj
4096
4185
  )),
4097
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
4186
+ void 0 !== parentObj || "__proto__" === i
4187
+ ? (value[i] = parentObj)
4188
+ : delete value[i]);
4098
4189
  return value;
4099
4190
  }
4100
4191
  function initializeModelChunk(chunk) {
4101
- var prevChunk = initializingChunk,
4102
- prevBlocked = initializingChunkBlockedModel;
4103
- initializingChunk = chunk;
4104
- initializingChunkBlockedModel = null;
4105
- var rootReference =
4106
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
4107
- resolvedModel = chunk.value;
4108
- chunk.status = "cyclic";
4192
+ var prevHandler = initializingHandler;
4193
+ initializingHandler = null;
4194
+ var _chunk$reason = chunk.reason,
4195
+ response = _chunk$reason[RESPONSE_SYMBOL];
4196
+ _chunk$reason = _chunk$reason.id;
4197
+ _chunk$reason =
4198
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
4199
+ var resolvedModel = chunk.value;
4200
+ chunk.status = "blocked";
4109
4201
  chunk.value = null;
4110
4202
  chunk.reason = null;
4111
4203
  try {
4112
4204
  var rawModel = JSON.parse(resolvedModel),
4113
4205
  value = reviveModel(
4114
- chunk._response,
4206
+ response,
4115
4207
  { "": rawModel },
4116
4208
  "",
4117
4209
  rawModel,
4118
- rootReference
4119
- );
4120
- if (
4121
- null !== initializingChunkBlockedModel &&
4122
- 0 < initializingChunkBlockedModel.deps
4123
- )
4124
- (initializingChunkBlockedModel.value = value),
4125
- (chunk.status = "blocked");
4126
- else {
4127
- var resolveListeners = chunk.value;
4128
- chunk.status = "fulfilled";
4129
- chunk.value = value;
4130
- null !== resolveListeners && wakeChunk(resolveListeners, value);
4210
+ _chunk$reason
4211
+ ),
4212
+ resolveListeners = chunk.value;
4213
+ if (null !== resolveListeners)
4214
+ for (
4215
+ chunk.value = null, chunk.reason = null, rawModel = 0;
4216
+ rawModel < resolveListeners.length;
4217
+ rawModel++
4218
+ ) {
4219
+ var listener = resolveListeners[rawModel];
4220
+ "function" === typeof listener
4221
+ ? listener(value)
4222
+ : fulfillReference(response, listener, value);
4223
+ }
4224
+ if (null !== initializingHandler) {
4225
+ if (initializingHandler.errored) throw initializingHandler.reason;
4226
+ if (0 < initializingHandler.deps) {
4227
+ initializingHandler.value = value;
4228
+ initializingHandler.chunk = chunk;
4229
+ return;
4230
+ }
4131
4231
  }
4232
+ chunk.status = "fulfilled";
4233
+ chunk.value = value;
4132
4234
  } catch (error) {
4133
4235
  (chunk.status = "rejected"), (chunk.reason = error);
4134
4236
  } finally {
4135
- (initializingChunk = prevChunk),
4136
- (initializingChunkBlockedModel = prevBlocked);
4237
+ initializingHandler = prevHandler;
4137
4238
  }
4138
4239
  }
4139
4240
  function reportGlobalError(response, error) {
4140
4241
  response._closed = !0;
4141
4242
  response._closedReason = error;
4142
4243
  response._chunks.forEach(function (chunk) {
4143
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
4244
+ "pending" === chunk.status &&
4245
+ triggerErrorOnChunk(response, chunk, error);
4144
4246
  });
4145
4247
  }
4146
4248
  function getChunk(response, id) {
@@ -4149,50 +4251,108 @@
4149
4251
  chunk ||
4150
4252
  ((chunk = response._formData.get(response._prefix + id)),
4151
4253
  (chunk =
4152
- null != chunk
4153
- ? new Chunk("resolved_model", chunk, id, response)
4254
+ "string" === typeof chunk
4255
+ ? new ReactPromise(
4256
+ "resolved_model",
4257
+ chunk,
4258
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
4259
+ )
4154
4260
  : response._closed
4155
- ? new Chunk("rejected", null, response._closedReason, response)
4156
- : createPendingChunk(response)),
4261
+ ? new ReactPromise("rejected", null, response._closedReason)
4262
+ : new ReactPromise("pending", null, null)),
4157
4263
  chunks.set(id, chunk));
4158
4264
  return chunk;
4159
4265
  }
4160
- function createModelResolver(
4161
- chunk,
4266
+ function fulfillReference(response, reference, value) {
4267
+ for (
4268
+ var handler = reference.handler,
4269
+ parentObject = reference.parentObject,
4270
+ key = reference.key,
4271
+ map = reference.map,
4272
+ path = reference.path,
4273
+ i = 1;
4274
+ i < path.length;
4275
+ i++
4276
+ ) {
4277
+ for (; value instanceof ReactPromise; ) {
4278
+ switch (value.status) {
4279
+ case "resolved_model":
4280
+ initializeModelChunk(value);
4281
+ }
4282
+ switch (value.status) {
4283
+ case "fulfilled":
4284
+ value = value.value;
4285
+ continue;
4286
+ case "blocked":
4287
+ case "pending":
4288
+ path.splice(0, i - 1);
4289
+ null === value.value
4290
+ ? (value.value = [reference])
4291
+ : value.value.push(reference);
4292
+ null === value.reason
4293
+ ? (value.reason = [reference])
4294
+ : value.reason.push(reference);
4295
+ return;
4296
+ default:
4297
+ rejectReference(response, reference.handler, value.reason);
4298
+ return;
4299
+ }
4300
+ }
4301
+ var name = path[i];
4302
+ "object" === typeof value &&
4303
+ hasOwnProperty.call(value, name) &&
4304
+ (value = value[name]);
4305
+ }
4306
+ reference = map(response, value, parentObject, key);
4307
+ parentObject[key] = reference;
4308
+ "" === key && null === handler.value && (handler.value = reference);
4309
+ handler.deps--;
4310
+ 0 === handler.deps &&
4311
+ ((parentObject = handler.chunk),
4312
+ null !== parentObject &&
4313
+ "blocked" === parentObject.status &&
4314
+ ((key = parentObject.value),
4315
+ (parentObject.status = "fulfilled"),
4316
+ (parentObject.value = handler.value),
4317
+ (parentObject.reason = handler.reason),
4318
+ null !== key && wakeChunk(response, key, handler.value)));
4319
+ }
4320
+ function rejectReference(response, handler, error) {
4321
+ handler.errored ||
4322
+ ((handler.errored = !0),
4323
+ (handler.value = null),
4324
+ (handler.reason = error),
4325
+ (handler = handler.chunk),
4326
+ null !== handler &&
4327
+ "blocked" === handler.status &&
4328
+ triggerErrorOnChunk(response, handler, error));
4329
+ }
4330
+ function waitForReference(
4331
+ referencedChunk,
4162
4332
  parentObject,
4163
4333
  key,
4164
- cyclic,
4165
4334
  response,
4166
4335
  map,
4167
4336
  path
4168
4337
  ) {
4169
- if (initializingChunkBlockedModel) {
4170
- var blocked = initializingChunkBlockedModel;
4171
- cyclic || blocked.deps++;
4172
- } else
4173
- blocked = initializingChunkBlockedModel = {
4174
- deps: cyclic ? 0 : 1,
4175
- value: null
4176
- };
4177
- return function (value) {
4178
- for (var i = 1; i < path.length; i++) value = value[path[i]];
4179
- parentObject[key] = map(response, value);
4180
- "" === key &&
4181
- null === blocked.value &&
4182
- (blocked.value = parentObject[key]);
4183
- blocked.deps--;
4184
- 0 === blocked.deps &&
4185
- "blocked" === chunk.status &&
4186
- ((value = chunk.value),
4187
- (chunk.status = "fulfilled"),
4188
- (chunk.value = blocked.value),
4189
- null !== value && wakeChunk(value, blocked.value));
4190
- };
4191
- }
4192
- function createModelReject(chunk) {
4193
- return function (error) {
4194
- return triggerErrorOnChunk(chunk, error);
4338
+ initializingHandler
4339
+ ? ((response = initializingHandler), response.deps++)
4340
+ : (response = initializingHandler =
4341
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
4342
+ parentObject = {
4343
+ handler: response,
4344
+ parentObject: parentObject,
4345
+ key: key,
4346
+ map: map,
4347
+ path: path
4195
4348
  };
4349
+ null === referencedChunk.value
4350
+ ? (referencedChunk.value = [parentObject])
4351
+ : referencedChunk.value.push(parentObject);
4352
+ null === referencedChunk.reason
4353
+ ? (referencedChunk.reason = [parentObject])
4354
+ : referencedChunk.reason.push(parentObject);
4355
+ return null;
4196
4356
  }
4197
4357
  function getOutlinedModel(response, reference, parentObject, key, map) {
4198
4358
  reference = reference.split(":");
@@ -4204,29 +4364,75 @@
4204
4364
  }
4205
4365
  switch (id.status) {
4206
4366
  case "fulfilled":
4207
- parentObject = id.value;
4208
- for (key = 1; key < reference.length; key++)
4209
- parentObject = parentObject[reference[key]];
4210
- return map(response, parentObject);
4367
+ var value = id.value;
4368
+ for (id = 1; id < reference.length; id++) {
4369
+ for (; value instanceof ReactPromise; ) {
4370
+ switch (value.status) {
4371
+ case "resolved_model":
4372
+ initializeModelChunk(value);
4373
+ }
4374
+ switch (value.status) {
4375
+ case "fulfilled":
4376
+ value = value.value;
4377
+ break;
4378
+ case "blocked":
4379
+ case "pending":
4380
+ return waitForReference(
4381
+ value,
4382
+ parentObject,
4383
+ key,
4384
+ response,
4385
+ map,
4386
+ reference.slice(id - 1)
4387
+ );
4388
+ default:
4389
+ return (
4390
+ initializingHandler
4391
+ ? ((initializingHandler.errored = !0),
4392
+ (initializingHandler.value = null),
4393
+ (initializingHandler.reason = value.reason))
4394
+ : (initializingHandler = {
4395
+ chunk: null,
4396
+ value: null,
4397
+ reason: value.reason,
4398
+ deps: 0,
4399
+ errored: !0
4400
+ }),
4401
+ null
4402
+ );
4403
+ }
4404
+ }
4405
+ var name = reference[id];
4406
+ "object" === typeof value &&
4407
+ hasOwnProperty.call(value, name) &&
4408
+ (value = value[name]);
4409
+ }
4410
+ return map(response, value, parentObject, key);
4211
4411
  case "pending":
4212
4412
  case "blocked":
4213
- case "cyclic":
4214
- var parentChunk = initializingChunk;
4215
- id.then(
4216
- createModelResolver(
4217
- parentChunk,
4218
- parentObject,
4219
- key,
4220
- "cyclic" === id.status,
4221
- response,
4222
- map,
4223
- reference
4224
- ),
4225
- createModelReject(parentChunk)
4413
+ return waitForReference(
4414
+ id,
4415
+ parentObject,
4416
+ key,
4417
+ response,
4418
+ map,
4419
+ reference
4226
4420
  );
4227
- return null;
4228
4421
  default:
4229
- throw id.reason;
4422
+ return (
4423
+ initializingHandler
4424
+ ? ((initializingHandler.errored = !0),
4425
+ (initializingHandler.value = null),
4426
+ (initializingHandler.reason = id.reason))
4427
+ : (initializingHandler = {
4428
+ chunk: null,
4429
+ value: null,
4430
+ reason: id.reason,
4431
+ deps: 0,
4432
+ errored: !0
4433
+ }),
4434
+ null
4435
+ );
4230
4436
  }
4231
4437
  }
4232
4438
  function createMap(response, model) {
@@ -4250,40 +4456,68 @@
4250
4456
  parentKey
4251
4457
  ) {
4252
4458
  reference = parseInt(reference.slice(2), 16);
4253
- reference = response._formData.get(response._prefix + reference);
4254
- reference =
4255
- constructor === ArrayBuffer
4256
- ? reference.arrayBuffer()
4257
- : reference.arrayBuffer().then(function (buffer) {
4258
- return new constructor(buffer);
4259
- });
4260
- bytesPerElement = initializingChunk;
4459
+ reference = response._formData
4460
+ .get(response._prefix + reference)
4461
+ .arrayBuffer();
4462
+ if (initializingHandler) {
4463
+ var handler = initializingHandler;
4464
+ handler.deps++;
4465
+ } else
4466
+ handler = initializingHandler = {
4467
+ chunk: null,
4468
+ value: null,
4469
+ reason: null,
4470
+ deps: 1,
4471
+ errored: !1
4472
+ };
4261
4473
  reference.then(
4262
- createModelResolver(
4263
- bytesPerElement,
4264
- parentObject,
4265
- parentKey,
4266
- !1,
4267
- response,
4268
- createModel,
4269
- []
4270
- ),
4271
- createModelReject(bytesPerElement)
4474
+ function (buffer) {
4475
+ buffer =
4476
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
4477
+ parentObject[parentKey] = buffer;
4478
+ "" === parentKey &&
4479
+ null === handler.value &&
4480
+ (handler.value = buffer);
4481
+ handler.deps--;
4482
+ if (
4483
+ 0 === handler.deps &&
4484
+ ((buffer = handler.chunk),
4485
+ null !== buffer && "blocked" === buffer.status)
4486
+ ) {
4487
+ var resolveListeners = buffer.value;
4488
+ buffer.status = "fulfilled";
4489
+ buffer.value = handler.value;
4490
+ null !== resolveListeners &&
4491
+ wakeChunk(response, resolveListeners, handler.value);
4492
+ }
4493
+ },
4494
+ function (error) {
4495
+ if (!handler.errored) {
4496
+ handler.errored = !0;
4497
+ handler.value = null;
4498
+ handler.reason = error;
4499
+ var chunk = handler.chunk;
4500
+ null !== chunk &&
4501
+ "blocked" === chunk.status &&
4502
+ triggerErrorOnChunk(response, chunk, error);
4503
+ }
4504
+ }
4272
4505
  );
4273
4506
  return null;
4274
4507
  }
4275
4508
  function resolveStream(response, id, stream, controller) {
4276
4509
  var chunks = response._chunks;
4277
- stream = new Chunk("fulfilled", stream, controller, response);
4510
+ stream = new ReactPromise("fulfilled", stream, controller);
4278
4511
  chunks.set(id, stream);
4279
4512
  response = response._formData.getAll(response._prefix + id);
4280
4513
  for (id = 0; id < response.length; id++)
4281
4514
  (chunks = response[id]),
4282
- "C" === chunks[0]
4283
- ? controller.close(
4284
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
4285
- )
4286
- : controller.enqueueModel(chunks);
4515
+ "string" === typeof chunks &&
4516
+ ("C" === chunks[0]
4517
+ ? controller.close(
4518
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
4519
+ )
4520
+ : controller.enqueueModel(chunks));
4287
4521
  }
4288
4522
  function parseReadableStream(response, reference, type) {
4289
4523
  reference = parseInt(reference.slice(2), 16);
@@ -4298,7 +4532,11 @@
4298
4532
  resolveStream(response, reference, type, {
4299
4533
  enqueueModel: function (json) {
4300
4534
  if (null === previousBlockedChunk) {
4301
- var chunk = new Chunk("resolved_model", json, -1, response);
4535
+ var chunk = new ReactPromise(
4536
+ "resolved_model",
4537
+ json,
4538
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4539
+ );
4302
4540
  initializeModelChunk(chunk);
4303
4541
  "fulfilled" === chunk.status
4304
4542
  ? controller.enqueue(chunk.value)
@@ -4313,7 +4551,7 @@
4313
4551
  (previousBlockedChunk = chunk));
4314
4552
  } else {
4315
4553
  chunk = previousBlockedChunk;
4316
- var _chunk = createPendingChunk(response);
4554
+ var _chunk = new ReactPromise("pending", null, null);
4317
4555
  _chunk.then(
4318
4556
  function (v) {
4319
4557
  return controller.enqueue(v);
@@ -4325,7 +4563,7 @@
4325
4563
  previousBlockedChunk = _chunk;
4326
4564
  chunk.then(function () {
4327
4565
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4328
- resolveModelChunk(_chunk, json, -1);
4566
+ resolveModelChunk(response, _chunk, json, -1);
4329
4567
  });
4330
4568
  }
4331
4569
  },
@@ -4374,13 +4612,12 @@
4374
4612
  );
4375
4613
  if (nextReadIndex === buffer.length) {
4376
4614
  if (closed)
4377
- return new Chunk(
4615
+ return new ReactPromise(
4378
4616
  "fulfilled",
4379
4617
  { done: !0, value: void 0 },
4380
- null,
4381
- response
4618
+ null
4382
4619
  );
4383
- buffer[nextReadIndex] = createPendingChunk(response);
4620
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
4384
4621
  }
4385
4622
  return buffer[nextReadIndex++];
4386
4623
  });
@@ -4394,7 +4631,12 @@
4394
4631
  value,
4395
4632
  !1
4396
4633
  ))
4397
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
4634
+ : resolveIteratorResultChunk(
4635
+ response,
4636
+ buffer[nextWriteIndex],
4637
+ value,
4638
+ !1
4639
+ );
4398
4640
  nextWriteIndex++;
4399
4641
  },
4400
4642
  close: function (value) {
@@ -4405,9 +4647,15 @@
4405
4647
  value,
4406
4648
  !0
4407
4649
  ))
4408
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
4650
+ : resolveIteratorResultChunk(
4651
+ response,
4652
+ buffer[nextWriteIndex],
4653
+ value,
4654
+ !0
4655
+ );
4409
4656
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
4410
4657
  resolveIteratorResultChunk(
4658
+ response,
4411
4659
  buffer[nextWriteIndex++],
4412
4660
  '"$undefined"',
4413
4661
  !0
@@ -4417,11 +4665,11 @@
4417
4665
  closed = !0;
4418
4666
  for (
4419
4667
  nextWriteIndex === buffer.length &&
4420
- (buffer[nextWriteIndex] = createPendingChunk(response));
4668
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
4421
4669
  nextWriteIndex < buffer.length;
4422
4670
 
4423
4671
  )
4424
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
4672
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
4425
4673
  }
4426
4674
  });
4427
4675
  return iterator;
@@ -4438,21 +4686,7 @@
4438
4686
  case "F":
4439
4687
  return (
4440
4688
  (value = value.slice(2)),
4441
- (value = getOutlinedModel(
4442
- response,
4443
- value,
4444
- obj,
4445
- key,
4446
- createModel
4447
- )),
4448
- loadServerReference$1(
4449
- response,
4450
- value.id,
4451
- value.bound,
4452
- initializingChunk,
4453
- obj,
4454
- key
4455
- )
4689
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
4456
4690
  );
4457
4691
  case "T":
4458
4692
  if (
@@ -5122,33 +5356,32 @@
5122
5356
  debugNoOutline = null,
5123
5357
  emptyRoot = {},
5124
5358
  decoderOptions = { stream: !0 },
5125
- chunkCache = new Map();
5126
- Chunk.prototype = Object.create(Promise.prototype);
5127
- Chunk.prototype.then = function (resolve, reject) {
5359
+ chunkCache = new Map(),
5360
+ RESPONSE_SYMBOL = Symbol();
5361
+ ReactPromise.prototype = Object.create(Promise.prototype);
5362
+ ReactPromise.prototype.then = function (resolve, reject) {
5128
5363
  switch (this.status) {
5129
5364
  case "resolved_model":
5130
5365
  initializeModelChunk(this);
5131
5366
  }
5132
5367
  switch (this.status) {
5133
5368
  case "fulfilled":
5134
- resolve(this.value);
5369
+ "function" === typeof resolve && resolve(this.value);
5135
5370
  break;
5136
5371
  case "pending":
5137
5372
  case "blocked":
5138
- case "cyclic":
5139
- resolve &&
5373
+ "function" === typeof resolve &&
5140
5374
  (null === this.value && (this.value = []),
5141
5375
  this.value.push(resolve));
5142
- reject &&
5376
+ "function" === typeof reject &&
5143
5377
  (null === this.reason && (this.reason = []),
5144
5378
  this.reason.push(reject));
5145
5379
  break;
5146
5380
  default:
5147
- reject(this.reason);
5381
+ "function" === typeof reject && reject(this.reason);
5148
5382
  }
5149
5383
  };
5150
- var initializingChunk = null,
5151
- initializingChunkBlockedModel = null;
5384
+ var initializingHandler = null;
5152
5385
  exports.createClientModuleProxy = function (moduleId) {
5153
5386
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
5154
5387
  return new Proxy(moduleId, proxyHandlers$1);
@@ -5228,11 +5461,12 @@
5228
5461
  var response = response$jscomp$0;
5229
5462
  response._formData.append(name, entry);
5230
5463
  var prefix = response._prefix;
5231
- name.startsWith(prefix) &&
5232
- ((response = response._chunks),
5233
- (name = +name.slice(prefix.length)),
5234
- (prefix = response.get(name)) &&
5235
- resolveModelChunk(prefix, entry, name));
5464
+ if (name.startsWith(prefix)) {
5465
+ var chunks = response._chunks;
5466
+ name = +name.slice(prefix.length);
5467
+ (chunks = chunks.get(name)) &&
5468
+ resolveModelChunk(response, chunks, entry, name);
5469
+ }
5236
5470
  } else response$jscomp$0._formData.append(name, entry);
5237
5471
  iterator.next().then(progress, error);
5238
5472
  }