@modern-js/utils 2.69.2 → 2.69.4

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 +2 -2
@@ -2514,35 +2514,64 @@
2514
2514
  if ("fulfilled" === moduleExports.status)
2515
2515
  moduleExports = moduleExports.value;
2516
2516
  else throw moduleExports.reason;
2517
- return "*" === metadata.name
2518
- ? moduleExports
2519
- : "" === metadata.name
2520
- ? moduleExports.default
2521
- : moduleExports[metadata.name];
2517
+ if ("*" === metadata.name) return moduleExports;
2518
+ if ("" === metadata.name) return moduleExports.default;
2519
+ if (hasOwnProperty.call(moduleExports, metadata.name))
2520
+ return moduleExports[metadata.name];
2522
2521
  }
2523
- function Chunk(status, value, reason, response) {
2522
+ function ReactPromise(status, value, reason) {
2524
2523
  this.status = status;
2525
2524
  this.value = value;
2526
2525
  this.reason = reason;
2527
- this._response = response;
2528
2526
  }
2529
- function createPendingChunk(response) {
2530
- return new Chunk("pending", null, null, response);
2527
+ function wakeChunk(response, listeners, value) {
2528
+ for (var i = 0; i < listeners.length; i++) {
2529
+ var listener = listeners[i];
2530
+ "function" === typeof listener
2531
+ ? listener(value)
2532
+ : fulfillReference(response, listener, value);
2533
+ }
2534
+ }
2535
+ function rejectChunk(response, listeners, error) {
2536
+ for (var i = 0; i < listeners.length; i++) {
2537
+ var listener = listeners[i];
2538
+ "function" === typeof listener
2539
+ ? listener(error)
2540
+ : rejectReference(response, listener.handler, error);
2541
+ }
2531
2542
  }
2532
- function wakeChunk(listeners, value) {
2533
- for (var i = 0; i < listeners.length; i++) (0, listeners[i])(value);
2543
+ function resolveBlockedCycle(resolvedChunk, reference) {
2544
+ var referencedChunk = reference.handler.chunk;
2545
+ if (null === referencedChunk) return null;
2546
+ if (referencedChunk === resolvedChunk) return reference.handler;
2547
+ reference = referencedChunk.value;
2548
+ if (null !== reference)
2549
+ for (
2550
+ referencedChunk = 0;
2551
+ referencedChunk < reference.length;
2552
+ referencedChunk++
2553
+ ) {
2554
+ var listener = reference[referencedChunk];
2555
+ if (
2556
+ "function" !== typeof listener &&
2557
+ ((listener = resolveBlockedCycle(resolvedChunk, listener)),
2558
+ null !== listener)
2559
+ )
2560
+ return listener;
2561
+ }
2562
+ return null;
2534
2563
  }
2535
- function triggerErrorOnChunk(chunk, error) {
2564
+ function triggerErrorOnChunk(response, chunk, error) {
2536
2565
  if ("pending" !== chunk.status && "blocked" !== chunk.status)
2537
2566
  chunk.reason.error(error);
2538
2567
  else {
2539
2568
  var listeners = chunk.reason;
2540
2569
  chunk.status = "rejected";
2541
2570
  chunk.reason = error;
2542
- null !== listeners && wakeChunk(listeners, error);
2571
+ null !== listeners && rejectChunk(response, listeners, error);
2543
2572
  }
2544
2573
  }
2545
- function resolveModelChunk(chunk, value, id) {
2574
+ function resolveModelChunk(response, chunk, value, id) {
2546
2575
  if ("pending" !== chunk.status)
2547
2576
  (chunk = chunk.reason),
2548
2577
  "C" === value[0]
@@ -2553,42 +2582,74 @@
2553
2582
  rejectListeners = chunk.reason;
2554
2583
  chunk.status = "resolved_model";
2555
2584
  chunk.value = value;
2556
- chunk.reason = id;
2585
+ chunk.reason = _defineProperty({ id: id }, RESPONSE_SYMBOL, response);
2557
2586
  if (null !== resolveListeners)
2558
- switch ((initializeModelChunk(chunk), chunk.status)) {
2587
+ a: switch ((initializeModelChunk(chunk), chunk.status)) {
2559
2588
  case "fulfilled":
2560
- wakeChunk(resolveListeners, chunk.value);
2589
+ wakeChunk(response, resolveListeners, chunk.value);
2561
2590
  break;
2562
- case "pending":
2563
2591
  case "blocked":
2564
- case "cyclic":
2592
+ for (value = 0; value < resolveListeners.length; value++)
2593
+ if (
2594
+ ((id = resolveListeners[value]), "function" !== typeof id)
2595
+ ) {
2596
+ var cyclicHandler = resolveBlockedCycle(chunk, id);
2597
+ if (null !== cyclicHandler)
2598
+ switch (
2599
+ (fulfillReference(response, id, cyclicHandler.value),
2600
+ resolveListeners.splice(value, 1),
2601
+ value--,
2602
+ null !== rejectListeners &&
2603
+ ((id = rejectListeners.indexOf(id)),
2604
+ -1 !== id && rejectListeners.splice(id, 1)),
2605
+ chunk.status)
2606
+ ) {
2607
+ case "fulfilled":
2608
+ wakeChunk(response, resolveListeners, chunk.value);
2609
+ break a;
2610
+ case "rejected":
2611
+ null !== rejectListeners &&
2612
+ rejectChunk(response, rejectListeners, chunk.reason);
2613
+ break a;
2614
+ }
2615
+ }
2616
+ case "pending":
2565
2617
  if (chunk.value)
2566
- for (value = 0; value < resolveListeners.length; value++)
2567
- chunk.value.push(resolveListeners[value]);
2618
+ for (
2619
+ response = 0;
2620
+ response < resolveListeners.length;
2621
+ response++
2622
+ )
2623
+ chunk.value.push(resolveListeners[response]);
2568
2624
  else chunk.value = resolveListeners;
2569
2625
  if (chunk.reason) {
2570
2626
  if (rejectListeners)
2571
- for (value = 0; value < rejectListeners.length; value++)
2572
- chunk.reason.push(rejectListeners[value]);
2627
+ for (
2628
+ resolveListeners = 0;
2629
+ resolveListeners < rejectListeners.length;
2630
+ resolveListeners++
2631
+ )
2632
+ chunk.reason.push(rejectListeners[resolveListeners]);
2573
2633
  } else chunk.reason = rejectListeners;
2574
2634
  break;
2575
2635
  case "rejected":
2576
- rejectListeners && wakeChunk(rejectListeners, chunk.reason);
2636
+ rejectListeners &&
2637
+ wakeChunk(response, rejectListeners, chunk.reason);
2577
2638
  }
2578
2639
  }
2579
2640
  }
2580
2641
  function createResolvedIteratorResultChunk(response, value, done) {
2581
- return new Chunk(
2642
+ return new ReactPromise(
2582
2643
  "resolved_model",
2583
2644
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2584
2645
  value +
2585
2646
  "}",
2586
- -1,
2587
- response
2647
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
2588
2648
  );
2589
2649
  }
2590
- function resolveIteratorResultChunk(chunk, value, done) {
2650
+ function resolveIteratorResultChunk(response, chunk, value, done) {
2591
2651
  resolveModelChunk(
2652
+ response,
2592
2653
  chunk,
2593
2654
  (done ? '{"done":true,"value":' : '{"done":false,"value":') +
2594
2655
  value +
@@ -2596,38 +2657,67 @@
2596
2657
  -1
2597
2658
  );
2598
2659
  }
2599
- function loadServerReference$1(
2600
- response,
2601
- id,
2602
- bound,
2603
- parentChunk,
2604
- parentObject,
2605
- key
2606
- ) {
2660
+ function loadServerReference$1(response, metaData, parentObject, key) {
2661
+ var id = metaData.id;
2662
+ if ("string" !== typeof id) return null;
2607
2663
  var serverReference = resolveServerReference(response._bundlerConfig, id);
2608
- id = preloadModule(serverReference);
2609
- if (bound)
2610
- bound = Promise.all([bound, id]).then(function (_ref) {
2611
- _ref = _ref[0];
2612
- var fn = requireModule(serverReference);
2613
- return fn.bind.apply(fn, [null].concat(_ref));
2614
- });
2615
- else if (id)
2616
- bound = Promise.resolve(id).then(function () {
2617
- return requireModule(serverReference);
2618
- });
2664
+ id = metaData.bound;
2665
+ var promise = preloadModule(serverReference);
2666
+ if (promise)
2667
+ id instanceof ReactPromise && (promise = Promise.all([promise, id]));
2668
+ else if (id instanceof ReactPromise) promise = Promise.resolve(id);
2619
2669
  else return requireModule(serverReference);
2620
- bound.then(
2621
- createModelResolver(
2622
- parentChunk,
2623
- parentObject,
2624
- key,
2625
- !1,
2626
- response,
2627
- createModel,
2628
- []
2629
- ),
2630
- createModelReject(parentChunk)
2670
+ if (initializingHandler) {
2671
+ var handler = initializingHandler;
2672
+ handler.deps++;
2673
+ } else
2674
+ handler = initializingHandler = {
2675
+ chunk: null,
2676
+ value: null,
2677
+ reason: null,
2678
+ deps: 1,
2679
+ errored: !1
2680
+ };
2681
+ promise.then(
2682
+ function () {
2683
+ var resolvedValue = requireModule(serverReference);
2684
+ if (metaData.bound) {
2685
+ var promiseValue = metaData.bound.value;
2686
+ promiseValue = Array.isArray(promiseValue)
2687
+ ? promiseValue.slice(0)
2688
+ : [];
2689
+ promiseValue.unshift(null);
2690
+ resolvedValue = resolvedValue.bind.apply(
2691
+ resolvedValue,
2692
+ promiseValue
2693
+ );
2694
+ }
2695
+ parentObject[key] = resolvedValue;
2696
+ "" === key &&
2697
+ null === handler.value &&
2698
+ (handler.value = resolvedValue);
2699
+ handler.deps--;
2700
+ 0 === handler.deps &&
2701
+ ((resolvedValue = handler.chunk),
2702
+ null !== resolvedValue &&
2703
+ "blocked" === resolvedValue.status &&
2704
+ ((promiseValue = resolvedValue.value),
2705
+ (resolvedValue.status = "fulfilled"),
2706
+ (resolvedValue.value = handler.value),
2707
+ null !== promiseValue &&
2708
+ wakeChunk(response, promiseValue, handler.value)));
2709
+ },
2710
+ function (error) {
2711
+ if (!handler.errored) {
2712
+ handler.errored = !0;
2713
+ handler.value = null;
2714
+ handler.reason = error;
2715
+ var chunk = handler.chunk;
2716
+ null !== chunk &&
2717
+ "blocked" === chunk.status &&
2718
+ triggerErrorOnChunk(response, chunk, error);
2719
+ }
2720
+ }
2631
2721
  );
2632
2722
  return null;
2633
2723
  }
@@ -2669,51 +2759,64 @@
2669
2759
  value[i],
2670
2760
  parentObj
2671
2761
  )),
2672
- void 0 !== parentObj ? (value[i] = parentObj) : delete value[i]);
2762
+ void 0 !== parentObj || "__proto__" === i
2763
+ ? (value[i] = parentObj)
2764
+ : delete value[i]);
2673
2765
  return value;
2674
2766
  }
2675
2767
  function initializeModelChunk(chunk) {
2676
- var prevChunk = initializingChunk,
2677
- prevBlocked = initializingChunkBlockedModel;
2678
- initializingChunk = chunk;
2679
- initializingChunkBlockedModel = null;
2680
- var rootReference =
2681
- -1 === chunk.reason ? void 0 : chunk.reason.toString(16),
2682
- resolvedModel = chunk.value;
2683
- chunk.status = "cyclic";
2768
+ var prevHandler = initializingHandler;
2769
+ initializingHandler = null;
2770
+ var _chunk$reason = chunk.reason,
2771
+ response = _chunk$reason[RESPONSE_SYMBOL];
2772
+ _chunk$reason = _chunk$reason.id;
2773
+ _chunk$reason =
2774
+ -1 === _chunk$reason ? void 0 : _chunk$reason.toString(16);
2775
+ var resolvedModel = chunk.value;
2776
+ chunk.status = "blocked";
2684
2777
  chunk.value = null;
2685
2778
  chunk.reason = null;
2686
2779
  try {
2687
2780
  var rawModel = JSON.parse(resolvedModel),
2688
2781
  value = reviveModel(
2689
- chunk._response,
2782
+ response,
2690
2783
  { "": rawModel },
2691
2784
  "",
2692
2785
  rawModel,
2693
- rootReference
2694
- );
2695
- if (
2696
- null !== initializingChunkBlockedModel &&
2697
- 0 < initializingChunkBlockedModel.deps
2698
- )
2699
- (initializingChunkBlockedModel.value = value),
2700
- (chunk.status = "blocked");
2701
- else {
2702
- var resolveListeners = chunk.value;
2703
- chunk.status = "fulfilled";
2704
- chunk.value = value;
2705
- null !== resolveListeners && wakeChunk(resolveListeners, value);
2786
+ _chunk$reason
2787
+ ),
2788
+ resolveListeners = chunk.value;
2789
+ if (null !== resolveListeners)
2790
+ for (
2791
+ chunk.value = null, chunk.reason = null, rawModel = 0;
2792
+ rawModel < resolveListeners.length;
2793
+ rawModel++
2794
+ ) {
2795
+ var listener = resolveListeners[rawModel];
2796
+ "function" === typeof listener
2797
+ ? listener(value)
2798
+ : fulfillReference(response, listener, value);
2799
+ }
2800
+ if (null !== initializingHandler) {
2801
+ if (initializingHandler.errored) throw initializingHandler.reason;
2802
+ if (0 < initializingHandler.deps) {
2803
+ initializingHandler.value = value;
2804
+ initializingHandler.chunk = chunk;
2805
+ return;
2806
+ }
2706
2807
  }
2808
+ chunk.status = "fulfilled";
2809
+ chunk.value = value;
2707
2810
  } catch (error) {
2708
2811
  (chunk.status = "rejected"), (chunk.reason = error);
2709
2812
  } finally {
2710
- (initializingChunk = prevChunk),
2711
- (initializingChunkBlockedModel = prevBlocked);
2813
+ initializingHandler = prevHandler;
2712
2814
  }
2713
2815
  }
2714
2816
  function reportGlobalError(response, error) {
2715
2817
  response._chunks.forEach(function (chunk) {
2716
- "pending" === chunk.status && triggerErrorOnChunk(chunk, error);
2818
+ "pending" === chunk.status &&
2819
+ triggerErrorOnChunk(response, chunk, error);
2717
2820
  });
2718
2821
  }
2719
2822
  function getChunk(response, id) {
@@ -2722,48 +2825,106 @@
2722
2825
  chunk ||
2723
2826
  ((chunk = response._formData.get(response._prefix + id)),
2724
2827
  (chunk =
2725
- null != chunk
2726
- ? new Chunk("resolved_model", chunk, id, response)
2727
- : createPendingChunk(response)),
2828
+ "string" === typeof chunk
2829
+ ? new ReactPromise(
2830
+ "resolved_model",
2831
+ chunk,
2832
+ _defineProperty({ id: id }, RESPONSE_SYMBOL, response)
2833
+ )
2834
+ : new ReactPromise("pending", null, null)),
2728
2835
  chunks.set(id, chunk));
2729
2836
  return chunk;
2730
2837
  }
2731
- function createModelResolver(
2732
- chunk,
2838
+ function fulfillReference(response, reference, value) {
2839
+ for (
2840
+ var handler = reference.handler,
2841
+ parentObject = reference.parentObject,
2842
+ key = reference.key,
2843
+ map = reference.map,
2844
+ path = reference.path,
2845
+ i = 1;
2846
+ i < path.length;
2847
+ i++
2848
+ ) {
2849
+ for (; value instanceof ReactPromise; ) {
2850
+ switch (value.status) {
2851
+ case "resolved_model":
2852
+ initializeModelChunk(value);
2853
+ }
2854
+ switch (value.status) {
2855
+ case "fulfilled":
2856
+ value = value.value;
2857
+ continue;
2858
+ case "blocked":
2859
+ case "pending":
2860
+ path.splice(0, i - 1);
2861
+ null === value.value
2862
+ ? (value.value = [reference])
2863
+ : value.value.push(reference);
2864
+ null === value.reason
2865
+ ? (value.reason = [reference])
2866
+ : value.reason.push(reference);
2867
+ return;
2868
+ default:
2869
+ rejectReference(response, reference.handler, value.reason);
2870
+ return;
2871
+ }
2872
+ }
2873
+ var name = path[i];
2874
+ "object" === typeof value &&
2875
+ hasOwnProperty.call(value, name) &&
2876
+ (value = value[name]);
2877
+ }
2878
+ reference = map(response, value, parentObject, key);
2879
+ parentObject[key] = reference;
2880
+ "" === key && null === handler.value && (handler.value = reference);
2881
+ handler.deps--;
2882
+ 0 === handler.deps &&
2883
+ ((parentObject = handler.chunk),
2884
+ null !== parentObject &&
2885
+ "blocked" === parentObject.status &&
2886
+ ((key = parentObject.value),
2887
+ (parentObject.status = "fulfilled"),
2888
+ (parentObject.value = handler.value),
2889
+ (parentObject.reason = handler.reason),
2890
+ null !== key && wakeChunk(response, key, handler.value)));
2891
+ }
2892
+ function rejectReference(response, handler, error) {
2893
+ handler.errored ||
2894
+ ((handler.errored = !0),
2895
+ (handler.value = null),
2896
+ (handler.reason = error),
2897
+ (handler = handler.chunk),
2898
+ null !== handler &&
2899
+ "blocked" === handler.status &&
2900
+ triggerErrorOnChunk(response, handler, error));
2901
+ }
2902
+ function waitForReference(
2903
+ referencedChunk,
2733
2904
  parentObject,
2734
2905
  key,
2735
- cyclic,
2736
2906
  response,
2737
2907
  map,
2738
2908
  path
2739
2909
  ) {
2740
- if (initializingChunkBlockedModel) {
2741
- var blocked = initializingChunkBlockedModel;
2742
- cyclic || blocked.deps++;
2743
- } else
2744
- blocked = initializingChunkBlockedModel = {
2745
- deps: cyclic ? 0 : 1,
2746
- value: null
2747
- };
2748
- return function (value) {
2749
- for (var i = 1; i < path.length; i++) value = value[path[i]];
2750
- parentObject[key] = map(response, value);
2751
- "" === key &&
2752
- null === blocked.value &&
2753
- (blocked.value = parentObject[key]);
2754
- blocked.deps--;
2755
- 0 === blocked.deps &&
2756
- "blocked" === chunk.status &&
2757
- ((value = chunk.value),
2758
- (chunk.status = "fulfilled"),
2759
- (chunk.value = blocked.value),
2760
- null !== value && wakeChunk(value, blocked.value));
2761
- };
2762
- }
2763
- function createModelReject(chunk) {
2764
- return function (error) {
2765
- return triggerErrorOnChunk(chunk, error);
2910
+ initializingHandler
2911
+ ? ((response = initializingHandler), response.deps++)
2912
+ : (response = initializingHandler =
2913
+ { chunk: null, value: null, reason: null, deps: 1, errored: !1 });
2914
+ parentObject = {
2915
+ handler: response,
2916
+ parentObject: parentObject,
2917
+ key: key,
2918
+ map: map,
2919
+ path: path
2766
2920
  };
2921
+ null === referencedChunk.value
2922
+ ? (referencedChunk.value = [parentObject])
2923
+ : referencedChunk.value.push(parentObject);
2924
+ null === referencedChunk.reason
2925
+ ? (referencedChunk.reason = [parentObject])
2926
+ : referencedChunk.reason.push(parentObject);
2927
+ return null;
2767
2928
  }
2768
2929
  function getOutlinedModel(response, reference, parentObject, key, map) {
2769
2930
  reference = reference.split(":");
@@ -2775,29 +2936,75 @@
2775
2936
  }
2776
2937
  switch (id.status) {
2777
2938
  case "fulfilled":
2778
- parentObject = id.value;
2779
- for (key = 1; key < reference.length; key++)
2780
- parentObject = parentObject[reference[key]];
2781
- return map(response, parentObject);
2939
+ var value = id.value;
2940
+ for (id = 1; id < reference.length; id++) {
2941
+ for (; value instanceof ReactPromise; ) {
2942
+ switch (value.status) {
2943
+ case "resolved_model":
2944
+ initializeModelChunk(value);
2945
+ }
2946
+ switch (value.status) {
2947
+ case "fulfilled":
2948
+ value = value.value;
2949
+ break;
2950
+ case "blocked":
2951
+ case "pending":
2952
+ return waitForReference(
2953
+ value,
2954
+ parentObject,
2955
+ key,
2956
+ response,
2957
+ map,
2958
+ reference.slice(id - 1)
2959
+ );
2960
+ default:
2961
+ return (
2962
+ initializingHandler
2963
+ ? ((initializingHandler.errored = !0),
2964
+ (initializingHandler.value = null),
2965
+ (initializingHandler.reason = value.reason))
2966
+ : (initializingHandler = {
2967
+ chunk: null,
2968
+ value: null,
2969
+ reason: value.reason,
2970
+ deps: 0,
2971
+ errored: !0
2972
+ }),
2973
+ null
2974
+ );
2975
+ }
2976
+ }
2977
+ var name = reference[id];
2978
+ "object" === typeof value &&
2979
+ hasOwnProperty.call(value, name) &&
2980
+ (value = value[name]);
2981
+ }
2982
+ return map(response, value, parentObject, key);
2782
2983
  case "pending":
2783
2984
  case "blocked":
2784
- case "cyclic":
2785
- var parentChunk = initializingChunk;
2786
- id.then(
2787
- createModelResolver(
2788
- parentChunk,
2789
- parentObject,
2790
- key,
2791
- "cyclic" === id.status,
2792
- response,
2793
- map,
2794
- reference
2795
- ),
2796
- createModelReject(parentChunk)
2985
+ return waitForReference(
2986
+ id,
2987
+ parentObject,
2988
+ key,
2989
+ response,
2990
+ map,
2991
+ reference
2797
2992
  );
2798
- return null;
2799
2993
  default:
2800
- throw id.reason;
2994
+ return (
2995
+ initializingHandler
2996
+ ? ((initializingHandler.errored = !0),
2997
+ (initializingHandler.value = null),
2998
+ (initializingHandler.reason = id.reason))
2999
+ : (initializingHandler = {
3000
+ chunk: null,
3001
+ value: null,
3002
+ reason: id.reason,
3003
+ deps: 0,
3004
+ errored: !0
3005
+ }),
3006
+ null
3007
+ );
2801
3008
  }
2802
3009
  }
2803
3010
  function createMap(response, model) {
@@ -2821,40 +3028,68 @@
2821
3028
  parentKey
2822
3029
  ) {
2823
3030
  reference = parseInt(reference.slice(2), 16);
2824
- reference = response._formData.get(response._prefix + reference);
2825
- reference =
2826
- constructor === ArrayBuffer
2827
- ? reference.arrayBuffer()
2828
- : reference.arrayBuffer().then(function (buffer) {
2829
- return new constructor(buffer);
2830
- });
2831
- bytesPerElement = initializingChunk;
3031
+ reference = response._formData
3032
+ .get(response._prefix + reference)
3033
+ .arrayBuffer();
3034
+ if (initializingHandler) {
3035
+ var handler = initializingHandler;
3036
+ handler.deps++;
3037
+ } else
3038
+ handler = initializingHandler = {
3039
+ chunk: null,
3040
+ value: null,
3041
+ reason: null,
3042
+ deps: 1,
3043
+ errored: !1
3044
+ };
2832
3045
  reference.then(
2833
- createModelResolver(
2834
- bytesPerElement,
2835
- parentObject,
2836
- parentKey,
2837
- !1,
2838
- response,
2839
- createModel,
2840
- []
2841
- ),
2842
- createModelReject(bytesPerElement)
3046
+ function (buffer) {
3047
+ buffer =
3048
+ constructor === ArrayBuffer ? buffer : new constructor(buffer);
3049
+ parentObject[parentKey] = buffer;
3050
+ "" === parentKey &&
3051
+ null === handler.value &&
3052
+ (handler.value = buffer);
3053
+ handler.deps--;
3054
+ if (
3055
+ 0 === handler.deps &&
3056
+ ((buffer = handler.chunk),
3057
+ null !== buffer && "blocked" === buffer.status)
3058
+ ) {
3059
+ var resolveListeners = buffer.value;
3060
+ buffer.status = "fulfilled";
3061
+ buffer.value = handler.value;
3062
+ null !== resolveListeners &&
3063
+ wakeChunk(response, resolveListeners, handler.value);
3064
+ }
3065
+ },
3066
+ function (error) {
3067
+ if (!handler.errored) {
3068
+ handler.errored = !0;
3069
+ handler.value = null;
3070
+ handler.reason = error;
3071
+ var chunk = handler.chunk;
3072
+ null !== chunk &&
3073
+ "blocked" === chunk.status &&
3074
+ triggerErrorOnChunk(response, chunk, error);
3075
+ }
3076
+ }
2843
3077
  );
2844
3078
  return null;
2845
3079
  }
2846
3080
  function resolveStream(response, id, stream, controller) {
2847
3081
  var chunks = response._chunks;
2848
- stream = new Chunk("fulfilled", stream, controller, response);
3082
+ stream = new ReactPromise("fulfilled", stream, controller);
2849
3083
  chunks.set(id, stream);
2850
3084
  response = response._formData.getAll(response._prefix + id);
2851
3085
  for (id = 0; id < response.length; id++)
2852
3086
  (chunks = response[id]),
2853
- "C" === chunks[0]
2854
- ? controller.close(
2855
- "C" === chunks ? '"$undefined"' : chunks.slice(1)
2856
- )
2857
- : controller.enqueueModel(chunks);
3087
+ "string" === typeof chunks &&
3088
+ ("C" === chunks[0]
3089
+ ? controller.close(
3090
+ "C" === chunks ? '"$undefined"' : chunks.slice(1)
3091
+ )
3092
+ : controller.enqueueModel(chunks));
2858
3093
  }
2859
3094
  function parseReadableStream(response, reference, type) {
2860
3095
  reference = parseInt(reference.slice(2), 16);
@@ -2869,7 +3104,11 @@
2869
3104
  resolveStream(response, reference, type, {
2870
3105
  enqueueModel: function (json) {
2871
3106
  if (null === previousBlockedChunk) {
2872
- var chunk = new Chunk("resolved_model", json, -1, response);
3107
+ var chunk = new ReactPromise(
3108
+ "resolved_model",
3109
+ json,
3110
+ _defineProperty({ id: -1 }, RESPONSE_SYMBOL, response)
3111
+ );
2873
3112
  initializeModelChunk(chunk);
2874
3113
  "fulfilled" === chunk.status
2875
3114
  ? controller.enqueue(chunk.value)
@@ -2884,7 +3123,7 @@
2884
3123
  (previousBlockedChunk = chunk));
2885
3124
  } else {
2886
3125
  chunk = previousBlockedChunk;
2887
- var _chunk = createPendingChunk(response);
3126
+ var _chunk = new ReactPromise("pending", null, null);
2888
3127
  _chunk.then(
2889
3128
  function (v) {
2890
3129
  return controller.enqueue(v);
@@ -2896,7 +3135,7 @@
2896
3135
  previousBlockedChunk = _chunk;
2897
3136
  chunk.then(function () {
2898
3137
  previousBlockedChunk === _chunk && (previousBlockedChunk = null);
2899
- resolveModelChunk(_chunk, json, -1);
3138
+ resolveModelChunk(response, _chunk, json, -1);
2900
3139
  });
2901
3140
  }
2902
3141
  },
@@ -2945,13 +3184,12 @@
2945
3184
  );
2946
3185
  if (nextReadIndex === buffer.length) {
2947
3186
  if (closed)
2948
- return new Chunk(
3187
+ return new ReactPromise(
2949
3188
  "fulfilled",
2950
3189
  { done: !0, value: void 0 },
2951
- null,
2952
- response
3190
+ null
2953
3191
  );
2954
- buffer[nextReadIndex] = createPendingChunk(response);
3192
+ buffer[nextReadIndex] = new ReactPromise("pending", null, null);
2955
3193
  }
2956
3194
  return buffer[nextReadIndex++];
2957
3195
  });
@@ -2965,7 +3203,12 @@
2965
3203
  value,
2966
3204
  !1
2967
3205
  ))
2968
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !1);
3206
+ : resolveIteratorResultChunk(
3207
+ response,
3208
+ buffer[nextWriteIndex],
3209
+ value,
3210
+ !1
3211
+ );
2969
3212
  nextWriteIndex++;
2970
3213
  },
2971
3214
  close: function (value) {
@@ -2976,9 +3219,15 @@
2976
3219
  value,
2977
3220
  !0
2978
3221
  ))
2979
- : resolveIteratorResultChunk(buffer[nextWriteIndex], value, !0);
3222
+ : resolveIteratorResultChunk(
3223
+ response,
3224
+ buffer[nextWriteIndex],
3225
+ value,
3226
+ !0
3227
+ );
2980
3228
  for (nextWriteIndex++; nextWriteIndex < buffer.length; )
2981
3229
  resolveIteratorResultChunk(
3230
+ response,
2982
3231
  buffer[nextWriteIndex++],
2983
3232
  '"$undefined"',
2984
3233
  !0
@@ -2988,11 +3237,11 @@
2988
3237
  closed = !0;
2989
3238
  for (
2990
3239
  nextWriteIndex === buffer.length &&
2991
- (buffer[nextWriteIndex] = createPendingChunk(response));
3240
+ (buffer[nextWriteIndex] = new ReactPromise("pending", null, null));
2992
3241
  nextWriteIndex < buffer.length;
2993
3242
 
2994
3243
  )
2995
- triggerErrorOnChunk(buffer[nextWriteIndex++], error);
3244
+ triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);
2996
3245
  }
2997
3246
  });
