react-server-dom-webpack 19.1.1 → 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.
@@ -1575,7 +1575,7 @@
1575
1575
  function serializeServerReference(request, serverReference) {
1576
1576
  var writtenServerReferences = request.writtenServerReferences,
1577
1577
  existingId = writtenServerReferences.get(serverReference);
1578
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
1578
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
1579
1579
  existingId = serverReference.$$bound;
1580
1580
  existingId = null === existingId ? null : Promise.resolve(existingId);
1581
1581
  var id = serverReference.$$id,
@@ -1599,7 +1599,7 @@
1599
1599
  : { id: id, bound: existingId };
1600
1600
  request = outlineModel(request, existingId);
1601
1601
  writtenServerReferences.set(serverReference, request);
1602
- return "$F" + request.toString(16);
1602
+ return "$h" + request.toString(16);
1603
1603
  }
1604
1604
  function serializeLargeTextString(request, text) {
1605
1605
  request.pendingChunks++;
@@ -2820,37 +2820,65 @@
2820
2820
  if ("fulfilled" === moduleExports.status)
2821
2821
  moduleExports = moduleExports.value;
2822
2822
  else throw moduleExports.reason;
2823
- return "*" === metadata[2]
2824
- ? moduleExports
2825
- : "" === metadata[2]
2826
- ? moduleExports.__esModule
2827
- ? moduleExports.default
2828
- : moduleExports
2829
- : moduleExports[metadata[2]];
2830
- }
2831
- function Chunk(status, value, reason, response) {
2823
+ if ("*" === metadata[2]) return moduleExports;
2824
+ if ("" === metadata[2])
2825
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2826
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2827
+ return moduleExports[metadata[2]];
2828
+ }
2829
+ function ReactPromise(status, value, reason) {
2832
2830
  this.status = status;
2833
2831
  this.value = value;
2834
2832
  this.reason = reason;
2835
- this._response = response;
2836
2833
  }
