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.
@@ -2161,7 +2161,7 @@
2161
2161
  function serializeServerReference(request, serverReference) {
2162
2162
  var writtenServerReferences = request.writtenServerReferences,
2163
2163
  existingId = writtenServerReferences.get(serverReference);
2164
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
2164
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
2165
2165
  existingId = serverReference.$$bound;
2166
2166
  existingId = null === existingId ? null : Promise.resolve(existingId);
2167
2167
  var id = serverReference.$$id,
@@ -2187,7 +2187,7 @@
2187
2187
  : { id: id, bound: existingId };
2188
2188
  request = outlineModel(request, existingId);
2189
2189
  writtenServerReferences.set(serverReference, request);
2190
- return "$F" + request.toString(16);
2190
+ return "$h" + request.toString(16);
2191
2191
  }
2192
2192
  function serializeLargeTextString(request, text) {
2193
2193
  request.pendingChunks++;
@@ -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,68 @@
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 || "then" === key) 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
+ (resolvedValue.reason = null),
4132
+ null !== promiseValue &&
4133
+ wakeChunk(response, promiseValue, handler.value)));
4134
+ },
4135
+ function (error) {
4136
+ if (!handler.errored) {
4137
+ handler.errored = !0;
4138
+ handler.value = null;
4139
+ handler.reason = error;
4140
+ var chunk = handler.chunk;
4141
+ null !== chunk &&
4142
+ "blocked" === chunk.status &&
4143
+ triggerErrorOnChunk(response, chunk, error);
4144
+ }
4145
+ }
4056
4146
  );
4057
4147
  return null;
4058
4148
  }
@@ -4094,53 +4184,70 @@
4094
4184
  value[i],
4095
4185
  parentObj
4096
4186
  )),
4097
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
4187
+ void 0 !== parentObj || "__proto__" === i
4188
+ ? (value[i] = parentObj)
4189
+ : delete value[i]);
4098
4190
  return value;
4099
4191
  }
4100
4192
  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";
4193
+ var prevHandler = initializingHandler;
4194
+ initializingHandler = null;
4195
+ var _chunk$reason = chunk.reason,
4196
+ response = _chunk$reason[RESPONSE_SYMBOL];
4197
+ _chunk$reason = _chunk$reason.id;
4198
+ _chunk$reason =
4199
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
4200
+ var resolvedModel = chunk.value;
4201
+ chunk.status = "blocked";
4109
4202
  chunk.value = null;
4110
4203
  chunk.reason = null;
4111
4204
  try {
4112
4205
  var rawModel = JSON.parse(resolvedModel),
4113
4206
  value = reviveModel(
4114
- chunk._response,
4207
+ response,
4115
4208
  { "": rawModel },
4116
4209
  "",
4117
4210
  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);
4211
+ _chunk$reason
4212
+ ),
4213
+ resolveListeners = chunk.value;
4214
+ if (null !== resolveListeners)
4215
+ for (
4216
+ chunk.value = null, chunk.reason = null, rawModel = 0;
4217
+ rawModel < resolveListeners.length;
4218
+ rawModel++
4219
+ ) {
4220
+ var listener = resolveListeners[rawModel];
4221
+ "function" === typeof listener
4222
+ ? listener(value)
4223
+ : fulfillReference(response, listener, value);
4224
+ }
4225
+ if (null !== initializingHandler) {
4226
+ if (initializingHandler.errored) throw initializingHandler.reason;
4227
+ if (0 < initializingHandler.deps) {
4228
+ initializingHandler.value = value;
4229
+ initializingHandler.chunk = chunk;
4230
+ return;
4231
+ }
4131
4232
  }
4233
+ chunk.status = "fulfilled";
4234
+ chunk.value = value;
4235
+ chunk.reason = null;
4132
4236
  } catch (error) {
4133
4237
  (chunk.status = "rejected"), (chunk.reason = error);
4134
4238
  } finally {
4135
- (initializingChunk = prevChunk),
4136
- (initializingChunkBlockedModel = prevBlocked);
4239
+ initializingHandler = prevHandler;
4137
4240
  }
