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.
@@ -1512,7 +1512,7 @@
1512
1512
  function serializeServerReference(request, serverReference) {
1513
1513
  var writtenServerReferences = request.writtenServerReferences,
1514
1514
  existingId = writtenServerReferences.get(serverReference);
1515
- if (void 0 !== existingId) return "$F" + existingId.toString(16);
1515
+ if (void 0 !== existingId) return "$h" + existingId.toString(16);
1516
1516
  existingId = serverReference.$$bound;
1517
1517
  existingId = null === existingId ? null : Promise.resolve(existingId);
1518
1518
  var id = serverReference.$$id,
@@ -1536,7 +1536,7 @@
1536
1536
  : { id: id, bound: existingId };
1537
1537
  request = outlineModel(request, existingId);
1538
1538
  writtenServerReferences.set(serverReference, request);
1539
- return "$F" + request.toString(16);
1539
+ return "$h" + request.toString(16);
1540
1540
  }
1541
1541
  function serializeLargeTextString(request, text) {
1542
1542
  request.pendingChunks++;
@@ -2742,41 +2742,69 @@
2742
2742
  if ("fulfilled" === moduleExports.status)
2743
2743
  moduleExports = moduleExports.value;
2744
2744
  else throw moduleExports.reason;
2745
- return "*" === metadata[2]
2746
- ? moduleExports
2747
- : "" === metadata[2]
2748
- ? moduleExports.__esModule
2749
- ? moduleExports.default
2750
- : moduleExports
2751
- : moduleExports[metadata[2]];
2745
+ if ("*" === metadata[2]) return moduleExports;
2746
+ if ("" === metadata[2])
2747
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2748
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2749
+ return moduleExports[metadata[2]];
2752
2750
  }
2753
2751
  function loadChunk(chunkId, filename) {
2754
2752
  chunkMap.set(chunkId, filename);
2755
2753
  return __webpack_chunk_load__(chunkId);
2756
2754
  }
