react-server-dom-webpack 19.0.1 → 19.0.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.
@@ -1297,7 +1297,7 @@
1297
1297
  function serializeServerReference(request, serverReference) {
1298
1298
  var writtenServerReferences = request.writtenServerReferences,
1299
1299
  existingId = writtenServerReferences.get(serverReference);
1300
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
1300
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
1301
1301
  existingId = serverReference.$$bound;
1302
1302
  existingId = null === existingId ? null : Promise.resolve(existingId);
1303
1303
  var id = serverReference.$$id,
@@ -1321,7 +1321,7 @@
1321
1321
  : { id: id, bound: existingId };
1322
1322
  request = outlineModel(request, existingId);
1323
1323
  writtenServerReferences.set(serverReference, request);
1324
- return "$F" + request.toString(16);
1324
+ return "$h" + request.toString(16);
1325
1325
  }
1326
1326
  function serializeLargeTextString(request, text) {
1327
1327
  request.pendingChunks++;
@@ -2650,7 +2650,7 @@
2650
2650
  }
2651
2651
  function loadServerReference$1(response, metaData, parentObject, key) {
2652
2652
  var id = metaData.id;
2653
- if ("string" !== typeof id) return null;
2653
+ if ("string" !== typeof id || "then" === key) return null;
2654
2654
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2655
2655
  id = metaData.bound;
2656
2656
  var promise = preloadModule(serverReference);
@@ -2695,6 +2695,7 @@
2695
2695
  ((promiseValue = resolvedValue.value),
2696
2696
  (resolvedValue.status = "fulfilled"),
2697
2697
  (resolvedValue.value = handler.value),
2698
+ (resolvedValue.reason = null),
2698
2699
  null !== promiseValue &&
2699
2700
  wakeChunk(response, promiseValue, handler.value)));
2700
2701
  },
@@ -2798,6 +2799,7 @@
2798
2799
  }
2799
2800
  chunk.status = "fulfilled";
2800
2801
  chunk.value = value;
2802
+ chunk.reason = null;
2801
2803
  } catch (error) {
2802
2804
  (chunk.status = "rejected"), (chunk.reason = error);
2803
2805
  } finally {
@@ -2806,8 +2808,11 @@
2806
2808
  }
2807
2809
  function reportGlobalError(response, error) {
2808
2810
  response._chunks.forEach(function (chunk) {
2809
- "pending" === chunk.status &&
2810
- triggerErrorOnChunk(response, chunk, error);
2811
+ "pending" === chunk.status
2812
+ ? triggerErrorOnChunk(response, chunk, error)
2813
+ : "fulfilled" === chunk.status &&
2814
+ null !== chunk.reason &&
2815
+ chunk.reason.error(error);
2811
2816
  });
2812
2817
  }
2813
2818
  function getChunk(response, id) {
@@ -2827,58 +2832,39 @@
2827
2832
  return chunk;
2828
2833
  }