4138
4241
  }
4139
4242
  function reportGlobalError(response, error) {
4140
4243
  response._closed = !0;
4141
4244
  response._closedReason = error;
4142
4245
  response._chunks.forEach(function (chunk) {
4143
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
4246
+ "pending" === chunk.status
4247
+ ? triggerErrorOnChunk(response, chunk, error)
4248
+ : "fulfilled" === chunk.status &&
4249
+ null !== chunk.reason &&
4250
+ chunk.reason.error(error);
4144
4251
  });
4145
4252
  }
4146
4253
  function getChunk(response, id) {
@@ -4149,50 +4256,62 @@
4149
4256
  chunk ||
4150
4257
  ((chunk = response._formData.get(response._prefix + id)),
4151
4258
  (chunk =
4152
- null != chunk
4153
- ? new Chunk("resolved_model", chunk, id, response)
4259
+ "string" === typeof chunk
4260
+ ? new ReactPromise(
4261
+ "resolved_model",
4262
+ chunk,
4263
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
4264
+ )
4154
4265
  : response._closed
4155
- ? new Chunk("rejected", null, response._closedReason, response)
4156
- : createPendingChunk(response)),
4266
+ ? new ReactPromise("rejected", null, response._closedReason)
4267
+ : new ReactPromise("pending", null, null)),
4157
4268
  chunks.set(id, chunk));
4158
4269
  return chunk;
4159
4270
  }
4160
- function createModelResolver(
4161
- chunk,
4162
- parentObject,
4163
- key,
4164
- cyclic,
4165
- response,
4166
- map,
4167
- path
4168
- ) {
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);
4195
- };
4271
+ function fulfillReference(response, reference, value) {
4272
+ var handler = reference.handler,
4273
+ parentObject = reference.parentObject,
4274
+ key = reference.key,
4275
+ map = reference.map,
4276
+ path = reference.path;
4277
+ try {
4278
+ for (var i = 1; i < path.length; i++) {
4279
+ var name = path[i];
4280
+ if (
4281
+ "object" !== typeof value ||
4282
+ !hasOwnProperty.call(value, name) ||
4283
+ value instanceof Promise
4284
+ )
4285
+ throw Error("Invalid reference.");
4286
+ value = value[name];
4287
+ }
4288
+ var mappedValue = map(response, value, parentObject, key);
4289
+ parentObject[key] = mappedValue;
4290
+ "" === key && null === handler.value && (handler.value = mappedValue);
4291
+ } catch (error) {
4292
+ rejectReference(response, reference.handler, error);
4293
+ return;
4294
+ }
4295
+ handler.deps--;
4296
+ 0 === handler.deps &&
4297
+ ((reference = handler.chunk),
4298
+ null !== reference &&
4299
+ "blocked" === reference.status &&
4300
+ ((value = reference.value),
4301
+ (reference.status = "fulfilled"),
4302
+ (reference.value = handler.value),
4303
+ (reference.reason = handler.reason),
4304
+ null !== value && wakeChunk(response, value, handler.value)));
4305
+ }
4306
+ function rejectReference(response, handler, error) {
4307
+ handler.errored ||
4308
+ ((handler.errored = !0),
4309
+ (handler.value = null),
4310
+ (handler.reason = error),
4311
+ (handler = handler.chunk),
4312
+ null !== handler &&
4313
+ "blocked" === handler.status &&
4314
+ triggerErrorOnChunk(response, handler, error));
4196
4315
  }
4197
4316
  function getOutlinedModel(response, reference, parentObject, key, map) {
4198
4317
  reference = reference.split(":");
@@ -4204,29 +4323,61 @@
4204
4323
  }