2837
- function createPendingChunk(response) {
2838
- return new Chunk("pending", null, null, response);
2834
+ function wakeChunk(response, listeners, value) {
2835
+ for (var i = 0; i < listeners.length; i++) {
2836
+ var listener = listeners[i];
2837
+ "function" === typeof listener
2838
+ ? listener(value)
2839
+ : fulfillReference(response, listener, value);
2840
+ }
2839
2841
  }
2840
- function wakeChunk(listeners, value) {
2841
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2842
+ function rejectChunk(response, listeners, error) {
2843
+ for (var i = 0; i < listeners.length; i++) {
2844
+ var listener = listeners[i];
2845
+ "function" === typeof listener
2846
+ ? listener(error)
2847
+ : rejectReference(response, listener.handler, error);
2848
+ }
2842
2849
  }
2843
- function triggerErrorOnChunk(chunk, error) {
2850
+ function resolveBlockedCycle(resolvedChunk, reference) {
2851
+ var referencedChunk = reference.handler.chunk;
2852
+ if (null === referencedChunk) return null;
2853
+ if (referencedChunk === resolvedChunk) return reference.handler;
2854
+ reference = referencedChunk.value;
2855
+ if (null !== reference)
2856
+ for (
2857
+ referencedChunk = 0;
2858
+ referencedChunk < reference.length;
2859
+ referencedChunk++
2860
+ ) {
2861
+ var listener = reference[referencedChunk];
2862
+ if (
2863
+ "function" !== typeof listener &&
2864
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2865
+ null !== listener)
2866
+ )
2867
+ return listener;
2868
+ }
2869
+ return null;
2870
+ }
2871
+ function triggerErrorOnChunk(response, chunk, error) {
2844
2872
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2845
2873
  chunk.reason.error(error);
2846
2874
  else {
2847
2875
  var listeners = chunk.reason;
2848
2876
  chunk.status = "rejected";
2849
2877
  chunk.reason = error;
2850
- null !== listeners && wakeChunk(listeners, error);
2878
+ null !== listeners && rejectChunk(response, listeners, error);
2851
2879
  }
2852
2880
  }
2853
- function resolveModelChunk(chunk, value, id) {
2881
+ function resolveModelChunk(response, chunk, value, id) {
2854
2882
  if ("pending" !== chunk.status)
2855
2883
  (chunk = chunk.reason),
2856
2884
  "C" === value[0]
@@ -2861,42 +2889,74 @@
2861
2889
  rejectListeners = chunk.reason;
2862
2890
  chunk.status = "resolved_model";
2863
2891
  chunk.value = value;
2864
- chunk.reason = id;
2892
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2865
2893
  if (null !== resolveListeners)
2866
- switch ((initializeModelChunk(chunk), chunk.status)) {
2894
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2867
2895
  case "fulfilled":
2868
- wakeChunk(resolveListeners, chunk.value);
2896
+ wakeChunk(response, resolveListeners, chunk.value);
2869
2897
  break;
2870
- case "pending":
2871
2898
  case "blocked":
2872
- case "cyclic":
2899
+ for (value = 0; value < resolveListeners.length; value++)
2900
+ if (
2901
+ ((id = resolveListeners[value]), "function" !== typeof id)
2902
+ ) {
2903
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2904
+ if (null !== cyclicHandler)
2905
+ switch (
2906
+ (fulfillReference(response, id, cyclicHandler.value),
2907
+ resolveListeners.splice(value, 1),
2908
+ value--,
2909
+ null !== rejectListeners &&
2910
+ ((id = rejectListeners.indexOf(id)),
2911
+ -1 !== id && rejectListeners.splice(id, 1)),
2912
+ chunk.status)
2913
+ ) {
2914
+ case "fulfilled":
2915
+ wakeChunk(response, resolveListeners, chunk.value);
2916
+ break a;
2917
+ case "rejected":
2918
+ null !== rejectListeners &&
2919
+ rejectChunk(response, rejectListeners, chunk.reason);
2920
+ break a;
2921
+ }
2922
+ }
2923
+ case "pending":
2873
2924
  if (chunk.value)
2874
- for (value = 0; value < resolveListeners.length; value++)
2875
- chunk.value.push(resolveListeners[value]);
2925
+ for (
2926
+ response = 0;
2927
+ response < resolveListeners.length;
2928
+ response++
2929
+ )
2930
+ chunk.value.push(resolveListeners[response]);
2876
2931
  else chunk.value = resolveListeners;
2877
2932
  if (chunk.reason) {
2878
2933
  if (rejectListeners)
2879
- for (value = 0; value < rejectListeners.length; value++)
2880
- chunk.reason.push(rejectListeners[value]);
2934
+ for (
2935
+ resolveListeners = 0;
2936
+ resolveListeners < rejectListeners.length;
2937
+ resolveListeners++
2938
+ )
2939
+ chunk.reason.push(rejectListeners[resolveListeners]);
2881
2940
  } else chunk.reason = rejectListeners;
2882
2941
  break;
2883
2942
  case "rejected":
2884
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2943
+ rejectListeners &&
2944
+ wakeChunk(response, rejectListeners, chunk.reason);
2885
2945
  }
2886
2946
  }
2887
2947
  }
2888
2948
  function createResolvedIteratorResultChunk(response, value, done) {
2889
- return new Chunk(
2949
+ return new ReactPromise(
2890
2950
  "resolved_model",
2891
2951
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2892
2952
  value +
2893
2953
  "}",
2894
- -1,
2895
- response
2954
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
2896
2955
  );
2897
2956
  }
2898
- function resolveIteratorResultChunk(chunk, value, done) {
2957
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2899
2958
  resolveModelChunk(
2959
+ response,
2900
2960
  chunk,
2901
2961
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2902
2962
  value +
@@ -2904,38 +2964,68 @@
2904
2964
  -1
2905
2965
  );
2906
2966
  }
2907
- function loadServerReference$1(
2908
- response,
2909
- id,
2910
- bound,
2911
- parentChunk,
2912
- parentObject,
2913
- key
2914
- ) {
2967
+ function loadServerReference$1(response, metaData, parentObject, key) {
2968
+ var id = metaData.id;
2969
+ if ("string" !== typeof id || "then" === key) return null;
2915
2970
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2916
- id = preloadModule(serverReference);
2917
- if (bound)
2918
- bound = Promise.all([bound, id]).then(function (_ref) {
2919
- _ref = _ref[0];
2920
- var fn = requireModule(serverReference);
2921
- return fn.bind.apply(fn, [null].concat(_ref));
2922
- });
2923
- else if (id)
2924
- bound = Promise.resolve(id).then(function () {
2925
- return requireModule(serverReference);
2926
- });
2971
+ id = metaData.bound;
2972
+ var promise = preloadModule(serverReference);
2973
+ if (promise)
2974
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2975
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2927
2976
  else return requireModule(serverReference);
2928
- bound.then(
2929
- createModelResolver(
2930
- parentChunk,
2931
- parentObject,
2932
- key,
2933
- !1,
2934
- response,
2935
- createModel,
2936
- []
2937
- ),
2938
- createModelReject(parentChunk)
2977
+ if (initializingHandler) {
2978
+ var handler = initializingHandler;
2979
+ handler.deps++;
2980
+ } else
2981
+ handler = initializingHandler = {
2982
+ chunk: null,
2983
+ value: null,
2984
+ reason: null,
2985
+ deps: 1,
2986
+ errored: !1
2987
+ };
2988
+ promise.then(
2989
+ function () {
2990
+ var resolvedValue = requireModule(serverReference);
2991
+ if (metaData.bound) {
2992
+ var promiseValue = metaData.bound.value;
2993
+ promiseValue = Array.isArray(promiseValue)
2994
+ ? promiseValue.slice(0)
2995
+ : [];
2996
+ promiseValue.unshift(null);
2997
+ resolvedValue = resolvedValue.bind.apply(
2998
+ resolvedValue,
2999
+ promiseValue
3000
+ );
3001
+ }
3002
+ parentObject[key] = resolvedValue;
3003
+ "" === key &&
3004
+ null === handler.value &&
3005
+ (handler.value = resolvedValue);
3006
+ handler.deps--;
3007
+ 0 === handler.deps &&
3008
+ ((resolvedValue = handler.chunk),
3009
+ null !== resolvedValue &&
3010
+ "blocked" === resolvedValue.status &&
3011
+ ((promiseValue = resolvedValue.value),
3012
+ (resolvedValue.status = "fulfilled"),
3013
+ (resolvedValue.value = handler.value),
3014
+ (resolvedValue.reason = null),
3015
+ null !== promiseValue &&
3016
+ wakeChunk(response, promiseValue, handler.value)));
3017
+ },
3018
+ function (error) {
3019
+ if (!handler.errored) {
3020
+ handler.errored = !0;
3021
+ handler.value = null;
3022
+ handler.reason = error;
3023
+ var chunk = handler.chunk;
3024
+ null !== chunk &&
3025
+ "blocked" === chunk.status &&
3026
+ triggerErrorOnChunk(response, chunk, error);
3027
+ }
3028
+ }
2939
3029
  );
2940
3030
  return null;
2941
3031
  }
@@ -2977,53 +3067,70 @@
2977
3067
  value[i],
2978
3068
  parentObj
2979
3069
  )),
2980
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
3070
+ void 0 !== parentObj || "__proto__" === i
3071
+ ? (value[i] = parentObj)
3072
+ : delete value[i]);
2981
3073
  return value;
2982
3074
  }
2983
3075
  function initializeModelChunk(chunk) {
2984
- var prevChunk = initializingChunk,
2985
- prevBlocked = initializingChunkBlockedModel;
2986
- initializingChunk = chunk;
2987
- initializingChunkBlockedModel = null;
2988
- var rootReference =
2989
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2990
- resolvedModel = chunk.value;
2991
- chunk.status = "cyclic";
3076
+ var prevHandler = initializingHandler;
3077
+ initializingHandler = null;
3078
+ var _chunk$reason = chunk.reason,
3079
+ response = _chunk$reason[RESPONSE_SYMBOL];
3080
+ _chunk$reason = _chunk$reason.id;
3081
+ _chunk$reason =
3082
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
3083
+ var resolvedModel = chunk.value;
3084
+ chunk.status = "blocked";
2992
3085
  chunk.value = null;
2993
3086
  chunk.reason = null;
2994
3087
  try {
2995
3088
  var rawModel = JSON.parse(resolvedModel),
2996
3089
  value = reviveModel(
2997
- chunk._response,
3090
+ response,
2998
3091
  { "": rawModel },
2999
3092
  "",
3000
3093
  rawModel,
3001
- rootReference
3002
- );
3003
- if (
3004
- null !== initializingChunkBlockedModel &&
3005
- 0 < initializingChunkBlockedModel.deps
3006
- )
3007
- (initializingChunkBlockedModel.value = value),
3008
- (chunk.status = "blocked");
3009
- else {
3010
- var resolveListeners = chunk.value;
3011
- chunk.status = "fulfilled";
3012
- chunk.value = value;
3013
- null !== resolveListeners && wakeChunk(resolveListeners, value);
3094
+ _chunk$reason
3095
+ ),
3096
+ resolveListeners = chunk.value;
3097
+ if (null !== resolveListeners)
3098
+ for (
3099
+ chunk.value = null, chunk.reason = null, rawModel = 0;
3100
+ rawModel < resolveListeners.length;
3101
+ rawModel++
3102
+ ) {
3103
+ var listener = resolveListeners[rawModel];
3104
+ "function" === typeof listener
3105
+ ? listener(value)
3106
+ : fulfillReference(response, listener, value);
3107
+ }
3108
+ if (null !== initializingHandler) {
3109
+ if (initializingHandler.errored) throw initializingHandler.reason;
3110
+ if (0 < initializingHandler.deps) {
3111
+ initializingHandler.value = value;
3112
+ initializingHandler.chunk = chunk;
3113
+ return;
3114
+ }
3014
3115
  }
3116
+ chunk.status = "fulfilled";
3117
+ chunk.value = value;
3118
+ chunk.reason = null;
3015
3119
  } catch (error) {
3016
3120
  (chunk.status = "rejected"), (chunk.reason = error);
3017
3121
  } finally {
3018
- (initializingChunk = prevChunk),
3019
- (initializingChunkBlockedModel = prevBlocked);
3122
+ initializingHandler = prevHandler;
3020
3123
  }
3021
3124
  }
3022
3125
  function reportGlobalError(response, error) {
3023
3126
  response._closed = !0;
3024
3127
  response._closedReason = error;
3025
3128
  response._chunks.forEach(function (chunk) {
3026
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
3129
+ "pending" === chunk.status
3130
+ ? triggerErrorOnChunk(response, chunk, error)
3131
+ : "fulfilled" === chunk.status &&
3132
+ null !== chunk.reason &&
3133
+ chunk.reason.error(error);
3027
3134
  });
3028
3135
  }
3029
3136
  function getChunk(response, id) {
@@ -3032,50 +3139,62 @@
3032
3139
  chunk ||
3033
3140
  ((chunk = response._formData.get(response._prefix + id)),
3034
3141
  (chunk =
3035
- null != chunk
3036
- ? new Chunk("resolved_model", chunk, id, response)
3142
+ "string" === typeof chunk
3143
+ ? new ReactPromise(
3144
+ "resolved_model",
3145
+ chunk,
3146
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
3147
+ )
3037
3148
  : response._closed
3038
- ? new Chunk("rejected", null, response._closedReason, response)
3039
- : createPendingChunk(response)),
3149
+ ? new ReactPromise("rejected", null, response._closedReason)
3150
+ : new ReactPromise("pending", null, null)),
3040
3151
  chunks.set(id, chunk));
3041
3152
  return chunk;
3042
3153
  }
