@modern-js/utils 2.69.1 → 2.69.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.
Files changed (18) hide show
  1. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +8 -9
  2. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +7 -8
  3. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +6 -7
  4. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +7 -8
  5. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +6 -7
  6. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +7 -8
  7. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +5 -5
  8. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +6 -6
  9. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +430 -197
  10. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +428 -204
  11. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +431 -198
  12. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +429 -205
  13. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +474 -227
  14. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +472 -230
  15. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +472 -224
  16. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +470 -227
  17. package/dist/compiled/react-server-dom-webpack/package.json +5 -5
  18. package/package.json +5 -5
@@ -2549,37 +2549,65 @@
2549
2549
  if ("fulfilled" === moduleExports.status)
2550
2550
  moduleExports = moduleExports.value;
2551
2551
  else throw moduleExports.reason;
2552
- return "*" === metadata[2]
2553
- ? moduleExports
2554
- : "" === metadata[2]
2555
- ? moduleExports.__esModule
2556
- ? moduleExports.default
2557
- : moduleExports
2558
- : moduleExports[metadata[2]];
2559
- }
2560
- function Chunk(status, value, reason, response) {
2552
+ if ("*" === metadata[2]) return moduleExports;
2553
+ if ("" === metadata[2])
2554
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2555
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2556
+ return moduleExports[metadata[2]];
2557
+ }
2558
+ function ReactPromise(status, value, reason) {
2561
2559
  this.status = status;
2562
2560
  this.value = value;
2563
2561
  this.reason = reason;
2564
- this._response = response;
2565
2562
  }
