react-server-dom-parcel 19.1.2 → 19.1.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.
@@ -1437,7 +1437,7 @@
1437
1437
  function serializeServerReference(request, serverReference) {
1438
1438
  var writtenServerReferences = request.writtenServerReferences,
1439
1439
  existingId = writtenServerReferences.get(serverReference);
1440
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
1440
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
1441
1441
  existingId = serverReference.$$bound;
1442
1442
  existingId = null === existingId ? null : Promise.resolve(existingId);
1443
1443
  var id = serverReference.$$id,
@@ -1461,7 +1461,7 @@
1461
1461
  : { id: id, bound: existingId };
1462
1462
  request = outlineModel(request, existingId);
1463
1463
  writtenServerReferences.set(serverReference, request);
1464
- return "$F" + request.toString(16);
1464
+ return "$h" + request.toString(16);
1465
1465
  }
1466
1466
  function serializeLargeTextString(request, text) {
1467
1467
  request.pendingChunks++;
@@ -2737,7 +2737,7 @@
2737
2737
  }
2738
2738
  function loadServerReference$1(response, metaData, parentObject, key) {
2739
2739
  var id = metaData.id;
2740
- if ("string" !== typeof id) return null;
2740
+ if ("string" !== typeof id || "then" === key) return null;
2741
2741
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2742
2742
  id = metaData.bound;
2743
2743
  var promise = preloadModule$1(serverReference);
@@ -2782,6 +2782,7 @@
2782
2782
  ((promiseValue = resolvedValue.value),
2783
2783
  (resolvedValue.status = "fulfilled"),
2784
2784
  (resolvedValue.value = handler.value),
2785
+ (resolvedValue.reason = null),
2785
2786
  null !== promiseValue &&
2786
2787
  wakeChunk(response, promiseValue, handler.value)));
2787
2788
  },
@@ -2885,6 +2886,7 @@
2885
2886
  }
2886
2887
  chunk.status = "fulfilled";
2887
2888
  chunk.value = value;
2889
+ chunk.reason = null;
2888
2890
  } catch (error) {
2889
2891
  (chunk.status = "rejected"), (chunk.reason = error);
2890
2892
  } finally {
@@ -2895,8 +2897,11 @@
2895
2897
  response._closed = !0;
2896
2898
  response._closedReason = error;
2897
2899
  response._chunks.forEach(function (chunk) {
2898
- "pending" === chunk.status &&
2899
- triggerErrorOnChunk(response, chunk, error);
2900
+ "pending" === chunk.status
2901
+ ? triggerErrorOnChunk(response, chunk, error)
2902
+ : "fulfilled" === chunk.status &&
2903
+ null !== chunk.reason &&
2904
+ chunk.reason.error(error);
2900
2905
  });
2901
2906
  }
2902
2907
  function getChunk(response, id) {
@@ -2918,58 +2923,39 @@
2918
2923
  return chunk;
2919
2924
  }
