react-server-dom-webpack 19.1.2 → 19.1.4

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.
@@ -1512,7 +1512,7 @@
1512
1512
  function serializeServerReference(request, serverReference) {
1513
1513
  var writtenServerReferences = request.writtenServerReferences,
1514
1514
  existingId = writtenServerReferences.get(serverReference);
1515
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
1515
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
1516
1516
  existingId = serverReference.$$bound;
1517
1517
  existingId = null === existingId ? null : Promise.resolve(existingId);
1518
1518
  var id = serverReference.$$id,
@@ -1536,7 +1536,7 @@
1536
1536
  : { id: id, bound: existingId };
1537
1537
  request = outlineModel(request, existingId);
1538
1538
  writtenServerReferences.set(serverReference, request);
1539
- return "$F" + request.toString(16);
1539
+ return "$h" + request.toString(16);
1540
1540
  }
1541
1541
  function serializeLargeTextString(request, text) {
1542
1542
  request.pendingChunks++;
@@ -2892,7 +2892,7 @@
2892
2892
  }
2893
2893
  function loadServerReference$1(response, metaData, parentObject, key) {
2894
2894
  var id = metaData.id;
2895
- if ("string" !== typeof id) return null;
2895
+ if ("string" !== typeof id || "then" === key) return null;
2896
2896
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2897
2897
  id = metaData.bound;
2898
2898
  var promise = preloadModule(serverReference);
@@ -2937,6 +2937,7 @@
2937
2937
  ((promiseValue = resolvedValue.value),
2938
2938
  (resolvedValue.status = "fulfilled"),
2939
2939
  (resolvedValue.value = handler.value),
2940
+ (resolvedValue.reason = null),
2940
2941
  null !== promiseValue &&
2941
2942
  wakeChunk(response, promiseValue, handler.value)));
2942
2943
  },
@@ -3040,6 +3041,7 @@
3040
3041
  }
3041
3042
  chunk.status = "fulfilled";
3042
3043
  chunk.value = value;
3044
+ chunk.reason = null;
3043
3045
  } catch (error) {
3044
3046
  (chunk.status = "rejected"), (chunk.reason = error);
3045
3047
  } finally {
@@ -3050,8 +3052,11 @@
3050
3052
  response._closed = !0;
3051
3053
  response._closedReason = error;
3052
3054
  response._chunks.forEach(function (chunk) {
3053
- "pending" === chunk.status &&
3054
- triggerErrorOnChunk(response, chunk, error);
3055
+ "pending" === chunk.status
3056
+ ? triggerErrorOnChunk(response, chunk, error)
3057
+ : "fulfilled" === chunk.status &&
3058
+ null !== chunk.reason &&
3059
+ chunk.reason.error(error);
3055
3060
  });
3056
3061
  }
3057
3062
  function getChunk(response, id) {
@@ -3073,58 +3078,39 @@
3073
3078
  return chunk;
3074
3079
  }