3043
- function createModelResolver(
3044
- chunk,
3045
- parentObject,
3046
- key,
3047
- cyclic,
3048
- response,
3049
- map,
3050
- path
3051
- ) {
3052
- if (initializingChunkBlockedModel) {
3053
- var blocked = initializingChunkBlockedModel;
3054
- cyclic || blocked.deps++;
3055
- } else
3056
- blocked = initializingChunkBlockedModel = {
3057
- deps: cyclic ? 0 : 1,
3058
- value: null
3059
- };
3060
- return function (value) {
3061
- for (var i = 1; i < path.length; i++) value = value[path[i]];
3062
- parentObject[key] = map(response, value);
3063
- "" === key &&
3064
- null === blocked.value &&
3065
- (blocked.value = parentObject[key]);
3066
- blocked.deps--;
3067
- 0 === blocked.deps &&
3068
- "blocked" === chunk.status &&
3069
- ((value = chunk.value),
3070
- (chunk.status = "fulfilled"),
3071
- (chunk.value = blocked.value),
3072
- null !== value && wakeChunk(value, blocked.value));
3073
- };
3074
- }
3075
- function createModelReject(chunk) {
3076
- return function (error) {
3077
- return triggerErrorOnChunk(chunk, error);
3078
- };
3154
+ function fulfillReference(response, reference, value) {
3155
+ var handler = reference.handler,
3156
+ parentObject = reference.parentObject,
3157
+ key = reference.key,
3158
+ map = reference.map,
3159
+ path = reference.path;
3160
+ try {
3161
+ for (var i = 1; i < path.length; i++) {
3162
+ var name = path[i];
3163
+ if (
3164
+ "object" !== typeof value ||
3165
+ !hasOwnProperty.call(value, name) ||
3166
+ value instanceof Promise
3167
+ )
3168
+ throw Error("Invalid reference.");
3169
+ value = value[name];
3170
+ }
3171
+ var mappedValue = map(response, value, parentObject, key);
3172
+ parentObject[key] = mappedValue;
3173
+ "" === key && null === handler.value && (handler.value = mappedValue);
3174
+ } catch (error) {
3175
+ rejectReference(response, reference.handler, error);
3176
+ return;
3177
+ }
3178
+ handler.deps--;
3179
+ 0 === handler.deps &&
3180
+ ((reference = handler.chunk),
3181
+ null !== reference &&
3182
+ "blocked" === reference.status &&
3183
+ ((value = reference.value),
3184
+ (reference.status = "fulfilled"),
3185
+ (reference.value = handler.value),
3186
+ (reference.reason = handler.reason),
3187
+ null !== value && wakeChunk(response, value, handler.value)));
3188
+ }
3189
+ function rejectReference(response, handler, error) {
3190
+ handler.errored ||
3191
+ ((handler.errored = !0),
3192
+ (handler.value = null),
3193
+ (handler.reason = error),
3194
+ (handler = handler.chunk),
3195
+ null !== handler &&
3196
+ "blocked" === handler.status &&
3197
+ triggerErrorOnChunk(response, handler, error));
3079
3198
  }
3080
3199
  function getOutlinedModel(response, reference, parentObject, key, map) {
3081
3200
  reference = reference.split(":");
@@ -3087,29 +3206,61 @@
3087
3206
  }
3088
3207
  switch (id.status) {
3089
3208
  case "fulfilled":
3090
- parentObject = id.value;
3091
- for (key = 1; key < reference.length; key++)
3092
- parentObject = parentObject[reference[key]];
3093
- return map(response, parentObject);
3209
+ id = id.value;
3210
+ for (var i = 1; i < reference.length; i++) {
3211
+ var name = reference[i];
3212
+ if (
3213
+ "object" !== typeof id ||
3214
+ !hasOwnProperty.call(id, name) ||
3215
+ id instanceof Promise
3216
+ )
3217
+ throw Error("Invalid reference.");
3218
+ id = id[name];
3219
+ }
3220
+ return map(response, id, parentObject, key);
3094
3221
  case "pending":
3095
3222
  case "blocked":
3096
- case "cyclic":
3097
- var parentChunk = initializingChunk;
3098
- id.then(
3099
- createModelResolver(
3100
- parentChunk,
3101
- parentObject,
3102
- key,
3103
- "cyclic" === id.status,
3104
- response,
3105
- map,
3106
- reference
3107
- ),
3108
- createModelReject(parentChunk)
3223
+ return (
3224
+ initializingHandler
3225
+ ? ((response = initializingHandler), response.deps++)
3226
+ : (response = initializingHandler =
3227
+ {
3228
+ chunk: null,
3229
+ value: null,
3230
+ reason: null,
3231
+ deps: 1,
3232
+ errored: !1
3233
+ }),
3234
+ (parentObject = {
3235
+ handler: response,
3236
+ parentObject: parentObject,
3237
+ key: key,
3238
+ map: map,
3239
+ path: reference
3240
+ }),
3241
+ null === id.value
3242
+ ? (id.value = [parentObject])
3243
+ : id.value.push(parentObject),
3244
+ null === id.reason
3245
+ ? (id.reason = [parentObject])
3246
+ : id.reason.push(parentObject),
3247
+ null
3109
3248
  );
3110
- return null;
3111
3249
  default:
3112
- throw id.reason;
3250
+ return (
3251
+ initializingHandler
3252
+ ? ((initializingHandler.errored = !0),
3253
+ (initializingHandler.value = null),
3254
+ (initializingHandler.reason = id.reason))
3255
+ : (initializingHandler = {
3256
+ chunk: null,
3257
+ value: null,
3258
+ reason: id.reason,
3259
+ deps: 0,
3260
+ errored: !0
3261
+ }),
3262
+ null
3263
+ );
3113
3264
  }
3114
3265
  }
3115
3266
  function createMap(response, model) {
@@ -3121,8 +3272,8 @@
3121
3272
  function extractIterator(response, model) {
3122
3273
  return model[Symbol.iterator]();
3123
3274
  }
3124
- function createModel(response, model) {
3125
- return model;
3275
+ function createModel(response, model, parentObject, key) {
3276
+ return "then" === key && "function" === typeof model ? null : model;
3126
3277
  }
3127
3278
  function parseTypedArray(
3128
3279
  response,
@@ -3133,44 +3284,77 @@
3133
3284
  parentKey
3134
3285
  ) {
3135
3286
  reference = parseInt(reference.slice(2), 16);
3136
- reference = response._formData.get(response._prefix + reference);
3137
- reference =
3138
- constructor === ArrayBuffer
3139
- ? reference.arrayBuffer()
3140
- : reference.arrayBuffer().then(function (buffer) {
3141
- return new constructor(buffer);
3142
- });
3143
- bytesPerElement = initializingChunk;
3287
+ bytesPerElement = response._prefix + reference;
3288
+ if (response._chunks.has(reference))
3289
+ throw Error("Already initialized typed array.");
3290
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
3291
+ if (initializingHandler) {
3292
+ var handler = initializingHandler;
3293
+ handler.deps++;
3294
+ } else
3295
+ handler = initializingHandler = {
3296
+ chunk: null,
3297
+ value: null,
3298
+ reason: null,
3299
+ deps: 1,
3300
+ errored: !1
3301
+ };
3144
3302
  reference.then(
3145
- createModelResolver(
3146
- bytesPerElement,
3147
- parentObject,
3148
- parentKey,
3149
- !1,
3150
- response,
3151
- createModel,
3152
- []
3153
- ),
3154
- createModelReject(bytesPerElement)
3303
+ function (buffer) {
3304
+ buffer =
3305
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
3306
+ parentObject[parentKey] = buffer;
3307
+ "" === parentKey &&
3308
+ null === handler.value &&
3309
+ (handler.value = buffer);
3310
+ handler.deps--;
3311
+ if (
3312
+ 0 === handler.deps &&
3313
+ ((buffer = handler.chunk),
3314
+ null !== buffer && "blocked" === buffer.status)
3315
+ ) {
3316
+ var resolveListeners = buffer.value;
3317
+ buffer.status = "fulfilled";
3318
+ buffer.value = handler.value;
3319
+ buffer.reason = null;
3320
+ null !== resolveListeners &&
3321
+ wakeChunk(response, resolveListeners, handler.value);
3322
+ }
3323
+ },
3324
+ function (error) {
3325
+ if (!handler.errored) {
3326
+ handler.errored = !0;
3327
+ handler.value = null;
3328
+ handler.reason = error;
3329
+ var chunk = handler.chunk;
3330
+ null !== chunk &&
3331
+ "blocked" === chunk.status &&
3332
+ triggerErrorOnChunk(response, chunk, error);
3333
+ }
3334
+ }
3155
3335
  );
3156
3336
  return null;
3157
3337
  }
3158
3338
  function resolveStream(response, id, stream, controller) {
3159
3339
  var chunks = response._chunks;
3160
- stream = new Chunk("fulfilled", stream, controller, response);
3340
+ stream = new ReactPromise("fulfilled", stream, controller);
3161
3341
  chunks.set(id, stream);
3162
3342
  response = response._formData.getAll(response._prefix + id);
3163
3343
  for (id = 0; id < response.length; id++)
3164
3344
  (chunks = response[id]),
3165
- "C" === chunks[0]
3166
- ? controller.close(
3167
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
3168
- )
3169
- : controller.enqueueModel(chunks);
3345
+ "string" === typeof chunks &&
3346
+ ("C" === chunks[0]
3347
+ ? controller.close(
3348
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
3349
+ )
3350
+ : controller.enqueueModel(chunks));
3170
3351
  }
3171
3352
  function parseReadableStream(response, reference, type) {
3172
3353
  reference = parseInt(reference.slice(2), 16);
3173
- var controller = null;
3354
+ if (response._chunks.has(reference))
3355
+ throw Error("Already initialized stream.");
3356
+ var controller = null,
3357
+ closed = !1;
3174
3358
  type = new ReadableStream({
3175
3359
  type: type,
3176
3360
  start: function (c) {
@@ -3181,7 +3365,11 @@
3181
3365
  resolveStream(response, reference, type, {
3182
3366
  enqueueModel: function (json) {
3183
3367
  if (null === previousBlockedChunk) {
3184
- var chunk = new Chunk("resolved_model", json, -1, response);
3368
+ var chunk = new ReactPromise(
3369
+ "resolved_model",
3370
+ json,
3371
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3372
+ );
3185
3373
  initializeModelChunk(chunk);
3186
3374
  "fulfilled" === chunk.status
3187
3375
  ? controller.enqueue(chunk.value)
@@ -3196,7 +3384,7 @@
3196
3384
  (previousBlockedChunk = chunk));
3197
3385
  } else {
3198
3386
  chunk = previousBlockedChunk;
3199
- var _chunk = createPendingChunk(response);
3387
+ var _chunk = new ReactPromise("pending", null, null);
3200
3388
  _chunk.then(
3201
3389
  function (v) {
3202
3390
  return controller.enqueue(v);
@@ -3208,29 +3396,33 @@
3208
3396
  previousBlockedChunk = _chunk;
3209
3397
  chunk.then(function () {
3210
3398
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3211
- resolveModelChunk(_chunk, json, -1);
3399
+ resolveModelChunk(response, _chunk, json, -1);
3212
3400
  });
3213
3401
  }
3214
3402
  },
3215
3403
  close: function () {
3216
- if (null === previousBlockedChunk) controller.close();
3217
- else {
3218
- var blockedChunk = previousBlockedChunk;
3219
- previousBlockedChunk = null;
3220
- blockedChunk.then(function () {
3221
- return controller.close();
3222
- });
3223
- }
3404
+ if (!closed)
3405
+ if (((closed = !0), null === previousBlockedChunk))
3406
+ controller.close();
3407
+ else {
3408
+ var blockedChunk = previousBlockedChunk;
3409
+ previousBlockedChunk = null;
3410
+ blockedChunk.then(function () {
3411
+ return controller.close();
3412
+ });
3413
+ }
3224
3414
  },
3225
3415
  error: function (error) {
3226
- if (null === previousBlockedChunk) controller.error(error);
3227
- else {
3228
- var blockedChunk = previousBlockedChunk;
3229
- previousBlockedChunk = null;
3230
- blockedChunk.then(function () {
3231
- return controller.error(error);
3232
- });
3233
- }
3416
+ if (!closed)
3417
+ if (((closed = !0), null === previousBlockedChunk))
3418
+ controller.error(error);
3419
+ else {
3420
+ var blockedChunk = previousBlockedChunk;
3421
+ previousBlockedChunk = null;
3422
+ blockedChunk.then(function () {
3423
+ return controller.error(error);
3424
+ });
3425
+ }
3234
3426
  }
3235
3427
  });
3236
3428
  return type;
@@ -3245,6 +3437,8 @@
3245
3437
  }
3246
3438
  function parseAsyncIterable(response, reference, iterator) {
3247
3439
  reference = parseInt(reference.slice(2), 16);
3440
+ if (response._chunks.has(reference))
3441
+ throw Error("Already initialized stream.");
3248
3442
  var buffer = [],
3249
3443
  closed = !1,
3250
3444
  nextWriteIndex = 0,
@@ -3257,13 +3451,12 @@
3257
3451
  );
3258
3452
  if (nextReadIndex === buffer.length) {
3259
3453
  if (closed)
3260
- return new Chunk(
3454
+ return new ReactPromise(
3261
3455
  "fulfilled",
3262
3456
  { done: !0, value: void 0 },
3263
- null,
3264
- response
3457
+ null
3265
3458
  );
3266
- buffer[nextReadIndex] = createPendingChunk(response);
3459
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
3267
3460
  }
3268
3461
  return buffer[nextReadIndex++];
3269
3462
  });
@@ -3277,34 +3470,55 @@
3277
3470
  value,
3278
3471
  !1
3279
3472
  ))
3280
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
3473
+ : resolveIteratorResultChunk(
3474
+ response,
3475
+ buffer[nextWriteIndex],
3476
+ value,
3477
+ !1
3478
+ );
3281
3479
  nextWriteIndex++;
3282
3480
  },
3283
3481
  close: function (value) {
3284
- closed = !0;
3285
- nextWriteIndex === buffer.length
3286
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3482
+ if (!closed)
3483
+ for (
3484
+ closed = !0,
3485
+ nextWriteIndex === buffer.length
3486
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3487
+ response,
3488
+ value,
3489
+ !0
3490
+ ))
3491
+ : resolveIteratorResultChunk(
3492
+ response,
3493
+ buffer[nextWriteIndex],
3494
+ value,
3495
+ !0
3496
+ ),
3497
+ nextWriteIndex++;
3498
+ nextWriteIndex < buffer.length;
3499
+
3500
+ )
3501
+ resolveIteratorResultChunk(
3287
3502
  response,
3288
- value,
3503
+ buffer[nextWriteIndex++],
3504
+ '"$undefined"',
3289
3505
  !0
3290
- ))
3291
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
3292
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3293
- resolveIteratorResultChunk(
3294
- buffer[nextWriteIndex++],
3295
- '"$undefined"',
3296
- !0
3297
- );
3506
+ );
3298
3507
  },
