@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
@@ -2538,37 +2538,65 @@
2538
2538
  if ("fulfilled" === moduleExports.status)
2539
2539
  moduleExports = moduleExports.value;
2540
2540
  else throw moduleExports.reason;
2541
- return "*" === metadata[2]
2542
- ? moduleExports
2543
- : "" === metadata[2]
2544
- ? moduleExports.__esModule
2545
- ? moduleExports.default
2546
- : moduleExports
2547
- : moduleExports[metadata[2]];
2548
- }
2549
- function Chunk(status, value, reason, response) {
2541
+ if ("*" === metadata[2]) return moduleExports;
2542
+ if ("" === metadata[2])
2543
+ return moduleExports.__esModule ? moduleExports.default : moduleExports;
2544
+ if (hasOwnProperty.call(moduleExports, metadata[2]))
2545
+ return moduleExports[metadata[2]];
2546
+ }
2547
+ function ReactPromise(status, value, reason) {
2550
2548
  this.status = status;
2551
2549
  this.value = value;
2552
2550
  this.reason = reason;
2553
- this._response = response;
2554
2551
  }
2555
- function createPendingChunk(response) {
2556
- return new Chunk("pending", null, null, response);
2552
+ function wakeChunk(response, listeners, value) {
2553
+ for (var i = 0; i < listeners.length; i++) {
2554
+ var listener = listeners[i];
2555
+ "function" === typeof listener
2556
+ ? listener(value)
2557
+ : fulfillReference(response, listener, value);
2558
+ }
2559
+ }
2560
+ function rejectChunk(response, listeners, error) {
2561
+ for (var i = 0; i < listeners.length; i++) {
2562
+ var listener = listeners[i];
2563
+ "function" === typeof listener
2564
+ ? listener(error)
2565
+ : rejectReference(response, listener.handler, error);
2566
+ }
2557
2567
  }
2558
- function wakeChunk(listeners, value) {
2559
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2568
+ function resolveBlockedCycle(resolvedChunk, reference) {
2569
+ var referencedChunk = reference.handler.chunk;
2570
+ if (null === referencedChunk) return null;
2571
+ if (referencedChunk === resolvedChunk) return reference.handler;
2572
+ reference = referencedChunk.value;
2573
+ if (null !== reference)
2574
+ for (
2575
+ referencedChunk = 0;
2576
+ referencedChunk < reference.length;
2577
+ referencedChunk++
2578
+ ) {
2579
+ var listener = reference[referencedChunk];
2580
+ if (
2581
+ "function" !== typeof listener &&
2582
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2583
+ null !== listener)
2584
+ )
2585
+ return listener;
2586
+ }
2587
+ return null;
2560
2588
  }
2561
- function triggerErrorOnChunk(chunk, error) {
2589
+ function triggerErrorOnChunk(response, chunk, error) {
2562
2590
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2563
2591
  chunk.reason.error(error);
2564
2592
  else {
2565
2593
  var listeners = chunk.reason;
2566
2594
  chunk.status = "rejected";
2567
2595
  chunk.reason = error;
2568
- null !== listeners && wakeChunk(listeners, error);
2596
+ null !== listeners && rejectChunk(response, listeners, error);
2569
2597
  }
2570
2598
  }
2571
- function resolveModelChunk(chunk, value, id) {
2599
+ function resolveModelChunk(response, chunk, value, id) {
2572
2600
  if ("pending" !== chunk.status)
2573
2601
  (chunk = chunk.reason),
2574
2602
  "C" === value[0]
@@ -2579,42 +2607,74 @@
2579
2607
  rejectListeners = chunk.reason;
2580
2608
  chunk.status = "resolved_model";
2581
2609
  chunk.value = value;
2582
- chunk.reason = id;
2610
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2583
2611
  if (null !== resolveListeners)
2584
- switch ((initializeModelChunk(chunk), chunk.status)) {
2612
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2585
2613
  case "fulfilled":
2586
- wakeChunk(resolveListeners, chunk.value);
2614
+ wakeChunk(response, resolveListeners, chunk.value);
2587
2615
  break;
2588
- case "pending":
2589
2616
  case "blocked":
2590
- case "cyclic":
2617
+ for (value = 0; value < resolveListeners.length; value++)
2618
+ if (
2619
+ ((id = resolveListeners[value]), "function" !== typeof id)
2620
+ ) {
2621
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2622
+ if (null !== cyclicHandler)
2623
+ switch (
2624
+ (fulfillReference(response, id, cyclicHandler.value),
2625
+ resolveListeners.splice(value, 1),
2626
+ value--,
2627
+ null !== rejectListeners &&
2628
+ ((id = rejectListeners.indexOf(id)),
2629
+ -1 !== id && rejectListeners.splice(id, 1)),
2630
+ chunk.status)
2631
+ ) {
2632
+ case "fulfilled":
2633
+ wakeChunk(response, resolveListeners, chunk.value);
2634
+ break a;
2635
+ case "rejected":
2636
+ null !== rejectListeners &&
2637
+ rejectChunk(response, rejectListeners, chunk.reason);
2638
+ break a;
2639
+ }
2640
+ }
2641
+ case "pending":
2591
2642
  if (chunk.value)
2592
- for (value = 0; value < resolveListeners.length; value++)
2593
- chunk.value.push(resolveListeners[value]);
2643
+ for (
2644
+ response = 0;
2645
+ response < resolveListeners.length;
2646
+ response++
2647
+ )
2648
+ chunk.value.push(resolveListeners[response]);
2594
2649
  else chunk.value = resolveListeners;
2595
2650
  if (chunk.reason) {
2596
2651
  if (rejectListeners)
2597
- for (value = 0; value < rejectListeners.length; value++)
2598
- chunk.reason.push(rejectListeners[value]);
2652
+ for (
2653
+ resolveListeners = 0;
2654
+ resolveListeners < rejectListeners.length;
2655
+ resolveListeners++
2656
+ )
2657
+ chunk.reason.push(rejectListeners[resolveListeners]);
2599
2658
  } else chunk.reason = rejectListeners;
2600
2659
  break;
2601
2660
  case "rejected":
2602
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2661
+ rejectListeners &&
2662
+ wakeChunk(response, rejectListeners, chunk.reason);
2603
2663
  }
2604
2664
  }
2605
2665
  }
2606
2666
  function createResolvedIteratorResultChunk(response, value, done) {
2607
- return new Chunk(
2667
+ return new ReactPromise(
2608
2668
  "resolved_model",
2609
2669
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2610
2670
  value +
2611
2671
  "}",
2612
- -1,
2613
- response
2672
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
2614
2673
  );
2615
2674
  }
2616
- function resolveIteratorResultChunk(chunk, value, done) {
2675
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2617
2676
  resolveModelChunk(
2677
+ response,
2618
2678
  chunk,
2619
2679
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2620
2680
  value +
@@ -2622,38 +2682,67 @@
2622
2682
  -1
2623
2683
  );
2624
2684
  }
2625
- function loadServerReference$1(
2626
- response,
2627
- id,
2628
- bound,
2629
- parentChunk,
2630
- parentObject,
2631
- key
2632
- ) {
2685
+ function loadServerReference$1(response, metaData, parentObject, key) {
2686
+ var id = metaData.id;
2687
+ if ("string" !== typeof id) return null;
2633
2688
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2634
- id = preloadModule(serverReference);
2635
- if (bound)
2636
- bound = Promise.all([bound, id]).then(function (_ref) {
2637
- _ref = _ref[0];
2638
- var fn = requireModule(serverReference);
2639
- return fn.bind.apply(fn, [null].concat(_ref));
2640
- });
2641
- else if (id)
2642
- bound = Promise.resolve(id).then(function () {
2643
- return requireModule(serverReference);
2644
- });
2689
+ id = metaData.bound;
2690
+ var promise = preloadModule(serverReference);
2691
+ if (promise)
2692
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2693
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2645
2694
  else return requireModule(serverReference);
2646
- bound.then(
2647
- createModelResolver(
2648
- parentChunk,
2649
- parentObject,
2650
- key,
2651
- !1,
2652
- response,
2653
- createModel,
2654
- []
2655
- ),
2656
- createModelReject(parentChunk)
2695
+ if (initializingHandler) {
2696
+ var handler = initializingHandler;
2697
+ handler.deps++;
2698
+ } else
2699
+ handler = initializingHandler = {
2700
+ chunk: null,
2701
+ value: null,
2702
+ reason: null,
2703
+ deps: 1,
2704
+ errored: !1
2705
+ };
2706
+ promise.then(
2707
+ function () {
2708
+ var resolvedValue = requireModule(serverReference);
2709
+ if (metaData.bound) {
2710
+ var promiseValue = metaData.bound.value;
2711
+ promiseValue = Array.isArray(promiseValue)
2712
+ ? promiseValue.slice(0)
2713
+ : [];
2714
+ promiseValue.unshift(null);
2715
+ resolvedValue = resolvedValue.bind.apply(
2716
+ resolvedValue,
2717
+ promiseValue
2718
+ );
2719
+ }
2720
+ parentObject[key] = resolvedValue;
2721
+ "" === key &&
2722
+ null === handler.value &&
2723
+ (handler.value = resolvedValue);
2724
+ handler.deps--;
2725
+ 0 === handler.deps &&
2726
+ ((resolvedValue = handler.chunk),
2727
+ null !== resolvedValue &&
2728
+ "blocked" === resolvedValue.status &&
2729
+ ((promiseValue = resolvedValue.value),
2730
+ (resolvedValue.status = "fulfilled"),
2731
+ (resolvedValue.value = handler.value),
2732
+ null !== promiseValue &&
2733
+ wakeChunk(response, promiseValue, handler.value)));
2734
+ },
2735
+ function (error) {
2736
+ if (!handler.errored) {
2737
+ handler.errored = !0;
2738
+ handler.value = null;
2739
+ handler.reason = error;
2740
+ var chunk = handler.chunk;
2741
+ null !== chunk &&
2742
+ "blocked" === chunk.status &&
2743
+ triggerErrorOnChunk(response, chunk, error);
2744
+ }
2745
+ }
2657
2746
  );
2658
2747
  return null;
2659
2748
  }
@@ -2695,51 +2784,64 @@
2695
2784
  value[i],
2696
2785
  parentObj
2697
2786
  )),
2698
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2787
+ void 0 !== parentObj || "__proto__" === i
2788
+ ? (value[i] = parentObj)
2789
+ : delete value[i]);
2699
2790
  return value;
2700
2791
  }
2701
2792
  function initializeModelChunk(chunk) {
2702
- var prevChunk = initializingChunk,
2703
- prevBlocked = initializingChunkBlockedModel;
2704
- initializingChunk = chunk;
2705
- initializingChunkBlockedModel = null;
2706
- var rootReference =
2707
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2708
- resolvedModel = chunk.value;
2709
- chunk.status = "cyclic";
2793
+ var prevHandler = initializingHandler;
2794
+ initializingHandler = null;
2795
+ var _chunk$reason = chunk.reason,
2796
+ response = _chunk$reason[RESPONSE_SYMBOL];
2797
+ _chunk$reason = _chunk$reason.id;
2798
+ _chunk$reason =
2799
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2800
+ var resolvedModel = chunk.value;
2801
+ chunk.status = "blocked";
2710
2802
  chunk.value = null;
2711
2803
  chunk.reason = null;
2712
2804
  try {
2713
2805
  var rawModel = JSON.parse(resolvedModel),
2714
2806
  value = reviveModel(
2715
- chunk._response,
2807
+ response,
2716
2808
  { "": rawModel },
2717
2809
  "",
2718
2810
  rawModel,
2719
- rootReference
2720
- );
2721
- if (
2722
- null !== initializingChunkBlockedModel &&
2723
- 0 < initializingChunkBlockedModel.deps
2724
- )
2725
- (initializingChunkBlockedModel.value = value),
2726
- (chunk.status = "blocked");
2727
- else {
2728
- var resolveListeners = chunk.value;
2729
- chunk.status = "fulfilled";
2730
- chunk.value = value;
2731
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2811
+ _chunk$reason
2812
+ ),
2813
+ resolveListeners = chunk.value;
2814
+ if (null !== resolveListeners)
2815
+ for (
2816
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2817
+ rawModel < resolveListeners.length;
2818
+ rawModel++
2819
+ ) {
2820
+ var listener = resolveListeners[rawModel];
2821
+ "function" === typeof listener
2822
+ ? listener(value)
2823
+ : fulfillReference(response, listener, value);
2824
+ }
2825
+ if (null !== initializingHandler) {
2826
+ if (initializingHandler.errored) throw initializingHandler.reason;
2827
+ if (0 < initializingHandler.deps) {
2828
+ initializingHandler.value = value;
2829
+ initializingHandler.chunk = chunk;
2830
+ return;
2831
+ }
2732
2832
  }
2833
+ chunk.status = "fulfilled";
2834
+ chunk.value = value;
2733
2835
  } catch (error) {
2734
2836
  (chunk.status = "rejected"), (chunk.reason = error);
2735
2837
  } finally {
2736
- (initializingChunk = prevChunk),
2737
- (initializingChunkBlockedModel = prevBlocked);
2838
+ initializingHandler = prevHandler;
2738
2839
  }
2739
2840
  }
2740
2841
  function reportGlobalError(response, error) {
2741
2842
  response._chunks.forEach(function (chunk) {
2742
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2843
+ "pending" === chunk.status &&
2844
+ triggerErrorOnChunk(response, chunk, error);
2743
2845
  });
2744
2846
  }
2745
2847
  function getChunk(response, id) {
@@ -2748,48 +2850,106 @@
2748
2850
  chunk ||
2749
2851
  ((chunk = response._formData.get(response._prefix + id)),
2750
2852
  (chunk =
2751
- null != chunk
2752
- ? new Chunk("resolved_model", chunk, id, response)
2753
- : createPendingChunk(response)),
2853
+ "string" === typeof chunk
2854
+ ? new ReactPromise(
2855
+ "resolved_model",
2856
+ chunk,
2857
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
2858
+ )
2859
+ : new ReactPromise("pending", null, null)),
2754
2860
  chunks.set(id, chunk));
2755
2861
  return chunk;
2756
2862
  }