2920
2925
  function fulfillReference(response, reference, value) {
2921
- for (
2922
- var handler = reference.handler,
2923
- parentObject = reference.parentObject,
2924
- key = reference.key,
2925
- map = reference.map,
2926
- path = reference.path,
2927
- i = 1;
2928
- i < path.length;
2929
- i++
2930
- ) {
2931
- for (; value instanceof ReactPromise; ) {
2932
- switch (value.status) {
2933
- case "resolved_model":
2934
- initializeModelChunk(value);
2935
- }
2936
- switch (value.status) {
2937
- case "fulfilled":
2938
- value = value.value;
2939
- continue;
2940
- case "blocked":
2941
- case "pending":
2942
- path.splice(0, i - 1);
2943
- null === value.value
2944
- ? (value.value = [reference])
2945
- : value.value.push(reference);
2946
- null === value.reason
2947
- ? (value.reason = [reference])
2948
- : value.reason.push(reference);
2949
- return;
2950
- default:
2951
- rejectReference(response, reference.handler, value.reason);
2952
- return;
2953
- }
2926
+ var handler = reference.handler,
2927
+ parentObject = reference.parentObject,
2928
+ key = reference.key,
2929
+ map = reference.map,
2930
+ path = reference.path;
2931
+ try {
2932
+ for (var i = 1; i < path.length; i++) {
2933
+ var name = path[i];
2934
+ if (
2935
+ "object" !== typeof value ||
2936
+ !hasOwnProperty.call(value, name) ||
2937
+ value instanceof Promise
2938
+ )
2939
+ throw Error("Invalid reference.");
2940
+ value = value[name];
2954
2941
  }
2955
- var name = path[i];
2956
- "object" === typeof value &&
2957
- hasOwnProperty.call(value, name) &&
2958
- (value = value[name]);
2942
+ var mappedValue = map(response, value, parentObject, key);
2943
+ parentObject[key] = mappedValue;
2944
+ "" === key && null === handler.value && (handler.value = mappedValue);
2945
+ } catch (error) {
2946
+ rejectReference(response, reference.handler, error);
2947
+ return;
2959
2948
  }
2960
- reference = map(response, value, parentObject, key);
2961
- parentObject[key] = reference;
2962
- "" === key && null === handler.value && (handler.value = reference);
2963
2949
  handler.deps--;
2964
2950
  0 === handler.deps &&
2965
- ((parentObject = handler.chunk),
2966
- null !== parentObject &&
2967
- "blocked" === parentObject.status &&
2968
- ((key = parentObject.value),
2969
- (parentObject.status = "fulfilled"),
2970
- (parentObject.value = handler.value),
2971
- (parentObject.reason = handler.reason),
2972
- null !== key && wakeChunk(response, key, handler.value)));
2951
+ ((reference = handler.chunk),
2952
+ null !== reference &&
2953
+ "blocked" === reference.status &&
2954
+ ((value = reference.value),
2955
+ (reference.status = "fulfilled"),
2956
+ (reference.value = handler.value),
2957
+ (reference.reason = handler.reason),
2958
+ null !== value && wakeChunk(response, value, handler.value)));
2973
2959
  }
2974
2960
  function rejectReference(response, handler, error) {
2975
2961
  handler.errored ||
@@ -2981,33 +2967,6 @@
2981
2967
  "blocked" === handler.status &&
2982
2968
  triggerErrorOnChunk(response, handler, error));
2983
2969
  }
2984
- function waitForReference(
2985
- referencedChunk,
2986
- parentObject,
2987
- key,
2988
- response,
2989
- map,
2990
- path
2991
- ) {
2992
- initializingHandler
2993
- ? ((response = initializingHandler), response.deps++)
2994
- : (response = initializingHandler =
2995
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2996
- parentObject = {
2997
- handler: response,
2998
- parentObject: parentObject,
2999
- key: key,
3000
- map: map,
3001
- path: path
3002
- };
3003
- null === referencedChunk.value
3004
- ? (referencedChunk.value = [parentObject])
3005
- : referencedChunk.value.push(parentObject);
3006
- null === referencedChunk.reason
3007
- ? (referencedChunk.reason = [parentObject])
3008
- : referencedChunk.reason.push(parentObject);
3009
- return null;
3010
- }
3011
2970
  function getOutlinedModel(response, reference, parentObject, key, map) {
3012
2971
  reference = reference.split(":");
3013
2972
  var id = parseInt(reference[0], 16);
@@ -3018,59 +2977,45 @@
3018
2977
  }
3019
2978
  switch (id.status) {
3020
2979
  case "fulfilled":
3021
- var value = id.value;
3022
- for (id = 1; id < reference.length; id++) {
3023
- for (; value instanceof ReactPromise; ) {
3024
- switch (value.status) {
3025
- case "resolved_model":
3026
- initializeModelChunk(value);
3027
- }
3028
- switch (value.status) {
3029
- case "fulfilled":
3030
- value = value.value;
3031
- break;
3032
- case "blocked":
3033
- case "pending":
3034
- return waitForReference(
3035
- value,
3036
- parentObject,
3037
- key,
3038
- response,
3039
- map,
3040
- reference.slice(id - 1)
3041
- );
3042
- default:
3043
- return (
3044
- initializingHandler
3045
- ? ((initializingHandler.errored = !0),
3046
- (initializingHandler.value = null),
3047
- (initializingHandler.reason = value.reason))
3048
- : (initializingHandler = {
3049
- chunk: null,
3050
- value: null,
3051
- reason: value.reason,
3052
- deps: 0,
3053
- errored: !0
3054
- }),
3055
- null
3056
- );
3057
- }
3058
- }
3059
- var name = reference[id];
3060
- "object" === typeof value &&
3061
- hasOwnProperty.call(value, name) &&
3062
- (value = value[name]);
2980
+ id = id.value;
2981
+ for (var i = 1; i < reference.length; i++) {
2982
+ var name = reference[i];
2983
+ if (
2984
+ "object" !== typeof id ||
2985
+ !hasOwnProperty.call(id, name) ||
2986
+ id instanceof Promise
2987
+ )
2988
+ throw Error("Invalid reference.");
2989
+ id = id[name];
3063
2990
  }
3064
- return map(response, value, parentObject, key);
2991
+ return map(response, id, parentObject, key);
3065
2992
  case "pending":
3066
2993
  case "blocked":
3067
- return waitForReference(
3068
- id,
3069
- parentObject,
3070
- key,
3071
- response,
3072
- map,
3073
- reference
2994
+ return (
2995
+ initializingHandler
2996
+ ? ((response = initializingHandler), response.deps++)
2997
+ : (response = initializingHandler =
2998
+ {
2999
+ chunk: null,
3000
+ value: null,
3001
+ reason: null,
3002
+ deps: 1,
3003
+ errored: !1
3004
+ }),
3005
+ (parentObject = {
3006
+ handler: response,
3007
+ parentObject: parentObject,
3008
+ key: key,
3009
+ map: map,
3010
+ path: reference
3011
+ }),
3012
+ null === id.value
3013
+ ? (id.value = [parentObject])
3014
+ : id.value.push(parentObject),
3015
+ null === id.reason
3016
+ ? (id.reason = [parentObject])
3017
+ : id.reason.push(parentObject),
3018
+ null
3074
3019
  );
3075
3020
  default:
3076
3021
  return (
@@ -3098,8 +3043,8 @@
3098
3043
  function extractIterator(response, model) {
3099
3044
  return model[Symbol.iterator]();
3100
3045
  }
3101
- function createModel(response, model) {
3102
- return model;
3046
+ function createModel(response, model, parentObject, key) {
3047
+ return "then" === key && "function" === typeof model ? null : model;
3103
3048
  }
3104
3049
  function parseTypedArray(
3105
3050
  response,
@@ -3110,9 +3055,10 @@
3110
3055
  parentKey
3111
3056
  ) {
3112
3057
  reference = parseInt(reference.slice(2), 16);
3113
- reference = response._formData
3114
- .get(response._prefix + reference)
3115
- .arrayBuffer();
3058
+ bytesPerElement = response._prefix + reference;
3059
+ if (response._chunks.has(reference))
3060
+ throw Error("Already initialized typed array.");
3061
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
3116
3062
  if (initializingHandler) {
3117
3063
  var handler = initializingHandler;
3118
3064
  handler.deps++;
@@ -3141,6 +3087,7 @@
3141
3087
  var resolveListeners = buffer.value;
3142
3088
  buffer.status = "fulfilled";
3143
3089
  buffer.value = handler.value;
3090
+ buffer.reason = null;
3144
3091
  null !== resolveListeners &&
3145
3092
  wakeChunk(response, resolveListeners, handler.value);
3146
3093
  }
@@ -3175,7 +3122,10 @@
3175
3122
  }
3176
3123
  function parseReadableStream(response, reference, type) {
3177
3124
  reference = parseInt(reference.slice(2), 16);
3178
- var controller = null;
3125
+ if (response._chunks.has(reference))
3126
+ throw Error("Already initialized stream.");
3127
+ var controller = null,
3128
+ closed = !1;
3179
3129
  type = new ReadableStream({
3180
3130
  type: type,
3181
3131
  start: function (c) {
@@ -3222,24 +3172,28 @@
3222
3172
  }
3223
3173
  },
3224
3174
  close: function () {
3225
- if (null === previousBlockedChunk) controller.close();
3226
- else {
3227
- var blockedChunk = previousBlockedChunk;
3228
- previousBlockedChunk = null;
3229
- blockedChunk.then(function () {
3230
- return controller.close();
3231
- });
3232
- }
3175
+ if (!closed)
3176
+ if (((closed = !0), null === previousBlockedChunk))
3177
+ controller.close();
3178
+ else {
3179
+ var blockedChunk = previousBlockedChunk;
3180
+ previousBlockedChunk = null;
3181
+ blockedChunk.then(function () {
3182
+ return controller.close();
3183
+ });
3184
+ }
3233
3185
  },
3234
3186
  error: function (error) {
3235
- if (null === previousBlockedChunk) controller.error(error);
3236
- else {
3237
- var blockedChunk = previousBlockedChunk;
3238
- previousBlockedChunk = null;
3239
- blockedChunk.then(function () {
3240
- return controller.error(error);
3241
- });
3242
- }
3187
+ if (!closed)
3188
+ if (((closed = !0), null === previousBlockedChunk))
3189
+ controller.error(error);
3190
+ else {
3191
+ var blockedChunk = previousBlockedChunk;
3192
+ previousBlockedChunk = null;
3193
+ blockedChunk.then(function () {
3194
+ return controller.error(error);
3195
+ });
3196
+ }
3243
3197
  }
3244
3198
  });
3245
3199
  return type;
@@ -3254,6 +3208,8 @@
3254
3208
  }
3255
3209
  function parseAsyncIterable(response, reference, iterator) {
3256
3210
  reference = parseInt(reference.slice(2), 16);
3211
+ if (response._chunks.has(reference))
3212
+ throw Error("Already initialized stream.");
3257
3213
  var buffer = [],
3258
3214
  closed = !1,
3259
3215
  nextWriteIndex = 0,
@@ -3294,36 +3250,46 @@
3294
3250
  nextWriteIndex++;
3295
3251
  },
3296
3252
  close: function (value) {
3297
- closed = !0;
3298
- nextWriteIndex === buffer.length
3299
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3300
- response,
3301
- value,
3302
- !0
3303
- ))
3304
- : resolveIteratorResultChunk(
3253
+ if (!closed)
3254
+ for (
3255
+ closed = !0,
3256
+ nextWriteIndex === buffer.length
3257
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3258
+ response,
3259
+ value,
3260
+ !0
3261
+ ))
3262
+ : resolveIteratorResultChunk(
3263
+ response,
3264
+ buffer[nextWriteIndex],
3265
+ value,
3266
+ !0
3267
+ ),
3268
+ nextWriteIndex++;
3269
+ nextWriteIndex < buffer.length;
3270
+
3271
+ )
3272
+ resolveIteratorResultChunk(
3305
3273
  response,
3306
- buffer[nextWriteIndex],
3307
- value,
3274
+ buffer[nextWriteIndex++],
3275
+ '"$undefined"',
3308
3276
  !0
3309
3277
  );
3310
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3311
- resolveIteratorResultChunk(
3312
- response,
3313
- buffer[nextWriteIndex++],
3314
- '"$undefined"',
3315
- !0
3316
- );
3317
3278
  },
3318
3279
  error: function (error) {
3319
- closed = !0;
3320
- for (
3321
- nextWriteIndex === buffer.length &&
3322
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
3323
- nextWriteIndex < buffer.length;
3280
+ if (!closed)
3281
+ for (
3282
+ closed = !0,
3283
+ nextWriteIndex === buffer.length &&
3284
+ (buffer[nextWriteIndex] = new ReactPromise(
3285
+ "pending",
3286
+ null,
3287
+ null
3288
+ ));
3289
+ nextWriteIndex < buffer.length;
3324
3290
 
3325
- )
3326
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3291
+ )
3292
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3327
3293
  }
3328
3294
  });
3329
3295
  return iterator;
@@ -3337,7 +3303,7 @@
3337
3303
  return (
3338
3304
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3339
3305
  );
3340
- case "F":
3306
+ case "h":
3341
3307
  return (
3342
3308
  (value = value.slice(2)),
3343
3309
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -3567,6 +3533,13 @@
3567
3533
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
3568
3534
  FunctionBind = Function.prototype.bind,
3569
3535
  ArraySlice = Array.prototype.slice,
3536
+ serverReferenceToString = {
3537
+ value: function () {
3538
+ return "function () { [omitted code] }";
3539
+ },
3540
+ configurable: !0,
3541
+ writable: !0
3542
+ },
3570
3543
  previousDispatcher = ReactDOMSharedInternals.d;
3571
3544
  ReactDOMSharedInternals.d = {
3572
3545
  f: previousDispatcher.f,
@@ -3934,7 +3907,23 @@
3934
3907
  }
3935
3908
  switch (this.status) {
3936
3909
  case "fulfilled":
3937
- "function" === typeof resolve && resolve(this.value);
3910
+ if ("function" === typeof resolve) {
3911
+ for (
3912
+ var inspectedValue = this.value;
3913
+ inspectedValue instanceof ReactPromise;
3914
+
3915
+ ) {
3916
+ if (inspectedValue === this) {
3917
+ "function" === typeof reject &&
3918
+ reject(Error("Cannot have cyclic thenables."));
3919
+ return;
3920
+ }
3921
+ if ("fulfilled" === inspectedValue.status)
3922
+ inspectedValue = inspectedValue.value;
3923
+ else break;
3924
+ }
3925
+ resolve(this.value);
3926
+ }
3938
3927
  break;
3939
3928
  case "pending":
3940
3929
  case "blocked":
@@ -4012,7 +4001,8 @@
4012
4001
  $$id: { value: id + "#" + exportName, configurable: !0 },
4013
4002
  $$bound: { value: null, configurable: !0 },
4014
4003
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
4015
- bind: { value: bind, configurable: !0 }
4004
+ bind: { value: bind, configurable: !0 },
4005
+ toString: serverReferenceToString
4016
4006
  });
4017
4007
  };
4018
4008
  exports.renderToReadableStream = function (model, options) {