4205
4324
  switch (id.status) {
4206
4325
  case "fulfilled":
4207
- parentObject = id.value;
4208
- for (key = 1; key < reference.length; key++)
4209
- parentObject = parentObject[reference[key]];
4210
- return map(response, parentObject);
4326
+ id = id.value;
4327
+ for (var i = 1; i < reference.length; i++) {
4328
+ var name = reference[i];
4329
+ if (
4330
+ "object" !== typeof id ||
4331
+ !hasOwnProperty.call(id, name) ||
4332
+ id instanceof Promise
4333
+ )
4334
+ throw Error("Invalid reference.");
4335
+ id = id[name];
4336
+ }
4337
+ return map(response, id, parentObject, key);
4211
4338
  case "pending":
4212
4339
  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)
4340
+ return (
4341
+ initializingHandler
4342
+ ? ((response = initializingHandler), response.deps++)
4343
+ : (response = initializingHandler =
4344
+ {
4345
+ chunk: null,
4346
+ value: null,
4347
+ reason: null,
4348
+ deps: 1,
4349
+ errored: !1
4350
+ }),
4351
+ (parentObject = {
4352
+ handler: response,
4353
+ parentObject: parentObject,
4354
+ key: key,
4355
+ map: map,
4356
+ path: reference
4357
+ }),
4358
+ null === id.value
4359
+ ? (id.value = [parentObject])
4360
+ : id.value.push(parentObject),
4361
+ null === id.reason
4362
+ ? (id.reason = [parentObject])
4363
+ : id.reason.push(parentObject),
4364
+ null
4226
4365
  );
4227
- return null;
4228
4366
  default:
4229
- throw id.reason;
4367
+ return (
4368
+ initializingHandler
4369
+ ? ((initializingHandler.errored = !0),
4370
+ (initializingHandler.value = null),
4371
+ (initializingHandler.reason = id.reason))
4372
+ : (initializingHandler = {
4373
+ chunk: null,
4374
+ value: null,
4375
+ reason: id.reason,
4376
+ deps: 0,
4377
+ errored: !0
4378
+ }),
4379
+ null
4380
+ );
4230
4381
  }
4231
4382
  }