2757
- function createModelResolver(
2758
- chunk,
2863
+ function fulfillReference(response, reference, value) {
2864
+ for (
2865
+ var handler = reference.handler,
2866
+ parentObject = reference.parentObject,
2867
+ key = reference.key,
2868
+ map = reference.map,
2869
+ path = reference.path,
2870
+ i = 1;
2871
+ i < path.length;
2872
+ i++
2873
+ ) {
2874
+ for (; value instanceof ReactPromise; ) {
2875
+ switch (value.status) {
2876
+ case "resolved_model":
2877
+ initializeModelChunk(value);
2878
+ }
2879
+ switch (value.status) {
2880
+ case "fulfilled":
2881
+ value = value.value;
2882
+ continue;
2883
+ case "blocked":
2884
+ case "pending":
2885
+ path.splice(0, i - 1);
2886
+ null === value.value
2887
+ ? (value.value = [reference])
2888
+ : value.value.push(reference);
2889
+ null === value.reason
2890
+ ? (value.reason = [reference])
2891
+ : value.reason.push(reference);
2892
+ return;
2893
+ default:
2894
+ rejectReference(response, reference.handler, value.reason);
2895
+ return;
2896
+ }
2897
+ }
2898
+ var name = path[i];
2899
+ "object" === typeof value &&
2900
+ hasOwnProperty.call(value, name) &&
2901
+ (value = value[name]);
2902
+ }
2903
+ reference = map(response, value, parentObject, key);
2904
+ parentObject[key] = reference;
2905
+ "" === key && null === handler.value && (handler.value = reference);
2906
+ handler.deps--;
2907
+ 0 === handler.deps &&
2908
+ ((parentObject = handler.chunk),
2909
+ null !== parentObject &&
2910
+ "blocked" === parentObject.status &&
2911
+ ((key = parentObject.value),
2912
+ (parentObject.status = "fulfilled"),
2913
+ (parentObject.value = handler.value),
2914
+ (parentObject.reason = handler.reason),
2915
+ null !== key && wakeChunk(response, key, handler.value)));
2916
+ }
2917
+ function rejectReference(response, handler, error) {
2918
+ handler.errored ||
2919
+ ((handler.errored = !0),
2920
+ (handler.value = null),
2921
+ (handler.reason = error),
2922
+ (handler = handler.chunk),
2923
+ null !== handler &&
2924
+ "blocked" === handler.status &&
2925
+ triggerErrorOnChunk(response, handler, error));
2926
+ }
2927
+ function waitForReference(
2928
+ referencedChunk,
2759
2929
  parentObject,
2760
2930
  key,
2761
- cyclic,
2762
2931
  response,
2763
2932
  map,
2764
2933
  path
2765
2934
  ) {
2766
- if (initializingChunkBlockedModel) {
2767
- var blocked = initializingChunkBlockedModel;
2768
- cyclic || blocked.deps++;
2769
- } else
2770
- blocked = initializingChunkBlockedModel = {
2771
- deps: cyclic ? 0 : 1,
2772
- value: null
2773
- };
2774
- return function (value) {
2775
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2776
- parentObject[key] = map(response, value);
2777
- "" === key &&
2778
- null === blocked.value &&
2779
- (blocked.value = parentObject[key]);
2780
- blocked.deps--;
2781
- 0 === blocked.deps &&
2782
- "blocked" === chunk.status &&
2783
- ((value = chunk.value),
2784
- (chunk.status = "fulfilled"),
2785
- (chunk.value = blocked.value),
2786
- null !== value && wakeChunk(value, blocked.value));
2787
- };
2788
- }
2789
- function createModelReject(chunk) {
2790
- return function (error) {
2791
- return triggerErrorOnChunk(chunk, error);
2935
+ initializingHandler
2936
+ ? ((response = initializingHandler), response.deps++)
2937
+ : (response = initializingHandler =
2938
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2939
+ parentObject = {
2940
+ handler: response,
2941
+ parentObject: parentObject,
2942
+ key: key,
2943
+ map: map,
2944
+ path: path
2792
2945
  };
2946
+ null === referencedChunk.value
2947
+ ? (referencedChunk.value = [parentObject])
2948
+ : referencedChunk.value.push(parentObject);
2949
+ null === referencedChunk.reason
2950
+ ? (referencedChunk.reason = [parentObject])
2951
+ : referencedChunk.reason.push(parentObject);
2952
+ return null;
2793
2953
  }
2794
2954
  function getOutlinedModel(response, reference, parentObject, key, map) {
2795
2955
  reference = reference.split(":");
@@ -2801,29 +2961,75 @@
2801
2961
  }
2802
2962
  switch (id.status) {
2803
2963
  case "fulfilled":
2804
- parentObject = id.value;
2805
- for (key = 1; key < reference.length; key++)
2806
- parentObject = parentObject[reference[key]];
2807
- return map(response, parentObject);
2964
+ var value = id.value;
2965
+ for (id = 1; id < reference.length; id++) {
2966
+ for (; value instanceof ReactPromise; ) {
2967
+ switch (value.status) {
2968
+ case "resolved_model":
2969
+ initializeModelChunk(value);
2970
+ }
2971
+ switch (value.status) {
2972
+ case "fulfilled":
2973
+ value = value.value;
2974
+ break;
2975
+ case "blocked":
2976
+ case "pending":
2977
+ return waitForReference(
2978
+ value,
2979
+ parentObject,
2980
+ key,
2981
+ response,
2982
+ map,
2983
+ reference.slice(id - 1)
2984
+ );
2985
+ default:
2986
+ return (
2987
+ initializingHandler
2988
+ ? ((initializingHandler.errored = !0),
2989
+ (initializingHandler.value = null),
2990
+ (initializingHandler.reason = value.reason))
2991
+ : (initializingHandler = {
2992
+ chunk: null,
2993
+ value: null,
2994
+ reason: value.reason,
2995
+ deps: 0,
2996
+ errored: !0
2997
+ }),
2998
+ null
2999
+ );
3000
+ }
3001
+ }
3002
+ var name = reference[id];
3003
+ "object" === typeof value &&
3004
+ hasOwnProperty.call(value, name) &&
3005
+ (value = value[name]);
3006
+ }
3007
+ return map(response, value, parentObject, key);
2808
3008
  case "pending":
2809
3009
  case "blocked":
2810
- case "cyclic":
2811
- var parentChunk = initializingChunk;
2812
- id.then(
2813
- createModelResolver(
2814
- parentChunk,
2815
- parentObject,
2816
- key,
2817
- "cyclic" === id.status,
2818
- response,
2819
- map,
2820
- reference
2821
- ),
2822
- createModelReject(parentChunk)
3010
+ return waitForReference(
3011
+ id,
3012
+ parentObject,
3013
+ key,
3014
+ response,
3015
+ map,
3016
+ reference
2823
3017
  );
2824
- return null;
2825
3018
  default:
2826
- throw id.reason;
3019
+ return (
3020
+ initializingHandler
3021
+ ? ((initializingHandler.errored = !0),
3022
+ (initializingHandler.value = null),
3023
+ (initializingHandler.reason = id.reason))
3024
+ : (initializingHandler = {
3025
+ chunk: null,
3026
+ value: null,
3027
+ reason: id.reason,
3028
+ deps: 0,
3029
+ errored: !0
3030
+ }),
3031
+ null
3032
+ );
2827
3033
  }
2828
3034
  }
2829
3035
  function createMap(response, model) {
@@ -2847,40 +3053,68 @@
2847
3053
  parentKey
2848
3054
  ) {
2849
3055
  reference = parseInt(reference.slice(2), 16);
2850
- reference = response._formData.get(response._prefix + reference);
2851
- reference =
2852
- constructor === ArrayBuffer
2853
- ? reference.arrayBuffer()
2854
- : reference.arrayBuffer().then(function (buffer) {
2855
- return new constructor(buffer);
2856
- });
2857
- bytesPerElement = initializingChunk;
3056
+ reference = response._formData
3057
+ .get(response._prefix + reference)
3058
+ .arrayBuffer();
3059
+ if (initializingHandler) {
3060
+ var handler = initializingHandler;
3061
+ handler.deps++;
3062
+ } else
3063
+ handler = initializingHandler = {
3064
+ chunk: null,
3065
+ value: null,
3066
+ reason: null,
3067
+ deps: 1,
3068
+ errored: !1
3069
+ };
2858
3070
  reference.then(
2859
- createModelResolver(
2860
- bytesPerElement,
2861
- parentObject,
2862
- parentKey,
2863
- !1,
2864
- response,
2865
- createModel,
2866
- []
2867
- ),
2868
- createModelReject(bytesPerElement)
3071
+ function (buffer) {
3072
+ buffer =
3073
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
3074
+ parentObject[parentKey] = buffer;
3075
+ "" === parentKey &&
3076
+ null === handler.value &&
3077
+ (handler.value = buffer);
3078
+ handler.deps--;
3079
+ if (
3080
+ 0 === handler.deps &&
3081
+ ((buffer = handler.chunk),
3082
+ null !== buffer && "blocked" === buffer.status)
3083
+ ) {
3084
+ var resolveListeners = buffer.value;
3085
+ buffer.status = "fulfilled";
3086
+ buffer.value = handler.value;
3087
+ null !== resolveListeners &&
3088
+ wakeChunk(response, resolveListeners, handler.value);
3089
+ }
3090
+ },
3091
+ function (error) {
3092
+ if (!handler.errored) {
3093
+ handler.errored = !0;
3094
+ handler.value = null;
3095
+ handler.reason = error;
3096
+ var chunk = handler.chunk;
3097
+ null !== chunk &&
3098
+ "blocked" === chunk.status &&
3099
+ triggerErrorOnChunk(response, chunk, error);
3100
+ }
3101
+ }
2869
3102
  );
2870
3103
  return null;
2871
3104
  }
2872
3105
  function resolveStream(response, id, stream, controller) {
2873
3106
  var chunks = response._chunks;
2874
- stream = new Chunk("fulfilled", stream, controller, response);
3107
+ stream = new ReactPromise("fulfilled", stream, controller);
2875
3108
  chunks.set(id, stream);
2876
3109
  response = response._formData.getAll(response._prefix + id);
2877
3110
  for (id = 0; id < response.length; id++)
2878
3111
  (chunks = response[id]),
2879
- "C" === chunks[0]
2880
- ? controller.close(
2881
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
2882
- )
2883
- : controller.enqueueModel(chunks);
3112
+ "string" === typeof chunks &&
3113
+ ("C" === chunks[0]
3114
+ ? controller.close(
3115
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
3116
+ )
3117
+ : controller.enqueueModel(chunks));
2884
3118
  }
2885
3119
  function parseReadableStream(response, reference, type) {
2886
3120
  reference = parseInt(reference.slice(2), 16);
@@ -2895,7 +3129,11 @@
2895
3129
  resolveStream(response, reference, type, {
2896
3130
  enqueueModel: function (json) {
2897
3131
  if (null === previousBlockedChunk) {
2898
- var chunk = new Chunk("resolved_model", json, -1, response);
3132
+ var chunk = new ReactPromise(
3133
+ "resolved_model",
3134
+ json,
3135
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3136
+ );
2899
3137
  initializeModelChunk(chunk);
2900
3138
  "fulfilled" === chunk.status
2901
3139
  ? controller.enqueue(chunk.value)
@@ -2910,7 +3148,7 @@
2910
3148
  (previousBlockedChunk = chunk));
2911
3149
  } else {
2912
3150
  chunk = previousBlockedChunk;
2913
- var _chunk = createPendingChunk(response);
3151
+ var _chunk = new ReactPromise("pending", null, null);
2914
3152
  _chunk.then(
2915
3153
  function (v) {
2916
3154
  return controller.enqueue(v);
@@ -2922,7 +3160,7 @@
2922
3160
  previousBlockedChunk = _chunk;
2923
3161
  chunk.then(function () {
2924
3162
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
2925
- resolveModelChunk(_chunk, json, -1);
3163
+ resolveModelChunk(response, _chunk, json, -1);
2926
3164
  });
2927
3165
  }
2928
3166
  },
@@ -2971,13 +3209,12 @@
2971
3209
  );
2972
3210
  if (nextReadIndex === buffer.length) {
2973
3211
  if (closed)
2974
- return new Chunk(
3212
+ return new ReactPromise(
2975
3213
  "fulfilled",
2976
3214
  { done: !0, value: void 0 },
2977
- null,
2978
- response
3215
+ null
2979
3216
  );
2980
- buffer[nextReadIndex] = createPendingChunk(response);
3217
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2981
3218
  }
2982
3219
  return buffer[nextReadIndex++];
2983
3220
  });
@@ -2991,7 +3228,12 @@
2991
3228
  value,
2992
3229
  !1
2993
3230
  ))
2994
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
3231
+ : resolveIteratorResultChunk(
3232
+ response,
3233
+ buffer[nextWriteIndex],
3234
+ value,
3235
+ !1
3236
+ );
2995
3237
  nextWriteIndex++;
2996
3238
  },
2997
3239
  close: function (value) {
@@ -3002,9 +3244,15 @@
3002
3244
  value,
3003
3245
  !0
3004
3246
  ))
3005
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
3247
+ : resolveIteratorResultChunk(
3248
+ response,
3249
+ buffer[nextWriteIndex],
3250
+ value,
3251
+ !0
3252
+ );
3006
3253
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
3007
3254
  resolveIteratorResultChunk(
3255
+ response,
3008
3256
  buffer[nextWriteIndex++],
3009
3257
  '"$undefined"',
3010
3258
  !0
@@ -3014,11 +3262,11 @@
3014
3262
  closed = !0;
3015
3263
  for (
3016
3264
  nextWriteIndex === buffer.length &&
3017
- (buffer[nextWriteIndex] = createPendingChunk(response));
3265
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
3018
3266
  nextWriteIndex < buffer.length;
3019
3267
 
3020
3268
  )
3021
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
3269
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
3022
3270
  }
3023
3271
  });
