react-server-dom-webpack 19.2.0 → 19.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2101,7 +2101,7 @@
2101
2101
  function serializeServerReference(request, serverReference) {
2102
2102
  var writtenServerReferences = request.writtenServerReferences,
2103
2103
  existingId = writtenServerReferences.get(serverReference);
2104
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
2104
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
2105
2105
  existingId = serverReference.$$bound;
2106
2106
  existingId = null === existingId ? null : Promise.resolve(existingId);
2107
2107
  var id = serverReference.$$id,
@@ -2127,7 +2127,7 @@
2127
2127
  : { id: id, bound: existingId };
2128
2128
  request = outlineModel(request, existingId);
2129
2129
  writtenServerReferences.set(serverReference, request);
2130
- return "$F" + request.toString(16);
2130
+ return "$h" + request.toString(16);
2131
2131
  }
2132
2132
  function serializeLargeTextString(request, text) {
2133
2133
  request.pendingChunks++;
@@ -3862,41 +3862,69 @@
3862
3862
  if ("fulfilled" === moduleExports.status)
3863
3863
  moduleExports = moduleExports.value;
3864
3864
  else throw moduleExports.reason;
3865
- return "*" === metadata[2]
3866
- ? moduleExports
3867
- : "" === metadata[2]
3868
- ? moduleExports.__esModule
3869
- ? moduleExports.default
3870
- : moduleExports
3871
- : moduleExports[metadata[2]];
3865
+ if ("*" === metadata[2]) return moduleExports;
3866
+ if ("" === metadata[2])
3867
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
3868
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
3869
+ return moduleExports[metadata[2]];
3872
3870
  }
3873
3871
  function loadChunk(chunkId, filename) {
3874
3872
  chunkMap.set(chunkId, filename);
3875
3873
  return __webpack_chunk_load__(chunkId);
3876
3874
  }
