react-server-dom-webpack 19.1.1 → 19.1.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.
@@ -2763,35 +2763,64 @@
2763
2763
  if ("fulfilled" === moduleExports.status)
2764
2764
  moduleExports = moduleExports.value;
2765
2765
  else throw moduleExports.reason;
2766
- return "*" === metadata.name
2767
- ? moduleExports
2768
- : "" === metadata.name
2769
- ? moduleExports.default
2770
- : moduleExports[metadata.name];
2766
+ if ("*" === metadata.name) return moduleExports;
2767
+ if ("" === metadata.name) return moduleExports.default;
2768
+ if (hasOwnProperty.call(moduleExports, metadata.name))
2769
+ return moduleExports[metadata.name];
2771
2770
  }
2772
- function Chunk(status, value, reason, response) {
2771
+ function ReactPromise(status, value, reason) {
2773
2772
  this.status = status;
2774
2773
  this.value = value;
2775
2774
  this.reason = reason;
2776
- this._response = response;
2777
2775
  }
2778
- function createPendingChunk(response) {
2779
- return new Chunk("pending", null, null, response);
2776
+ function wakeChunk(response, listeners, value) {
2777
+ for (var i = 0; i < listeners.length; i++) {
2778
+ var listener = listeners[i];
2779
+ "function" === typeof listener
2780
+ ? listener(value)
2781
+ : fulfillReference(response, listener, value);
2782
+ }
2783
+ }
2784
+ function rejectChunk(response, listeners, error) {
2785
+ for (var i = 0; i < listeners.length; i++) {
2786
+ var listener = listeners[i];
2787
+ "function" === typeof listener
2788
+ ? listener(error)
2789
+ : rejectReference(response, listener.handler, error);
2790
+ }
2780
2791
  }
2781
- function wakeChunk(listeners, value) {
2782
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2792
+ function resolveBlockedCycle(resolvedChunk, reference) {
2793
+ var referencedChunk = reference.handler.chunk;
2794
+ if (null === referencedChunk) return null;
2795
+ if (referencedChunk === resolvedChunk) return reference.handler;
2796
+ reference = referencedChunk.value;
2797
+ if (null !== reference)
2798
+ for (
2799
+ referencedChunk = 0;
2800
+ referencedChunk < reference.length;
2801
+ referencedChunk++
2802
+ ) {
2803
+ var listener = reference[referencedChunk];
2804
+ if (
2805
+ "function" !== typeof listener &&
2806
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2807
+ null !== listener)
2808
+ )
2809
+ return listener;
2810
+ }
2811
+ return null;
2783
2812
  }
2784
- function triggerErrorOnChunk(chunk, error) {
2813
+ function triggerErrorOnChunk(response, chunk, error) {
2785
2814
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2786
2815
  chunk.reason.error(error);
2787
2816
  else {
2788
2817
  var listeners = chunk.reason;
2789
2818
  chunk.status = "rejected";
2790
2819
  chunk.reason = error;
2791
- null !== listeners && wakeChunk(listeners, error);
2820
+ null !== listeners && rejectChunk(response, listeners, error);
2792
2821
  }
2793
2822
  }
2794
- function resolveModelChunk(chunk, value, id) {
2823
+ function resolveModelChunk(response, chunk, value, id) {
2795
2824
  if ("pending" !== chunk.status)
2796
2825
  (chunk = chunk.reason),
2797
2826
  "C" === value[0]
@@ -2802,42 +2831,74 @@
2802
2831
  rejectListeners = chunk.reason;
2803
2832
  chunk.status = "resolved_model";
2804
2833
  chunk.value = value;
2805
- chunk.reason = id;
2834
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2806
2835
  if (null !== resolveListeners)
2807
- switch ((initializeModelChunk(chunk), chunk.status)) {
2836
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2808
2837
  case "fulfilled":
2809
- wakeChunk(resolveListeners, chunk.value);
2838
+ wakeChunk(response, resolveListeners, chunk.value);
2810
2839
  break;
2811
- case "pending":
2812
2840
  case "blocked":
2813
- case "cyclic":
2841
+ for (value = 0; value < resolveListeners.length; value++)
2842
+ if (
2843
+ ((id = resolveListeners[value]), "function" !== typeof id)
2844
+ ) {
2845
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2846
+ if (null !== cyclicHandler)
2847
+ switch (
2848
+ (fulfillReference(response, id, cyclicHandler.value),
2849
+ resolveListeners.splice(value, 1),
2850
+ value--,
2851
+ null !== rejectListeners &&
2852
+ ((id = rejectListeners.indexOf(id)),
2853
+ -1 !== id && rejectListeners.splice(id, 1)),
2854
+ chunk.status)
2855
+ ) {
2856
+ case "fulfilled":
2857
+ wakeChunk(response, resolveListeners, chunk.value);
2858
+ break a;
2859
+ case "rejected":
2860
+ null !== rejectListeners &&
2861
+ rejectChunk(response, rejectListeners, chunk.reason);
2862
+ break a;
2863
+ }
2864
+ }
2865
+ case "pending":
2814
2866
  if (chunk.value)
2815
- for (value = 0; value < resolveListeners.length; value++)
2816
- chunk.value.push(resolveListeners[value]);
2867
+ for (
2868
+ response = 0;
2869
+ response < resolveListeners.length;
2870
+ response++
2871
+ )
2872
+ chunk.value.push(resolveListeners[response]);
2817
2873
  else chunk.value = resolveListeners;
2818
2874
  if (chunk.reason) {
2819
2875
  if (rejectListeners)
2820
- for (value = 0; value < rejectListeners.length; value++)
2821
- chunk.reason.push(rejectListeners[value]);
2876
+ for (
2877
+ resolveListeners = 0;
2878
+ resolveListeners < rejectListeners.length;
2879
+ resolveListeners++
2880
+ )
2881
+ chunk.reason.push(rejectListeners[resolveListeners]);
2822
2882
  } else chunk.reason = rejectListeners;
2823
2883
  break;
2824
2884
  case "rejected":
2825
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2885
+ rejectListeners &&
2886
+ wakeChunk(response, rejectListeners, chunk.reason);
2826
2887
  }
2827
2888
  }
2828
2889
  }
2829
2890
  function createResolvedIteratorResultChunk(response, value, done) {
2830
- return new Chunk(
2891
+ return new ReactPromise(
2831
2892
  "resolved_model",
2832
2893
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2833
2894
  value +
2834
2895
  "}",
2835
- -1,
2836
- response
2896
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
2837
2897
  );
2838
2898
  }
2839
- function resolveIteratorResultChunk(chunk, value, done) {
2899
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2840
2900
  resolveModelChunk(
2901
+ response,
2841
2902
  chunk,
2842
2903
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2843
2904
  value +
@@ -2845,38 +2906,67 @@
2845
2906
  -1
2846
2907
  );
2847
2908
  }
2848
- function loadServerReference$1(
2849
- response,
2850
- id,
2851
- bound,
2852
- parentChunk,
2853
- parentObject,
2854
- key
2855
- ) {
2909
+ function loadServerReference$1(response, metaData, parentObject, key) {
2910
+ var id = metaData.id;
2911
+ if ("string" !== typeof id) return null;
2856
2912
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2857
- id = preloadModule(serverReference);
2858
- if (bound)
2859
- bound = Promise.all([bound, id]).then(function (_ref) {
2860
- _ref = _ref[0];
2861
- var fn = requireModule(serverReference);
2862
- return fn.bind.apply(fn, [null].concat(_ref));
2863
- });
2864
- else if (id)
2865
- bound = Promise.resolve(id).then(function () {
2866
- return requireModule(serverReference);
2867
- });
2913
+ id = metaData.bound;
2914
+ var promise = preloadModule(serverReference);
2915
+ if (promise)
2916
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2917
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2868
2918
  else return requireModule(serverReference);
2869
- bound.then(
2870
- createModelResolver(
2871
- parentChunk,
2872
- parentObject,
2873
- key,
2874
- !1,
2875
- response,
2876
- createModel,
2877
- []
2878
- ),
2879
- createModelReject(parentChunk)
2919
+ if (initializingHandler) {
2920
+ var handler = initializingHandler;
2921
+ handler.deps++;
2922
+ } else
2923
+ handler = initializingHandler = {
2924
+ chunk: null,
2925
+ value: null,
2926
+ reason: null,
2927
+ deps: 1,
2928
+ errored: !1
2929
+ };
2930
+ promise.then(
2931
+ function () {
2932
+ var resolvedValue = requireModule(serverReference);
2933
+ if (metaData.bound) {
2934
+ var promiseValue = metaData.bound.value;
2935
+ promiseValue = Array.isArray(promiseValue)
2936
+ ? promiseValue.slice(0)
2937
+ : [];
2938
+ promiseValue.unshift(null);
2939
+ resolvedValue = resolvedValue.bind.apply(
2940
+ resolvedValue,
2941
+ promiseValue
2942
+ );
2943
+ }
2944
+ parentObject[key] = resolvedValue;
2945
+ "" === key &&
2946
+ null === handler.value &&
2947
+ (handler.value = resolvedValue);
2948
+ handler.deps--;
2949
+ 0 === handler.deps &&
2950
+ ((resolvedValue = handler.chunk),
2951
+ null !== resolvedValue &&
2952
+ "blocked" === resolvedValue.status &&
2953
+ ((promiseValue = resolvedValue.value),
2954
+ (resolvedValue.status = "fulfilled"),
2955
+ (resolvedValue.value = handler.value),
2956
+ null !== promiseValue &&
2957
+ wakeChunk(response, promiseValue, handler.value)));
2958
+ },
2959
+ function (error) {
2960
+ if (!handler.errored) {
2961
+ handler.errored = !0;
2962
+ handler.value = null;
2963
+ handler.reason = error;
2964
+ var chunk = handler.chunk;
2965
+ null !== chunk &&
2966
+ "blocked" === chunk.status &&
2967
+ triggerErrorOnChunk(response, chunk, error);
2968
+ }
2969
+ }
2880
2970
  );
2881
2971
  return null;
2882
2972
  }
@@ -2918,53 +3008,66 @@
2918
3008
  value[i],
2919
3009
  parentObj
2920
3010
  )),
2921
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
3011
+ void 0 !== parentObj || "__proto__" === i
3012
+ ? (value[i] = parentObj)
3013
+ : delete value[i]);
2922
3014
  return value;
2923
3015
  }
2924
3016
  function initializeModelChunk(chunk) {
2925
- var prevChunk = initializingChunk,
2926
- prevBlocked = initializingChunkBlockedModel;
2927
- initializingChunk = chunk;
2928
- initializingChunkBlockedModel = null;
2929
- var rootReference =
2930
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2931
- resolvedModel = chunk.value;
2932
- chunk.status = "cyclic";
3017
+ var prevHandler = initializingHandler;
3018
+ initializingHandler = null;
3019
+ var _chunk$reason = chunk.reason,
3020
+ response = _chunk$reason[RESPONSE_SYMBOL];
3021
+ _chunk$reason = _chunk$reason.id;
3022
+ _chunk$reason =
3023
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
3024
+ var resolvedModel = chunk.value;
3025
+ chunk.status = "blocked";
2933
3026
  chunk.value = null;
2934
3027
  chunk.reason = null;
2935
3028
  try {
2936
3029
  var rawModel = JSON.parse(resolvedModel),
2937
3030
  value = reviveModel(
2938
- chunk._response,
3031
+ response,
2939
3032
  { "": rawModel },
2940
3033
  "",
2941
3034
  rawModel,
2942
- rootReference
2943
- );
2944
- if (
2945
- null !== initializingChunkBlockedModel &&
2946
- 0 < initializingChunkBlockedModel.deps
2947
- )
2948
- (initializingChunkBlockedModel.value = value),
2949
- (chunk.status = "blocked");
2950
- else {
2951
- var resolveListeners = chunk.value;
2952
- chunk.status = "fulfilled";
2953
- chunk.value = value;
2954
- null !== resolveListeners && wakeChunk(resolveListeners, value);
3035
+ _chunk$reason
3036
+ ),
3037
+ resolveListeners = chunk.value;
3038
+ if (null !== resolveListeners)
3039
+ for (
3040
+ chunk.value = null, chunk.reason = null, rawModel = 0;
3041
+ rawModel < resolveListeners.length;
3042
+ rawModel++
3043
+ ) {
3044
+ var listener = resolveListeners[rawModel];
3045
+ "function" === typeof listener
3046
+ ? listener(value)
3047
+ : fulfillReference(response, listener, value);
3048
+ }
3049
+ if (null !== initializingHandler) {
3050
+ if (initializingHandler.errored) throw initializingHandler.reason;
3051
+ if (0 < initializingHandler.deps) {
3052
+ initializingHandler.value = value;
3053
+ initializingHandler.chunk = chunk;
3054
+ return;
3055
+ }
2955
3056
  }
3057
+ chunk.status = "fulfilled";
3058
+ chunk.value = value;
2956
3059
  } catch (error) {
2957
3060
  (chunk.status = "rejected"), (chunk.reason = error);
2958
3061
  } finally {
2959
- (initializingChunk = prevChunk),
2960
- (initializingChunkBlockedModel = prevBlocked);
3062
+ initializingHandler = prevHandler;
2961
3063
  }
2962
3064
  }
2963
3065
  function reportGlobalError(response, error) {
2964
3066
  response._closed = !0;
2965
3067
  response._closedReason = error;
2966
3068
  response._chunks.forEach(function (chunk) {
2967
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
3069
+ "pending" === chunk.status &&
3070
+ triggerErrorOnChunk(response, chunk, error);
2968
3071
  });
2969
3072
  }
2970
3073
  function getChunk(response, id) {
@@ -2973,50 +3076,108 @@
2973
3076
  chunk ||
2974
3077
  ((chunk = response._formData.get(response._prefix + id)),
2975
3078
  (chunk =
2976
- null != chunk
2977
- ? new Chunk("resolved_model", chunk, id, response)
3079
+ "string" === typeof chunk
3080
+ ? new ReactPromise(
3081
+ "resolved_model",
3082
+ chunk,
3083
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
3084
+ )
2978
3085
  : response._closed
2979
- ? new Chunk("rejected", null, response._closedReason, response)
2980
- : createPendingChunk(response)),
3086
+ ? new ReactPromise("rejected", null, response._closedReason)
3087
+ : new ReactPromise("pending", null, null)),
2981
3088
  chunks.set(id, chunk));
2982
3089
  return chunk;
2983
3090
  }
2984
- function createModelResolver(
2985
- chunk,
3091
+ function fulfillReference(response, reference, value) {
3092
+ for (
3093
+ var handler = reference.handler,
3094
+ parentObject = reference.parentObject,
3095
+ key = reference.key,
3096
+ map = reference.map,
3097
+ path = reference.path,
3098
+ i = 1;
3099
+ i < path.length;
3100
+ i++
3101
+ ) {
3102
+ for (; value instanceof ReactPromise; ) {
3103
+ switch (value.status) {
3104
+ case "resolved_model":
3105
+ initializeModelChunk(value);
3106
+ }
3107
+ switch (value.status) {
3108
+ case "fulfilled":
3109
+ value = value.value;
3110
+ continue;
3111
+ case "blocked":
3112
+ case "pending":
3113
+ path.splice(0, i - 1);
3114
+ null === value.value
3115
+ ? (value.value = [reference])
3116
+ : value.value.push(reference);
3117
+ null === value.reason
3118
+ ? (value.reason = [reference])
3119
+ : value.reason.push(reference);
3120
+ return;
3121
+ default:
3122
+ rejectReference(response, reference.handler, value.reason);
3123
+ return;
3124
+ }
3125
+ }
3126
+ var name = path[i];
3127
+ "object" === typeof value &&
3128
+ hasOwnProperty.call(value, name) &&
3129
+ (value = value[name]);
3130
+ }
3131
+ reference = map(response, value, parentObject, key);
3132
+ parentObject[key] = reference;
3133
+ "" === key && null === handler.value && (handler.value = reference);
3134
+ handler.deps--;
3135
+ 0 === handler.deps &&
3136
+ ((parentObject = handler.chunk),
3137
+ null !== parentObject &&
3138
+ "blocked" === parentObject.status &&
3139
+ ((key = parentObject.value),
3140
+ (parentObject.status = "fulfilled"),
3141
+ (parentObject.value = handler.value),
3142
+ (parentObject.reason = handler.reason),
3143
+ null !== key && wakeChunk(response, key, handler.value)));
3144
+ }
3145
+ function rejectReference(response, handler, error) {
3146
+ handler.errored ||
3147
+ ((handler.errored = !0),
3148
+ (handler.value = null),
3149
+ (handler.reason = error),
3150
+ (handler = handler.chunk),
3151
+ null !== handler &&
3152
+ "blocked" === handler.status &&
3153
+ triggerErrorOnChunk(response, handler, error));
3154
+ }
3155
+ function waitForReference(
3156
+ referencedChunk,
2986
3157
  parentObject,
2987
3158
  key,
2988
- cyclic,
2989
3159
  response,
2990
3160
  map,
2991
3161
  path
2992
3162
  ) {
2993
- if (initializingChunkBlockedModel) {
2994
- var blocked = initializingChunkBlockedModel;
2995
- cyclic || blocked.deps++;
2996
- } else
2997
- blocked = initializingChunkBlockedModel = {
2998
- deps: cyclic ? 0 : 1,
2999
- value: null
3000
- };
3001
- return function (value) {
3002
- for (var i = 1; i < path.length; i++) value = value[path[i]];
3003
- parentObject[key] = map(response, value);
3004
- "" === key &&
3005
- null === blocked.value &&
3006
- (blocked.value = parentObject[key]);
3007
- blocked.deps--;
3008
- 0 === blocked.deps &&
3009
- "blocked" === chunk.status &&
3010
- ((value = chunk.value),
3011
- (chunk.status = "fulfilled"),
3012
- (chunk.value = blocked.value),
3013
- null !== value && wakeChunk(value, blocked.value));
3014
- };
3015
- }
3016
- function createModelReject(chunk) {
3017
- return function (error) {
3018
- return triggerErrorOnChunk(chunk, error);
3163
+ initializingHandler
3164
+ ? ((response = initializingHandler), response.deps++)
3165
+ : (response = initializingHandler =
3166
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
3167
+ parentObject = {
3168
+ handler: response,
3169
+ parentObject: parentObject,
3170
+ key: key,
3171
+ map: map,
3172
+ path: path
3019
3173
  };
3174
+ null === referencedChunk.value
3175
+ ? (referencedChunk.value = [parentObject])
3176
+ : referencedChunk.value.push(parentObject);
3177
+ null === referencedChunk.reason
3178
+ ? (referencedChunk.reason = [parentObject])
3179
+ : referencedChunk.reason.push(parentObject);
3180
+ return null;
3020
3181
  }
3021
3182
  function getOutlinedModel(response, reference, parentObject, key, map) {
3022
3183
  reference = reference.split(":");
@@ -3028,29 +3189,75 @@
3028
3189
  }
3029
3190
  switch (id.status) {
3030
3191
  case "fulfilled":
3031
- parentObject = id.value;
3032
- for (key = 1; key < reference.length; key++)
3033
- parentObject = parentObject[reference[key]];
3034
- return map(response, parentObject);
3192
+ var value = id.value;
3193
+ for (id = 1; id < reference.length; id++) {
3194
+ for (; value instanceof ReactPromise; ) {
3195
+ switch (value.status) {
3196
+ case "resolved_model":
3197
+ initializeModelChunk(value);
3198
+ }
3199
+ switch (value.status) {
3200
+ case "fulfilled":
3201
+ value = value.value;
3202
+ break;
3203
+ case "blocked":
3204
+ case "pending":
3205
+ return waitForReference(
3206
+ value,
3207
+ parentObject,
3208
+ key,
3209
+ response,
3210
+ map,
3211
+ reference.slice(id - 1)
3212
+ );
3213
+ default:
3214
+ return (
3215
+ initializingHandler
3216
+ ? ((initializingHandler.errored = !0),
3217
+ (initializingHandler.value = null),
3218
+ (initializingHandler.reason = value.reason))
3219
+ : (initializingHandler = {
3220
+ chunk: null,
3221
+ value: null,
3222
+ reason: value.reason,
3223
+ deps: 0,
3224
+ errored: !0
3225
+ }),
3226
+ null
3227
+ );
3228
+ }
3229
+ }
3230
+ var name = reference[id];
3231
+ "object" === typeof value &&
3232
+ hasOwnProperty.call(value, name) &&
3233
+ (value = value[name]);
3234
+ }
3235
+ return map(response, value, parentObject, key);
3035
3236
  case "pending":
3036
3237
  case "blocked":
3037
- case "cyclic":
3038
- var parentChunk = initializingChunk;
3039
- id.then(
3040
- createModelResolver(
3041
- parentChunk,
3042
- parentObject,
3043
- key,
3044
- "cyclic" === id.status,
3045
- response,
3046
- map,
3047
- reference
3048
- ),
3049
- createModelReject(parentChunk)
3238
+ return waitForReference(
3239
+ id,
3240
+ parentObject,
3241
+ key,
3242
+ response,
3243
+ map,
3244
+ reference
3050
3245
  );
3051
- return null;
3052
3246
  default:
3053
- throw id.reason;
3247
+ return (
3248
+ initializingHandler
3249
+ ? ((initializingHandler.errored = !0),
3250
+ (initializingHandler.value = null),
3251
+ (initializingHandler.reason = id.reason))
3252
+ : (initializingHandler = {
3253
+ chunk: null,
3254
+ value: null,
3255
+ reason: id.reason,
3256
+ deps: 0,
3257
+ errored: !0
3258
+ }),
3259
+ null
3260
+ );
3054
3261
  }
3055
3262
  }
3056
3263
  function createMap(response, model) {
@@ -3074,40 +3281,68 @@
3074
3281
  parentKey
3075
3282
  ) {
3076
3283
  reference = parseInt(reference.slice(2), 16);
3077
- reference = response._formData.get(response._prefix + reference);
3078
- reference =
3079
- constructor === ArrayBuffer
3080
- ? reference.arrayBuffer()
3081
- : reference.arrayBuffer().then(function (buffer) {
3082
- return new constructor(buffer);
3083
- });
3084
- bytesPerElement = initializingChunk;
3284
+ reference = response._formData
3285
+ .get(response._prefix + reference)
3286
+ .arrayBuffer();
3287
+ if (initializingHandler) {
3288
+ var handler = initializingHandler;
3289
+ handler.deps++;
3290
+ } else
3291
+ handler = initializingHandler = {
3292
+ chunk: null,
3293
+ value: null,
3294
+ reason: null,
3295
+ deps: 1,
3296
+ errored: !1
3297
+ };
3085
3298
  reference.then(
3086
- createModelResolver(
3087
- bytesPerElement,
3088
- parentObject,
3089
- parentKey,
3090
- !1,
3091
- response,
3092
- createModel,
3093
- []
3094
- ),
3095
- createModelReject(bytesPerElement)
3299
+ function (buffer) {
3300
+ buffer =
3301
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
3302
+ parentObject[parentKey] = buffer;
3303
+ "" === parentKey &&
3304
+ null === handler.value &&
3305
+ (handler.value = buffer);
3306
+ handler.deps--;
3307
+ if (
3308
+ 0 === handler.deps &&
3309
+ ((buffer = handler.chunk),
3310
+ null !== buffer && "blocked" === buffer.status)
3311
+ ) {
3312
+ var resolveListeners = buffer.value;
3313
+ buffer.status = "fulfilled";
3314
+ buffer.value = handler.value;
3315
+ null !== resolveListeners &&
3316
+ wakeChunk(response, resolveListeners, handler.value);
3317
+ }
3318
+ },
3319
+ function (error) {
3320
+ if (!handler.errored) {
3321
+ handler.errored = !0;
3322
+ handler.value = null;
3323
+ handler.reason = error;
3324
+ var chunk = handler.chunk;
3325
+ null !== chunk &&
3326
+ "blocked" === chunk.status &&
3327
+ triggerErrorOnChunk(response, chunk, error);
3328
+ }
3329
+ }
3096
3330
  );
3097
3331
  return null;
3098
3332
  }
3099
3333
  function resolveStream(response, id, stream, controller) {
3100
3334
  var chunks = response._chunks;
3101
- stream = new Chunk("fulfilled", stream, controller, response);
3335
+ stream = new ReactPromise("fulfilled", stream, controller);
3102
3336
  chunks.set(id, stream);
3103
3337
  response = response._formData.getAll(response._prefix + id);
3104
3338
  for (id = 0; id < response.length; id++)
3105
3339
  (chunks = response[id]),
3106
- "C" === chunks[0]
3107
- ? controller.close(
3108
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
3109
- )
3110
- : controller.enqueueModel(chunks);
3340
+ "string" === typeof chunks &&
3341
+ ("C" === chunks[0]
3342
+ ? controller.close(
3343
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
3344
+ )
3345
+ : controller.enqueueModel(chunks));
3111
3346
  }
3112
3347
  function parseReadableStream(response, reference, type) {
3113
3348
  reference = parseInt(reference.slice(2), 16);
@@ -3122,7 +3357,11 @@
3122
3357
  resolveStream(response, reference, type, {
3123
3358
  enqueueModel: function (json) {
3124
3359
  if (null === previousBlockedChunk) {
3125
- var chunk = new Chunk("resolved_model", json, -1, response);
3360
+ var chunk = new ReactPromise(
3361
+ "resolved_model",
3362
+ json,
3363
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3364
+ );
3126
3365
  initializeModelChunk(chunk);
3127
3366
  "fulfilled" === chunk.status
3128
3367
  ? controller.enqueue(chunk.value)
@@ -3137,7 +3376,7 @@
3137
3376
  (previousBlockedChunk = chunk));
3138
3377
  } else {
3139
3378
  chunk = previousBlockedChunk;
3140
- var _chunk = createPendingChunk(response);
3379
+ var _chunk = new ReactPromise("pending", null, null);
3141
3380
  _chunk.then(
3142
3381
  function (v) {
3143
3382
  return controller.enqueue(v);
@@ -3149,7 +3388,7 @@
3149
3388
  previousBlockedChunk = _chunk;
3150
3389
  chunk.then(function () {
3151
3390
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3152
- resolveModelChunk(_chunk, json, -1);
3391
+ resolveModelChunk(response, _chunk, json, -1);
3153
3392
  });
3154
3393
  }
3155
3394
  },
@@ -3198,13 +3437,12 @@
3198
3437
  );
3199
3438
  if (nextReadIndex === buffer.length) {
3200
3439
  if (closed)
3201
- return new Chunk(
3440
+ return new ReactPromise(
3202
3441
  "fulfilled",
3203
3442
  { done: !0, value: void 0 },
3204
- null,
3205
- response
3443
+ null
3206
3444
  );
3207
- buffer[nextReadIndex] = createPendingChunk(response);
3445
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
3208
3446
  }
3209
3447
  return buffer[nextReadIndex++];
3210
3448
  });
@@ -3218,7 +3456,12 @@
3218
3456
  value,
3219
3457
  !1
3220
3458
  ))
3221
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
3459
+ : resolveIteratorResultChunk(
3460
+ response,
3461
+ buffer[nextWriteIndex],
3462
+ value,
3463
+ !1
3464
+ );
3222
3465
  nextWriteIndex++;
3223
3466
  },
3224
3467
  close: function (value) {
@@ -3229,9 +3472,15 @@
3229
3472
  value,
3230
3473
  !0
3231
3474
  ))
3232
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
3475
+ : resolveIteratorResultChunk(
3476
+ response,
3477
+ buffer[nextWriteIndex],
3478
+ value,
3479
+ !0
3480
+ );
3233
3481
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3234
3482
  resolveIteratorResultChunk(
3483
+ response,
3235
3484
  buffer[nextWriteIndex++],
3236
3485
  '"$undefined"',
3237
3486
  !0
@@ -3241,11 +3490,11 @@
3241
3490
  closed = !0;
3242
3491
  for (
3243
3492
  nextWriteIndex === buffer.length &&
3244
- (buffer[nextWriteIndex] = createPendingChunk(response));
3493
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
3245
3494
  nextWriteIndex < buffer.length;
3246
3495
 
3247
3496
  )
3248
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
3497
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3249
3498
  }
3250
3499
  });