2829
2834
  function fulfillReference(response, reference, value) {
2830
- for (
2831
- var handler = reference.handler,
2832
- parentObject = reference.parentObject,
2833
- key = reference.key,
2834
- map = reference.map,
2835
- path = reference.path,
2836
- i = 1;
2837
- i < path.length;
2838
- i++
2839
- ) {
2840
- for (; value instanceof ReactPromise; ) {
2841
- switch (value.status) {
2842
- case "resolved_model":
2843
- initializeModelChunk(value);
2844
- }
2845
- switch (value.status) {
2846
- case "fulfilled":
2847
- value = value.value;
2848
- continue;
2849
- case "blocked":
2850
- case "pending":
2851
- path.splice(0, i - 1);
2852
- null === value.value
2853
- ? (value.value = [reference])
2854
- : value.value.push(reference);
2855
- null === value.reason
2856
- ? (value.reason = [reference])
2857
- : value.reason.push(reference);
2858
- return;
2859
- default:
2860
- rejectReference(response, reference.handler, value.reason);
2861
- return;
2862
- }
2835
+ var handler = reference.handler,
2836
+ parentObject = reference.parentObject,
2837
+ key = reference.key,
2838
+ map = reference.map,
2839
+ path = reference.path;
2840
+ try {
2841
+ for (var i = 1; i < path.length; i++) {
2842
+ var name = path[i];
2843
+ if (
2844
+ "object" !== typeof value ||
2845
+ !hasOwnProperty.call(value, name) ||
2846
+ value instanceof Promise
2847
+ )
2848
+ throw Error("Invalid reference.");
2849
+ value = value[name];
2863
2850
  }
2864
- var name = path[i];
2865
- "object" === typeof value &&
2866
- hasOwnProperty.call(value, name) &&
2867
- (value = value[name]);
2851
+ var mappedValue = map(response, value, parentObject, key);
2852
+ parentObject[key] = mappedValue;
2853
+ "" === key && null === handler.value && (handler.value = mappedValue);
2854
+ } catch (error) {
2855
+ rejectReference(response, reference.handler, error);
2856
+ return;
2868
2857
  }
2869
- reference = map(response, value, parentObject, key);
2870
- parentObject[key] = reference;
2871
- "" === key && null === handler.value && (handler.value = reference);
2872
2858
  handler.deps--;
2873
2859
  0 === handler.deps &&
2874
- ((parentObject = handler.chunk),
2875
- null !== parentObject &&
2876
- "blocked" === parentObject.status &&
2877
- ((key = parentObject.value),
2878
- (parentObject.status = "fulfilled"),
2879
- (parentObject.value = handler.value),
2880
- (parentObject.reason = handler.reason),
2881
- null !== key && wakeChunk(response, key, handler.value)));
2860
+ ((reference = handler.chunk),
2861
+ null !== reference &&
2862
+ "blocked" === reference.status &&
2863
+ ((value = reference.value),
2864
+ (reference.status = "fulfilled"),
2865
+ (reference.value = handler.value),
2866
+ (reference.reason = handler.reason),
2867
+ null !== value && wakeChunk(response, value, handler.value)));
2882
2868
  }
2883
2869
  function rejectReference(response, handler, error) {
2884
2870
  handler.errored ||
@@ -2890,33 +2876,6 @@
2890
2876
  "blocked" === handler.status &&
2891
2877
  triggerErrorOnChunk(response, handler, error));
2892
2878
  }
2893
- function waitForReference(
2894
- referencedChunk,
2895
- parentObject,
2896
- key,
2897
- response,
2898
- map,
2899
- path
2900
- ) {
2901
- initializingHandler
2902
- ? ((response = initializingHandler), response.deps++)
2903
- : (response = initializingHandler =
2904
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2905
- parentObject = {
2906
- handler: response,
2907
- parentObject: parentObject,
2908
- key: key,
2909
- map: map,
2910
- path: path
2911
- };
2912
- null === referencedChunk.value
2913
- ? (referencedChunk.value = [parentObject])
2914
- : referencedChunk.value.push(parentObject);
2915
- null === referencedChunk.reason
2916
- ? (referencedChunk.reason = [parentObject])
2917
- : referencedChunk.reason.push(parentObject);
2918
- return null;
2919
- }
2920
2879
  function getOutlinedModel(response, reference, parentObject, key, map) {
2921
2880
  reference = reference.split(":");
2922
2881
  var id = parseInt(reference[0], 16);
@@ -2927,59 +2886,45 @@
2927
2886
  }
2928
2887
  switch (id.status) {
2929
2888
  case "fulfilled":
2930
- var value = id.value;
2931
- for (id = 1; id < reference.length; id++) {
2932
- for (; value instanceof ReactPromise; ) {
2933
- switch (value.status) {
2934
- case "resolved_model":
2935
- initializeModelChunk(value);
2936
- }
2937
- switch (value.status) {
2938
- case "fulfilled":
2939
- value = value.value;
2940
- break;
2941
- case "blocked":
2942
- case "pending":
2943
- return waitForReference(
2944
- value,
2945
- parentObject,
2946
- key,
2947
- response,
2948
- map,
2949
- reference.slice(id - 1)
2950
- );
2951
- default:
2952
- return (
2953
- initializingHandler
2954
- ? ((initializingHandler.errored = !0),
2955
- (initializingHandler.value = null),
2956
- (initializingHandler.reason = value.reason))
2957
- : (initializingHandler = {
2958
- chunk: null,
2959
- value: null,
2960
- reason: value.reason,
2961
- deps: 0,
2962
- errored: !0
2963
- }),
2964
- null
2965
- );
2966
- }
2967
- }
2968
- var name = reference[id];
2969
- "object" === typeof value &&
2970
- hasOwnProperty.call(value, name) &&
2971
- (value = value[name]);
2889
+ id = id.value;
2890
+ for (var i = 1; i < reference.length; i++) {
2891
+ var name = reference[i];
2892
+ if (
2893
+ "object" !== typeof id ||
2894
+ !hasOwnProperty.call(id, name) ||
2895
+ id instanceof Promise
2896
+ )
2897
+ throw Error("Invalid reference.");
2898
+ id = id[name];
2972
2899
  }
2973
- return map(response, value, parentObject, key);
2900
+ return map(response, id, parentObject, key);
2974
2901
  case "pending":
2975
2902
  case "blocked":
2976
- return waitForReference(
2977
- id,
2978
- parentObject,
2979
- key,
2980
- response,
2981
- map,
2982
- reference
2903
+ return (
2904
+ initializingHandler
2905
+ ? ((response = initializingHandler), response.deps++)
2906
+ : (response = initializingHandler =
2907
+ {
2908
+ chunk: null,
2909
+ value: null,
2910
+ reason: null,
2911
+ deps: 1,
2912
+ errored: !1
2913
+ }),
2914
+ (parentObject = {
2915
+ handler: response,
2916
+ parentObject: parentObject,
2917
+ key: key,
2918
+ map: map,
2919
+ path: reference
2920
+ }),
2921
+ null === id.value
2922
+ ? (id.value = [parentObject])
2923
+ : id.value.push(parentObject),
2924
+ null === id.reason
2925
+ ? (id.reason = [parentObject])
2926
+ : id.reason.push(parentObject),
2927
+ null
2983
2928
  );
2984
2929
  default:
2985
2930
  return (
@@ -3007,8 +2952,8 @@
3007
2952
  function extractIterator(response, model) {
3008
2953
  return model[Symbol.iterator]();
3009
2954
  }
3010
- function createModel(response, model) {
3011
- return model;
2955
+ function createModel(response, model, parentObject, key) {
2956
+ return "then" === key && "function" === typeof model ? null : model;
3012
2957
  }
3013
2958
  function parseTypedArray(
3014
2959
  response,
@@ -3019,9 +2964,10 @@
3019
2964
  parentKey
3020
2965
  ) {
3021
2966
  reference = parseInt(reference.slice(2), 16);
3022
- reference = response._formData
3023
- .get(response._prefix + reference)
3024
- .arrayBuffer();
2967
+ bytesPerElement = response._prefix + reference;
2968
+ if (response._chunks.has(reference))
2969
+ throw Error("Already initialized typed array.");
2970
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
3025
2971
  if (initializingHandler) {
3026
2972
  var handler = initializingHandler;
3027
2973
  handler.deps++;
@@ -3050,6 +2996,7 @@
3050
2996
  var resolveListeners = buffer.value;
3051
2997
  buffer.status = "fulfilled";
3052
2998
  buffer.value = handler.value;
2999
+ buffer.reason = null;
3053
3000
  null !== resolveListeners &&
3054
3001
  wakeChunk(response, resolveListeners, handler.value);
3055
3002
  }
@@ -3084,7 +3031,10 @@
3084
3031
  }
3085
3032
  function parseReadableStream(response, reference, type) {
3086
3033
  reference = parseInt(reference.slice(2), 16);
3087
- var controller = null;
3034
+ if (response._chunks.has(reference))
3035
+ throw Error("Already initialized stream.");
3036
+ var controller = null,
3037
+ closed = !1;
3088
3038
  type = new ReadableStream({
3089
3039
  type: type,
3090
3040
  start: function (c) {
@@ -3131,24 +3081,28 @@
3131
3081
  }
3132
3082
  },
3133
3083
  close: function () {
3134
- if (null === previousBlockedChunk) controller.close();
3135
- else {
3136
- var blockedChunk = previousBlockedChunk;
3137
- previousBlockedChunk = null;
3138
- blockedChunk.then(function () {
3139
- return controller.close();
3140
- });
3141
- }
3084
+ if (!closed)
3085
+ if (((closed = !0), null === previousBlockedChunk))
3086
+ controller.close();
3087
+ else {
3088
+ var blockedChunk = previousBlockedChunk;
3089
+ previousBlockedChunk = null;
3090
+ blockedChunk.then(function () {
3091
+ return controller.close();
3092
+ });
3093
+ }
3142
3094
  },
3143
3095
  error: function (error) {
3144
- if (null === previousBlockedChunk) controller.error(error);
3145
- else {
3146
- var blockedChunk = previousBlockedChunk;
3147
- previousBlockedChunk = null;
3148
- blockedChunk.then(function () {
3149
- return controller.error(error);
3150
- });
3151
- }
3096
+ if (!closed)
3097
+ if (((closed = !0), null === previousBlockedChunk))
3098
+ controller.error(error);
3099
+ else {
3100
+ var blockedChunk = previousBlockedChunk;
3101
+ previousBlockedChunk = null;
3102
+ blockedChunk.then(function () {
3103
+ return controller.error(error);
3104
+ });
3105
+ }
3152
3106
  }
3153
3107
  });
3154
3108
  return type;
@@ -3163,6 +3117,8 @@
3163
3117
  }
3164
3118
  function parseAsyncIterable(response, reference, iterator) {
3165
3119
  reference = parseInt(reference.slice(2), 16);
3120
+ if (response._chunks.has(reference))
3121
+ throw Error("Already initialized stream.");
3166
3122
  var buffer = [],
3167
3123
  closed = !1,
3168
3124
  nextWriteIndex = 0,
@@ -3203,36 +3159,46 @@
3203
3159
  nextWriteIndex++;
3204
3160
  },
3205
3161
  close: function (value) {
3206
- closed = !0;
3207
- nextWriteIndex === buffer.length
3208
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3162
+ if (!closed)
3163
+ for (
3164
+ closed = !0,
3165
+ nextWriteIndex === buffer.length
3166
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3167
+ response,
3168
+ value,
3169
+ !0
3170
+ ))
3171
+ : resolveIteratorResultChunk(
3172
+ response,
3173
+ buffer[nextWriteIndex],
3174
+ value,
3175
+ !0
3176
+ ),
3177
+ nextWriteIndex++;
3178
+ nextWriteIndex < buffer.length;
3179
+
3180
+ )
3181
+ resolveIteratorResultChunk(
3209
3182
  response,
3210
- value,
3211
- !0
3212
- ))
3213
- : resolveIteratorResultChunk(
3214
- response,
3215
- buffer[nextWriteIndex],
3216
- value,
3183
+ buffer[nextWriteIndex++],
3184
+ '"$undefined"',
3217
3185
  !0
3218
3186
  );
3219
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3220
- resolveIteratorResultChunk(
3221
- response,
3222
- buffer[nextWriteIndex++],
3223
- '"$undefined"',
3224
- !0
3225
- );
3226
3187
  },
3227
3188
  error: function (error) {
3228
- closed = !0;
3229
- for (
3230
- nextWriteIndex === buffer.length &&
3231
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
3232
- nextWriteIndex < buffer.length;
3189
+ if (!closed)
3190
+ for (
3191
+ closed = !0,
3192
+ nextWriteIndex === buffer.length &&
3193
+ (buffer[nextWriteIndex] = new ReactPromise(
3194
+ "pending",
3195
+ null,
3196
+ null
3197
+ ));
3198
+ nextWriteIndex < buffer.length;
3233
3199
 
3234
- )
3235
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3200
+ )
3201
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3236
3202
  }
3237
3203
  });
3238
3204
  return iterator;
@@ -3246,7 +3212,7 @@
3246
3212
  return (
3247
3213
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3248
3214
  );
3249
- case "F":
3215
+ case "h":
3250
3216
  return (
3251
3217
  (value = value.slice(2)),
3252
3218
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -3430,6 +3396,13 @@
3430
3396
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
3431
3397
  FunctionBind = Function.prototype.bind,
3432
3398
  ArraySlice = Array.prototype.slice,
3399
+ serverReferenceToString = {
3400
+ value: function () {
3401
+ return "function () { [omitted code] }";
3402
+ },
3403
+ configurable: !0,
3404
+ writable: !0
3405
+ },
3433
3406
  PROMISE_PROTOTYPE = Promise.prototype,
3434
3407
  deepProxyHandlers = {
3435
3408
  get: function (target, name) {
@@ -3853,7 +3826,23 @@
3853
3826
  }
3854
3827
  switch (this.status) {
3855
3828
  case "fulfilled":
3856
- "function" === typeof resolve && resolve(this.value);
3829
+ if ("function" === typeof resolve) {
3830
+ for (
3831
+ var inspectedValue = this.value;
3832
+ inspectedValue instanceof ReactPromise;
3833
+
3834
+ ) {
3835
+ if (inspectedValue === this) {
3836
+ "function" === typeof reject &&
3837
+ reject(Error("Cannot have cyclic thenables."));
3838
+ return;
3839
+ }
3840
+ if ("fulfilled" === inspectedValue.status)
3841
+ inspectedValue = inspectedValue.value;
3842
+ else break;
3843
+ }
3844
+ resolve(this.value);
3845
+ }
3857
3846
  break;
3858
3847
  case "pending":
3859
3848
  case "blocked":
@@ -3953,7 +3942,8 @@
3953
3942
  },
3954
3943
  $$bound: { value: null, configurable: !0 },
3955
3944
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
3956
- bind: { value: bind, configurable: !0 }
3945
+ bind: { value: bind, configurable: !0 },
3946
+ toString: serverReferenceToString
3957
3947
  });
3958
3948
  };
3959
3949
  exports.renderToReadableStream = function (model, webpackMap, options) {