2566
- function createPendingChunk(response) {
2567
- return new Chunk("pending", null, null, response);
2563
+ function wakeChunk(response, listeners, value) {
2564
+ for (var i = 0; i < listeners.length; i++) {
2565
+ var listener = listeners[i];
2566
+ "function" === typeof listener
2567
+ ? listener(value)
2568
+ : fulfillReference(response, listener, value);
2569
+ }
2570
+ }
2571
+ function rejectChunk(response, listeners, error) {
2572
+ for (var i = 0; i < listeners.length; i++) {
2573
+ var listener = listeners[i];
2574
+ "function" === typeof listener
2575
+ ? listener(error)
2576
+ : rejectReference(response, listener.handler, error);
2577
+ }
2568
2578
  }
2569
- function wakeChunk(listeners, value) {
2570
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2579
+ function resolveBlockedCycle(resolvedChunk, reference) {
2580
+ var referencedChunk = reference.handler.chunk;
2581
+ if (null === referencedChunk) return null;
2582
+ if (referencedChunk === resolvedChunk) return reference.handler;
2583
+ reference = referencedChunk.value;
2584
+ if (null !== reference)
2585
+ for (
2586
+ referencedChunk = 0;
2587
+ referencedChunk < reference.length;
2588
+ referencedChunk++
2589
+ ) {
2590
+ var listener = reference[referencedChunk];
2591
+ if (
2592
+ "function" !== typeof listener &&
2593
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2594
+ null !== listener)
2595
+ )
2596
+ return listener;
2597
+ }
2598
+ return null;
2571
2599
  }
2572
- function triggerErrorOnChunk(chunk, error) {
2600
+ function triggerErrorOnChunk(response, chunk, error) {
2573
2601
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2574
2602
  chunk.reason.error(error);
2575
2603
  else {
2576
2604
  var listeners = chunk.reason;
2577
2605
  chunk.status = "rejected";
2578
2606
  chunk.reason = error;
2579
- null !== listeners && wakeChunk(listeners, error);
2607
+ null !== listeners && rejectChunk(response, listeners, error);
2580
2608
  }
2581
2609
  }
2582
- function resolveModelChunk(chunk, value, id) {
2610
+ function resolveModelChunk(response, chunk, value, id) {
2583
2611
  if ("pending" !== chunk.status)
2584
2612
  (chunk = chunk.reason),
2585
2613
  "C" === value[0]
@@ -2590,42 +2618,74 @@
2590
2618
  rejectListeners = chunk.reason;
2591
2619
  chunk.status = "resolved_model";
2592
2620
  chunk.value = value;
2593
- chunk.reason = id;
2621
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2594
2622
  if (null !== resolveListeners)
2595
- switch ((initializeModelChunk(chunk), chunk.status)) {
2623
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2596
2624
  case "fulfilled":
2597
- wakeChunk(resolveListeners, chunk.value);
2625
+ wakeChunk(response, resolveListeners, chunk.value);
2598
2626
  break;
2599
- case "pending":
2600
2627
  case "blocked":
2601
- case "cyclic":
2628
+ for (value = 0; value < resolveListeners.length; value++)
2629
+ if (
2630
+ ((id = resolveListeners[value]), "function" !== typeof id)
2631
+ ) {
2632
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2633
+ if (null !== cyclicHandler)
2634
+ switch (
2635
+ (fulfillReference(response, id, cyclicHandler.value),
2636
+ resolveListeners.splice(value, 1),
2637
+ value--,
2638
+ null !== rejectListeners &&
2639
+ ((id = rejectListeners.indexOf(id)),
2640
+ -1 !== id && rejectListeners.splice(id, 1)),
2641
+ chunk.status)
2642
+ ) {
2643
+ case "fulfilled":
2644
+ wakeChunk(response, resolveListeners, chunk.value);
2645
+ break a;
2646
+ case "rejected":
2647
+ null !== rejectListeners &&
2648
+ rejectChunk(response, rejectListeners, chunk.reason);
2649
+ break a;
2650
+ }
2651
+ }
2652
+ case "pending":
2602
2653
  if (chunk.value)
2603
- for (value = 0; value < resolveListeners.length; value++)
2604
- chunk.value.push(resolveListeners[value]);
2654
+ for (
2655
+ response = 0;
2656
+ response < resolveListeners.length;
2657
+ response++
2658
+ )
2659
+ chunk.value.push(resolveListeners[response]);
2605
2660
  else chunk.value = resolveListeners;
2606
2661
  if (chunk.reason) {
2607
2662
  if (rejectListeners)
2608
- for (value = 0; value < rejectListeners.length; value++)
2609
- chunk.reason.push(rejectListeners[value]);
2663
+ for (
2664
+ resolveListeners = 0;
2665
+ resolveListeners < rejectListeners.length;
2666
+ resolveListeners++
2667
+ )
2668
+ chunk.reason.push(rejectListeners[resolveListeners]);
2610
2669
  } else chunk.reason = rejectListeners;
2611
2670
  break;
2612
2671
  case "rejected":
2613
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2672
+ rejectListeners &&
2673
+ wakeChunk(response, rejectListeners, chunk.reason);
2614
2674
  }
2615
2675
  }
2616
2676
  }
2617
2677
  function createResolvedIteratorResultChunk(response, value, done) {
2618
- return new Chunk(
2678
+ return new ReactPromise(
2619
2679
  "resolved_model",
2620
2680
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2621
2681
  value +
2622
2682
  "}",
2623
- -1,
2624
- response
2683
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
2625
2684
  );
2626
2685
  }
2627
- function resolveIteratorResultChunk(chunk, value, done) {
2686
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2628
2687
  resolveModelChunk(
2688
+ response,
2629
2689
  chunk,
2630
2690
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2631
2691
  value +
@@ -2633,38 +2693,67 @@
2633
2693
  -1
2634
2694
  );
2635
2695
  }
2636
- function loadServerReference$1(
2637
- response,
2638
- id,
2639
- bound,
2640
- parentChunk,
2641
- parentObject,
2642
- key
2643
- ) {
2696
+ function loadServerReference$1(response, metaData, parentObject, key) {
2697
+ var id = metaData.id;
2698
+ if ("string" !== typeof id) return null;
2644
2699
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2645
- id = preloadModule(serverReference);
2646
- if (bound)
2647
- bound = Promise.all([bound, id]).then(function (_ref) {
2648
- _ref = _ref[0];
2649
- var fn = requireModule(serverReference);
2650
- return fn.bind.apply(fn, [null].concat(_ref));
2651
- });
2652
- else if (id)
2653
- bound = Promise.resolve(id).then(function () {
2654
- return requireModule(serverReference);
2655
- });
2700
+ id = metaData.bound;
2701
+ var promise = preloadModule(serverReference);
2702
+ if (promise)
2703
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2704
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2656
2705
  else return requireModule(serverReference);
2657
- bound.then(
2658
- createModelResolver(
2659
- parentChunk,
2660
- parentObject,
2661
- key,
2662
- !1,
2663
- response,
2664
- createModel,
2665
- []
2666
- ),
2667
- createModelReject(parentChunk)
2706
+ if (initializingHandler) {
2707
+ var handler = initializingHandler;
2708
+ handler.deps++;
2709
+ } else
2710
+ handler = initializingHandler = {
2711
+ chunk: null,
2712
+ value: null,
2713
+ reason: null,
2714
+ deps: 1,
2715
+ errored: !1
2716
+ };
2717
+ promise.then(
2718
+ function () {
2719
+ var resolvedValue = requireModule(serverReference);
2720
+ if (metaData.bound) {
2721
+ var promiseValue = metaData.bound.value;
2722
+ promiseValue = Array.isArray(promiseValue)
2723
+ ? promiseValue.slice(0)
2724
+ : [];
2725
+ promiseValue.unshift(null);
2726
+ resolvedValue = resolvedValue.bind.apply(
2727
+ resolvedValue,
2728
+ promiseValue
2729
+ );
2730
+ }
2731
+ parentObject[key] = resolvedValue;
2732
+ "" === key &&
2733
+ null === handler.value &&
2734
+ (handler.value = resolvedValue);
2735
+ handler.deps--;
2736
+ 0 === handler.deps &&
2737
+ ((resolvedValue = handler.chunk),
2738
+ null !== resolvedValue &&
2739
+ "blocked" === resolvedValue.status &&
2740
+ ((promiseValue = resolvedValue.value),
2741
+ (resolvedValue.status = "fulfilled"),
2742
+ (resolvedValue.value = handler.value),
2743
+ null !== promiseValue &&
2744
+ wakeChunk(response, promiseValue, handler.value)));
2745
+ },
2746
+ function (error) {
2747
+ if (!handler.errored) {
2748
+ handler.errored = !0;
2749
+ handler.value = null;
2750
+ handler.reason = error;
2751
+ var chunk = handler.chunk;
2752
+ null !== chunk &&
2753
+ "blocked" === chunk.status &&
2754
+ triggerErrorOnChunk(response, chunk, error);
2755
+ }
2756
+ }
2668
2757
  );
2669
2758
  return null;
2670
2759
  }
@@ -2706,51 +2795,64 @@
2706
2795
  value[i],
2707
2796
  parentObj
2708
2797
  )),
2709
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2798
+ void 0 !== parentObj || "__proto__" === i
2799
+ ? (value[i] = parentObj)
2800
+ : delete value[i]);
2710
2801
  return value;
2711
2802
  }
2712
2803
  function initializeModelChunk(chunk) {
2713
- var prevChunk = initializingChunk,
2714
- prevBlocked = initializingChunkBlockedModel;
2715
- initializingChunk = chunk;
2716
- initializingChunkBlockedModel = null;
2717
- var rootReference =
2718
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2719
- resolvedModel = chunk.value;
2720
- chunk.status = "cyclic";
2804
+ var prevHandler = initializingHandler;
2805
+ initializingHandler = null;
2806
+ var _chunk$reason = chunk.reason,
2807
+ response = _chunk$reason[RESPONSE_SYMBOL];
2808
+ _chunk$reason = _chunk$reason.id;
2809
+ _chunk$reason =
2810
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2811
+ var resolvedModel = chunk.value;
2812
+ chunk.status = "blocked";
2721
2813
  chunk.value = null;
2722
2814
  chunk.reason = null;
2723
2815
  try {
2724
2816
  var rawModel = JSON.parse(resolvedModel),
2725
2817
  value = reviveModel(
2726
- chunk._response,
2818
+ response,
2727
2819
  { "": rawModel },
2728
2820
  "",
2729
2821
  rawModel,
2730
- rootReference
2731
- );
2732
- if (
2733
- null !== initializingChunkBlockedModel &&
2734
- 0 < initializingChunkBlockedModel.deps
2735
- )
2736
- (initializingChunkBlockedModel.value = value),
2737
- (chunk.status = "blocked");
2738
- else {
2739
- var resolveListeners = chunk.value;
2740
- chunk.status = "fulfilled";
2741
- chunk.value = value;
2742
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2822
+ _chunk$reason
2823
+ ),
2824
+ resolveListeners = chunk.value;
2825
+ if (null !== resolveListeners)
2826
+ for (
2827
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2828
+ rawModel < resolveListeners.length;
2829
+ rawModel++
2830
+ ) {
2831
+ var listener = resolveListeners[rawModel];
2832
+ "function" === typeof listener
2833
+ ? listener(value)
2834
+ : fulfillReference(response, listener, value);
2835
+ }
2836
+ if (null !== initializingHandler) {
2837
+ if (initializingHandler.errored) throw initializingHandler.reason;
2838
+ if (0 < initializingHandler.deps) {
2839
+ initializingHandler.value = value;
2840
+ initializingHandler.chunk = chunk;
2841
+ return;
2842
+ }
2743
2843
  }
2844
+ chunk.status = "fulfilled";
2845
+ chunk.value = value;
2744
2846
  } catch (error) {
2745
2847
  (chunk.status = "rejected"), (chunk.reason = error);
2746
2848
  } finally {
2747
- (initializingChunk = prevChunk),
2748
- (initializingChunkBlockedModel = prevBlocked);
2849
+ initializingHandler = prevHandler;
2749
2850
  }
2750
2851
  }
2751
2852
  function reportGlobalError(response, error) {
2752
2853
  response._chunks.forEach(function (chunk) {
2753
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2854
+ "pending" === chunk.status &&
2855
+ triggerErrorOnChunk(response, chunk, error);
2754
2856
  });
2755
2857
  }
2756
2858
  function getChunk(response, id) {
@@ -2759,48 +2861,106 @@
2759
2861
  chunk ||
2760
2862
  ((chunk = response._formData.get(response._prefix + id)),
2761
2863
  (chunk =
2762
- null != chunk
2763
- ? new Chunk("resolved_model", chunk, id, response)
2764
- : createPendingChunk(response)),
2864
+ "string" === typeof chunk
2865
+ ? new ReactPromise(
2866
+ "resolved_model",
2867
+ chunk,
2868
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
2869
+ )
2870
+ : new ReactPromise("pending", null, null)),
2765
2871
  chunks.set(id, chunk));
2766
2872
  return chunk;
2767
2873
  }