3251
3500
  return iterator;
@@ -3262,21 +3511,7 @@
3262
3511
  case "F":
3263
3512
  return (
3264
3513
  (value = value.slice(2)),
3265
- (value = getOutlinedModel(
3266
- response,
3267
- value,
3268
- obj,
3269
- key,
3270
- createModel
3271
- )),
3272
- loadServerReference$1(
3273
- response,
3274
- value.id,
3275
- value.bound,
3276
- initializingChunk,
3277
- obj,
3278
- key
3279
- )
3514
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
3280
3515
  );
3281
3516
  case "T":
3282
3517
  if (
@@ -3412,10 +3647,12 @@
3412
3647
  function resolveField(response, key, value) {
3413
3648
  response._formData.append(key, value);
3414
3649
  var prefix = response._prefix;
3415
- key.startsWith(prefix) &&
3416
- ((response = response._chunks),
3417
- (key = +key.slice(prefix.length)),
3418
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
3650
+ if (key.startsWith(prefix)) {
3651
+ var chunks = response._chunks;
3652
+ key = +key.slice(prefix.length);
3653
+ (chunks = chunks.get(key)) &&
3654
+ resolveModelChunk(response, chunks, value, key);
3655
+ }
3419
3656
  }
3420
3657
  function close(response) {
3421
3658
  reportGlobalError(response, Error("Connection closed."));
@@ -3906,34 +4143,33 @@
3906
4143
  debugID = null,
3907
4144
  modelRoot = !1,
3908
4145
  emptyRoot = {},
4146
+ hasOwnProperty = Object.prototype.hasOwnProperty,
3909
4147
  asyncModuleCache = new Map(),
3910
- hasOwnProperty = Object.prototype.hasOwnProperty;
3911
- Chunk.prototype = Object.create(Promise.prototype);
3912
- Chunk.prototype.then = function (resolve, reject) {
4148
+ RESPONSE_SYMBOL = Symbol();
4149
+ ReactPromise.prototype = Object.create(Promise.prototype);
4150
+ ReactPromise.prototype.then = function (resolve, reject) {
3913
4151
  switch (this.status) {
3914
4152
  case "resolved_model":
3915
4153
  initializeModelChunk(this);
3916
4154
  }
3917
4155
  switch (this.status) {
3918
4156
  case "fulfilled":
3919
- resolve(this.value);
4157
+ "function" === typeof resolve && resolve(this.value);
3920
4158
  break;
3921
4159
  case "pending":
3922
4160
  case "blocked":
3923
- case "cyclic":
3924
- resolve &&
4161
+ "function" === typeof resolve &&
3925
4162
  (null === this.value && (this.value = []),
3926
4163
  this.value.push(resolve));
3927
- reject &&
4164
+ "function" === typeof reject &&
3928
4165
  (null === this.reason && (this.reason = []),
3929
4166
  this.reason.push(reject));
3930
4167
  break;
3931
4168
  default:
3932
- reject(this.reason);
4169
+ "function" === typeof reject && reject(this.reason);
3933
4170
  }
3934
4171
  };
3935
- var initializingChunk = null,
3936
- initializingChunkBlockedModel = null;
4172
+ var initializingHandler = null;
3937
4173
  exports.createClientModuleProxy = function (moduleId) {
3938
4174
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3939
4175
  return new Proxy(moduleId, proxyHandlers$1);
@@ -4011,38 +4247,50 @@
4011
4247
  pendingFiles = 0,
4012
4248
  queuedFields = [];
4013
4249
  busboyStream.on("field", function (name, value) {
4014
- 0 < pendingFiles
4015
- ? queuedFields.push(name, value)
4016
- : resolveField(response, name, value);
4250
+ if (0 < pendingFiles) queuedFields.push(name, value);
4251
+ else
4252
+ try {
4253
+ resolveField(response, name, value);
4254
+ } catch (error) {
4255
+ busboyStream.destroy(error);
4256
+ }
4017
4257
  });
4018
4258
  busboyStream.on("file", function (name, value, _ref) {
4019
4259
  var filename = _ref.filename,
4020
4260
  mimeType = _ref.mimeType;
4021
4261
  if ("base64" === _ref.encoding.toLowerCase())
4022
- throw Error(
4023
- "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
4262
+ busboyStream.destroy(
4263
+ Error(
4264
+ "React doesn't accept base64 encoded file uploads because we don't expect form data passed from a browser to ever encode data that way. If that's the wrong assumption, we can easily fix it."
4265
+ )
4024
4266
  );
4025
- pendingFiles++;
4026
- var JSCompiler_object_inline_chunks_153 = [];
4027
- value.on("data", function (chunk) {
4028
- JSCompiler_object_inline_chunks_153.push(chunk);
4029
- });
4030
- value.on("end", function () {
4031
- var blob = new Blob(JSCompiler_object_inline_chunks_153, {
4032
- type: mimeType
4267
+ else {
4268
+ pendingFiles++;
4269
+ var JSCompiler_object_inline_chunks_156 = [];
4270
+ value.on("data", function (chunk) {
4271
+ JSCompiler_object_inline_chunks_156.push(chunk);
4033
4272
  });
4034
- response._formData.append(name, blob, filename);
4035
- pendingFiles--;
4036
- if (0 === pendingFiles) {
4037
- for (blob = 0; blob < queuedFields.length; blob += 2)
4038
- resolveField(
4039
- response,
4040
- queuedFields[blob],
4041
- queuedFields[blob + 1]
4042
- );
4043
- queuedFields.length = 0;
4044
- }
4045
- });
4273
+ value.on("end", function () {
4274
+ try {
4275
+ var blob = new Blob(JSCompiler_object_inline_chunks_156, {
4276
+ type: mimeType
4277
+ });
4278
+ response._formData.append(name, blob, filename);
4279
+ pendingFiles--;
4280
+ if (0 === pendingFiles) {
4281
+ for (blob = 0; blob < queuedFields.length; blob += 2)
4282
+ resolveField(
4283
+ response,
4284
+ queuedFields[blob],
4285
+ queuedFields[blob + 1]
4286
+ );
4287
+ queuedFields.length = 0;
4288
+ }
4289
+ } catch (error) {
4290
+ busboyStream.destroy(error);
4291
+ }
4292
+ });
4293
+ }
4046
4294
  });
4047
4295
  busboyStream.on("finish", function () {
4048
4296
  close(response);