3075
3080
  function fulfillReference(response, reference, value) {
3076
- for (
3077
- var handler = reference.handler,
3078
- parentObject = reference.parentObject,
3079
- key = reference.key,
3080
- map = reference.map,
3081
- path = reference.path,
3082
- i = 1;
3083
- i < path.length;
3084
- i++
3085
- ) {
3086
- for (; value instanceof ReactPromise; ) {
3087
- switch (value.status) {
3088
- case "resolved_model":
3089
- initializeModelChunk(value);
3090
- }
3091
- switch (value.status) {
3092
- case "fulfilled":
3093
- value = value.value;
3094
- continue;
3095
- case "blocked":
3096
- case "pending":
3097
- path.splice(0, i - 1);
3098
- null === value.value
3099
- ? (value.value = [reference])
3100
- : value.value.push(reference);
3101
- null === value.reason
3102
- ? (value.reason = [reference])
3103
- : value.reason.push(reference);
3104
- return;
3105
- default:
3106
- rejectReference(response, reference.handler, value.reason);
3107
- return;
3108
- }
3081
+ var handler = reference.handler,
3082
+ parentObject = reference.parentObject,
3083
+ key = reference.key,
3084
+ map = reference.map,
3085
+ path = reference.path;
3086
+ try {
3087
+ for (var i = 1; i < path.length; i++) {
3088
+ var name = path[i];
3089
+ if (
3090
+ "object" !== typeof value ||
3091
+ !hasOwnProperty.call(value, name) ||
3092
+ value instanceof Promise
3093
+ )
3094
+ throw Error("Invalid reference.");
3095
+ value = value[name];
3109
3096
  }
3110
- var name = path[i];
3111
- "object" === typeof value &&
3112
- hasOwnProperty.call(value, name) &&
3113
- (value = value[name]);
3097
+ var mappedValue = map(response, value, parentObject, key);
3098
+ parentObject[key] = mappedValue;
3099
+ "" === key && null === handler.value && (handler.value = mappedValue);
3100
+ } catch (error) {
3101
+ rejectReference(response, reference.handler, error);
3102
+ return;
3114
3103
  }
3115
- reference = map(response, value, parentObject, key);
3116
- parentObject[key] = reference;
3117
- "" === key && null === handler.value && (handler.value = reference);
3118
3104
  handler.deps--;
3119
3105
  0 === handler.deps &&
3120
- ((parentObject = handler.chunk),
3121
- null !== parentObject &&
3122
- "blocked" === parentObject.status &&
3123
- ((key = parentObject.value),
3124
- (parentObject.status = "fulfilled"),
3125
- (parentObject.value = handler.value),
3126
- (parentObject.reason = handler.reason),
3127
- null !== key && wakeChunk(response, key, handler.value)));
3106
+ ((reference = handler.chunk),
3107
+ null !== reference &&
3108
+ "blocked" === reference.status &&
3109
+ ((value = reference.value),
3110
+ (reference.status = "fulfilled"),
3111
+ (reference.value = handler.value),
3112
+ (reference.reason = handler.reason),
3113
+ null !== value && wakeChunk(response, value, handler.value)));
3128
3114
  }
3129
3115
  function rejectReference(response, handler, error) {
3130
3116
  handler.errored ||
@@ -3136,33 +3122,6 @@
3136
3122
  "blocked" === handler.status &&
3137
3123
  triggerErrorOnChunk(response, handler, error));
3138
3124
  }
3139
- function waitForReference(
3140
- referencedChunk,
3141
- parentObject,
3142
- key,
3143
- response,
3144
- map,
3145
- path
3146
- ) {
3147
- initializingHandler
3148
- ? ((response = initializingHandler), response.deps++)
3149
- : (response = initializingHandler =
3150
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
3151
- parentObject = {
3152
- handler: response,
3153
- parentObject: parentObject,
3154
- key: key,
3155
- map: map,
3156
- path: path
3157
- };
3158
- null === referencedChunk.value
3159
- ? (referencedChunk.value = [parentObject])
3160
- : referencedChunk.value.push(parentObject);
3161
- null === referencedChunk.reason
3162
- ? (referencedChunk.reason = [parentObject])
3163
- : referencedChunk.reason.push(parentObject);
3164
- return null;
3165
- }
3166
3125
  function getOutlinedModel(response, reference, parentObject, key, map) {
3167
3126
  reference = reference.split(":");
3168
3127
  var id = parseInt(reference[0], 16);
@@ -3173,59 +3132,45 @@
3173
3132
  }
3174
3133
  switch (id.status) {
3175
3134
  case "fulfilled":
3176
- var value = id.value;
3177
- for (id = 1; id < reference.length; id++) {
3178
- for (; value instanceof ReactPromise; ) {
3179
- switch (value.status) {
3180
- case "resolved_model":
3181
- initializeModelChunk(value);
3182
- }
3183
- switch (value.status) {
3184
- case "fulfilled":
3185
- value = value.value;
3186
- break;
3187
- case "blocked":
3188
- case "pending":
3189
- return waitForReference(
3190
- value,
3191
- parentObject,
3192
- key,
3193
- response,
3194
- map,
3195
- reference.slice(id - 1)
3196
- );
3197
- default:
3198
- return (
3199
- initializingHandler
3200
- ? ((initializingHandler.errored = !0),
3201
- (initializingHandler.value = null),
3202
- (initializingHandler.reason = value.reason))
3203
- : (initializingHandler = {
3204
- chunk: null,
3205
- value: null,
3206
- reason: value.reason,
3207
- deps: 0,
3208
- errored: !0
3209
- }),
3210
- null
3211
- );
3212
- }
3213
- }
3214
- var name = reference[id];
3215
- "object" === typeof value &&
3216
- hasOwnProperty.call(value, name) &&
3217
- (value = value[name]);
3135
+ id = id.value;
3136
+ for (var i = 1; i < reference.length; i++) {
3137
+ var name = reference[i];
3138
+ if (
3139
+ "object" !== typeof id ||
3140
+ !hasOwnProperty.call(id, name) ||
3141
+ id instanceof Promise
3142
+ )
3143
+ throw Error("Invalid reference.");
3144
+ id = id[name];
3218
3145
  }
3219
- return map(response, value, parentObject, key);
3146
+ return map(response, id, parentObject, key);
3220
3147
  case "pending":
3221
3148
  case "blocked":
3222
- return waitForReference(
3223
- id,
3224
- parentObject,
3225
- key,
3226
- response,
3227
- map,
3228
- reference
3149
+ return (
3150
+ initializingHandler
3151
+ ? ((response = initializingHandler), response.deps++)
3152
+ : (response = initializingHandler =
3153
+ {
3154
+ chunk: null,
3155
+ value: null,
3156
+ reason: null,
3157
+ deps: 1,
3158
+ errored: !1
3159
+ }),
3160
+ (parentObject = {
3161
+ handler: response,
3162
+ parentObject: parentObject,
3163
+ key: key,
3164
+ map: map,
3165
+ path: reference
3166
+ }),
3167
+ null === id.value
3168
+ ? (id.value = [parentObject])
3169
+ : id.value.push(parentObject),
3170
+ null === id.reason
3171
+ ? (id.reason = [parentObject])
3172
+ : id.reason.push(parentObject),
3173
+ null
3229
3174
  );
3230
3175
  default:
3231
3176
  return (
@@ -3253,8 +3198,8 @@
3253
3198
  function extractIterator(response, model) {
3254
3199
  return model[Symbol.iterator]();
3255
3200
  }
3256
- function createModel(response, model) {
3257
- return model;
3201
+ function createModel(response, model, parentObject, key) {
3202
+ return "then" === key && "function" === typeof model ? null : model;
3258
3203
  }
3259
3204
  function parseTypedArray(
3260
3205
  response,
@@ -3265,9 +3210,10 @@
3265
3210
  parentKey
3266
3211
  ) {
3267
3212
  reference = parseInt(reference.slice(2), 16);
3268
- reference = response._formData
3269
- .get(response._prefix + reference)
3270
- .arrayBuffer();
3213
+ bytesPerElement = response._prefix + reference;
3214
+ if (response._chunks.has(reference))
3215
+ throw Error("Already initialized typed array.");
3216
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
3271
3217
  if (initializingHandler) {
3272
3218
  var handler = initializingHandler;
3273
3219
  handler.deps++;
@@ -3296,6 +3242,7 @@
3296
3242
  var resolveListeners = buffer.value;
3297
3243
  buffer.status = "fulfilled";
3298
3244
  buffer.value = handler.value;
3245
+ buffer.reason = null;
3299
3246
  null !== resolveListeners &&
3300
3247
  wakeChunk(response, resolveListeners, handler.value);
3301
3248
  }
@@ -3330,7 +3277,10 @@
3330
3277
  }
3331
3278
  function parseReadableStream(response, reference, type) {
3332
3279
  reference = parseInt(reference.slice(2), 16);
3333
- var controller = null;
3280
+ if (response._chunks.has(reference))
3281
+ throw Error("Already initialized stream.");
3282
+ var controller = null,
3283
+ closed = !1;
3334
3284
  type = new ReadableStream({
3335
3285
  type: type,
3336
3286
  start: function (c) {
@@ -3377,24 +3327,28 @@
3377
3327
  }
3378
3328
  },
3379
3329
  close: function () {
3380
- if (null === previousBlockedChunk) controller.close();
3381
- else {
3382
- var blockedChunk = previousBlockedChunk;
3383
- previousBlockedChunk = null;
3384
- blockedChunk.then(function () {
3385
- return controller.close();
3386
- });
3387
- }
3330
+ if (!closed)
3331
+ if (((closed = !0), null === previousBlockedChunk))
3332
+ controller.close();
3333
+ else {
3334
+ var blockedChunk = previousBlockedChunk;
3335
+ previousBlockedChunk = null;
3336
+ blockedChunk.then(function () {
3337
+ return controller.close();
3338
+ });
3339
+ }
3388
3340
  },
3389
3341
  error: function (error) {
3390
- if (null === previousBlockedChunk) controller.error(error);
3391
- else {
3392
- var blockedChunk = previousBlockedChunk;
3393
- previousBlockedChunk = null;
3394
- blockedChunk.then(function () {
3395
- return controller.error(error);
3396
- });
3397
- }
3342
+ if (!closed)
3343
+ if (((closed = !0), null === previousBlockedChunk))
3344
+ controller.error(error);
3345
+ else {
3346
+ var blockedChunk = previousBlockedChunk;
3347
+ previousBlockedChunk = null;
3348
+ blockedChunk.then(function () {
3349
+ return controller.error(error);
3350
+ });
3351
+ }
3398
3352
  }
3399
3353
  });
3400
3354
  return type;
@@ -3409,6 +3363,8 @@
3409
3363
  }
3410
3364
  function parseAsyncIterable(response, reference, iterator) {
3411
3365
  reference = parseInt(reference.slice(2), 16);
3366
+ if (response._chunks.has(reference))
3367
+ throw Error("Already initialized stream.");
3412
3368
  var buffer = [],
3413
3369
  closed = !1,
3414
3370
  nextWriteIndex = 0,
@@ -3449,36 +3405,46 @@
3449
3405
  nextWriteIndex++;
3450
3406
  },
3451
3407
  close: function (value) {
3452
- closed = !0;
3453
- nextWriteIndex === buffer.length
3454
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3455
- response,
3456
- value,
3457
- !0
3458
- ))
3459
- : resolveIteratorResultChunk(
3408
+ if (!closed)
3409
+ for (
3410
+ closed = !0,
3411
+ nextWriteIndex === buffer.length
3412
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3413
+ response,
3414
+ value,
3415
+ !0
3416
+ ))
3417
+ : resolveIteratorResultChunk(
3418
+ response,
3419
+ buffer[nextWriteIndex],
3420
+ value,
3421
+ !0
3422
+ ),
3423
+ nextWriteIndex++;
3424
+ nextWriteIndex < buffer.length;
3425
+
3426
+ )
3427
+ resolveIteratorResultChunk(
3460
3428
  response,
3461
- buffer[nextWriteIndex],
3462
- value,
3429
+ buffer[nextWriteIndex++],
3430
+ '"$undefined"',
3463
3431
  !0
3464
3432
  );
3465
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3466
- resolveIteratorResultChunk(
3467
- response,
3468
- buffer[nextWriteIndex++],
3469
- '"$undefined"',
3470
- !0
3471
- );
3472
3433
  },
3473
3434
  error: function (error) {
3474
- closed = !0;
3475
- for (
3476
- nextWriteIndex === buffer.length &&
3477
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
3478
- nextWriteIndex < buffer.length;
3435
+ if (!closed)
3436
+ for (
3437
+ closed = !0,
3438
+ nextWriteIndex === buffer.length &&
3439
+ (buffer[nextWriteIndex] = new ReactPromise(
3440
+ "pending",
3441
+ null,
3442
+ null
3443
+ ));
3444
+ nextWriteIndex < buffer.length;
3479
3445
 
3480
- )
3481
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3446
+ )
3447
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3482
3448
  }
3483
3449
  });
3484
3450
  return iterator;
@@ -3492,7 +3458,7 @@
3492
3458
  return (
3493
3459
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3494
3460
  );
3495
- case "F":
3461
+ case "h":
3496
3462
  return (
3497
3463
  (value = value.slice(2)),
3498
3464
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -3678,6 +3644,13 @@
3678
3644
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
3679
3645
  FunctionBind = Function.prototype.bind,
3680
3646
  ArraySlice = Array.prototype.slice,
3647
+ serverReferenceToString = {
3648
+ value: function () {
3649
+ return "function () { [omitted code] }";
3650
+ },
3651
+ configurable: !0,
3652
+ writable: !0
3653
+ },
3681
3654
  PROMISE_PROTOTYPE = Promise.prototype,
3682
3655
  deepProxyHandlers = {
3683
3656
  get: function (target, name) {
@@ -4121,7 +4094,24 @@
4121
4094
  }
4122
4095
  switch (this.status) {
4123
4096
  case "fulfilled":
4124
- "function" === typeof resolve && resolve(this.value);
4097
+ if ("function" === typeof resolve) {
4098
+ for (
4099
+ var inspectedValue = this.value, cycleProtection = 0;
4100
+ inspectedValue instanceof ReactPromise;
4101
+
4102
+ ) {
4103
+ cycleProtection++;
4104
+ if (inspectedValue === this || 1e3 < cycleProtection) {
4105
+ "function" === typeof reject &&
4106
+ reject(Error("Cannot have cyclic thenables."));
4107
+ return;
4108
+ }
4109
+ if ("fulfilled" === inspectedValue.status)
4110
+ inspectedValue = inspectedValue.value;
4111
+ else break;
4112
+ }
4113
+ resolve(this.value);
4114
+ }
4125
4115
  break;
4126
4116
  case "pending":
4127
4117
  case "blocked":
@@ -4221,7 +4211,8 @@
4221
4211
  },
4222
4212
  $$bound: { value: null, configurable: !0 },
4223
4213
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
4224
- bind: { value: bind, configurable: !0 }
4214
+ bind: { value: bind, configurable: !0 },
4215
+ toString: serverReferenceToString
4225
4216
  });
4226
4217
  };
4227
4218
  exports.renderToReadableStream = function (model, webpackMap, options) {