3299
3508
  error: function (error) {
3300
- closed = !0;
3301
- for (
3302
- nextWriteIndex === buffer.length &&
3303
- (buffer[nextWriteIndex] = createPendingChunk(response));
3304
- nextWriteIndex < buffer.length;
3509
+ if (!closed)
3510
+ for (
3511
+ closed = !0,
3512
+ nextWriteIndex === buffer.length &&
3513
+ (buffer[nextWriteIndex] = new ReactPromise(
3514
+ "pending",
3515
+ null,
3516
+ null
3517
+ ));
3518
+ nextWriteIndex < buffer.length;
3305
3519
 
3306
- )
3307
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
3520
+ )
3521
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3308
3522
  }
3309
3523
  });
3310
3524
  return iterator;
@@ -3318,24 +3532,10 @@
3318
3532
  return (
3319
3533
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3320
3534
  );
3321
- case "F":
3535
+ case "h":
3322
3536
  return (
3323
3537
  (value = value.slice(2)),
3324
- (value = getOutlinedModel(
3325
- response,
3326
- value,
3327
- obj,
3328
- key,
3329
- createModel
3330
- )),
3331
- loadServerReference$1(
3332
- response,
3333
- value.id,
3334
- value.bound,
3335
- initializingChunk,
3336
- obj,
3337
- key
3338
- )
3538
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
3339
3539
  );