2998
3247
  return iterator;
@@ -3009,21 +3258,7 @@
3009
3258
  case "F":
3010
3259
  return (
3011
3260
  (value = value.slice(2)),
3012
- (value = getOutlinedModel(
3013
- response,
3014
- value,
3015
- obj,
3016
- key,
3017
- createModel
3018
- )),
3019
- loadServerReference$1(
3020
- response,
3021
- value.id,
3022
- value.bound,
3023
- initializingChunk,
3024
- obj,
3025
- key
3026
- )
3261
+ getOutlinedModel(response, value, obj, key, loadServerReference$1)
3027
3262
  );
3028
3263
  case "T":
3029
3264
  if (
@@ -3157,10 +3392,12 @@
3157
3392
  function resolveField(response, key, value) {
3158
3393
  response._formData.append(key, value);
3159
3394
  var prefix = response._prefix;
3160
- key.startsWith(prefix) &&
3161
- ((response = response._chunks),
3162
- (key = +key.slice(prefix.length)),
3163
- (prefix = response.get(key)) && resolveModelChunk(prefix, value, key));
3395
+ if (key.startsWith(prefix)) {
3396
+ var chunks = response._chunks;
3397
+ key = +key.slice(prefix.length);
3398
+ (chunks = chunks.get(key)) &&
3399
+ resolveModelChunk(response, chunks, value, key);
3400
+ }
3164
3401
  }
3165
3402
  function close(response) {
3166
3403
  reportGlobalError(response, Error("Connection closed."));
@@ -3617,34 +3854,33 @@
3617
3854
  debugID = null,
3618
3855
  modelRoot = !1,
3619
3856
  emptyRoot = {},
3857
+ hasOwnProperty = Object.prototype.hasOwnProperty,
3620
3858
  asyncModuleCache = new Map(),
3621
- hasOwnProperty = Object.prototype.hasOwnProperty;
3622
- Chunk.prototype = Object.create(Promise.prototype);
3623
- Chunk.prototype.then = function (resolve, reject) {
3859
+ RESPONSE_SYMBOL = Symbol();
3860
+ ReactPromise.prototype = Object.create(Promise.prototype);
3861
+ ReactPromise.prototype.then = function (resolve, reject) {
3624
3862
  switch (this.status) {
3625
3863
  case "resolved_model":
3626
3864
  initializeModelChunk(this);
3627
3865
  }
3628
3866
  switch (this.status) {
3629
3867
  case "fulfilled":
3630
- resolve(this.value);
3868
+ "function" === typeof resolve && resolve(this.value);
3631
3869
  break;
3632
3870
  case "pending":
3633
3871
  case "blocked":
3634
- case "cyclic":
3635
- resolve &&
3872
+ "function" === typeof resolve &&
3636
3873
  (null === this.value && (this.value = []),
3637
3874
  this.value.push(resolve));
3638
- reject &&
3875
+ "function" === typeof reject &&
3639
3876
  (null === this.reason && (this.reason = []),
3640
3877
  this.reason.push(reject));
3641
3878
  break;
3642
3879
  default:
3643
- reject(this.reason);
3880
+ "function" === typeof reject && reject(this.reason);
3644
3881
  }
3645
3882
  };
3646
- var initializingChunk = null,
3647
- initializingChunkBlockedModel = null;
3883
+ var initializingHandler = null;
3648
3884
  exports.createClientModuleProxy = function (moduleId) {
3649
3885
  moduleId = registerClientReferenceImpl({}, moduleId, !1);
3650
3886
  return new Proxy(moduleId, proxyHandlers$1);
@@ -3722,38 +3958,50 @@
3722
3958
  pendingFiles = 0,
3723
3959
  queuedFields = [];
3724
3960
  busboyStream.on("field", function (name, value) {
3725
- 0 < pendingFiles
3726
- ? queuedFields.push(name, value)
3727
- : resolveField(response, name, value);
3961
+ if (0 < pendingFiles) queuedFields.push(name, value);
3962
+ else
3963
+ try {
3964
+ resolveField(response, name, value);
3965
+ } catch (error) {
3966
+ busboyStream.destroy(error);
3967
+ }
3728
3968
  });
3729
3969
  busboyStream.on("file", function (name, value, _ref) {
3730
3970
  var filename = _ref.filename,
3731
3971
  mimeType = _ref.mimeType;
3732
3972
  if ("base64" === _ref.encoding.toLowerCase())
3733
- throw Error(
3734
- "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."
3973
+ busboyStream.destroy(
3974
+ Error(
3975
+ "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."
3976
+ )
3735
3977
  );
3736
- pendingFiles++;
3737
- var JSCompiler_object_inline_chunks_141 = [];
3738
- value.on("data", function (chunk) {
3739
- JSCompiler_object_inline_chunks_141.push(chunk);
3740
- });
3741
- value.on("end", function () {
3742
- var blob = new Blob(JSCompiler_object_inline_chunks_141, {
3743
- type: mimeType
3978
+ else {
3979
+ pendingFiles++;
3980
+ var JSCompiler_object_inline_chunks_144 = [];
3981
+ value.on("data", function (chunk) {
3982
+ JSCompiler_object_inline_chunks_144.push(chunk);
3744
3983
  });
3745
- response._formData.append(name, blob, filename);
3746
- pendingFiles--;
3747
- if (0 === pendingFiles) {
3748
- for (blob = 0; blob < queuedFields.length; blob += 2)
3749
- resolveField(
3750
- response,
3751
- queuedFields[blob],
3752
- queuedFields[blob + 1]
3753
- );
3754
- queuedFields.length = 0;
3755
- }
3756
- });
3984
+ value.on("end", function () {
3985
+ try {
3986
+ var blob = new Blob(JSCompiler_object_inline_chunks_144, {
3987
+ type: mimeType
3988
+ });
3989
+ response._formData.append(name, blob, filename);
3990
+ pendingFiles--;
3991
+ if (0 === pendingFiles) {
3992
+ for (blob = 0; blob < queuedFields.length; blob += 2)
3993
+ resolveField(
3994
+ response,
3995
+ queuedFields[blob],
3996
+ queuedFields[blob + 1]
3997
+ );
3998
+ queuedFields.length = 0;
3999
+ }
4000
+ } catch (error) {
4001
+ busboyStream.destroy(error);
4002
+ }
4003
+ });
4004
+ }
3757
4005
  });
3758
4006
  busboyStream.on("finish", function () {
3759
4007
  close(response);