react-server-dom-webpack 19.0.1 → 19.0.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.
@@ -1336,7 +1336,7 @@
1336
1336
  function serializeServerReference(request, serverReference) {
1337
1337
  var writtenServerReferences = request.writtenServerReferences,
1338
1338
  existingId = writtenServerReferences.get(serverReference);
1339
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
1339
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
1340
1340
  existingId = serverReference.$$bound;
1341
1341
  existingId = null === existingId ? null : Promise.resolve(existingId);
1342
1342
  var id = serverReference.$$id,
@@ -1360,7 +1360,7 @@
1360
1360
  : { id: id, bound: existingId };
1361
1361
  request = outlineModel(request, existingId);
1362
1362
  writtenServerReferences.set(serverReference, request);
1363
- return "$F" + request.toString(16);
1363
+ return "$h" + request.toString(16);
1364
1364
  }
1365
1365
  function serializeLargeTextString(request, text) {
1366
1366
  request.pendingChunks++;
@@ -2695,7 +2695,7 @@
2695
2695
  }
2696
2696
  function loadServerReference$1(response, metaData, parentObject, key) {
2697
2697
  var id = metaData.id;
2698
- if ("string" !== typeof id) return null;
2698
+ if ("string" !== typeof id || "then" === key) return null;
2699
2699
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2700
2700
  id = metaData.bound;
2701
2701
  var promise = preloadModule(serverReference);
@@ -2740,6 +2740,7 @@
2740
2740
  ((promiseValue = resolvedValue.value),
2741
2741
  (resolvedValue.status = "fulfilled"),
2742
2742
  (resolvedValue.value = handler.value),
2743
+ (resolvedValue.reason = null),
2743
2744
  null !== promiseValue &&
2744
2745
  wakeChunk(response, promiseValue, handler.value)));
2745
2746
  },
@@ -2843,6 +2844,7 @@
2843
2844
  }
2844
2845
  chunk.status = "fulfilled";
2845
2846
  chunk.value = value;
2847
+ chunk.reason = null;
2846
2848
  } catch (error) {
2847
2849
  (chunk.status = "rejected"), (chunk.reason = error);
2848
2850
  } finally {
@@ -2851,8 +2853,11 @@
2851
2853
  }
2852
2854
  function reportGlobalError(response, error) {
2853
2855
  response._chunks.forEach(function (chunk) {
2854
- "pending" === chunk.status &&
2855
- triggerErrorOnChunk(response, chunk, error);
2856
+ "pending" === chunk.status
2857
+ ? triggerErrorOnChunk(response, chunk, error)
2858
+ : "fulfilled" === chunk.status &&
2859
+ null !== chunk.reason &&
2860
+ chunk.reason.error(error);
2856
2861
  });
2857
2862
  }
2858
2863
  function getChunk(response, id) {
@@ -2872,58 +2877,39 @@
2872
2877
  return chunk;
2873
2878
  }