2768
- function createModelResolver(
2769
- chunk,
2874
+ function fulfillReference(response, reference, value) {
2875
+ for (
2876
+ var handler = reference.handler,
2877
+ parentObject = reference.parentObject,
2878
+ key = reference.key,
2879
+ map = reference.map,
2880
+ path = reference.path,
2881
+ i = 1;
2882
+ i < path.length;
2883
+ i++
2884
+ ) {
2885
+ for (; value instanceof ReactPromise; ) {
2886
+ switch (value.status) {
2887
+ case "resolved_model":
2888
+ initializeModelChunk(value);
2889
+ }
2890
+ switch (value.status) {
2891
+ case "fulfilled":
2892
+ value = value.value;
2893
+ continue;
2894
+ case "blocked":
2895
+ case "pending":
2896
+ path.splice(0, i - 1);
2897
+ null === value.value
2898
+ ? (value.value = [reference])
2899
+ : value.value.push(reference);
2900
+ null === value.reason
2901
+ ? (value.reason = [reference])
2902
+ : value.reason.push(reference);
2903
+ return;
2904
+ default:
2905
+ rejectReference(response, reference.handler, value.reason);
2906
+ return;
2907
+ }
2908
+ }
2909
+ var name = path[i];
2910
+ "object" === typeof value &&
2911
+ hasOwnProperty.call(value, name) &&
2912
+ (value = value[name]);
2913
+ }
2914
+ reference = map(response, value, parentObject, key);
2915
+ parentObject[key] = reference;
2916
+ "" === key && null === handler.value && (handler.value = reference);
2917
+ handler.deps--;
2918
+ 0 === handler.deps &&
2919
+ ((parentObject = handler.chunk),
2920
+ null !== parentObject &&
2921
+ "blocked" === parentObject.status &&
2922
+ ((key = parentObject.value),
2923
+ (parentObject.status = "fulfilled"),
2924
+ (parentObject.value = handler.value),
2925
+ (parentObject.reason = handler.reason),
2926
+ null !== key && wakeChunk(response, key, handler.value)));
2927
+ }
2928
+ function rejectReference(response, handler, error) {
2929
+ handler.errored ||
2930
+ ((handler.errored = !0),
2931
+ (handler.value = null),
2932
+ (handler.reason = error),
2933
+ (handler = handler.chunk),
2934
+ null !== handler &&
2935
+ "blocked" === handler.status &&
2936
+ triggerErrorOnChunk(response, handler, error));
2937
+ }
2938
+ function waitForReference(
2939
+ referencedChunk,
2770
2940
  parentObject,
2771
2941
  key,
2772
- cyclic,
2773
2942
  response,
2774
2943
  map,
2775
2944
  path
2776
2945
  ) {
2777
- if (initializingChunkBlockedModel) {
2778
- var blocked = initializingChunkBlockedModel;
2779
- cyclic || blocked.deps++;
2780
- } else
2781
- blocked = initializingChunkBlockedModel = {
2782
- deps: cyclic ? 0 : 1,
2783
- value: null
2784
- };
2785
- return function (value) {
2786
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2787
- parentObject[key] = map(response, value);
2788
- "" === key &&
2789
- null === blocked.value &&
2790
- (blocked.value = parentObject[key]);
2791
- blocked.deps--;
2792
- 0 === blocked.deps &&
2793
- "blocked" === chunk.status &&
2794
- ((value = chunk.value),
2795
- (chunk.status = "fulfilled"),
2796
- (chunk.value = blocked.value),
2797
- null !== value && wakeChunk(value, blocked.value));
2798
- };
2799
- }
2800
- function createModelReject(chunk) {
2801
- return function (error) {
2802
- return triggerErrorOnChunk(chunk, error);
2946
+ initializingHandler
2947
+ ? ((response = initializingHandler), response.deps++)
2948
+ : (response = initializingHandler =
2949
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2950
+ parentObject = {
2951
+ handler: response,
2952
+ parentObject: parentObject,
2953
+ key: key,
2954
+ map: map,
2955
+ path: path
2803
2956
  };
2957
+ null === referencedChunk.value
2958
+ ? (referencedChunk.value = [parentObject])
2959
+ : referencedChunk.value.push(parentObject);
2960
+ null === referencedChunk.reason
2961
+ ? (referencedChunk.reason = [parentObject])
2962
+ : referencedChunk.reason.push(parentObject);
2963
+ return null;
2804
2964
  }
2805
2965
  function getOutlinedModel(response, reference, parentObject, key, map) {
2806
2966
  reference = reference.split(":");
@@ -2812,29 +2972,75 @@
2812
2972
  }
2813
2973
  switch (id.status) {
2814
2974
  case "fulfilled":
2815
- parentObject = id.value;
2816
- for (key = 1; key < reference.length; key++)
2817
- parentObject = parentObject[reference[key]];
2818
- return map(response, parentObject);
2975
+ var value = id.value;
2976
+ for (id = 1; id < reference.length; id++) {
2977
+ for (; value instanceof ReactPromise; ) {
2978
+ switch (value.status) {
2979
+ case "resolved_model":
2980
+ initializeModelChunk(value);
2981
+ }
2982
+ switch (value.status) {
2983
+ case "fulfilled":
2984
+ value = value.value;
2985
+ break;
2986
+ case "blocked":
2987
+ case "pending":
2988
+ return waitForReference(
2989
+ value,
2990
+ parentObject,
2991
+ key,
2992
+ response,
2993
+ map,
2994
+ reference.slice(id - 1)
2995
+ );
2996
+ default:
2997
+ return (
2998
+ initializingHandler
2999
+ ? ((initializingHandler.errored = !0),
3000
+ (initializingHandler.value = null),
3001
+ (initializingHandler.reason = value.reason))
3002
+ : (initializingHandler = {
3003
+ chunk: null,
3004
+ value: null,
3005
+ reason: value.reason,
3006
+ deps: 0,
3007
+ errored: !0
3008
+ }),
3009
+ null
3010
+ );
3011
+ }
3012
+ }
3013
+ var name = reference[id];
3014
+ "object" === typeof value &&
3015
+ hasOwnProperty.call(value, name) &&
3016
+ (value = value[name]);
3017
+ }
3018
+ return map(response, value, parentObject, key);
2819
3019
  case "pending":
2820
3020
  case "blocked":
2821
- case "cyclic":
2822
- var parentChunk = initializingChunk;
2823
- id.then(
2824
- createModelResolver(
2825
- parentChunk,
2826
- parentObject,
2827
- key,
2828
- "cyclic" === id.status,
2829
- response,
2830
- map,
2831
- reference
2832
- ),
2833
- createModelReject(parentChunk)
3021
+ return waitForReference(
3022
+ id,
3023
+ parentObject,
3024
+ key,
3025
+ response,
3026
+ map,
3027
+ reference
2834
3028
  );
2835
- return null;
2836
3029
  default:
2837
- throw id.reason;
3030
+ return (
3031
+ initializingHandler
3032
+ ? ((initializingHandler.errored = !0),
3033
+ (initializingHandler.value = null),
3034
+ (initializingHandler.reason = id.reason))
3035
+ : (initializingHandler = {
3036
+ chunk: null,
3037
+ value: null,
3038
+ reason: id.reason,
3039
+ deps: 0,
3040
+ errored: !0
3041
+ }),
3042
+ null
3043
+ );
2838
3044
  }
2839
3045
  }
2840
3046
  function createMap(response, model) {
@@ -2858,40 +3064,68 @@
2858
3064
  parentKey
2859
3065
  ) {
2860
3066
  reference = parseInt(reference.slice(2), 16);
2861
- reference = response._formData.get(response._prefix + reference);
2862
- reference =
2863
- constructor === ArrayBuffer
2864
- ? reference.arrayBuffer()
2865
- : reference.arrayBuffer().then(function (buffer) {
2866
- return new constructor(buffer);
2867
- });
2868
- bytesPerElement = initializingChunk;
3067
+ reference = response._formData
3068
+ .get(response._prefix + reference)
3069
+ .arrayBuffer();
3070
+ if (initializingHandler) {
3071
+ var handler = initializingHandler;
3072
+ handler.deps++;
3073
+ } else
3074
+ handler = initializingHandler = {
3075
+ chunk: null,
3076
+ value: null,
3077
+ reason: null,
3078
+ deps: 1,
3079
+ errored: !1
3080
+ };
2869
3081
  reference.then(
2870
- createModelResolver(
2871
- bytesPerElement,
2872
- parentObject,
2873
- parentKey,
2874
- !1,
2875
- response,
2876
- createModel,
2877
- []
2878
- ),
2879
- createModelReject(bytesPerElement)
3082
+ function (buffer) {
3083
+ buffer =
3084
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
3085
+ parentObject[parentKey] = buffer;
3086
+ "" === parentKey &&
3087
+ null === handler.value &&
3088
+ (handler.value = buffer);
3089
+ handler.deps--;
3090
+ if (
3091
+ 0 === handler.deps &&
3092
+ ((buffer = handler.chunk),
3093
+ null !== buffer && "blocked" === buffer.status)
3094
+ ) {
3095
+ var resolveListeners = buffer.value;
3096
+ buffer.status = "fulfilled";
3097
+ buffer.value = handler.value;
3098
+ null !== resolveListeners &&
3099
+ wakeChunk(response, resolveListeners, handler.value);
3100
+ }
3101
+ },
3102
+ function (error) {
3103
+ if (!handler.errored) {
3104
+ handler.errored = !0;
3105
+ handler.value = null;
3106
+ handler.reason = error;
3107
+ var chunk = handler.chunk;
3108
+ null !== chunk &&
3109
+ "blocked" === chunk.status &&
3110
+ triggerErrorOnChunk(response, chunk, error);
3111
+ }
3112
+ }
2880
3113
  );
2881
3114
  return null;
2882
3115
  }
2883
3116
  function resolveStream(response, id, stream, controller) {
2884
3117
  var chunks = response._chunks;
2885
- stream = new Chunk("fulfilled", stream, controller, response);
3118
+ stream = new ReactPromise("fulfilled", stream, controller);
2886
3119
  chunks.set(id, stream);
2887
3120
  response = response._formData.getAll(response._prefix + id);
2888
3121
  for (id = 0; id < response.length; id++)
2889
3122
  (chunks = response[id]),
2890
- "C" === chunks[0]
2891
- ? controller.close(
2892
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
2893
- )
2894
- : controller.enqueueModel(chunks);
3123
+ "string" === typeof chunks &&
3124
+ ("C" === chunks[0]
3125
+ ? controller.close(
3126
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
3127
+ )
3128
+ : controller.enqueueModel(chunks));
2895
3129
  }
2896
3130
  function parseReadableStream(response, reference, type) {
2897
3131
  reference = parseInt(reference.slice(2), 16);
@@ -2906,7 +3140,11 @@
2906
3140
  resolveStream(response, reference, type, {
2907
3141
  enqueueModel: function (json) {
2908
3142
  if (null === previousBlockedChunk) {
2909
- var chunk = new Chunk("resolved_model", json, -1, response);
3143
+ var chunk = new ReactPromise(
3144
+ "resolved_model",
3145
+ json,
3146
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3147
+ );
2910
3148
  initializeModelChunk(chunk);
2911
3149
  "fulfilled" === chunk.status
2912
3150
  ? controller.enqueue(chunk.value)
@@ -2921,7 +3159,7 @@
2921
3159
  (previousBlockedChunk = chunk));
2922
3160
  } else {
2923
3161
  chunk = previousBlockedChunk;
2924
- var _chunk = createPendingChunk(response);
3162
+ var _chunk = new ReactPromise("pending", null, null);
2925
3163
  _chunk.then(
2926
3164
  function (v) {
2927
3165
  return controller.enqueue(v);
@@ -2933,7 +3171,7 @@
2933
3171
  previousBlockedChunk = _chunk;
2934
3172
  chunk.then(function () {
2935
3173
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
2936
- resolveModelChunk(_chunk, json, -1);
3174
+ resolveModelChunk(response, _chunk, json, -1);
2937
3175
  });
2938
3176
  }
2939
3177
  },
@@ -2982,13 +3220,12 @@
2982
3220
  );
2983
3221
  if (nextReadIndex === buffer.length) {
2984
3222
  if (closed)
2985
- return new Chunk(
3223
+ return new ReactPromise(
2986
3224
  "fulfilled",
2987
3225
  { done: !0, value: void 0 },
2988
- null,
2989
- response
3226
+ null
2990
3227
  );
2991
- buffer[nextReadIndex] = createPendingChunk(response);
3228
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2992
3229
  }
2993
3230
  return buffer[nextReadIndex++];
2994
3231
  });
@@ -3002,7 +3239,12 @@
3002
3239
  value,
3003
3240
  !1
3004
3241
  ))
3005
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
3242
+ : resolveIteratorResultChunk(
3243
+ response,
3244
+ buffer[nextWriteIndex],
3245
+ value,
3246
+ !1
3247
+ );
3006
3248
  nextWriteIndex++;
3007
3249
  },
3008
3250
  close: function (value) {
@@ -3013,9 +3255,15 @@
3013
3255
  value,
3014
3256
  !0
3015
3257
  ))
3016
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
3258
+ : resolveIteratorResultChunk(
3259
+ response,
3260
+ buffer[nextWriteIndex],
3261
+ value,
3262
+ !0
3263
+ );
3017
3264
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3018
3265
  resolveIteratorResultChunk(
3266
+ response,
3019
3267
  buffer[nextWriteIndex++],
3020
3268
  '"$undefined"',
3021
3269
  !0
@@ -3025,11 +3273,11 @@
3025
3273
  closed = !0;
3026
3274
  for (
3027
3275
  nextWriteIndex === buffer.length &&
3028
- (buffer[nextWriteIndex] = createPendingChunk(response));
3276
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
3029
3277
  nextWriteIndex < buffer.length;
3030
3278
 
3031
3279
  )
3032
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
3280
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3033
3281
  }
3034
3282
  });