4232
4383
  function createMap(response, model) {
@@ -4238,8 +4389,8 @@
4238
4389
  function extractIterator(response, model) {
4239
4390
  return model[Symbol.iterator]();
4240
4391
  }
4241
- function createModel(response, model) {
4242
- return model;
4392
+ function createModel(response, model, parentObject, key) {
4393
+ return "then" === key && "function" === typeof model ? null : model;
4243
4394
  }
4244
4395
  function parseTypedArray(
4245
4396
  response,
@@ -4250,44 +4401,77 @@
4250
4401
  parentKey
4251
4402
  ) {
4252
4403
  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;
4404
+ bytesPerElement = response._prefix + reference;
4405
+ if (response._chunks.has(reference))
4406
+ throw Error("Already initialized typed array.");
4407
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
4408
+ if (initializingHandler) {
4409
+ var handler = initializingHandler;
4410
+ handler.deps++;
4411
+ } else
4412
+ handler = initializingHandler = {
4413
+ chunk: null,
4414
+ value: null,
4415
+ reason: null,
4416
+ deps: 1,
4417
+ errored: !1
4418
+ };
4261
4419
  reference.then(
4262
- createModelResolver(
4263
- bytesPerElement,
4264
- parentObject,
4265
- parentKey,
4266
- !1,
4267
- response,
4268
- createModel,
4269
- []
4270
- ),
4271
- createModelReject(bytesPerElement)
4420
+ function (buffer) {
4421
+ buffer =
4422
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
4423
+ parentObject[parentKey] = buffer;
4424
+ "" === parentKey &&
4425
+ null === handler.value &&
4426
+ (handler.value = buffer);
4427
+ handler.deps--;
4428
+ if (
4429
+ 0 === handler.deps &&
4430
+ ((buffer = handler.chunk),
4431
+ null !== buffer && "blocked" === buffer.status)
4432
+ ) {
4433
+ var resolveListeners = buffer.value;
4434
+ buffer.status = "fulfilled";
4435
+ buffer.value = handler.value;
4436
+ buffer.reason = null;
4437
+ null !== resolveListeners &&
4438
+ wakeChunk(response, resolveListeners, handler.value);
4439
+ }
4440
+ },
4441
+ function (error) {
4442
+ if (!handler.errored) {
4443
+ handler.errored = !0;
4444
+ handler.value = null;
4445
+ handler.reason = error;
4446
+ var chunk = handler.chunk;
4447
+ null !== chunk &&
4448
+ "blocked" === chunk.status &&
4449
+ triggerErrorOnChunk(response, chunk, error);
4450
+ }
4451
+ }
4272
4452
  );
4273
4453
  return null;
4274
4454
  }
4275
4455
  function resolveStream(response, id, stream, controller) {
4276
4456
  var chunks = response._chunks;
4277
- stream = new Chunk("fulfilled", stream, controller, response);
4457
+ stream = new ReactPromise("fulfilled", stream, controller);
4278
4458
  chunks.set(id, stream);
4279
4459
  response = response._formData.getAll(response._prefix + id);
4280
4460
  for (id = 0; id < response.length; id++)
4281
4461
  (chunks = response[id]),
4282
- "C" === chunks[0]
4283
- ? controller.close(
4284
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
4285
- )
4286
- : controller.enqueueModel(chunks);
4462
+ "string" === typeof chunks &&
4463
+ ("C" === chunks[0]
4464
+ ? controller.close(
4465
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
4466
+ )
4467
+ : controller.enqueueModel(chunks));
4287
4468
  }
4288
4469
  function parseReadableStream(response, reference, type) {
4289
4470
  reference = parseInt(reference.slice(2), 16);
4290
- var controller = null;
4471
+ if (response._chunks.has(reference))
4472
+ throw Error("Already initialized stream.");
4473
+ var controller = null,
4474
+ closed = !1;
4291
4475
  type = new ReadableStream({
4292
4476
  type: type,
4293
4477
  start: function (c) {
@@ -4298,7 +4482,11 @@
4298
4482
  resolveStream(response, reference, type, {
4299
4483
  enqueueModel: function (json) {
4300
4484
  if (null === previousBlockedChunk) {
4301
- var chunk = new Chunk("resolved_model", json, -1, response);
4485
+ var chunk = new ReactPromise(
4486
+ "resolved_model",
4487
+ json,
4488
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
4489
+ );
4302
4490
  initializeModelChunk(chunk);
4303
4491
  "fulfilled" === chunk.status
4304
4492
  ? controller.enqueue(chunk.value)
@@ -4313,7 +4501,7 @@
4313
4501
  (previousBlockedChunk = chunk));
4314
4502
  } else {
4315
4503
  chunk = previousBlockedChunk;
4316
- var _chunk = createPendingChunk(response);
4504
+ var _chunk = new ReactPromise("pending", null, null);
4317
4505
  _chunk.then(
4318
4506
  function (v) {
4319
4507
  return controller.enqueue(v);
@@ -4325,29 +4513,33 @@
4325
4513
  previousBlockedChunk = _chunk;
4326
4514
  chunk.then(function () {
4327
4515
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
4328
- resolveModelChunk(_chunk, json, -1);
4516
+ resolveModelChunk(response, _chunk, json, -1);
4329
4517
  });
4330
4518
  }
4331
4519
  },
4332
4520
  close: function () {
4333
- if (null === previousBlockedChunk) controller.close();
4334
- else {
4335
- var blockedChunk = previousBlockedChunk;
4336
- previousBlockedChunk = null;
4337
- blockedChunk.then(function () {
4338
- return controller.close();
4339
- });
4340
- }
4521
+ if (!closed)
4522
+ if (((closed = !0), null === previousBlockedChunk))
4523
+ controller.close();
4524
+ else {
4525
+ var blockedChunk = previousBlockedChunk;
4526
+ previousBlockedChunk = null;
4527
+ blockedChunk.then(function () {
4528
+ return controller.close();
4529
+ });
4530
+ }
4341
4531
  },
4342
4532
  error: function (error) {
4343
- if (null === previousBlockedChunk) controller.error(error);
4344
- else {
4345
- var blockedChunk = previousBlockedChunk;
4346
- previousBlockedChunk = null;
4347
- blockedChunk.then(function () {
4348
- return controller.error(error);
4349
- });
4350
- }
4533
+ if (!closed)
4534
+ if (((closed = !0), null === previousBlockedChunk))
4535
+ controller.error(error);
4536
+ else {
4537
+ var blockedChunk = previousBlockedChunk;
4538
+ previousBlockedChunk = null;
4539
+ blockedChunk.then(function () {
4540
+ return controller.error(error);
4541
+ });
4542
+ }
4351
4543
  }
4352
4544
  });
4353
4545
  return type;
@@ -4362,6 +4554,8 @@
4362
4554
  }
4363
4555
  function parseAsyncIterable(response, reference, iterator) {
4364
4556
  reference = parseInt(reference.slice(2), 16);
4557
+ if (response._chunks.has(reference))
4558
+ throw Error("Already initialized stream.");
4365
4559
  var buffer = [],
4366
4560
  closed = !1,
4367
4561
  nextWriteIndex = 0,
@@ -4374,13 +4568,12 @@
4374
4568
  );
4375
4569
  if (nextReadIndex === buffer.length) {
4376
4570
  if (closed)
4377
- return new Chunk(
4571
+ return new ReactPromise(
4378
4572
  "fulfilled",
4379
4573
  { done: !0, value: void 0 },
4380
- null,
4381
- response
4574
+ null
4382
4575
  );
4383
- buffer[nextReadIndex] = createPendingChunk(response);
4576
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
4384
4577
  }
4385
4578
  return buffer[nextReadIndex++];
4386
4579
  });
@@ -4394,34 +4587,55 @@
4394
4587
  value,
4395
4588
  !1
4396
4589
  ))
4397
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
4590
+ : resolveIteratorResultChunk(
4591
+ response,
4592
+ buffer[nextWriteIndex],
4593
+ value,
4594
+ !1
4595
+ );
4398
4596
  nextWriteIndex++;
4399
4597
  },
4400
4598
  close: function (value) {
4401
- closed = !0;
4402
- nextWriteIndex === buffer.length
4403
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
4599
+ if (!closed)
4600
+ for (
4601
+ closed = !0,
4602
+ nextWriteIndex === buffer.length
4603
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
4604
+ response,
4605
+ value,
4606
+ !0
4607
+ ))
4608
+ : resolveIteratorResultChunk(
4609
+ response,
4610
+ buffer[nextWriteIndex],
4611
+ value,
4612
+ !0
4613
+ ),
4614
+ nextWriteIndex++;
4615
+ nextWriteIndex < buffer.length;
4616
+
4617
+ )
4618
+ resolveIteratorResultChunk(
4404
4619
  response,
4405
- value,
4620
+ buffer[nextWriteIndex++],
4621
+ '"$undefined"',
4406
4622
  !0
4407
- ))
4408
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
4409
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
4410
- resolveIteratorResultChunk(
4411
- buffer[nextWriteIndex++],
4412
- '"$undefined"',
4413
- !0
4414
- );
4623
+ );
4415
4624
  },