3877
- function Chunk(status, value, reason, response) {
3875
+ function ReactPromise(status, value, reason) {
3878
3876
  this.status = status;
3879
3877
  this.value = value;
3880
3878
  this.reason = reason;
3881
- this._response = response;
3882
3879
  }
3883
- function createPendingChunk(response) {
3884
- return new Chunk("pending", null, null, response);
3880
+ function wakeChunk(response, listeners, value) {
3881
+ for (var i = 0; i < listeners.length; i++) {
3882
+ var listener = listeners[i];
3883
+ "function" === typeof listener
3884
+ ? listener(value)
3885
+ : fulfillReference(response, listener, value);
3886
+ }
3887
+ }
3888
+ function rejectChunk(response, listeners, error) {
3889
+ for (var i = 0; i < listeners.length; i++) {
3890
+ var listener = listeners[i];
3891
+ "function" === typeof listener
3892
+ ? listener(error)
3893
+ : rejectReference(response, listener.handler, error);
3894
+ }
3885
3895
  }
3886
- function wakeChunk(listeners, value) {
3887
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
3896
+ function resolveBlockedCycle(resolvedChunk, reference) {
3897
+ var referencedChunk = reference.handler.chunk;
3898
+ if (null === referencedChunk) return null;
3899
+ if (referencedChunk === resolvedChunk) return reference.handler;
3900
+ reference = referencedChunk.value;
3901
+ if (null !== reference)
3902
+ for (
3903
+ referencedChunk = 0;
3904
+ referencedChunk < reference.length;
3905
+ referencedChunk++
3906
+ ) {
3907
+ var listener = reference[referencedChunk];
3908
+ if (
3909
+ "function" !== typeof listener &&
3910
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
3911
+ null !== listener)
3912
+ )
3913
+ return listener;
3914
+ }
3915
+ return null;
3888
3916
  }
3889
- function triggerErrorOnChunk(chunk, error) {
3917
+ function triggerErrorOnChunk(response, chunk, error) {
3890
3918
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
3891
3919
  chunk.reason.error(error);
3892
3920
  else {
3893
3921
  var listeners = chunk.reason;
3894
3922
  chunk.status = "rejected";
3895
3923
  chunk.reason = error;
3896
- null !== listeners && wakeChunk(listeners, error);
3924
+ null !== listeners && rejectChunk(response, listeners, error);
3897
3925
  }
3898
3926
  }
3899
- function resolveModelChunk(chunk, value, id) {
3927
+ function resolveModelChunk(response, chunk, value, id) {
3900
3928
  if ("pending" !== chunk.status)
3901
3929
  (chunk = chunk.reason),
3902
3930
  "C" === value[0]
@@ -3907,42 +3935,74 @@
3907
3935
  rejectListeners = chunk.reason;
3908
3936
  chunk.status = "resolved_model";
3909
3937
  chunk.value = value;
3910
- chunk.reason = id;
3938
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
3911
3939
  if (null !== resolveListeners)
3912
- switch ((initializeModelChunk(chunk), chunk.status)) {
3940
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
3913
3941
  case "fulfilled":
3914
- wakeChunk(resolveListeners, chunk.value);
3942
+ wakeChunk(response, resolveListeners, chunk.value);
3915
3943
  break;
3916
- case "pending":
3917
3944
  case "blocked":
3918
- case "cyclic":
3945
+ for (value = 0; value < resolveListeners.length; value++)
3946
+ if (
3947
+ ((id = resolveListeners[value]), "function" !== typeof id)
3948
+ ) {
3949
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
3950
+ if (null !== cyclicHandler)
3951
+ switch (
3952
+ (fulfillReference(response, id, cyclicHandler.value),
3953
+ resolveListeners.splice(value, 1),
3954
+ value--,
3955
+ null !== rejectListeners &&
3956
+ ((id = rejectListeners.indexOf(id)),
3957
+ -1 !== id && rejectListeners.splice(id, 1)),
3958
+ chunk.status)
3959
+ ) {
3960
+ case "fulfilled":
3961
+ wakeChunk(response, resolveListeners, chunk.value);
3962
+ break a;
3963
+ case "rejected":
3964
+ null !== rejectListeners &&
3965
+ rejectChunk(response, rejectListeners, chunk.reason);
3966
+ break a;
3967
+ }
3968
+ }
3969
+ case "pending":
3919
3970
  if (chunk.value)
3920
- for (value = 0; value < resolveListeners.length; value++)
3921
- chunk.value.push(resolveListeners[value]);
3971
+ for (
3972
+ response = 0;
3973
+ response < resolveListeners.length;
3974
+ response++
3975
+ )
3976
+ chunk.value.push(resolveListeners[response]);
3922
3977
  else chunk.value = resolveListeners;
3923
3978
  if (chunk.reason) {
3924
3979
  if (rejectListeners)
3925
- for (value = 0; value < rejectListeners.length; value++)
3926
- chunk.reason.push(rejectListeners[value]);
3980
+ for (
3981
+ resolveListeners = 0;
3982
+ resolveListeners < rejectListeners.length;
3983
+ resolveListeners++
3984
+ )
3985
+ chunk.reason.push(rejectListeners[resolveListeners]);
3927
3986
  } else chunk.reason = rejectListeners;
3928
3987
  break;
3929
3988
  case "rejected":
3930
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
3989
+ rejectListeners &&
3990
+ wakeChunk(response, rejectListeners, chunk.reason);
3931
3991
  }
3932
3992
  }
3933
3993
  }
3934
3994
  function createResolvedIteratorResultChunk(response, value, done) {
3935
- return new Chunk(
3995
+ return new ReactPromise(
3936
3996
  "resolved_model",
3937
3997
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
3938
3998
  value +
3939
3999
  "}",
3940
- -1,
3941
- response
4000
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3942
4001
  );
3943
4002
  }
3944
- function resolveIteratorResultChunk(chunk, value, done) {
4003
+ function resolveIteratorResultChunk(response, chunk, value, done) {
3945
4004
  resolveModelChunk(
4005
+ response,
3946
4006
  chunk,
3947
4007
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
3948
4008
  value +
@@ -3950,38 +4010,68 @@
3950
4010
  -1
3951
4011
  );
3952
4012
  }
3953
- function loadServerReference$1(
3954
- response,
3955
- id,
3956
- bound,
3957
- parentChunk,
3958
- parentObject,
3959
- key
3960
- ) {
4013
+ function loadServerReference$1(response, metaData, parentObject, key) {
4014
+ var id = metaData.id;
4015
+ if ("string" !== typeof id || "then" === key) return null;
3961
4016
  var serverReference = resolveServerReference(response._bundlerConfig, id);
3962
- id = preloadModule(serverReference);
3963
- if (bound)
3964
- bound = Promise.all([bound, id]).then(function (_ref) {
3965
- _ref = _ref[0];
3966
- var fn = requireModule(serverReference);
3967
- return fn.bind.apply(fn, [null].concat(_ref));
3968
- });
3969
- else if (id)
3970
- bound = Promise.resolve(id).then(function () {
3971
- return requireModule(serverReference);
3972
- });
4017
+ id = metaData.bound;
4018
+ var promise = preloadModule(serverReference);
4019
+ if (promise)
4020
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
4021
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
3973
4022
  else return requireModule(serverReference);
3974
- bound.then(
3975
- createModelResolver(
3976
- parentChunk,
3977
- parentObject,
3978
- key,
3979
- !1,
3980
- response,
3981
- createModel,
3982
- []
3983
- ),
3984
- createModelReject(parentChunk)
4023
+ if (initializingHandler) {
4024
+ var handler = initializingHandler;
4025
+ handler.deps++;
4026
+ } else
4027
+ handler = initializingHandler = {
4028
+ chunk: null,
4029
+ value: null,
4030
+ reason: null,
4031
+ deps: 1,
4032
+ errored: !1
4033
+ };
4034
+ promise.then(
4035
+ function () {
4036
+ var resolvedValue = requireModule(serverReference);
4037
+ if (metaData.bound) {
4038
+ var promiseValue = metaData.bound.value;
4039
+ promiseValue = Array.isArray(promiseValue)
4040
+ ? promiseValue.slice(0)
4041
+ : [];
4042
+ promiseValue.unshift(null);
4043
+ resolvedValue = resolvedValue.bind.apply(
4044
+ resolvedValue,
4045
+ promiseValue
4046
+ );
4047
+ }
4048
+ parentObject[key] = resolvedValue;
4049
+ "" === key &&
4050
+ null === handler.value &&
4051
+ (handler.value = resolvedValue);
4052
+ handler.deps--;
4053
+ 0 === handler.deps &&
4054
+ ((resolvedValue = handler.chunk),
4055
+ null !== resolvedValue &&
4056
+ "blocked" === resolvedValue.status &&
4057
+ ((promiseValue = resolvedValue.value),
4058
+ (resolvedValue.status = "fulfilled"),
4059
+ (resolvedValue.value = handler.value),
4060
+ (resolvedValue.reason = null),
4061
+ null !== promiseValue &&
4062
+ wakeChunk(response, promiseValue, handler.value)));
4063
+ },
4064
+ function (error) {
4065
+ if (!handler.errored) {
4066
+ handler.errored = !0;
4067
+ handler.value = null;
4068
+ handler.reason = error;
4069
+ var chunk = handler.chunk;
4070
+ null !== chunk &&
4071
+ "blocked" === chunk.status &&
4072
+ triggerErrorOnChunk(response, chunk, error);
4073
+ }
4074
+ }
3985
4075
  );
3986
4076
  return null;
3987
4077
  }
@@ -4023,53 +4113,70 @@
4023
4113
  value[i],
4024
4114
  parentObj
4025
4115
  )),
4026
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
4116
+ void 0 !== parentObj || "__proto__" === i
4117
+ ? (value[i] = parentObj)
4118
+ : delete value[i]);
4027
4119
  return value;
4028
4120
  }
4029
4121
  function initializeModelChunk(chunk) {
4030
- var prevChunk = initializingChunk,
4031
- prevBlocked = initializingChunkBlockedModel;
4032
- initializingChunk = chunk;
4033
- initializingChunkBlockedModel = null;
4034
- var rootReference =
4035
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
4036
- resolvedModel = chunk.value;
4037
- chunk.status = "cyclic";
4122
+ var prevHandler = initializingHandler;
4123
+ initializingHandler = null;
4124
+ var _chunk$reason = chunk.reason,
4125
+ response = _chunk$reason[RESPONSE_SYMBOL];
4126
+ _chunk$reason = _chunk$reason.id;
4127
+ _chunk$reason =
4128
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
4129
+ var resolvedModel = chunk.value;
4130
+ chunk.status = "blocked";
4038
4131
  chunk.value = null;
4039
4132
  chunk.reason = null;
4040
4133
  try {
4041
4134
  var rawModel = JSON.parse(resolvedModel),
4042
4135
  value = reviveModel(
4043
- chunk._response,
4136
+ response,
4044
4137
  { "": rawModel },
4045
4138
  "",
4046
4139
  rawModel,
4047
- rootReference
4048
- );
4049
- if (
4050
- null !== initializingChunkBlockedModel &&
4051
- 0 < initializingChunkBlockedModel.deps
4052
- )
4053
- (initializingChunkBlockedModel.value = value),
4054
- (chunk.status = "blocked");
4055
- else {
4056
- var resolveListeners = chunk.value;
4057
- chunk.status = "fulfilled";
4058
- chunk.value = value;
4059
- null !== resolveListeners && wakeChunk(resolveListeners, value);
4140
+ _chunk$reason
4141
+ ),
4142
+ resolveListeners = chunk.value;
4143
+ if (null !== resolveListeners)
4144
+ for (
4145
+ chunk.value = null, chunk.reason = null, rawModel = 0;
4146
+ rawModel < resolveListeners.length;
4147
+ rawModel++
4148
+ ) {
4149
+ var listener = resolveListeners[rawModel];
4150
+ "function" === typeof listener
4151
+ ? listener(value)
4152
+ : fulfillReference(response, listener, value);
4153
+ }
4154
+ if (null !== initializingHandler) {
4155
+ if (initializingHandler.errored) throw initializingHandler.reason;
4156
+ if (0 < initializingHandler.deps) {
4157
+ initializingHandler.value = value;
4158
+ initializingHandler.chunk = chunk;
4159
+ return;
4160
+ }
4060
4161
  }
4162
+ chunk.status = "fulfilled";
4163
+ chunk.value = value;
4164
+ chunk.reason = null;
4061
4165
  } catch (error) {
4062
4166
  (chunk.status = "rejected"), (chunk.reason = error);
4063
4167
  } finally {
4064
- (initializingChunk = prevChunk),
4065
- (initializingChunkBlockedModel = prevBlocked);
4168
+ initializingHandler = prevHandler;
4066
4169
  }
4067
4170
  }
4068
4171
  function reportGlobalError(response, error) {
4069
4172
  response._closed = !0;
4070
4173
  response._closedReason = error;
4071
4174
  response._chunks.forEach(function (chunk) {
4072
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
4175
+ "pending" === chunk.status
4176
+ ? triggerErrorOnChunk(response, chunk, error)
4177
+ : "fulfilled" === chunk.status &&
4178
+ null !== chunk.reason &&
4179
+ chunk.reason.error(error);
4073
4180
  });
4074
4181
  }
4075
4182
  function getChunk(response, id) {
@@ -4078,50 +4185,62 @@
4078
4185
  chunk ||
4079
4186
  ((chunk = response._formData.get(response._prefix + id)),
4080
4187
  (chunk =
4081
- null != chunk
4082
- ? new Chunk("resolved_model", chunk, id, response)
4188
+ "string" === typeof chunk
4189
+ ? new ReactPromise(
4190
+ "resolved_model",
4191
+ chunk,
4192
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
4193
+ )
4083
4194
  : response._closed
4084
- ? new Chunk("rejected", null, response._closedReason, response)
4085
- : createPendingChunk(response)),
4195
+ ? new ReactPromise("rejected", null, response._closedReason)
4196
+ : new ReactPromise("pending", null, null)),
4086
4197
  chunks.set(id, chunk));
4087
4198
  return chunk;
4088
4199
  }
4089
- function createModelResolver(
4090
- chunk,
4091
- parentObject,
4092
- key,
4093
- cyclic,
4094
- response,
4095
- map,
4096
- path
4097
- ) {
4098
- if (initializingChunkBlockedModel) {
4099
- var blocked = initializingChunkBlockedModel;
4100
- cyclic || blocked.deps++;
4101
- } else
4102
- blocked = initializingChunkBlockedModel = {
4103
- deps: cyclic ? 0 : 1,
4104
- value: null
4105
- };
4106
- return function (value) {
4107
- for (var i = 1; i < path.length; i++) value = value[path[i]];
4108
- parentObject[key] = map(response, value);
4109
- "" === key &&
4110
- null === blocked.value &&
4111
- (blocked.value = parentObject[key]);
4112
- blocked.deps--;
4113
- 0 === blocked.deps &&
4114
- "blocked" === chunk.status &&
4115
- ((value = chunk.value),
4116
- (chunk.status = "fulfilled"),
4117
- (chunk.value = blocked.value),
4118
- null !== value && wakeChunk(value, blocked.value));
4119
- };
4120
- }
4121
- function createModelReject(chunk) {
4122
- return function (error) {
4123
- return triggerErrorOnChunk(chunk, error);
4124
- };
4200
+ function fulfillReference(response, reference, value) {
4201
+ var handler = reference.handler,
4202
+ parentObject = reference.parentObject,
4203
+ key = reference.key,
4204
+ map = reference.map,
4205
+ path = reference.path;
4206
+ try {
4207
+ for (var i = 1; i < path.length; i++) {
4208
+ var name = path[i];
4209
+ if (
4210
+ "object" !== typeof value ||
4211
+ !hasOwnProperty.call(value, name) ||
4212
+ value instanceof Promise
4213
+ )
4214
+ throw Error("Invalid reference.");
4215
+ value = value[name];
4216
+ }
4217
+ var mappedValue = map(response, value, parentObject, key);
4218
+ parentObject[key] = mappedValue;
4219
+ "" === key && null === handler.value && (handler.value = mappedValue);
4220
+ } catch (error) {
4221
+ rejectReference(response, reference.handler, error);
4222
+ return;
4223
+ }
4224
+ handler.deps--;
4225
+ 0 === handler.deps &&
4226
+ ((reference = handler.chunk),
4227
+ null !== reference &&
4228
+ "blocked" === reference.status &&
4229
+ ((value = reference.value),
4230
+ (reference.status = "fulfilled"),
4231
+ (reference.value = handler.value),
4232
+ (reference.reason = handler.reason),
4233
+ null !== value && wakeChunk(response, value, handler.value)));
4234
+ }
4235
+ function rejectReference(response, handler, error) {
4236
+ handler.errored ||
4237
+ ((handler.errored = !0),
4238
+ (handler.value = null),
4239
+ (handler.reason = error),
4240
+ (handler = handler.chunk),
4241
+ null !== handler &&
4242
+ "blocked" === handler.status &&
4243
+ triggerErrorOnChunk(response, handler, error));
4125
4244
  }
4126
4245
  function getOutlinedModel(response, reference, parentObject, key, map) {
4127
4246
  reference = reference.split(":");
@@ -4133,29 +4252,61 @@
4133
4252
  }
4134
4253
  switch (id.status) {
4135
4254
  case "fulfilled":
4136
- parentObject = id.value;
4137
- for (key = 1; key < reference.length; key++)
4138
- parentObject = parentObject[reference[key]];
4139
- return map(response, parentObject);
4255
+ id = id.value;
4256
+ for (var i = 1; i < reference.length; i++) {
4257
+ var name = reference[i];
4258
+ if (
4259
+ "object" !== typeof id ||
4260
+ !hasOwnProperty.call(id, name) ||
4261
+ id instanceof Promise
4262
+ )
4263
+ throw Error("Invalid reference.");
4264
+ id = id[name];
4265
+ }
4266
+ return map(response, id, parentObject, key);
4140
4267
  case "pending":
4141
4268
  case "blocked":
4142
- case "cyclic":
4143
- var parentChunk = initializingChunk;
4144
- id.then(
4145
- createModelResolver(
4146
- parentChunk,
4147
- parentObject,
4148
- key,
4149
- "cyclic" === id.status,
4150
- response,
4151
- map,
4152
- reference
4153
- ),
4154
- createModelReject(parentChunk)
4269
+ return (
4270
+ initializingHandler
4271
+ ? ((response = initializingHandler), response.deps++)
4272
+ : (response = initializingHandler =
4273
+ {
4274
+ chunk: null,
4275
+ value: null,
4276
+ reason: null,
4277
+ deps: 1,
4278
+ errored: !1
4279
+ }),
4280
+ (parentObject = {
4281
+ handler: response,
4282
+ parentObject: parentObject,
4283
+ key: key,
4284
+ map: map,
4285
+ path: reference
4286
+ }),
4287
+ null === id.value
4288
+ ? (id.value = [parentObject])
4289
+ : id.value.push(parentObject),
4290
+ null === id.reason
4291
+ ? (id.reason = [parentObject])
4292
+ : id.reason.push(parentObject),
4293
+ null
4155
4294
  );
4156
- return null;
4157
4295
  default:
4158
- throw id.reason;
4296
+ return (
4297
+ initializingHandler
4298
+ ? ((initializingHandler.errored = !0),
4299
+ (initializingHandler.value = null),
4300
+ (initializingHandler.reason = id.reason))
4301
+ : (initializingHandler = {
4302
+ chunk: null,
4303
+ value: null,
4304
+ reason: id.reason,
4305
+ deps: 0,
4306
+ errored: !0
4307
+ }),
4308
+ null
4309
+ );
4159
4310
  }
4160
4311
  }
4161
4312
  function createMap(response, model) {
@@ -4167,8 +4318,8 @@
4167
4318
  function extractIterator(response, model) {
4168
4319
  return model[Symbol.iterator]();
4169
4320
  }
4170
- function createModel(response, model) {
4171
- return model;
4321
+ function createModel(response, model, parentObject, key) {
4322
+ return "then" === key && "function" === typeof model ? null : model;
4172
4323
  }
4173
4324
  function parseTypedArray(
4174
4325
  response,
@@ -4179,44 +4330,77 @@
4179
4330
  parentKey
4180
4331
  ) {
4181
4332
  reference = parseInt(reference.slice(2), 16);
4182
- reference = response._formData.get(response._prefix + reference);
4183
- reference =
4184
- constructor === ArrayBuffer
4185
- ? reference.arrayBuffer()
4186
- : reference.arrayBuffer().then(function (buffer) {
4187
- return new constructor(buffer);
4188
- });
4189
- bytesPerElement = initializingChunk;
4333
+ bytesPerElement = response._prefix + reference;
4334
+ if (response._chunks.has(reference))
4335
+ throw Error("Already initialized typed array.");
4336
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
4337
+ if (initializingHandler) {
4338
+ var handler = initializingHandler;
4339
+ handler.deps++;
4340
+ } else
4341
+ handler = initializingHandler = {
4342
+ chunk: null,
4343
+ value: null,
4344
+ reason: null,
4345
+ deps: 1,
4346
+ errored: !1
4347
+ };
4190
4348
  reference.then(
4191
- createModelResolver(
4192
- bytesPerElement,
4193
- parentObject,
4194
- parentKey,
4195
- !1,
4196
- response,
4197
- createModel,
4198
- []
4199
- ),
4200
- createModelReject(bytesPerElement)
4349
+ function (buffer) {
4350
+ buffer =
4351
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
4352
+ parentObject[parentKey] = buffer;
4353
+ "" === parentKey &&
4354
+ null === handler.value &&
4355
+ (handler.value = buffer);
4356
+ handler.deps--;
4357
+ if (
4358
+ 0 === handler.deps &&
4359
+ ((buffer = handler.chunk),
4360
+ null !== buffer && "blocked" === buffer.status)
4361
+ ) {
4362
+ var resolveListeners = buffer.value;
4363
+ buffer.status = "fulfilled";
4364
+ buffer.value = handler.value;
4365
+ buffer.reason = null;
4366
+ null !== resolveListeners &&
4367
+ wakeChunk(response, resolveListeners, handler.value);
4368
+ }
4369
+ },
4370
+ function (error) {
4371
+ if (!handler.errored) {
4372
+ handler.errored = !0;
4373
+ handler.value = null;
4374
+ handler.reason = error;
4375
+ var chunk = handler.chunk;
4376
+ null !== chunk &&
4377
+ "blocked" === chunk.status &&
4378
+ triggerErrorOnChunk(response, chunk, error);
4379
+ }
4380
+ }
4201
4381
  );
4202
4382
  return null;
4203
4383
  }
4204
4384
  function resolveStream(response, id, stream, controller) {
4205
4385
  var chunks = response._chunks;
4206
- stream = new Chunk("fulfilled", stream, controller, response);
4386
+ stream = new ReactPromise("fulfilled", stream, controller);
4207
4387
  chunks.set(id, stream);
4208
4388
  response = response._formData.getAll(response._prefix + id);
4209
4389
  for (id = 0; id < response.length; id++)
4210
4390
  (chunks = response[id]),
4211
- "C" === chunks[0]
4212
- ? controller.close(
4213
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
4214
- )
4215
- : controller.enqueueModel(chunks);
4391
+ "string" === typeof chunks &&
4392
+ ("C" === chunks[0]
4393
+ ? controller.close(
4394
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
4395
+ )
4396
+ : controller.enqueueModel(chunks));
4216
4397
  }
4217
4398
  function parseReadableStream(response, reference, type) {
4218
4399
  reference = parseInt(reference.slice(2), 16);
4219
- var controller = null;
4400
+ if (response._chunks.has(reference))
4401
+ throw Error("Already initialized stream.");
4402
+ var controller = null,
4403
+ closed = !1;
4220
4404
  type = new ReadableStream({
4221
4405
  type: type,
4222
4406
  start: function (c) {
@@ -4227,7 +4411,11 @@
4227
4411
  resolveStream(response, reference, type, {
4228
4412
  enqueueModel: function (json) {
4229
4413
  if (null === previousBlockedChunk) {
4230
- var chunk = new Chunk("resolved_model", json, -1, response);
4414
+ var chunk = new ReactPromise(
4415
+ "resolved_model",
4416
+ json,
4417
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4418
+ );
4231
4419
  initializeModelChunk(chunk);
4232
4420
  "fulfilled" === chunk.status
4233
4421
  ? controller.enqueue(chunk.value)
@@ -4242,7 +4430,7 @@
4242
4430
  (previousBlockedChunk = chunk));
4243
4431
  } else {
4244
4432
  chunk = previousBlockedChunk;
4245
- var _chunk = createPendingChunk(response);
4433
+ var _chunk = new ReactPromise("pending", null, null);
4246
4434
  _chunk.then(
4247
4435
  function (v) {
4248
4436
  return controller.enqueue(v);
@@ -4254,29 +4442,33 @@
4254
4442
  previousBlockedChunk = _chunk;
4255
4443
  chunk.then(function () {
4256
4444
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4257
- resolveModelChunk(_chunk, json, -1);
4445
+ resolveModelChunk(response, _chunk, json, -1);
4258
4446
  });
4259
4447
  }
4260
4448
  },
4261
4449
  close: function () {
4262
- if (null === previousBlockedChunk) controller.close();
4263
- else {
4264
- var blockedChunk = previousBlockedChunk;
4265
- previousBlockedChunk = null;
4266
- blockedChunk.then(function () {
4267
- return controller.close();
4268
- });
4269
- }
4450
+ if (!closed)
4451
+ if (((closed = !0), null === previousBlockedChunk))
4452
+ controller.close();
4453
+ else {
4454
+ var blockedChunk = previousBlockedChunk;
4455
+ previousBlockedChunk = null;
4456
+ blockedChunk.then(function () {
4457
+ return controller.close();
4458
+ });
4459
+ }
4270
4460
  },
4271
4461
  error: function (error) {
4272
- if (null === previousBlockedChunk) controller.error(error);
4273
- else {
4274
- var blockedChunk = previousBlockedChunk;
4275
- previousBlockedChunk = null;
4276
- blockedChunk.then(function () {
4277
- return controller.error(error);
4278
- });
4279
- }
4462
+ if (!closed)
4463
+ if (((closed = !0), null === previousBlockedChunk))
4464
+ controller.error(error);
4465
+ else {
4466
+ var blockedChunk = previousBlockedChunk;
4467
+ previousBlockedChunk = null;
4468
+ blockedChunk.then(function () {
4469
+ return controller.error(error);
4470
+ });
4471
+ }
4280
4472
  }
4281
4473
  });
4282
4474
  return type;
@@ -4291,6 +4483,8 @@
4291
4483
  }
4292
4484
  function parseAsyncIterable(response, reference, iterator) {
4293
4485
  reference = parseInt(reference.slice(2), 16);
4486
+ if (response._chunks.has(reference))
4487
+ throw Error("Already initialized stream.");
4294
4488
  var buffer = [],
4295
4489
  closed = !1,
4296
4490
  nextWriteIndex = 0,
@@ -4303,13 +4497,12 @@
4303
4497
  );
4304
4498
  if (nextReadIndex === buffer.length) {
4305
4499
  if (closed)
4306
- return new Chunk(
4500
+ return new ReactPromise(
4307
4501
  "fulfilled",
4308
4502
  { done: !0, value: void 0 },
4309
- null,
4310
- response
4503
+ null
4311
4504
  );
4312
- buffer[nextReadIndex] = createPendingChunk(response);
4505
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
4313
4506
  }
4314
4507
  return buffer[nextReadIndex++];
4315
4508
  });
@@ -4323,34 +4516,55 @@
4323
4516
  value,
4324
4517
  !1
4325
4518
  ))
4326
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
4519
+ : resolveIteratorResultChunk(
4520
+ response,
4521
+ buffer[nextWriteIndex],
4522
+ value,
4523
+ !1
4524
+ );
4327
4525
  nextWriteIndex++;
4328
4526
  },
4329
4527
  close: function (value) {
4330
- closed = !0;
4331
- nextWriteIndex === buffer.length
4332
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
4528
+ if (!closed)
4529
+ for (
4530
+ closed = !0,
4531
+ nextWriteIndex === buffer.length
4532
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
4533
+ response,
4534
+ value,
4535
+ !0
4536
+ ))
4537
+ : resolveIteratorResultChunk(
4538
+ response,
4539
+ buffer[nextWriteIndex],
4540
+ value,
4541
+ !0
4542
+ ),
4543
+ nextWriteIndex++;
4544
+ nextWriteIndex < buffer.length;
4545
+
4546
+ )
4547
+ resolveIteratorResultChunk(
4333
4548
  response,
4334
- value,
4549
+ buffer[nextWriteIndex++],
4550
+ '"$undefined"',
4335
4551
  !0
4336
- ))
4337
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
4338
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
4339
- resolveIteratorResultChunk(
4340
- buffer[nextWriteIndex++],
4341
- '"$undefined"',
4342
- !0
4343
- );
4552
+ );
4344
4553
  },
4345
4554
  error: function (error) {
4346
- closed = !0;
4347
- for (
4348
- nextWriteIndex === buffer.length &&
4349
- (buffer[nextWriteIndex] = createPendingChunk(response));
4350
- nextWriteIndex < buffer.length;
4555
+ if (!closed)
4556
+ for (
4557
+ closed = !0,
4558
+ nextWriteIndex === buffer.length &&
4559
+ (buffer[nextWriteIndex] = new ReactPromise(
4560
+ "pending",
4561
+ null,
4562
+ null
4563
+ ));
4564
+ nextWriteIndex < buffer.length;
4351
4565
 
4352
- )
4353
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
4566
+ )
4567
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
4354
4568
  }
4355
4569
  });