2874
2879
  function fulfillReference(response, reference, value) {
2875
- for (
2876
- var handler = reference.handler,
2877
- parentObject = reference.parentObject,
2878
- key = reference.key,
2879
- map = reference.map,
2880
- path = reference.path,
2881
- i = 1;
2882
- i < path.length;
2883
- i++
2884
- ) {
2885
- for (; value instanceof ReactPromise; ) {
2886
- switch (value.status) {
2887
- case "resolved_model":
2888
- initializeModelChunk(value);
2889
- }
2890
- switch (value.status) {
2891
- case "fulfilled":
2892
- value = value.value;
2893
- continue;
2894
- case "blocked":
2895
- case "pending":
2896
- path.splice(0, i - 1);
2897
- null === value.value
2898
- ? (value.value = [reference])
2899
- : value.value.push(reference);
2900
- null === value.reason
2901
- ? (value.reason = [reference])
2902
- : value.reason.push(reference);
2903
- return;
2904
- default:
2905
- rejectReference(response, reference.handler, value.reason);
2906
- return;
2907
- }
2880
+ var handler = reference.handler,
2881
+ parentObject = reference.parentObject,
2882
+ key = reference.key,
2883
+ map = reference.map,
2884
+ path = reference.path;
2885
+ try {
2886
+ for (var i = 1; i < path.length; i++) {
2887
+ var name = path[i];
2888
+ if (
2889
+ "object" !== typeof value ||
2890
+ !hasOwnProperty.call(value, name) ||
2891
+ value instanceof Promise
2892
+ )
2893
+ throw Error("Invalid reference.");
2894
+ value = value[name];
2908
2895
  }
2909
- var name = path[i];
2910
- "object" === typeof value &&
2911
- hasOwnProperty.call(value, name) &&
2912
- (value = value[name]);
2896
+ var mappedValue = map(response, value, parentObject, key);
2897
+ parentObject[key] = mappedValue;
2898
+ "" === key && null === handler.value && (handler.value = mappedValue);
2899
+ } catch (error) {
2900
+ rejectReference(response, reference.handler, error);
2901
+ return;
2913
2902
  }
2914
- reference = map(response, value, parentObject, key);
2915
- parentObject[key] = reference;
2916
- "" === key && null === handler.value && (handler.value = reference);
2917
2903
  handler.deps--;
2918
2904
  0 === handler.deps &&
2919
- ((parentObject = handler.chunk),
2920
- null !== parentObject &&
2921
- "blocked" === parentObject.status &&
2922
- ((key = parentObject.value),
2923
- (parentObject.status = "fulfilled"),
2924
- (parentObject.value = handler.value),
2925
- (parentObject.reason = handler.reason),
2926
- null !== key && wakeChunk(response, key, handler.value)));
2905
+ ((reference = handler.chunk),
2906
+ null !== reference &&
2907
+ "blocked" === reference.status &&
2908
+ ((value = reference.value),
2909
+ (reference.status = "fulfilled"),
2910
+ (reference.value = handler.value),
2911
+ (reference.reason = handler.reason),
2912
+ null !== value && wakeChunk(response, value, handler.value)));
2927
2913
  }
2928
2914
  function rejectReference(response, handler, error) {
2929
2915
  handler.errored ||
@@ -2935,33 +2921,6 @@
2935
2921
  "blocked" === handler.status &&
2936
2922
  triggerErrorOnChunk(response, handler, error));
2937
2923
  }
2938
- function waitForReference(
2939
- referencedChunk,
2940
- parentObject,
2941
- key,
2942
- response,
2943
- map,
2944
- path
2945
- ) {
2946
- initializingHandler
2947
- ? ((response = initializingHandler), response.deps++)
2948
- : (response = initializingHandler =
2949
- { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2950
- parentObject = {
2951
- handler: response,
2952
- parentObject: parentObject,
2953
- key: key,
2954
- map: map,
2955
- path: path
2956
- };
2957
- null === referencedChunk.value
2958
- ? (referencedChunk.value = [parentObject])
2959
- : referencedChunk.value.push(parentObject);
2960
- null === referencedChunk.reason
2961
- ? (referencedChunk.reason = [parentObject])
2962
- : referencedChunk.reason.push(parentObject);
2963
- return null;
2964
- }
2965
2924
  function getOutlinedModel(response, reference, parentObject, key, map) {
2966
2925
  reference = reference.split(":");
2967
2926
  var id = parseInt(reference[0], 16);
@@ -2972,59 +2931,45 @@
2972
2931
  }
2973
2932
  switch (id.status) {
2974
2933
  case "fulfilled":
2975
- var value = id.value;
2976
- for (id = 1; id < reference.length; id++) {
2977
- for (; value instanceof ReactPromise; ) {
2978
- switch (value.status) {
2979
- case "resolved_model":
2980
- initializeModelChunk(value);
2981
- }
2982
- switch (value.status) {
2983
- case "fulfilled":
2984
- value = value.value;
2985
- break;
2986
- case "blocked":
2987
- case "pending":
2988
- return waitForReference(
2989
- value,
2990
- parentObject,
2991
- key,
2992
- response,
2993
- map,
2994
- reference.slice(id - 1)
2995
- );
2996
- default:
2997
- return (
2998
- initializingHandler
2999
- ? ((initializingHandler.errored = !0),
3000
- (initializingHandler.value = null),
3001
- (initializingHandler.reason = value.reason))
3002
- : (initializingHandler = {
3003
- chunk: null,
3004
- value: null,
3005
- reason: value.reason,
3006
- deps: 0,
3007
- errored: !0
3008
- }),
3009
- null
3010
- );
3011
- }
3012
- }
3013
- var name = reference[id];
3014
- "object" === typeof value &&
3015
- hasOwnProperty.call(value, name) &&
3016
- (value = value[name]);
2934
+ id = id.value;
2935
+ for (var i = 1; i < reference.length; i++) {
2936
+ var name = reference[i];
2937
+ if (
2938
+ "object" !== typeof id ||
2939
+ !hasOwnProperty.call(id, name) ||
2940
+ id instanceof Promise
2941
+ )
2942
+ throw Error("Invalid reference.");
2943
+ id = id[name];
3017
2944
  }
3018
- return map(response, value, parentObject, key);
2945
+ return map(response, id, parentObject, key);
3019
2946
  case "pending":
3020
2947
  case "blocked":
3021
- return waitForReference(
3022
- id,
3023
- parentObject,
3024
- key,
3025
- response,
3026
- map,
3027
- reference
2948
+ return (
2949
+ initializingHandler
2950
+ ? ((response = initializingHandler), response.deps++)
2951
+ : (response = initializingHandler =
2952
+ {
2953
+ chunk: null,
2954
+ value: null,
2955
+ reason: null,
2956
+ deps: 1,
2957
+ errored: !1
2958
+ }),
2959
+ (parentObject = {
2960
+ handler: response,
2961
+ parentObject: parentObject,
2962
+ key: key,
2963
+ map: map,
2964
+ path: reference
2965
+ }),
2966
+ null === id.value
2967
+ ? (id.value = [parentObject])
2968
+ : id.value.push(parentObject),
2969
+ null === id.reason
2970
+ ? (id.reason = [parentObject])
2971
+ : id.reason.push(parentObject),
2972
+ null
3028
2973
  );
3029
2974
  default:
3030
2975
  return (
@@ -3052,8 +2997,8 @@
3052
2997
  function extractIterator(response, model) {
3053
2998
  return model[Symbol.iterator]();
3054
2999
  }
3055
- function createModel(response, model) {
3056
- return model;
3000
+ function createModel(response, model, parentObject, key) {
3001
+ return "then" === key && "function" === typeof model ? null : model;
3057
3002
  }
3058
3003
  function parseTypedArray(
3059
3004
  response,
@@ -3064,9 +3009,10 @@
3064
3009
  parentKey
3065
3010
  ) {
3066
3011
  reference = parseInt(reference.slice(2), 16);
3067
- reference = response._formData
3068
- .get(response._prefix + reference)
3069
- .arrayBuffer();
3012
+ bytesPerElement = response._prefix + reference;
3013
+ if (response._chunks.has(reference))
3014
+ throw Error("Already initialized typed array.");
3015
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
3070
3016
  if (initializingHandler) {
3071
3017
  var handler = initializingHandler;
3072
3018
  handler.deps++;
@@ -3095,6 +3041,7 @@
3095
3041
  var resolveListeners = buffer.value;
3096
3042
  buffer.status = "fulfilled";
3097
3043
  buffer.value = handler.value;
3044
+ buffer.reason = null;
3098
3045
  null !== resolveListeners &&
3099
3046
  wakeChunk(response, resolveListeners, handler.value);
3100
3047
  }
@@ -3129,7 +3076,10 @@
3129
3076
  }
3130
3077
  function parseReadableStream(response, reference, type) {
3131
3078
  reference = parseInt(reference.slice(2), 16);
3132
- var controller = null;
3079
+ if (response._chunks.has(reference))
3080
+ throw Error("Already initialized stream.");
3081
+ var controller = null,
3082
+ closed = !1;
3133
3083
  type = new ReadableStream({
3134
3084
  type: type,
3135
3085
  start: function (c) {
@@ -3176,24 +3126,28 @@
3176
3126
  }
3177
3127
  },
3178
3128
  close: function () {
3179
- if (null === previousBlockedChunk) controller.close();
3180
- else {
3181
- var blockedChunk = previousBlockedChunk;
3182
- previousBlockedChunk = null;
3183
- blockedChunk.then(function () {
3184
- return controller.close();
3185
- });
3186
- }
3129
+ if (!closed)
3130
+ if (((closed = !0), null === previousBlockedChunk))
3131
+ controller.close();
3132
+ else {
3133
+ var blockedChunk = previousBlockedChunk;
3134
+ previousBlockedChunk = null;
3135
+ blockedChunk.then(function () {
3136
+ return controller.close();
3137
+ });
3138
+ }
3187
3139
  },
3188
3140
  error: function (error) {
3189
- if (null === previousBlockedChunk) controller.error(error);
3190
- else {
3191
- var blockedChunk = previousBlockedChunk;
3192
- previousBlockedChunk = null;
3193
- blockedChunk.then(function () {
3194
- return controller.error(error);
3195
- });
3196
- }
3141
+ if (!closed)
3142
+ if (((closed = !0), null === previousBlockedChunk))
3143
+ controller.error(error);
3144
+ else {
3145
+ var blockedChunk = previousBlockedChunk;
3146
+ previousBlockedChunk = null;
3147
+ blockedChunk.then(function () {
3148
+ return controller.error(error);
3149
+ });
3150
+ }
3197
3151
  }
3198
3152
  });
3199
3153
  return type;
@@ -3208,6 +3162,8 @@
3208
3162
  }
3209
3163
  function parseAsyncIterable(response, reference, iterator) {
3210
3164
  reference = parseInt(reference.slice(2), 16);
3165
+ if (response._chunks.has(reference))
3166
+ throw Error("Already initialized stream.");
3211
3167
  var buffer = [],
3212
3168
  closed = !1,
3213
3169
  nextWriteIndex = 0,
@@ -3248,36 +3204,46 @@
3248
3204
  nextWriteIndex++;
3249
3205
  },
3250
3206
  close: function (value) {
3251
- closed = !0;
3252
- nextWriteIndex === buffer.length
3253
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3254
- response,
3255
- value,
3256
- !0
3257
- ))
3258
- : resolveIteratorResultChunk(
3207
+ if (!closed)
3208
+ for (
3209
+ closed = !0,
3210
+ nextWriteIndex === buffer.length
3211
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3212
+ response,
3213
+ value,
3214
+ !0
3215
+ ))
3216
+ : resolveIteratorResultChunk(
3217
+ response,
3218
+ buffer[nextWriteIndex],
3219
+ value,
3220
+ !0
3221
+ ),
3222
+ nextWriteIndex++;
3223
+ nextWriteIndex < buffer.length;
3224
+
3225
+ )
3226
+ resolveIteratorResultChunk(
3259
3227
  response,
3260
- buffer[nextWriteIndex],
3261
- value,
3228
+ buffer[nextWriteIndex++],
3229
+ '"$undefined"',
3262
3230
  !0
3263
3231
  );
3264
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3265
- resolveIteratorResultChunk(
3266
- response,
3267
- buffer[nextWriteIndex++],
3268
- '"$undefined"',
3269
- !0
3270
- );
3271
3232
  },
3272
3233
  error: function (error) {
3273
- closed = !0;
3274
- for (
3275
- nextWriteIndex === buffer.length &&
3276
- (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
3277
- nextWriteIndex < buffer.length;
3234
+ if (!closed)
3235
+ for (
3236
+ closed = !0,
3237
+ nextWriteIndex === buffer.length &&
3238
+ (buffer[nextWriteIndex] = new ReactPromise(
3239
+ "pending",
3240
+ null,
3241
+ null
3242
+ ));
3243
+ nextWriteIndex < buffer.length;
3278
3244
 
3279
- )
3280
- triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3245
+ )
3246
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3281
3247
  }
3282
3248
  });
3283
3249
  return iterator;
@@ -3291,7 +3257,7 @@
3291
3257
  return (
3292
3258
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3293
3259
  );
3294
- case "F":
3260
+ case "h":
3295
3261
  return (
3296
3262
  (value = value.slice(2)),
3297
3263
  getOutlinedModel(response, value, obj, key, loadServerReference$1)
@@ -3486,6 +3452,13 @@
3486
3452
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
3487
3453
  FunctionBind = Function.prototype.bind,
3488
3454
  ArraySlice = Array.prototype.slice,
3455
+ serverReferenceToString = {
3456
+ value: function () {
3457
+ return "function () { [omitted code] }";
3458
+ },
3459
+ configurable: !0,
3460
+ writable: !0
3461
+ },
3489
3462
  PROMISE_PROTOTYPE = Promise.prototype,
3490
3463
  deepProxyHandlers = {
3491
3464
  get: function (target, name) {
@@ -3901,7 +3874,24 @@
3901
3874
  }
3902
3875
  switch (this.status) {
3903
3876
  case "fulfilled":
3904
- "function" === typeof resolve && resolve(this.value);
3877
+ if ("function" === typeof resolve) {
3878
+ for (
3879
+ var inspectedValue = this.value, cycleProtection = 0;
3880
+ inspectedValue instanceof ReactPromise;
3881
+
3882
+ ) {
3883
+ cycleProtection++;
3884
+ if (inspectedValue === this || 1e3 < cycleProtection) {
3885
+ "function" === typeof reject &&
3886
+ reject(Error("Cannot have cyclic thenables."));
3887
+ return;
3888
+ }
3889
+ if ("fulfilled" === inspectedValue.status)
3890
+ inspectedValue = inspectedValue.value;
3891
+ else break;
3892
+ }
3893
+ resolve(this.value);
3894
+ }
3905
3895
  break;
3906
3896
  case "pending":
3907
3897
  case "blocked":
@@ -4013,13 +4003,13 @@
4013
4003
  );
4014
4004
  else {
4015
4005
  pendingFiles++;
4016
- var JSCompiler_object_inline_chunks_144 = [];
4006
+ var JSCompiler_object_inline_chunks_154 = [];
4017
4007
  value.on("data", function (chunk) {
4018
- JSCompiler_object_inline_chunks_144.push(chunk);
4008
+ JSCompiler_object_inline_chunks_154.push(chunk);
4019
4009
  });
4020
4010
  value.on("end", function () {
4021
4011
  try {
4022
- var blob = new Blob(JSCompiler_object_inline_chunks_144, {
4012
+ var blob = new Blob(JSCompiler_object_inline_chunks_154, {
4023
4013
  type: mimeType
4024
4014
  });
4025
4015
  response._formData.append(name, blob, filename);
@@ -4067,7 +4057,8 @@
4067
4057
  },
4068
4058
  $$bound: { value: null, configurable: !0 },
4069
4059
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
4070
- bind: { value: bind, configurable: !0 }
4060
+ bind: { value: bind, configurable: !0 },
4061
+ toString: serverReferenceToString
4071
4062
  });
4072
4063
  };
4073
4064
  exports.renderToPipeableStream = function (model, webpackMap, options) {