4416
4625
  error: function (error) {
4417
- closed = !0;
4418
- for (
4419
- nextWriteIndex === buffer.length &&
4420
- (buffer[nextWriteIndex] = createPendingChunk(response));
4421
- nextWriteIndex < buffer.length;
4626
+ if (!closed)
4627
+ for (
4628
+ closed = !0,
4629
+ nextWriteIndex === buffer.length &&
4630
+ (buffer[nextWriteIndex] = new ReactPromise(
4631
+ "pending",
4632
+ null,
4633
+ null
4634
+ ));
4635
+ nextWriteIndex < buffer.length;
4422
4636
 
4423
- )
4424
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
4637
+ )
4638
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
4425
4639
  }
4426
4640
  });
4427
4641
  return iterator;
@@ -4435,24 +4649,10 @@
4435
4649
  return (
4436
4650
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
4437
4651
  );
4438
- case "F":
4652
+ case "h":
4439
4653
  return (
4440
4654
  (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
- )
4655
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
4456
4656
  );
4457
4657
  case "T":
4458
4658
  if (
@@ -4730,6 +4930,13 @@
4730
4930
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
4731
4931
  FunctionBind = Function.prototype.bind,
4732
4932
  ArraySlice = Array.prototype.slice,
4933
+ serverReferenceToString = {
4934
+ value: function () {
4935
+ return "function () { [omitted code] }";
4936
+ },
4937
+ configurable: !0,
4938
+ writable: !0
4939
+ },
4733
4940
  PROMISE_PROTOTYPE = Promise.prototype,
4734
4941
  deepProxyHandlers = {
4735
4942
  get: function (target, name) {
@@ -5122,33 +5329,48 @@
5122
5329
  debugNoOutline = null,
5123
5330
  emptyRoot = {},
5124
5331
  decoderOptions = { stream: !0 },
5125
- chunkCache = new Map();
5126
- Chunk.prototype = Object.create(Promise.prototype);
5127
- Chunk.prototype.then = function (resolve, reject) {
5332
+ chunkCache = new Map(),
5333
+ RESPONSE_SYMBOL = Symbol();
5334
+ ReactPromise.prototype = Object.create(Promise.prototype);
5335
+ ReactPromise.prototype.then = function (resolve, reject) {
5128
5336
  switch (this.status) {
5129
5337
  case "resolved_model":
5130
5338
  initializeModelChunk(this);
5131
5339
  }
5132
5340
  switch (this.status) {
5133
5341
  case "fulfilled":
5134
- resolve(this.value);
5342
+ if ("function" === typeof resolve) {
5343
+ for (
5344
+ var inspectedValue = this.value;
5345
+ inspectedValue instanceof ReactPromise;
5346
+
5347
+ ) {
5348
+ if (inspectedValue === this) {
5349
+ "function" === typeof reject &&
5350
+ reject(Error("Cannot have cyclic thenables."));
5351
+ return;
5352
+ }
5353
+ if ("fulfilled" === inspectedValue.status)
5354
+ inspectedValue = inspectedValue.value;
5355
+ else break;
5356
+ }
5357
+ resolve(this.value);
5358
+ }
5135
5359
  break;
5136
5360
  case "pending":
5137
5361
  case "blocked":
5138
- case "cyclic":
5139
- resolve &&
5362
+ "function" === typeof resolve &&
5140
5363
  (null === this.value && (this.value = []),
5141
5364
  this.value.push(resolve));
5142
- reject &&
5365
+ "function" === typeof reject &&
5143
5366
  (null === this.reason && (this.reason = []),
5144
5367
  this.reason.push(reject));
5145
5368
  break;
5146
5369
  default:
5147
- reject(this.reason);
5370
+ "function" === typeof reject && reject(this.reason);
5148
5371
  }
5149
5372
  };
5150
- var initializingChunk = null,
5151
- initializingChunkBlockedModel = null;
5373
+ var initializingHandler = null;
5152
5374
  exports.createClientModuleProxy = function (moduleId) {
5153
5375
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
5154
5376
  return new Proxy(moduleId, proxyHandlers$1);
@@ -5228,11 +5450,12 @@
5228
5450
  var response = response$jscomp$0;
5229
5451
  response._formData.append(name, entry);
5230
5452
  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));
5453
+ if (name.startsWith(prefix)) {
5454
+ var chunks = response._chunks;
5455
+ name = +name.slice(prefix.length);
5456
+ (chunks = chunks.get(name)) &&
5457
+ resolveModelChunk(response, chunks, entry, name);
5458
+ }
5236
5459
  } else response$jscomp$0._formData.append(name, entry);
5237
5460
  iterator.next().then(progress, error);
5238
5461
  }
@@ -5315,7 +5538,8 @@
5315
5538
  },
5316
5539
  $$bound: { value: null, configurable: !0 },
5317
5540
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
5318
- bind: { value: bind, configurable: !0 }
5541
+ bind: { value: bind, configurable: !0 },
5542
+ toString: serverReferenceToString
5319
5543
  });
5320
5544
  };
5321
5545
  exports.renderToReadableStream = function (model, webpackMap, options) {