3035
3283
  return iterator;
@@ -3046,21 +3294,7 @@
3046
3294
  case "F":
3047
3295
  return (
3048
3296
  (value = value.slice(2)),
3049
- (value = getOutlinedModel(
3050
- response,
3051
- value,
3052
- obj,
3053
- key,
3054
- createModel
3055
- )),
3056
- loadServerReference$1(
3057
- response,
3058
- value.id,
3059
- value.bound,
3060
- initializingChunk,
3061
- obj,
3062
- key
3063
- )
3297
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
3064
3298
  );
3065
3299
  case "T":
3066
3300
  if (
@@ -3194,10 +3428,12 @@
3194
3428
  function resolveField(response, key, value) {
3195
3429
  response._formData.append(key, value);
3196
3430
  var prefix = response._prefix;
3197
- key.startsWith(prefix) &&
3198
- ((response = response._chunks),
3199
- (key = +key.slice(prefix.length)),
3200
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
3431
+ if (key.startsWith(prefix)) {
3432
+ var chunks = response._chunks;
3433
+ key = +key.slice(prefix.length);
3434
+ (chunks = chunks.get(key)) &&
3435
+ resolveModelChunk(response, chunks, value, key);
3436
+ }
3201
3437
  }
3202
3438
  function close(response) {
3203
3439
  reportGlobalError(response, Error("Connection closed."));
@@ -3654,34 +3890,33 @@
3654
3890
  debugID = null,
3655
3891
  modelRoot = !1,
3656
3892
  emptyRoot = {},
3893
+ hasOwnProperty = Object.prototype.hasOwnProperty,
3657
3894
  chunkCache = new Map(),
3658
- hasOwnProperty = Object.prototype.hasOwnProperty;
3659
- Chunk.prototype = Object.create(Promise.prototype);
3660
- Chunk.prototype.then = function (resolve, reject) {
3895
+ RESPONSE_SYMBOL = Symbol();
3896
+ ReactPromise.prototype = Object.create(Promise.prototype);
3897
+ ReactPromise.prototype.then = function (resolve, reject) {
3661
3898
  switch (this.status) {
3662
3899
  case "resolved_model":
3663
3900
  initializeModelChunk(this);
3664
3901
  }
3665
3902
  switch (this.status) {
3666
3903
  case "fulfilled":
3667
- resolve(this.value);
3904
+ "function" === typeof resolve && resolve(this.value);
3668
3905
  break;
3669
3906
  case "pending":
3670
3907
  case "blocked":
3671
- case "cyclic":
3672
- resolve &&
3908
+ "function" === typeof resolve &&
3673
3909
  (null === this.value && (this.value = []),
3674
3910
  this.value.push(resolve));
3675
- reject &&
3911
+ "function" === typeof reject &&
3676
3912
  (null === this.reason && (this.reason = []),
3677
3913
  this.reason.push(reject));
3678
3914
  break;
3679
3915
  default:
3680
- reject(this.reason);
3916
+ "function" === typeof reject && reject(this.reason);
3681
3917
  }
3682
3918
  };
3683
- var initializingChunk = null,
3684
- initializingChunkBlockedModel = null;
3919
+ var initializingHandler = null;
3685
3920
  exports.createClientModuleProxy = function (moduleId) {
3686
3921
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3687
3922
  return new Proxy(moduleId, proxyHandlers$1);
@@ -3759,38 +3994,50 @@
3759
3994
  pendingFiles = 0,
3760
3995
  queuedFields = [];
3761
3996
  busboyStream.on("field", function (name, value) {
3762
- 0 < pendingFiles
3763
- ? queuedFields.push(name, value)
3764
- : resolveField(response, name, value);
3997
+ if (0 < pendingFiles) queuedFields.push(name, value);
3998
+ else
3999
+ try {
4000
+ resolveField(response, name, value);
4001
+ } catch (error) {
4002
+ busboyStream.destroy(error);
4003
+ }
3765
4004
  });
3766
4005
  busboyStream.on("file", function (name, value, _ref) {
3767
4006
  var filename = _ref.filename,
3768
4007
  mimeType = _ref.mimeType;
3769
4008
  if ("base64" === _ref.encoding.toLowerCase())
3770
- throw Error(
3771
- "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."
4009
+ busboyStream.destroy(
4010
+ Error(
4011
+ "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."
4012
+ )
3772
4013
  );
3773
- pendingFiles++;
3774
- var JSCompiler_object_inline_chunks_141 = [];
3775
- value.on("data", function (chunk) {
3776
- JSCompiler_object_inline_chunks_141.push(chunk);
3777
- });
3778
- value.on("end", function () {
3779
- var blob = new Blob(JSCompiler_object_inline_chunks_141, {
3780
- type: mimeType
4014
+ else {
4015
+ pendingFiles++;
4016
+ var JSCompiler_object_inline_chunks_144 = [];
4017
+ value.on("data", function (chunk) {
4018
+ JSCompiler_object_inline_chunks_144.push(chunk);
3781
4019
  });
3782
- response._formData.append(name, blob, filename);
3783
- pendingFiles--;
3784
- if (0 === pendingFiles) {
3785
- for (blob = 0; blob < queuedFields.length; blob += 2)
3786
- resolveField(
3787
- response,
3788
- queuedFields[blob],
3789
- queuedFields[blob + 1]
3790
- );
3791
- queuedFields.length = 0;
3792
- }
3793
- });
4020
+ value.on("end", function () {
4021
+ try {
4022
+ var blob = new Blob(JSCompiler_object_inline_chunks_144, {
4023
+ type: mimeType
4024
+ });
4025
+ response._formData.append(name, blob, filename);
4026
+ pendingFiles--;
4027
+ if (0 === pendingFiles) {
4028
+ for (blob = 0; blob < queuedFields.length; blob += 2)
4029
+ resolveField(
4030
+ response,
4031
+ queuedFields[blob],
4032
+ queuedFields[blob + 1]
4033
+ );
4034
+ queuedFields.length = 0;
4035
+ }
4036
+ } catch (error) {
4037
+ busboyStream.destroy(error);
4038
+ }
4039
+ });
4040
+ }
3794
4041
  });
3795
4042
  busboyStream.on("finish", function () {
3796
4043
  close(response);