4356
4570
  return iterator;
@@ -4364,24 +4578,10 @@
4364
4578
  return (
4365
4579
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
4366
4580
  );
4367
- case "F":
4581
+ case "h":
4368
4582
  return (
4369
4583
  (value = value.slice(2)),
4370
- (value = getOutlinedModel(
4371
- response,
4372
- value,
4373
- obj,
4374
- key,
4375
- createModel
4376
- )),
4377
- loadServerReference$1(
4378
- response,
4379
- value.id,
4380
- value.bound,
4381
- initializingChunk,
4382
- obj,
4383
- key
4384
- )
4584
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
4385
4585
  );
4386
4586
  case "T":
4387
4587
  if (
@@ -4652,6 +4852,13 @@
4652
4852
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
4653
4853
  FunctionBind = Function.prototype.bind,
4654
4854
  ArraySlice = Array.prototype.slice,
4855
+ serverReferenceToString = {
4856
+ value: function () {
4857
+ return "function () { [omitted code] }";
4858
+ },
4859
+ configurable: !0,
4860
+ writable: !0
4861
+ },
4655
4862
  PROMISE_PROTOTYPE = Promise.prototype,
4656
4863
  deepProxyHandlers = {
4657
4864
  get: function (target, name) {
@@ -5060,32 +5267,47 @@
5060
5267
  ? flightChunk
5061
5268
  : webpackGetChunkFilename(chunkId);
5062
5269
  };
5063
- Chunk.prototype = Object.create(Promise.prototype);
5064
- Chunk.prototype.then = function (resolve, reject) {
5270
+ var RESPONSE_SYMBOL = Symbol();
5271
+ ReactPromise.prototype = Object.create(Promise.prototype);
5272
+ ReactPromise.prototype.then = function (resolve, reject) {
5065
5273
  switch (this.status) {
5066
5274
  case "resolved_model":
5067
5275
  initializeModelChunk(this);
5068
5276
  }
5069
5277
  switch (this.status) {
5070
5278
  case "fulfilled":
5071
- resolve(this.value);
5279
+ if ("function" === typeof resolve) {
5280
+ for (
5281
+ var inspectedValue = this.value;
5282
+ inspectedValue instanceof ReactPromise;
5283
+
5284
+ ) {
5285
+ if (inspectedValue === this) {
5286
+ "function" === typeof reject &&
5287
+ reject(Error("Cannot have cyclic thenables."));
5288
+ return;
5289
+ }
5290
+ if ("fulfilled" === inspectedValue.status)
5291
+ inspectedValue = inspectedValue.value;
5292
+ else break;
5293
+ }
5294
+ resolve(this.value);
5295
+ }
5072
5296
  break;
5073
5297
  case "pending":
5074
5298
  case "blocked":
5075
- case "cyclic":
5076
- resolve &&
5299
+ "function" === typeof resolve &&
5077
5300
  (null === this.value && (this.value = []),
5078
5301
  this.value.push(resolve));
5079
- reject &&
5302
+ "function" === typeof reject &&
5080
5303
  (null === this.reason && (this.reason = []),
5081
5304
  this.reason.push(reject));
5082
5305
  break;
5083
5306
  default:
5084
- reject(this.reason);
5307
+ "function" === typeof reject && reject(this.reason);
5085
5308
  }
5086
5309
  };
5087
- var initializingChunk = null,
5088
- initializingChunkBlockedModel = null;
5310
+ var initializingHandler = null;
5089
5311
  exports.createClientModuleProxy = function (moduleId) {
5090
5312
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
5091
5313
  return new Proxy(moduleId, proxyHandlers$1);
@@ -5214,7 +5436,8 @@
5214
5436
  },
5215
5437
  $$bound: { value: null, configurable: !0 },
5216
5438
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
5217
- bind: { value: bind, configurable: !0 }
5439
+ bind: { value: bind, configurable: !0 },
5440
+ toString: serverReferenceToString
5218
5441
  });
5219
5442
  };
5220
5443
  exports.renderToReadableStream = function (model, webpackMap, options) {