2757
- function Chunk(status, value, reason, response) {
2755
+ function ReactPromise(status, value, reason) {
2758
2756
  this.status = status;
2759
2757
  this.value = value;
2760
2758
  this.reason = reason;
2761
- this._response = response;
2762
2759
  }
2763
- function createPendingChunk(response) {
2764
- return new Chunk("pending", null, null, response);
2760
+ function wakeChunk(response, listeners, value) {
2761
+ for (var i = 0; i < listeners.length; i++) {
2762
+ var listener = listeners[i];
2763
+ "function" === typeof listener
2764
+ ? listener(value)
2765
+ : fulfillReference(response, listener, value);
2766
+ }
2767
+ }
2768
+ function rejectChunk(response, listeners, error) {
2769
+ for (var i = 0; i < listeners.length; i++) {
2770
+ var listener = listeners[i];
2771
+ "function" === typeof listener
2772
+ ? listener(error)
2773
+ : rejectReference(response, listener.handler, error);
2774
+ }
2765
2775
  }
2766
- function wakeChunk(listeners, value) {
2767
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2776
+ function resolveBlockedCycle(resolvedChunk, reference) {
2777
+ var referencedChunk = reference.handler.chunk;
2778
+ if (null === referencedChunk) return null;
2779
+ if (referencedChunk === resolvedChunk) return reference.handler;
2780
+ reference = referencedChunk.value;
2781
+ if (null !== reference)
2782
+ for (
2783
+ referencedChunk = 0;
2784
+ referencedChunk < reference.length;
2785
+ referencedChunk++
2786
+ ) {
2787
+ var listener = reference[referencedChunk];
2788
+ if (
2789
+ "function" !== typeof listener &&
2790
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2791
+ null !== listener)
2792
+ )
2793
+ return listener;
2794
+ }
2795
+ return null;
2768
2796
  }
2769
- function triggerErrorOnChunk(chunk, error) {
2797
+ function triggerErrorOnChunk(response, chunk, error) {
2770
2798
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2771
2799
  chunk.reason.error(error);
2772
2800
  else {
2773
2801
  var listeners = chunk.reason;
2774
2802
  chunk.status = "rejected";
2775
2803
  chunk.reason = error;
2776
- null !== listeners && wakeChunk(listeners, error);
2804
+ null !== listeners && rejectChunk(response, listeners, error);
2777
2805
  }
2778
2806
  }
2779
- function resolveModelChunk(chunk, value, id) {
2807
+ function resolveModelChunk(response, chunk, value, id) {
2780
2808
  if ("pending" !== chunk.status)
2781
2809
  (chunk = chunk.reason),
2782
2810
  "C" === value[0]
@@ -2787,42 +2815,74 @@
2787
2815
  rejectListeners = chunk.reason;
2788
2816
  chunk.status = "resolved_model";
2789
2817
  chunk.value = value;
2790
- chunk.reason = id;
2818
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2791
2819
  if (null !== resolveListeners)
2792
- switch ((initializeModelChunk(chunk), chunk.status)) {
2820
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2793
2821
  case "fulfilled":
2794
- wakeChunk(resolveListeners, chunk.value);
2822
+ wakeChunk(response, resolveListeners, chunk.value);
2795
2823
  break;
2796
- case "pending":
2797
2824
  case "blocked":
2798
- case "cyclic":
2825
+ for (value = 0; value < resolveListeners.length; value++)
2826
+ if (
2827
+ ((id = resolveListeners[value]), "function" !== typeof id)
2828
+ ) {
2829
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2830
+ if (null !== cyclicHandler)
2831
+ switch (
2832
+ (fulfillReference(response, id, cyclicHandler.value),
2833
+ resolveListeners.splice(value, 1),
2834
+ value--,
2835
+ null !== rejectListeners &&
2836
+ ((id = rejectListeners.indexOf(id)),
2837
+ -1 !== id && rejectListeners.splice(id, 1)),
2838
+ chunk.status)
2839
+ ) {
2840
+ case "fulfilled":
2841
+ wakeChunk(response, resolveListeners, chunk.value);
2842
+ break a;
2843
+ case "rejected":
2844
+ null !== rejectListeners &&
2845
+ rejectChunk(response, rejectListeners, chunk.reason);
2846
+ break a;
2847
+ }
2848
+ }
2849
+ case "pending":
2799
2850
  if (chunk.value)
2800
- for (value = 0; value < resolveListeners.length; value++)
2801
- chunk.value.push(resolveListeners[value]);
2851
+ for (
2852
+ response = 0;
2853
+ response < resolveListeners.length;
2854
+ response++
2855
+ )
2856
+ chunk.value.push(resolveListeners[response]);
2802
2857
  else chunk.value = resolveListeners;
2803
2858
  if (chunk.reason) {
2804
2859
  if (rejectListeners)
2805
- for (value = 0; value < rejectListeners.length; value++)
2806
- chunk.reason.push(rejectListeners[value]);
2860
+ for (
2861
+ resolveListeners = 0;
2862
+ resolveListeners < rejectListeners.length;
2863
+ resolveListeners++
2864
+ )
2865
+ chunk.reason.push(rejectListeners[resolveListeners]);
2807
2866
  } else chunk.reason = rejectListeners;
2808
2867
  break;
2809
2868
  case "rejected":
2810
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2869
+ rejectListeners &&
2870
+ wakeChunk(response, rejectListeners, chunk.reason);
2811
2871
  }
2812
2872
  }
2813
2873
  }
2814
2874
  function createResolvedIteratorResultChunk(response, value, done) {
2815
- return new Chunk(
2875
+ return new ReactPromise(
2816
2876
  "resolved_model",
2817
2877
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2818
2878
  value +
2819
2879
  "}",
2820
- -1,
2821
- response
2880
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
2822
2881
  );
2823
2882
  }
2824
- function resolveIteratorResultChunk(chunk, value, done) {
2883
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2825
2884
  resolveModelChunk(
2885
+ response,
2826
2886
  chunk,
2827
2887
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2828
2888
  value +
@@ -2830,38 +2890,68 @@
2830
2890
  -1
2831
2891
  );
2832
2892
  }
2833
- function loadServerReference$1(
2834
- response,
2835
- id,
2836
- bound,
2837
- parentChunk,
2838
- parentObject,
2839
- key
2840
- ) {
2893
+ function loadServerReference$1(response, metaData, parentObject, key) {
2894
+ var id = metaData.id;
2895
+ if ("string" !== typeof id || "then" === key) return null;
2841
2896
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2842
- id = preloadModule(serverReference);
2843
- if (bound)
2844
- bound = Promise.all([bound, id]).then(function (_ref) {
2845
- _ref = _ref[0];
2846
- var fn = requireModule(serverReference);
2847
- return fn.bind.apply(fn, [null].concat(_ref));
2848
- });
2849
- else if (id)
2850
- bound = Promise.resolve(id).then(function () {
2851
- return requireModule(serverReference);
2852
- });
2897
+ id = metaData.bound;
2898
+ var promise = preloadModule(serverReference);
2899
+ if (promise)
2900
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2901
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2853
2902
  else return requireModule(serverReference);
2854
- bound.then(
2855
- createModelResolver(
2856
- parentChunk,
2857
- parentObject,
2858
- key,
2859
- !1,
2860
- response,
2861
- createModel,
2862
- []
2863
- ),
2864
- createModelReject(parentChunk)
2903
+ if (initializingHandler) {
2904
+ var handler = initializingHandler;
2905
+ handler.deps++;
2906
+ } else
2907
+ handler = initializingHandler = {
2908
+ chunk: null,
2909
+ value: null,
2910
+ reason: null,
2911
+ deps: 1,
2912
+ errored: !1
2913
+ };
2914
+ promise.then(
2915
+ function () {
2916
+ var resolvedValue = requireModule(serverReference);
2917
+ if (metaData.bound) {
2918
+ var promiseValue = metaData.bound.value;
2919
+ promiseValue = Array.isArray(promiseValue)
2920
+ ? promiseValue.slice(0)
2921
+ : [];
2922
+ promiseValue.unshift(null);
2923
+ resolvedValue = resolvedValue.bind.apply(
2924
+ resolvedValue,
2925
+ promiseValue
2926
+ );
2927
+ }
2928
+ parentObject[key] = resolvedValue;
2929
+ "" === key &&
2930
+ null === handler.value &&
2931
+ (handler.value = resolvedValue);
2932
+ handler.deps--;
2933
+ 0 === handler.deps &&
2934
+ ((resolvedValue = handler.chunk),
2935
+ null !== resolvedValue &&
2936
+ "blocked" === resolvedValue.status &&
2937
+ ((promiseValue = resolvedValue.value),
2938
+ (resolvedValue.status = "fulfilled"),
2939
+ (resolvedValue.value = handler.value),
2940
+ (resolvedValue.reason = null),
2941
+ null !== promiseValue &&
2942
+ wakeChunk(response, promiseValue, handler.value)));
2943
+ },
2944
+ function (error) {
2945
+ if (!handler.errored) {
2946
+ handler.errored = !0;
2947
+ handler.value = null;
2948
+ handler.reason = error;
2949
+ var chunk = handler.chunk;
2950
+ null !== chunk &&
2951
+ "blocked" === chunk.status &&
2952
+ triggerErrorOnChunk(response, chunk, error);
2953
+ }
2954
+ }
2865
2955
  );
2866
2956
  return null;
2867
2957
  }
@@ -2903,53 +2993,70 @@
2903
2993
  value[i],
2904
2994
  parentObj
2905
2995
  )),
2906
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2996
+ void 0 !== parentObj || "__proto__" === i
2997
+ ? (value[i] = parentObj)
2998
+ : delete value[i]);
2907
2999
  return value;
2908
3000
  }
2909
3001
  function initializeModelChunk(chunk) {
2910
- var prevChunk = initializingChunk,
2911
- prevBlocked = initializingChunkBlockedModel;
2912
- initializingChunk = chunk;
2913
- initializingChunkBlockedModel = null;
2914
- var rootReference =
2915
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2916
- resolvedModel = chunk.value;
2917
- chunk.status = "cyclic";
3002
+ var prevHandler = initializingHandler;
3003
+ initializingHandler = null;
3004
+ var _chunk$reason = chunk.reason,
3005
+ response = _chunk$reason[RESPONSE_SYMBOL];
3006
+ _chunk$reason = _chunk$reason.id;
3007
+ _chunk$reason =
3008
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
3009
+ var resolvedModel = chunk.value;
3010
+ chunk.status = "blocked";
2918
3011
  chunk.value = null;
2919
3012
  chunk.reason = null;
2920
3013
  try {
2921
3014
  var rawModel = JSON.parse(resolvedModel),
2922
3015
  value = reviveModel(
2923
- chunk._response,
3016
+ response,
2924
3017
  { "": rawModel },
2925
3018
  "",
2926
3019
  rawModel,
2927
- rootReference
2928
- );
2929
- if (
2930
- null !== initializingChunkBlockedModel &&
2931
- 0 < initializingChunkBlockedModel.deps
2932
- )
2933
- (initializingChunkBlockedModel.value = value),
2934
- (chunk.status = "blocked");
2935
- else {
2936
- var resolveListeners = chunk.value;
2937
- chunk.status = "fulfilled";
2938
- chunk.value = value;
2939
- null !== resolveListeners && wakeChunk(resolveListeners, value);
3020
+ _chunk$reason
3021
+ ),
3022
+ resolveListeners = chunk.value;
3023
+ if (null !== resolveListeners)
3024
+ for (
3025
+ chunk.value = null, chunk.reason = null, rawModel = 0;
3026
+ rawModel < resolveListeners.length;
3027
+ rawModel++
3028
+ ) {
3029
+ var listener = resolveListeners[rawModel];
3030
+ "function" === typeof listener
3031
+ ? listener(value)
3032
+ : fulfillReference(response, listener, value);
3033
+ }
3034
+ if (null !== initializingHandler) {
3035
+ if (initializingHandler.errored) throw initializingHandler.reason;
3036
+ if (0 < initializingHandler.deps) {
3037
+ initializingHandler.value = value;
3038
+ initializingHandler.chunk = chunk;
3039
+ return;
3040
+ }
2940
3041
  }
3042
+ chunk.status = "fulfilled";
3043
+ chunk.value = value;
3044
+ chunk.reason = null;
2941
3045
  } catch (error) {
2942
3046
  (chunk.status = "rejected"), (chunk.reason = error);
2943
3047
  } finally {
2944
- (initializingChunk = prevChunk),
2945
- (initializingChunkBlockedModel = prevBlocked);
3048
+ initializingHandler = prevHandler;
2946
3049
  }
2947
3050
  }
2948
3051
  function reportGlobalError(response, error) {
2949
3052
  response._closed = !0;
2950
3053
  response._closedReason = error;
2951
3054
  response._chunks.forEach(function (chunk) {
2952
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
3055
+ "pending" === chunk.status
3056
+ ? triggerErrorOnChunk(response, chunk, error)
3057
+ : "fulfilled" === chunk.status &&
3058
+ null !== chunk.reason &&
3059
+ chunk.reason.error(error);
2953
3060
  });
2954
3061
  }
2955
3062
  function getChunk(response, id) {
@@ -2958,50 +3065,62 @@
2958
3065
  chunk ||
2959
3066
  ((chunk = response._formData.get(response._prefix + id)),
2960
3067
  (chunk =
2961
- null != chunk
2962
- ? new Chunk("resolved_model", chunk, id, response)
3068
+ "string" === typeof chunk
3069
+ ? new ReactPromise(
3070
+ "resolved_model",
3071
+ chunk,
3072
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
3073
+ )
2963
3074
  : response._closed
2964
- ? new Chunk("rejected", null, response._closedReason, response)
2965
- : createPendingChunk(response)),
3075
+ ? new ReactPromise("rejected", null, response._closedReason)
3076
+ : new ReactPromise("pending", null, null)),
2966
3077
  chunks.set(id, chunk));
2967
3078
  return chunk;
2968
3079
  }
2969
- function createModelResolver(
2970
- chunk,
2971
- parentObject,
2972
- key,
2973
- cyclic,
2974
- response,
2975
- map,
2976
- path
2977
- ) {
2978
- if (initializingChunkBlockedModel) {
2979
- var blocked = initializingChunkBlockedModel;
2980
- cyclic || blocked.deps++;
2981
- } else
2982
- blocked = initializingChunkBlockedModel = {
2983
- deps: cyclic ? 0 : 1,
2984
- value: null
2985
- };
2986
- return function (value) {
2987
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2988
- parentObject[key] = map(response, value);
2989
- "" === key &&
2990
- null === blocked.value &&
2991
- (blocked.value = parentObject[key]);
2992
- blocked.deps--;
2993
- 0 === blocked.deps &&
2994
- "blocked" === chunk.status &&
2995
- ((value = chunk.value),
2996
- (chunk.status = "fulfilled"),
2997
- (chunk.value = blocked.value),
2998
- null !== value && wakeChunk(value, blocked.value));
2999
- };
3000
- }
3001
- function createModelReject(chunk) {
3002
- return function (error) {
3003
- return triggerErrorOnChunk(chunk, error);
3004
- };
3080
+ function fulfillReference(response, reference, value) {
3081
+ var handler = reference.handler,
3082
+ parentObject = reference.parentObject,
3083
+ key = reference.key,
3084
+ map = reference.map,
3085
+ path = reference.path;
3086
+ try {
3087
+ for (var i = 1; i < path.length; i++) {
3088
+ var name = path[i];
3089
+ if (
3090
+ "object" !== typeof value ||
3091
+ !hasOwnProperty.call(value, name) ||
3092
+ value instanceof Promise
3093
+ )
3094
+ throw Error("Invalid reference.");
3095
+ value = value[name];
3096
+ }
3097
+ var mappedValue = map(response, value, parentObject, key);
3098
+ parentObject[key] = mappedValue;
3099
+ "" === key && null === handler.value && (handler.value = mappedValue);
3100
+ } catch (error) {
3101
+ rejectReference(response, reference.handler, error);
3102
+ return;
3103
+ }
3104
+ handler.deps--;
3105
+ 0 === handler.deps &&
3106
+ ((reference = handler.chunk),
3107
+ null !== reference &&
3108
+ "blocked" === reference.status &&
3109
+ ((value = reference.value),
3110
+ (reference.status = "fulfilled"),
3111
+ (reference.value = handler.value),
3112
+ (reference.reason = handler.reason),
3113
+ null !== value && wakeChunk(response, value, handler.value)));
3114
+ }
3115
+ function rejectReference(response, handler, error) {
3116
+ handler.errored ||
3117
+ ((handler.errored = !0),
3118
+ (handler.value = null),
3119
+ (handler.reason = error),
3120
+ (handler = handler.chunk),
3121
+ null !== handler &&
3122
+ "blocked" === handler.status &&
3123
+ triggerErrorOnChunk(response, handler, error));
3005
3124
  }
3006
3125
  function getOutlinedModel(response, reference, parentObject, key, map) {
3007
3126
  reference = reference.split(":");
@@ -3013,29 +3132,61 @@
3013
3132
  }
3014
3133
  switch (id.status) {
3015
3134
  case "fulfilled":
3016
- parentObject = id.value;
3017
- for (key = 1; key < reference.length; key++)
3018
- parentObject = parentObject[reference[key]];
3019
- return map(response, parentObject);
3135
+ id = id.value;
3136
+ for (var i = 1; i < reference.length; i++) {
3137
+ var name = reference[i];
3138
+ if (
3139
+ "object" !== typeof id ||
3140
+ !hasOwnProperty.call(id, name) ||
3141
+ id instanceof Promise
3142
+ )
3143
+ throw Error("Invalid reference.");
3144
+ id = id[name];
3145
+ }
3146
+ return map(response, id, parentObject, key);
3020
3147
  case "pending":
3021
3148
  case "blocked":
3022
- case "cyclic":
3023
- var parentChunk = initializingChunk;
3024
- id.then(
3025
- createModelResolver(
3026
- parentChunk,
3027
- parentObject,
3028
- key,
3029
- "cyclic" === id.status,
3030
- response,
3031
- map,
3032
- reference
3033
- ),
3034
- createModelReject(parentChunk)
3149
+ return (
3150
+ initializingHandler
3151
+ ? ((response = initializingHandler), response.deps++)
3152
+ : (response = initializingHandler =
3153
+ {
3154
+ chunk: null,
3155
+ value: null,
3156
+ reason: null,
3157
+ deps: 1,
3158
+ errored: !1
3159
+ }),
3160
+ (parentObject = {
3161
+ handler: response,
3162
+ parentObject: parentObject,
3163
+ key: key,
3164
+ map: map,
3165
+ path: reference
3166
+ }),
3167
+ null === id.value
3168
+ ? (id.value = [parentObject])
3169
+ : id.value.push(parentObject),
3170
+ null === id.reason
3171
+ ? (id.reason = [parentObject])
3172
+ : id.reason.push(parentObject),
3173
+ null
3035
3174
  );
3036
- return null;
3037
3175
  default:
3038
- throw id.reason;
3176
+ return (
3177
+ initializingHandler
3178
+ ? ((initializingHandler.errored = !0),
3179
+ (initializingHandler.value = null),
3180
+ (initializingHandler.reason = id.reason))
3181
+ : (initializingHandler = {
3182
+ chunk: null,
3183
+ value: null,
3184
+ reason: id.reason,
3185
+ deps: 0,
3186
+ errored: !0
3187
+ }),
3188
+ null
3189
+ );
3039
3190
  }
3040
3191
  }
3041
3192
  function createMap(response, model) {
@@ -3047,8 +3198,8 @@
3047
3198
  function extractIterator(response, model) {
3048
3199
  return model[Symbol.iterator]();
3049
3200
  }
3050
- function createModel(response, model) {
3051
- return model;
3201
+ function createModel(response, model, parentObject, key) {
3202
+ return "then" === key && "function" === typeof model ? null : model;
3052
3203
  }
3053
3204
  function parseTypedArray(
3054
3205
  response,
@@ -3059,44 +3210,77 @@
3059
3210
  parentKey
3060
3211
  ) {
3061
3212
  reference = parseInt(reference.slice(2), 16);
3062
- reference = response._formData.get(response._prefix + reference);
3063
- reference =
3064
- constructor === ArrayBuffer
3065
- ? reference.arrayBuffer()
3066
- : reference.arrayBuffer().then(function (buffer) {
3067
- return new constructor(buffer);
3068
- });
3069
- bytesPerElement = initializingChunk;
3213
+ bytesPerElement = response._prefix + reference;
3214
+ if (response._chunks.has(reference))
3215
+ throw Error("Already initialized typed array.");
3216
+ reference = response._formData.get(bytesPerElement).arrayBuffer();
3217
+ if (initializingHandler) {
3218
+ var handler = initializingHandler;
3219
+ handler.deps++;
3220
+ } else
3221
+ handler = initializingHandler = {
3222
+ chunk: null,
3223
+ value: null,
3224
+ reason: null,
3225
+ deps: 1,
3226
+ errored: !1
3227
+ };
3070
3228
  reference.then(
3071
- createModelResolver(
3072
- bytesPerElement,
3073
- parentObject,
3074
- parentKey,
3075
- !1,
3076
- response,
3077
- createModel,
3078
- []
3079
- ),
3080
- createModelReject(bytesPerElement)
3229
+ function (buffer) {
3230
+ buffer =
3231
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
3232
+ parentObject[parentKey] = buffer;
3233
+ "" === parentKey &&
3234
+ null === handler.value &&
3235
+ (handler.value = buffer);
3236
+ handler.deps--;
3237
+ if (
3238
+ 0 === handler.deps &&
3239
+ ((buffer = handler.chunk),
3240
+ null !== buffer && "blocked" === buffer.status)
3241
+ ) {
3242
+ var resolveListeners = buffer.value;
3243
+ buffer.status = "fulfilled";
3244
+ buffer.value = handler.value;
3245
+ buffer.reason = null;
3246
+ null !== resolveListeners &&
3247
+ wakeChunk(response, resolveListeners, handler.value);
3248
+ }
3249
+ },
3250
+ function (error) {
3251
+ if (!handler.errored) {
3252
+ handler.errored = !0;
3253
+ handler.value = null;
3254
+ handler.reason = error;
3255
+ var chunk = handler.chunk;
3256
+ null !== chunk &&
3257
+ "blocked" === chunk.status &&
3258
+ triggerErrorOnChunk(response, chunk, error);
3259
+ }
3260
+ }
3081
3261
  );
3082
3262
  return null;
3083
3263
  }
3084
3264
  function resolveStream(response, id, stream, controller) {
3085
3265
  var chunks = response._chunks;
3086
- stream = new Chunk("fulfilled", stream, controller, response);
3266
+ stream = new ReactPromise("fulfilled", stream, controller);
3087
3267
  chunks.set(id, stream);
3088
3268
  response = response._formData.getAll(response._prefix + id);
3089
3269
  for (id = 0; id < response.length; id++)
3090
3270
  (chunks = response[id]),
3091
- "C" === chunks[0]
3092
- ? controller.close(
3093
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
3094
- )
3095
- : controller.enqueueModel(chunks);
3271
+ "string" === typeof chunks &&
3272
+ ("C" === chunks[0]
3273
+ ? controller.close(
3274
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
3275
+ )
3276
+ : controller.enqueueModel(chunks));
3096
3277
  }
3097
3278
  function parseReadableStream(response, reference, type) {
3098
3279
  reference = parseInt(reference.slice(2), 16);
3099
- var controller = null;
3280
+ if (response._chunks.has(reference))
3281
+ throw Error("Already initialized stream.");
3282
+ var controller = null,
3283
+ closed = !1;
3100
3284
  type = new ReadableStream({
3101
3285
  type: type,
3102
3286
  start: function (c) {
@@ -3107,7 +3291,11 @@
3107
3291
  resolveStream(response, reference, type, {
3108
3292
  enqueueModel: function (json) {
3109
3293
  if (null === previousBlockedChunk) {
3110
- var chunk = new Chunk("resolved_model", json, -1, response);
3294
+ var chunk = new ReactPromise(
3295
+ "resolved_model",
3296
+ json,
3297
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3298
+ );
3111
3299
  initializeModelChunk(chunk);
3112
3300
  "fulfilled" === chunk.status
3113
3301
  ? controller.enqueue(chunk.value)
@@ -3122,7 +3310,7 @@
3122
3310
  (previousBlockedChunk = chunk));
3123
3311
  } else {
3124
3312
  chunk = previousBlockedChunk;
3125
- var _chunk = createPendingChunk(response);
3313
+ var _chunk = new ReactPromise("pending", null, null);
3126
3314
  _chunk.then(
3127
3315
  function (v) {
3128
3316
  return controller.enqueue(v);
@@ -3134,29 +3322,33 @@
3134
3322
  previousBlockedChunk = _chunk;
3135
3323
  chunk.then(function () {
3136
3324
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
3137
- resolveModelChunk(_chunk, json, -1);
3325
+ resolveModelChunk(response, _chunk, json, -1);
3138
3326
  });
3139
3327
  }
3140
3328
  },
3141
3329
  close: function () {
3142
- if (null === previousBlockedChunk) controller.close();
3143
- else {
3144
- var blockedChunk = previousBlockedChunk;
3145
- previousBlockedChunk = null;
3146
- blockedChunk.then(function () {
3147
- return controller.close();
3148
- });
3149
- }
3330
+ if (!closed)
3331
+ if (((closed = !0), null === previousBlockedChunk))
3332
+ controller.close();
3333
+ else {
3334
+ var blockedChunk = previousBlockedChunk;
3335
+ previousBlockedChunk = null;
3336
+ blockedChunk.then(function () {
3337
+ return controller.close();
3338
+ });
3339
+ }
3150
3340
  },
3151
3341
  error: function (error) {
3152
- if (null === previousBlockedChunk) controller.error(error);
3153
- else {
3154
- var blockedChunk = previousBlockedChunk;
3155
- previousBlockedChunk = null;
3156
- blockedChunk.then(function () {
3157
- return controller.error(error);
3158
- });
3159
- }
3342
+ if (!closed)
3343
+ if (((closed = !0), null === previousBlockedChunk))
3344
+ controller.error(error);
3345
+ else {
3346
+ var blockedChunk = previousBlockedChunk;
3347
+ previousBlockedChunk = null;
3348
+ blockedChunk.then(function () {
3349
+ return controller.error(error);
3350
+ });
3351
+ }
3160
3352
  }
3161
3353
  });
3162
3354
  return type;
@@ -3171,6 +3363,8 @@
3171
3363
  }
3172
3364
  function parseAsyncIterable(response, reference, iterator) {
3173
3365
  reference = parseInt(reference.slice(2), 16);
3366
+ if (response._chunks.has(reference))
3367
+ throw Error("Already initialized stream.");
3174
3368
  var buffer = [],
3175
3369
  closed = !1,
3176
3370
  nextWriteIndex = 0,
@@ -3183,13 +3377,12 @@
3183
3377
  );
3184
3378
  if (nextReadIndex === buffer.length) {
3185
3379
  if (closed)
3186
- return new Chunk(
3380
+ return new ReactPromise(
3187
3381
  "fulfilled",
3188
3382
  { done: !0, value: void 0 },
3189
- null,
3190
- response
3383
+ null
3191
3384
  );
3192
- buffer[nextReadIndex] = createPendingChunk(response);
3385
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
3193
3386
  }
3194
3387
  return buffer[nextReadIndex++];
3195
3388
  });
@@ -3203,34 +3396,55 @@
3203
3396
  value,
3204
3397
  !1
3205
3398
  ))
3206
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
3399
+ : resolveIteratorResultChunk(
3400
+ response,
3401
+ buffer[nextWriteIndex],
3402
+ value,
3403
+ !1
3404
+ );
3207
3405
  nextWriteIndex++;
3208
3406
  },
3209
3407
  close: function (value) {
3210
- closed = !0;
3211
- nextWriteIndex === buffer.length
3212
- ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3408
+ if (!closed)
3409
+ for (
3410
+ closed = !0,
3411
+ nextWriteIndex === buffer.length
3412
+ ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(
3413
+ response,
3414
+ value,
3415
+ !0
3416
+ ))
3417
+ : resolveIteratorResultChunk(
3418
+ response,
3419
+ buffer[nextWriteIndex],
3420
+ value,
3421
+ !0
3422
+ ),
3423
+ nextWriteIndex++;
3424
+ nextWriteIndex < buffer.length;
3425
+
3426
+ )
3427
+ resolveIteratorResultChunk(
3213
3428
  response,
3214
- value,
3429
+ buffer[nextWriteIndex++],
3430
+ '"$undefined"',
3215
3431
  !0
3216
- ))
3217
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
3218
- for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3219
- resolveIteratorResultChunk(
3220
- buffer[nextWriteIndex++],
3221
- '"$undefined"',
3222
- !0
3223
- );
3432
+ );
3224
3433
  },
3225
3434
  error: function (error) {
3226
- closed = !0;
3227
- for (
3228
- nextWriteIndex === buffer.length &&
3229
- (buffer[nextWriteIndex] = createPendingChunk(response));
3230
- nextWriteIndex < buffer.length;
3435
+ if (!closed)
3436
+ for (
3437
+ closed = !0,
3438
+ nextWriteIndex === buffer.length &&
3439
+ (buffer[nextWriteIndex] = new ReactPromise(
3440
+ "pending",
3441
+ null,
3442
+ null
3443
+ ));
3444
+ nextWriteIndex < buffer.length;
3231
3445
 
3232
- )
3233
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
3446
+ )
3447
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3234
3448
  }
3235
3449
  });