3340
3540
  case "T":
3341
3541
  if (
@@ -3525,6 +3725,13 @@
3525
3725
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
3526
3726
  FunctionBind = Function.prototype.bind,
3527
3727
  ArraySlice = Array.prototype.slice,
3728
+ serverReferenceToString = {
3729
+ value: function () {
3730
+ return "function () { [omitted code] }";
3731
+ },
3732
+ configurable: !0,
3733
+ writable: !0
3734
+ },
3528
3735
  PROMISE_PROTOTYPE = Promise.prototype,
3529
3736
  deepProxyHandlers = {
3530
3737
  get: function (target, name) {
@@ -3946,34 +4153,49 @@
3946
4153
  debugID = null,
3947
4154
  modelRoot = !1,
3948
4155
  emptyRoot = {},
4156
+ hasOwnProperty = Object.prototype.hasOwnProperty,
3949
4157
  chunkCache = new Map(),
3950
- hasOwnProperty = Object.prototype.hasOwnProperty;
3951
- Chunk.prototype = Object.create(Promise.prototype);
3952
- Chunk.prototype.then = function (resolve, reject) {
4158
+ RESPONSE_SYMBOL = Symbol();
4159
+ ReactPromise.prototype = Object.create(Promise.prototype);
4160
+ ReactPromise.prototype.then = function (resolve, reject) {
3953
4161
  switch (this.status) {
3954
4162
  case "resolved_model":
3955
4163
  initializeModelChunk(this);
3956
4164
  }
3957
4165
  switch (this.status) {
3958
4166
  case "fulfilled":
3959
- resolve(this.value);
4167
+ if ("function" === typeof resolve) {
4168
+ for (
4169
+ var inspectedValue = this.value;
4170
+ inspectedValue instanceof ReactPromise;
4171
+
4172
+ ) {
4173
+ if (inspectedValue === this) {
4174
+ "function" === typeof reject &&
4175
+ reject(Error("Cannot have cyclic thenables."));
4176
+ return;
4177
+ }
4178
+ if ("fulfilled" === inspectedValue.status)
4179
+ inspectedValue = inspectedValue.value;
4180
+ else break;
4181
+ }
4182
+ resolve(this.value);
4183
+ }
3960
4184
  break;
3961
4185
  case "pending":
3962
4186
  case "blocked":
3963
- case "cyclic":
3964
- resolve &&
4187
+ "function" === typeof resolve &&
3965
4188
  (null === this.value && (this.value = []),
3966
4189
  this.value.push(resolve));
3967
- reject &&
4190
+ "function" === typeof reject &&
3968
4191
  (null === this.reason && (this.reason = []),
3969
4192
  this.reason.push(reject));
3970
4193
  break;
3971
4194
  default:
3972
- reject(this.reason);
4195
+ "function" === typeof reject && reject(this.reason);
3973
4196
  }
3974
4197
  };
3975
- var initializingChunk = null,
3976
- initializingChunkBlockedModel = null;
4198
+ var initializingHandler = null;
3977
4199
  exports.createClientModuleProxy = function (moduleId) {
3978
4200
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3979
4201
  return new Proxy(moduleId, proxyHandlers$1);
@@ -4053,11 +4275,12 @@
4053
4275
  var response = response$jscomp$0;
4054
4276
  response._formData.append(name, entry);
4055
4277
  var prefix = response._prefix;
4056
- name.startsWith(prefix) &&
4057
- ((response = response._chunks),
4058
- (name = +name.slice(prefix.length)),
4059
- (prefix = response.get(name)) &&
4060
- resolveModelChunk(prefix, entry, name));
4278
+ if (name.startsWith(prefix)) {
4279
+ var chunks = response._chunks;
4280
+ name = +name.slice(prefix.length);
4281
+ (chunks = chunks.get(name)) &&
4282
+ resolveModelChunk(response, chunks, entry, name);
4283
+ }
4061
4284
  } else response$jscomp$0._formData.append(name, entry);
4062
4285
  iterator.next().then(progress, error);
4063
4286
  }
@@ -4096,7 +4319,8 @@
4096
4319
  },
4097
4320
  $$bound: { value: null, configurable: !0 },
4098
4321
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
4099
- bind: { value: bind, configurable: !0 }
4322
+ bind: { value: bind, configurable: !0 },
4323
+ toString: serverReferenceToString
4100
4324
  });
4101
4325
  };
4102
4326
  exports.renderToReadableStream = function (model, webpackMap, options) {