3024
3272
  return iterator;
@@ -3035,21 +3283,7 @@
3035
3283
  case "F":
3036
3284
  return (
3037
3285
  (value = value.slice(2)),
3038
- (value = getOutlinedModel(
3039
- response,
3040
- value,
3041
- obj,
3042
- key,
3043
- createModel
3044
- )),
3045
- loadServerReference$1(
3046
- response,
3047
- value.id,
3048
- value.bound,
3049
- initializingChunk,
3050
- obj,
3051
- key
3052
- )
3286
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
3053
3287
  );
3054
3288
  case "T":
3055
3289
  if (
@@ -3638,34 +3872,33 @@
3638
3872
  debugID = null,
3639
3873
  modelRoot = !1,
3640
3874
  emptyRoot = {},
3875
+ hasOwnProperty = Object.prototype.hasOwnProperty,
3641
3876
  chunkCache = new Map(),
3642
- hasOwnProperty = Object.prototype.hasOwnProperty;
3643
- Chunk.prototype = Object.create(Promise.prototype);
3644
- Chunk.prototype.then = function (resolve, reject) {
3877
+ RESPONSE_SYMBOL = Symbol();
3878
+ ReactPromise.prototype = Object.create(Promise.prototype);
3879
+ ReactPromise.prototype.then = function (resolve, reject) {
3645
3880
  switch (this.status) {
3646
3881
  case "resolved_model":
3647
3882
  initializeModelChunk(this);
3648
3883
  }
3649
3884
  switch (this.status) {
3650
3885
  case "fulfilled":
3651
- resolve(this.value);
3886
+ "function" === typeof resolve && resolve(this.value);
3652
3887
  break;
3653
3888
  case "pending":
3654
3889
  case "blocked":
3655
- case "cyclic":
3656
- resolve &&
3890
+ "function" === typeof resolve &&
3657
3891
  (null === this.value && (this.value = []),
3658
3892
  this.value.push(resolve));
3659
- reject &&
3893
+ "function" === typeof reject &&
3660
3894
  (null === this.reason && (this.reason = []),
3661
3895
  this.reason.push(reject));
3662
3896
  break;
3663
3897
  default:
3664
- reject(this.reason);
3898
+ "function" === typeof reject && reject(this.reason);
3665
3899
  }
3666
3900
  };
3667
- var initializingChunk = null,
3668
- initializingChunkBlockedModel = null;
3901
+ var initializingHandler = null;
3669
3902
  exports.createClientModuleProxy = function (moduleId) {
3670
3903
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3671
3904
  return new Proxy(moduleId, proxyHandlers$1);