3236
3450
  return iterator;
@@ -3244,24 +3458,10 @@
3244
3458
  return (
3245
3459
  (obj = parseInt(value.slice(2), 16)), getChunk(response, obj)
3246
3460
  );
3247
- case "F":
3461
+ case "h":
3248
3462
  return (
3249
3463
  (value = value.slice(2)),
3250
- (value = getOutlinedModel(
3251
- response,
3252
- value,
3253
- obj,
3254
- key,
3255
- createModel
3256
- )),
3257
- loadServerReference$1(
3258
- response,
3259
- value.id,
3260
- value.bound,
3261
- initializingChunk,
3262
- obj,
3263
- key
3264
- )
3464
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
3265
3465
  );
3266
3466
  case "T":
3267
3467
  if (
@@ -3444,6 +3644,13 @@
3444
3644
  SERVER_REFERENCE_TAG = Symbol.for("react.server.reference"),
3445
3645
  FunctionBind = Function.prototype.bind,
3446
3646
  ArraySlice = Array.prototype.slice,
3647
+ serverReferenceToString = {
3648
+ value: function () {
3649
+ return "function () { [omitted code] }";
3650
+ },
3651
+ configurable: !0,
3652
+ writable: !0
3653
+ },
3447
3654
  PROMISE_PROTOTYPE = Promise.prototype,
3448
3655
  deepProxyHandlers = {
3449
3656
  get: function (target, name) {
@@ -3868,6 +4075,7 @@
3868
4075
  debugID = null,
3869
4076
  modelRoot = !1,
3870
4077
  emptyRoot = {},
4078
+ hasOwnProperty = Object.prototype.hasOwnProperty,
3871
4079
  chunkCache = new Map(),
3872
4080
  chunkMap = new Map(),
3873
4081
  webpackGetChunkFilename = __webpack_require__.u;
@@ -3877,33 +4085,47 @@
3877
4085
  ? flightChunk
3878
4086
  : webpackGetChunkFilename(chunkId);
3879
4087
  };
3880
- var hasOwnProperty = Object.prototype.hasOwnProperty;
3881
- Chunk.prototype = Object.create(Promise.prototype);
3882
- Chunk.prototype.then = function (resolve, reject) {
4088
+ var RESPONSE_SYMBOL = Symbol();
4089
+ ReactPromise.prototype = Object.create(Promise.prototype);
4090
+ ReactPromise.prototype.then = function (resolve, reject) {
3883
4091
  switch (this.status) {
3884
4092
  case "resolved_model":
3885
4093
  initializeModelChunk(this);
3886
4094
  }
3887
4095
  switch (this.status) {
3888
4096
  case "fulfilled":
3889
- resolve(this.value);
4097
+ if ("function" === typeof resolve) {
4098
+ for (
4099
+ var inspectedValue = this.value;
4100
+ inspectedValue instanceof ReactPromise;
4101
+
4102
+ ) {
4103
+ if (inspectedValue === this) {
4104
+ "function" === typeof reject &&
4105
+ reject(Error("Cannot have cyclic thenables."));
4106
+ return;
4107
+ }
4108
+ if ("fulfilled" === inspectedValue.status)
4109
+ inspectedValue = inspectedValue.value;
4110
+ else break;
4111
+ }
4112
+ resolve(this.value);
4113
+ }
3890
4114
  break;
3891
4115
  case "pending":
3892
4116
  case "blocked":
3893
- case "cyclic":
3894
- resolve &&
4117
+ "function" === typeof resolve &&
3895
4118
  (null === this.value && (this.value = []),
3896
4119
  this.value.push(resolve));
3897
- reject &&
4120
+ "function" === typeof reject &&
3898
4121
  (null === this.reason && (this.reason = []),
3899
4122
  this.reason.push(reject));
3900
4123
  break;
3901
4124
  default:
3902
- reject(this.reason);
4125
+ "function" === typeof reject && reject(this.reason);
3903
4126
  }
3904
4127
  };
3905
- var initializingChunk = null,
3906
- initializingChunkBlockedModel = null;
4128
+ var initializingHandler = null;
3907
4129
  exports.createClientModuleProxy = function (moduleId) {
3908
4130
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3909
4131
  return new Proxy(moduleId, proxyHandlers$1);
@@ -3988,7 +4210,8 @@
3988
4210
  },
3989
4211
  $$bound: { value: null, configurable: !0 },
3990
4212
  $$location: { value: Error("react-stack-top-frame"), configurable: !0 },
3991
- bind: { value: bind, configurable: !0 }
4213
+ bind: { value: bind, configurable: !0 },
4214
+ toString: serverReferenceToString
3992
4215
  });
3993
4216
  };
3994
4217
  exports.renderToReadableStream = function (model, webpackMap, options) {