@teambit/config-merger 0.0.286 → 0.0.288

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.
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <testsuites tests="0" failures="0" errors="0" skipped="0">
3
- <testsuite name="teambit.workspace/config-merger@0.0.286" tests="0" failures="0" errors="0" skipped="0"/>
3
+ <testsuite name="teambit.workspace/config-merger@0.0.288" tests="0" failures="0" errors="0" skipped="0"/>
4
4
  </testsuites>
@@ -57,7 +57,11 @@
57
57
  "line": 42,
58
58
  "character": 24
59
59
  },
60
- "name": "Workspace"
60
+ "name": "Workspace",
61
+ "componentId": {
62
+ "scope": "teambit.workspace",
63
+ "name": "workspace"
64
+ }
61
65
  },
62
66
  "isOptional": false,
63
67
  "isSpread": false
@@ -77,7 +81,11 @@
77
81
  "line": 43,
78
82
  "character": 21
79
83
  },
80
- "name": "Logger"
84
+ "name": "Logger",
85
+ "componentId": {
86
+ "scope": "teambit.harmony",
87
+ "name": "logger"
88
+ }
81
89
  },
82
90
  "isOptional": false,
83
91
  "isSpread": false
@@ -97,7 +105,11 @@
97
105
  "line": 44,
98
106
  "character": 21
99
107
  },
100
- "name": "ConfigMain"
108
+ "name": "ConfigMain",
109
+ "componentId": {
110
+ "scope": "teambit.harmony",
111
+ "name": "config"
112
+ }
101
113
  },
102
114
  "isOptional": false,
103
115
  "isSpread": false
@@ -117,7 +129,11 @@
117
129
  "line": 45,
118
130
  "character": 27
119
131
  },
120
- "name": "DependencyResolverMain"
132
+ "name": "DependencyResolverMain",
133
+ "componentId": {
134
+ "scope": "teambit.dependencies",
135
+ "name": "dependency-resolver"
136
+ }
121
137
  },
122
138
  "isOptional": false,
123
139
  "isSpread": false
@@ -372,7 +388,8 @@
372
388
  "line": 133,
373
389
  "character": 30
374
390
  },
375
- "name": "WorkspaceDepsUnchanged"
391
+ "name": "WorkspaceDepsUnchanged",
392
+ "internalFilePath": "config-merger.main.runtime.ts"
376
393
  },
377
394
  "isOptional": true
378
395
  }
@@ -416,7 +433,8 @@
416
433
  "line": 266,
417
434
  "character": 17
418
435
  },
419
- "name": "ConsumerComponent"
436
+ "name": "ConsumerComponent",
437
+ "packageName": "@teambit/legacy/dist/consumer/component"
420
438
  }
421
439
  },
422
440
  "isOptional": false,
@@ -437,7 +455,11 @@
437
455
  "line": 267,
438
456
  "character": 21
439
457
  },
440
- "name": "MergeStrategy"
458
+ "name": "MergeStrategy",
459
+ "componentId": {
460
+ "scope": "teambit.component",
461
+ "name": "merging"
462
+ }
441
463
  },
442
464
  "isOptional": true,
443
465
  "isSpread": false
@@ -582,7 +604,11 @@
582
604
  "line": 498,
583
605
  "character": 5
584
606
  },
585
- "name": "Workspace"
607
+ "name": "Workspace",
608
+ "componentId": {
609
+ "scope": "teambit.workspace",
610
+ "name": "workspace"
611
+ }
586
612
  },
587
613
  {
588
614
  "__schema": "TypeRefSchema",
@@ -591,7 +617,11 @@
591
617
  "line": 499,
592
618
  "character": 5
593
619
  },
594
- "name": "ConfigMain"
620
+ "name": "ConfigMain",
621
+ "componentId": {
622
+ "scope": "teambit.harmony",
623
+ "name": "config"
624
+ }
595
625
  },
596
626
  {
597
627
  "__schema": "TypeRefSchema",
@@ -600,7 +630,11 @@
600
630
  "line": 500,
601
631
  "character": 5
602
632
  },
603
- "name": "LoggerMain"
633
+ "name": "LoggerMain",
634
+ "componentId": {
635
+ "scope": "teambit.harmony",
636
+ "name": "logger"
637
+ }
604
638
  },
605
639
  {
606
640
  "__schema": "TypeRefSchema",
@@ -609,7 +643,11 @@
609
643
  "line": 501,
610
644
  "character": 5
611
645
  },
612
- "name": "DependencyResolverMain"
646
+ "name": "DependencyResolverMain",
647
+ "componentId": {
648
+ "scope": "teambit.dependencies",
649
+ "name": "dependency-resolver"
650
+ }
613
651
  }
614
652
  ]
615
653
  },
@@ -756,7 +794,11 @@
756
794
  "line": 30,
757
795
  "character": 45
758
796
  },
759
- "name": "WorkspacePolicyConfigKeysNames"
797
+ "name": "WorkspacePolicyConfigKeysNames",
798
+ "componentId": {
799
+ "scope": "teambit.dependencies",
800
+ "name": "dependency-resolver"
801
+ }
760
802
  },
761
803
  {
762
804
  "__schema": "TypeRefSchema",
@@ -905,7 +947,8 @@
905
947
  "line": 36,
906
948
  "character": 28
907
949
  },
908
- "name": "WorkspaceDepsUnchanged"
950
+ "name": "WorkspaceDepsUnchanged",
951
+ "internalFilePath": "config-merger.main.runtime.ts"
909
952
  },
910
953
  "isOptional": true
911
954
  },
@@ -1072,7 +1115,8 @@
1072
1115
  "line": 13,
1073
1116
  "character": 22
1074
1117
  },
1075
- "name": "MergeStrategyResult"
1118
+ "name": "MergeStrategyResult",
1119
+ "internalFilePath": "component-config-merger.ts"
1076
1120
  }
1077
1121
  },
1078
1122
  "isOptional": false,
@@ -1217,7 +1261,8 @@
1217
1261
  "line": 36,
1218
1262
  "character": 28
1219
1263
  },
1220
- "name": "MergeStrategyResult"
1264
+ "name": "MergeStrategyResult",
1265
+ "internalFilePath": "component-config-merger.ts"
1221
1266
  },
1222
1267
  {
1223
1268
  "__schema": "KeywordTypeSchema",
@@ -1319,7 +1364,12 @@
1319
1364
  "line": 76,
1320
1365
  "character": 27
1321
1366
  },
1322
- "name": "ComponentID"
1367
+ "name": "ComponentID",
1368
+ "componentId": {
1369
+ "scope": "teambit.component",
1370
+ "name": "component-id",
1371
+ "version": "1.2.2"
1372
+ }
1323
1373
  }
1324
1374
  },
1325
1375
  "isOptional": false,
@@ -1348,7 +1398,8 @@
1348
1398
  "line": 77,
1349
1399
  "character": 16
1350
1400
  },
1351
- "name": "Lane"
1401
+ "name": "Lane",
1402
+ "packageName": "@teambit/legacy/dist/scope/models"
1352
1403
  },
1353
1404
  {
1354
1405
  "__schema": "KeywordTypeSchema",
@@ -1379,7 +1430,8 @@
1379
1430
  "line": 78,
1380
1431
  "character": 29
1381
1432
  },
1382
- "name": "ExtensionDataList"
1433
+ "name": "ExtensionDataList",
1434
+ "packageName": "@teambit/legacy/dist/consumer/config/extension-data"
1383
1435
  },
1384
1436
  "isOptional": false,
1385
1437
  "isSpread": false
@@ -1399,7 +1451,8 @@
1399
1451
  "line": 79,
1400
1452
  "character": 26
1401
1453
  },
1402
- "name": "ExtensionDataList"
1454
+ "name": "ExtensionDataList",
1455
+ "packageName": "@teambit/legacy/dist/consumer/config/extension-data"
1403
1456
  },
1404
1457
  "isOptional": false,
1405
1458
  "isSpread": false
@@ -1419,7 +1472,8 @@
1419
1472
  "line": 80,
1420
1473
  "character": 27
1421
1474
  },
1422
- "name": "ExtensionDataList"
1475
+ "name": "ExtensionDataList",
1476
+ "packageName": "@teambit/legacy/dist/consumer/config/extension-data"
1423
1477
  },
1424
1478
  "isOptional": false,
1425
1479
  "isSpread": false
@@ -1479,7 +1533,11 @@
1479
1533
  "line": 83,
1480
1534
  "character": 21
1481
1535
  },
1482
- "name": "Logger"
1536
+ "name": "Logger",
1537
+ "componentId": {
1538
+ "scope": "teambit.harmony",
1539
+ "name": "logger"
1540
+ }
1483
1541
  },
1484
1542
  "isOptional": false,
1485
1543
  "isSpread": false
@@ -1499,7 +1557,11 @@
1499
1557
  "line": 84,
1500
1558
  "character": 28
1501
1559
  },
1502
- "name": "MergeStrategy"
1560
+ "name": "MergeStrategy",
1561
+ "componentId": {
1562
+ "scope": "teambit.component",
1563
+ "name": "merging"
1564
+ }
1503
1565
  },
1504
1566
  "isOptional": false,
1505
1567
  "isSpread": false
@@ -1781,7 +1843,11 @@
1781
1843
  "line": 30,
1782
1844
  "character": 45
1783
1845
  },
1784
- "name": "WorkspacePolicyConfigKeysNames"
1846
+ "name": "WorkspacePolicyConfigKeysNames",
1847
+ "componentId": {
1848
+ "scope": "teambit.dependencies",
1849
+ "name": "dependency-resolver"
1850
+ }
1785
1851
  },
1786
1852
  {
1787
1853
  "__schema": "TypeRefSchema",
@@ -1977,7 +2043,8 @@
1977
2043
  "line": 36,
1978
2044
  "character": 28
1979
2045
  },
1980
- "name": "WorkspaceDepsUnchanged"
2046
+ "name": "WorkspaceDepsUnchanged",
2047
+ "internalFilePath": "config-merger.main.runtime.ts"
1981
2048
  },
1982
2049
  "isOptional": true
1983
2050
  },
@@ -2067,7 +2134,11 @@
2067
2134
  "line": 42,
2068
2135
  "character": 24
2069
2136
  },
2070
- "name": "Workspace"
2137
+ "name": "Workspace",
2138
+ "componentId": {
2139
+ "scope": "teambit.workspace",
2140
+ "name": "workspace"
2141
+ }
2071
2142
  },
2072
2143
  "isOptional": false,
2073
2144
  "isSpread": false
@@ -2087,7 +2158,11 @@
2087
2158
  "line": 43,
2088
2159
  "character": 21
2089
2160
  },
2090
- "name": "Logger"
2161
+ "name": "Logger",
2162
+ "componentId": {
2163
+ "scope": "teambit.harmony",
2164
+ "name": "logger"
2165
+ }
2091
2166
  },
2092
2167
  "isOptional": false,
2093
2168
  "isSpread": false
@@ -2107,7 +2182,11 @@
2107
2182
  "line": 44,
2108
2183
  "character": 21
2109
2184
  },
2110
- "name": "ConfigMain"
2185
+ "name": "ConfigMain",
2186
+ "componentId": {
2187
+ "scope": "teambit.harmony",
2188
+ "name": "config"
2189
+ }
2111
2190
  },
2112
2191
  "isOptional": false,
2113
2192
  "isSpread": false
@@ -2127,7 +2206,11 @@
2127
2206
  "line": 45,
2128
2207
  "character": 27
2129
2208
  },
2130
- "name": "DependencyResolverMain"
2209
+ "name": "DependencyResolverMain",
2210
+ "componentId": {
2211
+ "scope": "teambit.dependencies",
2212
+ "name": "dependency-resolver"
2213
+ }
2131
2214
  },
2132
2215
  "isOptional": false,
2133
2216
  "isSpread": false
@@ -2382,7 +2465,8 @@
2382
2465
  "line": 133,
2383
2466
  "character": 30
2384
2467
  },
2385
- "name": "WorkspaceDepsUnchanged"
2468
+ "name": "WorkspaceDepsUnchanged",
2469
+ "internalFilePath": "config-merger.main.runtime.ts"
2386
2470
  },
2387
2471
  "isOptional": true
2388
2472
  }
@@ -2426,7 +2510,8 @@
2426
2510
  "line": 266,
2427
2511
  "character": 17
2428
2512
  },
2429
- "name": "ConsumerComponent"
2513
+ "name": "ConsumerComponent",
2514
+ "packageName": "@teambit/legacy/dist/consumer/component"
2430
2515
  }
2431
2516
  },
2432
2517
  "isOptional": false,
@@ -2447,7 +2532,11 @@
2447
2532
  "line": 267,
2448
2533
  "character": 21
2449
2534
  },
2450
- "name": "MergeStrategy"
2535
+ "name": "MergeStrategy",
2536
+ "componentId": {
2537
+ "scope": "teambit.component",
2538
+ "name": "merging"
2539
+ }
2451
2540
  },
2452
2541
  "isOptional": true,
2453
2542
  "isSpread": false
@@ -2592,7 +2681,11 @@
2592
2681
  "line": 498,
2593
2682
  "character": 5
2594
2683
  },
2595
- "name": "Workspace"
2684
+ "name": "Workspace",
2685
+ "componentId": {
2686
+ "scope": "teambit.workspace",
2687
+ "name": "workspace"
2688
+ }
2596
2689
  },
2597
2690
  {
2598
2691
  "__schema": "TypeRefSchema",
@@ -2601,7 +2694,11 @@
2601
2694
  "line": 499,
2602
2695
  "character": 5
2603
2696
  },
2604
- "name": "ConfigMain"
2697
+ "name": "ConfigMain",
2698
+ "componentId": {
2699
+ "scope": "teambit.harmony",
2700
+ "name": "config"
2701
+ }
2605
2702
  },
2606
2703
  {
2607
2704
  "__schema": "TypeRefSchema",
@@ -2610,7 +2707,11 @@
2610
2707
  "line": 500,
2611
2708
  "character": 5
2612
2709
  },
2613
- "name": "LoggerMain"
2710
+ "name": "LoggerMain",
2711
+ "componentId": {
2712
+ "scope": "teambit.harmony",
2713
+ "name": "logger"
2714
+ }
2614
2715
  },
2615
2716
  {
2616
2717
  "__schema": "TypeRefSchema",
@@ -2619,7 +2720,11 @@
2619
2720
  "line": 501,
2620
2721
  "character": 5
2621
2722
  },
2622
- "name": "DependencyResolverMain"
2723
+ "name": "DependencyResolverMain",
2724
+ "componentId": {
2725
+ "scope": "teambit.dependencies",
2726
+ "name": "dependency-resolver"
2727
+ }
2623
2728
  }
2624
2729
  ]
2625
2730
  },
@@ -2811,7 +2916,8 @@
2811
2916
  "line": 13,
2812
2917
  "character": 22
2813
2918
  },
2814
- "name": "MergeStrategyResult"
2919
+ "name": "MergeStrategyResult",
2920
+ "internalFilePath": "component-config-merger.ts"
2815
2921
  }
2816
2922
  },
2817
2923
  "isOptional": false,
@@ -2956,7 +3062,8 @@
2956
3062
  "line": 36,
2957
3063
  "character": 28
2958
3064
  },
2959
- "name": "MergeStrategyResult"
3065
+ "name": "MergeStrategyResult",
3066
+ "internalFilePath": "component-config-merger.ts"
2960
3067
  },
2961
3068
  {
2962
3069
  "__schema": "KeywordTypeSchema",
@@ -3227,7 +3334,8 @@
3227
3334
  "line": 29,
3228
3335
  "character": 18
3229
3336
  },
3230
- "name": "GenericConfigOrRemoved"
3337
+ "name": "GenericConfigOrRemoved",
3338
+ "internalFilePath": "component-config-merger.ts"
3231
3339
  },
3232
3340
  "isOptional": true
3233
3341
  },
@@ -3347,7 +3455,12 @@
3347
3455
  "line": 76,
3348
3456
  "character": 27
3349
3457
  },
3350
- "name": "ComponentID"
3458
+ "name": "ComponentID",
3459
+ "componentId": {
3460
+ "scope": "teambit.component",
3461
+ "name": "component-id",
3462
+ "version": "1.2.2"
3463
+ }
3351
3464
  }
3352
3465
  },
3353
3466
  "isOptional": false,
@@ -3376,7 +3489,8 @@
3376
3489
  "line": 77,
3377
3490
  "character": 16
3378
3491
  },
3379
- "name": "Lane"
3492
+ "name": "Lane",
3493
+ "packageName": "@teambit/legacy/dist/scope/models"
3380
3494
  },
3381
3495
  {
3382
3496
  "__schema": "KeywordTypeSchema",
@@ -3407,7 +3521,8 @@
3407
3521
  "line": 78,
3408
3522
  "character": 29
3409
3523
  },
3410
- "name": "ExtensionDataList"
3524
+ "name": "ExtensionDataList",
3525
+ "packageName": "@teambit/legacy/dist/consumer/config/extension-data"
3411
3526
  },
3412
3527
  "isOptional": false,
3413
3528
  "isSpread": false
@@ -3427,7 +3542,8 @@
3427
3542
  "line": 79,
3428
3543
  "character": 26
3429
3544
  },
3430
- "name": "ExtensionDataList"
3545
+ "name": "ExtensionDataList",
3546
+ "packageName": "@teambit/legacy/dist/consumer/config/extension-data"
3431
3547
  },
3432
3548
  "isOptional": false,
3433
3549
  "isSpread": false
@@ -3447,7 +3563,8 @@
3447
3563
  "line": 80,
3448
3564
  "character": 27
3449
3565
  },
3450
- "name": "ExtensionDataList"
3566
+ "name": "ExtensionDataList",
3567
+ "packageName": "@teambit/legacy/dist/consumer/config/extension-data"
3451
3568
  },
3452
3569
  "isOptional": false,
3453
3570
  "isSpread": false
@@ -3507,7 +3624,11 @@
3507
3624
  "line": 83,
3508
3625
  "character": 21
3509
3626
  },
3510
- "name": "Logger"
3627
+ "name": "Logger",
3628
+ "componentId": {
3629
+ "scope": "teambit.harmony",
3630
+ "name": "logger"
3631
+ }
3511
3632
  },
3512
3633
  "isOptional": false,
3513
3634
  "isSpread": false
@@ -3527,7 +3648,11 @@
3527
3648
  "line": 84,
3528
3649
  "character": 28
3529
3650
  },
3530
- "name": "MergeStrategy"
3651
+ "name": "MergeStrategy",
3652
+ "componentId": {
3653
+ "scope": "teambit.component",
3654
+ "name": "merging"
3655
+ }
3531
3656
  },
3532
3657
  "isOptional": false,
3533
3658
  "isSpread": false
@@ -3644,7 +3769,8 @@
3644
3769
  "line": 21,
3645
3770
  "character": 57
3646
3771
  },
3647
- "name": "GenericConfigOrRemoved"
3772
+ "name": "GenericConfigOrRemoved",
3773
+ "internalFilePath": "component-config-merger.ts"
3648
3774
  },
3649
3775
  "isOptional": true
3650
3776
  }
@@ -3675,7 +3801,11 @@
3675
3801
  "line": 23,
3676
3802
  "character": 39
3677
3803
  },
3678
- "name": "SerializedDependency"
3804
+ "name": "SerializedDependency",
3805
+ "componentId": {
3806
+ "scope": "teambit.dependencies",
3807
+ "name": "dependency-resolver"
3808
+ }
3679
3809
  },
3680
3810
  {
3681
3811
  "__schema": "TypeLiteralSchema",
@@ -3825,7 +3955,8 @@
3825
3955
  "line": 36,
3826
3956
  "character": 16
3827
3957
  },
3828
- "name": "GenericConfigOrRemoved"
3958
+ "name": "GenericConfigOrRemoved",
3959
+ "internalFilePath": "component-config-merger.ts"
3829
3960
  },
3830
3961
  "isOptional": true
3831
3962
  }
@@ -3927,7 +4058,8 @@
3927
4058
  "line": 42,
3928
4059
  "character": 13
3929
4060
  },
3930
- "name": "ExtensionDataEntry"
4061
+ "name": "ExtensionDataEntry",
4062
+ "packageName": "@teambit/legacy/dist/consumer/config/extension-data"
3931
4063
  },
3932
4064
  "isOptional": true
3933
4065
  }
@@ -3977,7 +4109,7 @@
3977
4109
  "componentId": {
3978
4110
  "scope": "teambit.workspace",
3979
4111
  "name": "config-merger",
3980
- "version": "0.0.286"
4112
+ "version": "0.0.288"
3981
4113
  },
3982
4114
  "taggedModuleExports": []
3983
4115
  }
@@ -175,9 +175,9 @@ class ComponentConfigMerger {
175
175
  mergedConfig: this.getConfig(otherExt)
176
176
  };
177
177
  });
178
- const envResult = [this.envStrategy()] || [];
178
+ const envResult = this.envStrategy();
179
179
  this.logger.debug(`*** end config-merger for ${this.compIdStr} ***\n`);
180
- return new (_configMergeResult().ConfigMergeResult)(this.compIdStr, this.currentLabel, this.otherLabel, (0, _lodash().compact)([...results, ...otherAspectsNotHandledResults, ...envResult]));
180
+ return new (_configMergeResult().ConfigMergeResult)(this.compIdStr, this.currentLabel, this.otherLabel, (0, _lodash().compact)([...results, ...otherAspectsNotHandledResults, envResult]));
181
181
  }
182
182
  populateEnvs() {
183
183
  // populate ids
@@ -1 +1 @@
1
- {"version":3,"names":["_semver","data","_interopRequireDefault","require","_builder","_componentVersion","_dependencyResolver","_envs","_lodash","_configMergeResult","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","conflictIndicator","exports","ComponentConfigMerger","constructor","compIdStr","workspaceIds","otherLane","currentAspects","baseAspects","otherAspects","currentLabel","otherLabel","logger","mergeStrategy","BuilderAspect","id","otherLaneIdsStr","toComponentIds","map","toString","merge","debug","populateEnvs","results","currentExt","stringId","handledExtIds","includes","baseExt","findExtension","otherExt","mergePerStrategy","mergedConfig","conflict","currentConfig","getConfig","otherConfig","otherAspectsNotHandledResults","extensionId","hasVersion","idFromWorkspace","getIdFromWorkspace","toStringWithoutVersion","existingExt","_legacy","envResult","envStrategy","ConfigMergeResult","compact","getEnvId","ext","envsAspect","findCoreExtension","EnvsAspect","Error","env","config","currentEnv","otherEnv","baseEnv","undefined","currentEnvAspect","version","otherEnvAspect","baseEnvAspect","mergeStrategyParams","baseConfig","isIdInWorkspaceOrOtherLane","basicConfigMerge","areConfigsEqual","configA","configB","JSON","stringify","depResolverResult","depResolverStrategy","params","DependencyResolverAspect","trace","currentConfigPolicy","getPolicy","otherConfigPolicy","baseConfigPolicy","getAllDeps","dependencies","policy","d","idWithoutVersion","__type","split","existingPolicy","find","p","dependencyId","getPolicyVer","getDataPolicy","getAutoDeps","allDeps","source","currentAutoData","currentAllData","currentDataPolicy","otherData","currentAndOtherData","uniqBy","concat","currentAndOtherComponentsData","c","baseData","getCompIdStrByPkgNameFromData","pkgName","found","packageName","getFromCurrentDataByPackageName","getFromCurrentDataPolicyByPackageName","mergedPolicy","devDependencies","peerDependencies","conflictedPolicy","hasConflict","lifecycleToDepType","runtime","dev","peer","handleConfigMerge","addVariantPolicyEntryToPolicy","dep","fromCurrentData","force","isHash","semver","satisfies","fromCurrentDataPolicy","depType","lifecycleType","name","currentAndOtherConfig","currentDep","otherDep","baseDep","currentVer","otherVer","baseVer","hasConfigForDep","depName","getDepIdAsPkgName","addSerializedDepToPolicy","lifecycle","join","depData","isEnv","currentId","versionOnOtherLane","Boolean","rawConfig","omit","VariantPolicy","fromConfigObject","entries"],"sources":["component-config-merger.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport semver from 'semver';\nimport { Logger } from '@teambit/logger';\nimport { BuilderAspect } from '@teambit/builder';\nimport { isHash } from '@teambit/component-version';\nimport {\n DependencyResolverAspect,\n SerializedDependency,\n VariantPolicy,\n VariantPolicyEntry,\n} from '@teambit/dependency-resolver';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { EnvsAspect } from '@teambit/envs';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { MergeStrategy } from '@teambit/merging';\nimport { compact, omit, uniqBy } from 'lodash';\nimport { ConfigMergeResult } from './config-merge-result';\n\nexport type GenericConfigOrRemoved = Record<string, any> | '-';\n\ntype EnvData = { id: string; version?: string; config?: GenericConfigOrRemoved };\n\ntype SerializedDependencyWithPolicy = SerializedDependency & { policy?: string; packageName?: string };\n\nexport const conflictIndicator = 'CONFLICT::';\n\nexport type MergeStrategyResult = {\n id: string;\n mergedConfig?: GenericConfigOrRemoved;\n conflict?: Record<string, any>;\n};\ntype MergeStrategyParamsWithRemoved = {\n id: string;\n currentConfig: GenericConfigOrRemoved;\n otherConfig: GenericConfigOrRemoved;\n baseConfig?: GenericConfigOrRemoved;\n};\ntype MergeStrategyParams = {\n id: string;\n currentExt: ExtensionDataEntry;\n otherExt: ExtensionDataEntry;\n baseExt?: ExtensionDataEntry;\n};\n\n/**\n * perform 3-way merge of component configuration (aspects).\n * normally this is needed when merging one lane into another. the component may have different aspects config in each lane.\n * the baseAspects are the aspects of the component in the diversion point (the common ancestor of the two lanes).\n * the currentAspects are the aspects of the component in the current lane.\n * the otherAspects are the aspects of the component in the other lane. this is the lane we merge into the current lane.\n *\n * the basic merging strategy is a simple comparison between the aspect-configs, if they're different, we have a conflict.\n * we have two special cases:\n *\n * 1. dependency-resolver: we do a deeper check for the policy, we compare each dependency separately. also, we take\n * into account not only the config, but also the data. this is needed because some dependencies are automatically\n * added by Bit (from the import statements in the code) and they're not in the config. the final config has the deps\n * from both sources, the config and the data. The way we know to differentiate between them is by the \"force\" prop.\n * the config has always force: true.\n *\n * 2. envs: if we don't treat it specially, the user will need to make the change not only in the envs aspect, but also\n * in the deps-resolver (because the env is added as a devDependency) and also in the aspect itself (because\n * teambit.envs/env has only the id and not the version). to make it simpler, we ignore the envs in the deps-resolver\n * we ignore the individual aspect that is the env itself. we only show teambit.envs/env and we put the env id and\n * version. later, when the component is loaded, we split the id and the version and put them in the correct places.\n * see workspace.componentExtension / adjustEnvsOnConfigMerge for more details.\n */\nexport class ComponentConfigMerger {\n private currentEnv: EnvData;\n private otherEnv: EnvData;\n private baseEnv?: EnvData;\n private handledExtIds: string[] = [BuilderAspect.id]; // don't try to merge builder, it's possible that at one end it wasn't built yet, so it's empty\n private otherLaneIdsStr: string[];\n constructor(\n private compIdStr: string,\n private workspaceIds: ComponentID[],\n otherLane: Lane | undefined,\n private currentAspects: ExtensionDataList,\n private baseAspects: ExtensionDataList,\n private otherAspects: ExtensionDataList,\n private currentLabel: string,\n private otherLabel: string,\n private logger: Logger,\n private mergeStrategy: MergeStrategy\n ) {\n this.otherLaneIdsStr = otherLane?.toComponentIds().map((id) => id.toString()) || [];\n }\n\n merge(): ConfigMergeResult {\n this.logger.debug(`\\n************** start config-merger for ${this.compIdStr} **************`);\n this.logger.debug(`currentLabel: ${this.currentLabel}`);\n this.logger.debug(`otherLabel: ${this.otherLabel}`);\n this.populateEnvs();\n const results = this.currentAspects.map((currentExt) => {\n const id = currentExt.stringId;\n if (this.handledExtIds.includes(id)) return null;\n this.handledExtIds.push(id);\n const baseExt = this.baseAspects.findExtension(id, true);\n const otherExt = this.otherAspects.findExtension(id, true);\n if (otherExt) {\n // try to 3-way-merge\n return this.mergePerStrategy({ id, currentExt, otherExt, baseExt });\n }\n // exist in current but not in other\n if (baseExt) {\n // was removed on other\n if (this.mergeStrategy === 'theirs') {\n return { id, mergedConfig: '-' } as MergeStrategyResult;\n }\n if (this.mergeStrategy === 'ours') {\n return null;\n }\n return { id, conflict: { currentConfig: this.getConfig(currentExt), otherConfig: '-' } };\n }\n // exist in current but not in other and base, so it got created on current. nothing to do.\n return null;\n });\n const otherAspectsNotHandledResults = this.otherAspects.map((otherExt) => {\n let id = otherExt.stringId;\n if (this.handledExtIds.includes(id)) return null;\n this.handledExtIds.push(id);\n if (otherExt.extensionId && otherExt.extensionId.hasVersion()) {\n // avoid using the id from the other lane if it exits in the workspace. prefer the id from the workspace.\n const idFromWorkspace = this.getIdFromWorkspace(otherExt.extensionId.toStringWithoutVersion());\n if (idFromWorkspace) {\n const existingExt = this.currentAspects.findExtension(otherExt.extensionId.toStringWithoutVersion(), true);\n if (existingExt) return null; // the aspect is set currently, no need to add it again.\n id = idFromWorkspace._legacy.toString();\n }\n }\n const baseExt = this.baseAspects.findExtension(id, true);\n if (baseExt) {\n // was removed on current\n return { id, conflict: { currentConfig: '-', otherConfig: this.getConfig(otherExt) } };\n }\n // exist in other but not in current and base, so it got created on other.\n return { id, mergedConfig: this.getConfig(otherExt) };\n });\n const envResult = [this.envStrategy()] || [];\n this.logger.debug(`*** end config-merger for ${this.compIdStr} ***\\n`);\n return new ConfigMergeResult(\n this.compIdStr,\n this.currentLabel,\n this.otherLabel,\n compact([...results, ...otherAspectsNotHandledResults, ...envResult])\n );\n }\n\n private populateEnvs() {\n // populate ids\n const getEnvId = (ext: ExtensionDataList) => {\n const envsAspect = ext.findCoreExtension(EnvsAspect.id);\n if (!envsAspect) throw new Error(`unable to find ${EnvsAspect.id} aspect for ${this.compIdStr}`);\n const env = envsAspect.config.env || envsAspect.data.id;\n if (!env)\n throw new Error(`unable to find env for ${this.compIdStr}, the config and data of ${EnvsAspect.id} are empty}`);\n return env;\n };\n const currentEnv = getEnvId(this.currentAspects);\n this.currentEnv = { id: currentEnv };\n const otherEnv = getEnvId(this.otherAspects);\n this.otherEnv = { id: otherEnv };\n const baseEnv = this.baseAspects ? getEnvId(this.baseAspects) : undefined;\n if (baseEnv) this.baseEnv = { id: baseEnv };\n\n // populate version\n const currentEnvAspect = this.currentAspects.findExtension(currentEnv, true);\n if (currentEnvAspect) {\n this.handledExtIds.push(currentEnvAspect.stringId);\n this.currentEnv.version = currentEnvAspect.extensionId?.version;\n this.currentEnv.config = this.getConfig(currentEnvAspect);\n }\n const otherEnvAspect = this.otherAspects.findExtension(otherEnv, true);\n if (otherEnvAspect) {\n this.handledExtIds.push(otherEnvAspect.stringId);\n this.otherEnv.version = otherEnvAspect.extensionId?.version;\n this.otherEnv.config = this.getConfig(otherEnvAspect);\n }\n if (this.baseEnv) {\n const baseEnvAspect = this.baseAspects.findExtension(baseEnv, true);\n if (baseEnvAspect) {\n this.baseEnv.version = baseEnvAspect.extensionId?.version;\n this.baseEnv.config = this.getConfig(baseEnvAspect);\n }\n }\n }\n\n private envStrategy(): MergeStrategyResult | null {\n const mergeStrategyParams: MergeStrategyParamsWithRemoved = {\n id: EnvsAspect.id,\n currentConfig: {\n env: this.currentEnv.version ? `${this.currentEnv.id}@${this.currentEnv.version}` : this.currentEnv.id,\n },\n otherConfig: { env: this.otherEnv.version ? `${this.otherEnv.id}@${this.otherEnv.version}` : this.otherEnv.id },\n };\n if (this.baseEnv) {\n mergeStrategyParams.baseConfig = {\n env: this.baseEnv?.version ? `${this.baseEnv.id}@${this.baseEnv.version}` : this.baseEnv?.id,\n };\n }\n if (this.currentEnv.id === this.otherEnv.id && this.currentEnv.version === this.otherEnv.version) {\n return null;\n }\n if (this.isIdInWorkspaceOrOtherLane(this.currentEnv.id, this.otherEnv.version)) {\n // the env currently used is part of the workspace, that's what the user needs. don't try to resolve anything.\n return null;\n }\n return this.basicConfigMerge(mergeStrategyParams);\n }\n\n private areConfigsEqual(configA: GenericConfigOrRemoved, configB: GenericConfigOrRemoved) {\n return JSON.stringify(configA) === JSON.stringify(configB);\n }\n\n private mergePerStrategy(mergeStrategyParams: MergeStrategyParams): MergeStrategyResult | null {\n const { id, currentExt, otherExt, baseExt } = mergeStrategyParams;\n const depResolverResult = this.depResolverStrategy(mergeStrategyParams);\n\n if (depResolverResult) {\n // if (depResolverResult.mergedConfig || depResolverResult?.conflict) console.log(\"\\n\\nDepResolverResult\", this.compIdStr, '\\n', JSON.stringify(depResolverResult, undefined, 2))\n return depResolverResult;\n }\n const currentConfig = this.getConfig(currentExt);\n const otherConfig = this.getConfig(otherExt);\n const baseConfig = baseExt ? this.getConfig(baseExt) : undefined;\n\n return this.basicConfigMerge({ id, currentConfig, otherConfig, baseConfig });\n }\n\n private basicConfigMerge(mergeStrategyParams: MergeStrategyParamsWithRemoved) {\n const { id, currentConfig, otherConfig, baseConfig } = mergeStrategyParams;\n if (this.areConfigsEqual(currentConfig, otherConfig)) {\n return null;\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, otherConfig)) {\n // was changed on current\n return null;\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, currentConfig)) {\n // was changed on other\n return { id, mergedConfig: otherConfig };\n }\n // either no baseConfig, or baseConfig is also different from both: other and local. that's a conflict.\n if (this.mergeStrategy === 'theirs') {\n return { id, mergedConfig: otherConfig };\n }\n if (this.mergeStrategy === 'ours') {\n return null;\n }\n return { id, conflict: { currentConfig, otherConfig, baseConfig } };\n }\n\n private depResolverStrategy(params: MergeStrategyParams): MergeStrategyResult | undefined {\n if (params.id !== DependencyResolverAspect.id) return undefined;\n this.logger.trace(`start depResolverStrategy for ${this.compIdStr}`);\n const { currentExt, otherExt, baseExt } = params;\n\n const currentConfig = this.getConfig(currentExt);\n const currentConfigPolicy = this.getPolicy(currentConfig);\n const otherConfig = this.getConfig(otherExt);\n const otherConfigPolicy = this.getPolicy(otherConfig);\n\n const baseConfig = baseExt ? this.getConfig(baseExt) : undefined;\n const baseConfigPolicy = baseConfig ? this.getPolicy(baseConfig) : undefined;\n\n this.logger.debug(`currentConfig, ${JSON.stringify(currentConfig, undefined, 2)}`);\n this.logger.debug(`otherConfig, ${JSON.stringify(otherConfig, undefined, 2)}`);\n this.logger.debug(`baseConfig, ${JSON.stringify(baseConfig, undefined, 2)}`);\n\n const getAllDeps = (ext: ExtensionDataList): SerializedDependencyWithPolicy[] => {\n const data = ext.findCoreExtension(DependencyResolverAspect.id)?.data.dependencies;\n if (!data) return [];\n const policy = ext.findCoreExtension(DependencyResolverAspect.id)?.data.policy || [];\n return data.map((d) => {\n const idWithoutVersion = d.__type === 'package' ? d.id : d.id.split('@')[0];\n const existingPolicy = policy.find((p) => p.dependencyId === idWithoutVersion);\n const getPolicyVer = () => {\n if (d.__type === 'package') return undefined; // for packages, the policy is already the version\n if (existingPolicy) return existingPolicy.value.version; // currently it's missing, will be implemented by @Gilad\n return d.version;\n // if (!semver.valid(d.version)) return d.version; // could be a hash\n // // default to `^` or ~ if starts with zero, until we save the policy from the workspace during tag/snap.\n // return d.version.startsWith('0.') ? `~${d.version}` : `^${d.version}`;\n };\n return {\n ...d,\n id: idWithoutVersion,\n policy: getPolicyVer(),\n };\n });\n };\n const getDataPolicy = (ext: ExtensionDataList): VariantPolicyEntry[] => {\n return ext.findCoreExtension(DependencyResolverAspect.id)?.data.policy || [];\n };\n\n const getAutoDeps = (ext: ExtensionDataList): SerializedDependencyWithPolicy[] => {\n const allDeps = getAllDeps(ext);\n return allDeps.filter((d) => d.source === 'auto');\n };\n\n const currentAutoData = getAutoDeps(this.currentAspects);\n const currentAllData = getAllDeps(this.currentAspects);\n const currentDataPolicy = getDataPolicy(this.currentAspects);\n const otherData = getAutoDeps(this.otherAspects);\n const currentAndOtherData = uniqBy(currentAutoData.concat(otherData), (d) => d.id);\n const currentAndOtherComponentsData = currentAndOtherData.filter((c) => c.__type === 'component');\n const baseData = getAutoDeps(this.baseAspects);\n\n const getCompIdStrByPkgNameFromData = (pkgName: string): string | undefined => {\n const found = currentAndOtherComponentsData.find((d) => d.packageName === pkgName);\n return found?.id;\n };\n\n const getFromCurrentDataByPackageName = (pkgName: string) => {\n return currentAllData.find((d) => {\n if (d.__type === 'package') return d.id === pkgName;\n return d.packageName === pkgName;\n });\n };\n\n const getFromCurrentDataPolicyByPackageName = (pkgName: string) => {\n return currentDataPolicy.find((d) => d.dependencyId === pkgName);\n };\n\n const mergedPolicy = {\n dependencies: [],\n devDependencies: [],\n peerDependencies: [],\n };\n const conflictedPolicy = {\n dependencies: [],\n devDependencies: [],\n peerDependencies: [],\n };\n let hasConflict = false;\n const lifecycleToDepType = {\n runtime: 'dependencies',\n dev: 'devDependencies',\n peer: 'peerDependencies',\n };\n const handleConfigMerge = () => {\n const addVariantPolicyEntryToPolicy = (dep: VariantPolicyEntry) => {\n const compIdStr = getCompIdStrByPkgNameFromData(dep.dependencyId);\n if (compIdStr && this.isIdInWorkspaceOrOtherLane(compIdStr, dep.value.version)) {\n // no need to add if the id exists in the workspace (regardless the version)\n return;\n }\n const fromCurrentData = getFromCurrentDataByPackageName(dep.dependencyId);\n if (fromCurrentData && !dep.force) {\n if (fromCurrentData.version === dep.value.version) return;\n if (\n !isHash(fromCurrentData.version) &&\n !isHash(dep.value.version) &&\n semver.satisfies(fromCurrentData.version, dep.value.version)\n ) {\n return;\n }\n }\n const fromCurrentDataPolicy = getFromCurrentDataPolicyByPackageName(dep.dependencyId);\n if (fromCurrentDataPolicy && fromCurrentDataPolicy.value.version === dep.value.version) {\n // -- updated comment --\n // not sure why this block is needed. this gets called also from this if: `if (baseConfig && this.areConfigsEqual(baseConfig, currentConfig)) {`\n // and in this case, it's possible that current/base has 5 deps, and other just added one and it has 6.\n // in which case, we do need to add all these 5 in additional to the new one. otherwise, only the new one appears in the final\n // merged object, and all the 5 deps are lost.\n // --- previous comment ---\n // that's a bug. if it's in the data.policy, it should be in data.dependencies.\n // return;\n }\n const depType = lifecycleToDepType[dep.lifecycleType];\n mergedPolicy[depType].push({\n name: dep.dependencyId,\n version: dep.value.version,\n force: dep.force,\n });\n };\n\n if (this.areConfigsEqual(currentConfig, otherConfig)) {\n return;\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, otherConfig)) {\n // was changed on current\n return;\n }\n if (currentConfig === '-' || otherConfig === '-') {\n throw new Error('not implemented. Is it possible to have it as minus?');\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, currentConfig)) {\n // was changed on other\n if (otherConfigPolicy.length) {\n otherConfigPolicy.forEach((dep) => {\n addVariantPolicyEntryToPolicy(dep);\n });\n }\n return;\n }\n\n // either no baseConfig, or baseConfig is also different from both: other and local. that's a conflict.\n if (!currentConfig.policy && !otherConfig.policy) return;\n const currentAndOtherConfig = uniqBy(currentConfigPolicy.concat(otherConfigPolicy), (d) => d.dependencyId);\n currentAndOtherConfig.forEach((dep) => {\n const depType = lifecycleToDepType[dep.lifecycleType];\n const currentDep = currentConfigPolicy.find((d) => d.dependencyId === dep.dependencyId);\n const otherDep = otherConfigPolicy.find((d) => d.dependencyId === dep.dependencyId);\n const baseDep = baseConfigPolicy?.find((d) => d.dependencyId === dep.dependencyId);\n\n if (!otherDep) {\n return;\n }\n if (!currentDep) {\n // only on other\n addVariantPolicyEntryToPolicy(otherDep);\n return;\n }\n const currentVer = currentDep.value.version;\n const otherVer = otherDep.value.version;\n if (currentVer === otherVer) {\n return;\n }\n const baseVer = baseDep?.value.version;\n if (baseVer && baseVer === otherVer) {\n return;\n }\n if (baseVer && baseVer === currentVer) {\n addVariantPolicyEntryToPolicy(otherDep);\n return;\n }\n const compIdStr = getCompIdStrByPkgNameFromData(dep.dependencyId);\n if (compIdStr && this.isIdInWorkspaceOrOtherLane(compIdStr, otherVer)) {\n // no need to add if the id exists in the workspace (regardless the version)\n return;\n }\n if (this.mergeStrategy === 'theirs') {\n addVariantPolicyEntryToPolicy(otherDep);\n return;\n }\n if (this.mergeStrategy === 'ours') {\n return;\n }\n\n hasConflict = true;\n conflictedPolicy[depType].push({\n name: currentDep.dependencyId,\n version: `${conflictIndicator}${currentVer}::${otherVer}::`,\n force: currentDep.force,\n });\n });\n };\n\n handleConfigMerge();\n\n const hasConfigForDep = (depType: string, depName: string) => mergedPolicy[depType].find((d) => d.name === depName);\n const getDepIdAsPkgName = (dep: SerializedDependencyWithPolicy) => {\n if (dep.__type !== 'component') {\n return dep.id;\n }\n // @ts-ignore\n return dep.packageName;\n };\n\n const addSerializedDepToPolicy = (dep: SerializedDependencyWithPolicy) => {\n const depType = lifecycleToDepType[dep.lifecycle];\n if (dep.__type === 'component' && this.isIdInWorkspaceOrOtherLane(dep.id, dep.version)) {\n return;\n }\n if (hasConfigForDep(depType, dep.id)) {\n return; // there is already config for it.\n }\n mergedPolicy[depType].push({\n name: getDepIdAsPkgName(dep),\n version: dep.policy || dep.version,\n force: false,\n });\n };\n\n this.logger.debug(\n `currentData, ${currentAllData.length}\\n${currentAllData\n .map((d) => `${d.__type} ${d.id} ${d.version}`)\n .join('\\n')}`\n );\n this.logger.debug(\n `otherData, ${otherData.length}\\n${otherData.map((d) => `${d.__type} ${d.id} ${d.version}`).join('\\n')}`\n );\n this.logger.debug(\n `baseData, ${baseData.length}\\n${baseData.map((d) => `${d.__type} ${d.id} ${d.version}`).join('\\n')}`\n );\n\n // eslint-disable-next-line complexity\n currentAndOtherData.forEach((depData) => {\n this.logger.trace(`depData.id, ${depData.id}`);\n if (this.isEnv(depData.id)) {\n // ignore the envs\n return;\n }\n const currentDep = currentAllData.find((d) => d.id === depData.id);\n const otherDep = otherData.find((d) => d.id === depData.id);\n const baseDep = baseData.find((d) => d.id === depData.id);\n\n this.logger.trace(`currentDep`, currentDep);\n this.logger.trace(`otherDep`, otherDep);\n this.logger.trace(`baseDep`, baseDep);\n if (!otherDep) {\n return;\n }\n if (!currentDep) {\n if (baseDep) {\n // exists in other and base, so it was removed from current\n return;\n }\n // only on other\n addSerializedDepToPolicy(otherDep);\n return;\n }\n\n if (currentDep.policy && otherDep.policy) {\n if (semver.satisfies(currentDep.version, otherDep.policy)) {\n return;\n }\n if (semver.satisfies(otherDep.version, currentDep.policy)) {\n return;\n }\n }\n\n const currentVer = currentDep.policy || currentDep.version;\n const otherVer = otherDep.policy || otherDep.version;\n if (currentVer === otherVer) {\n return;\n }\n const baseVer = baseDep?.policy || baseDep?.version;\n if (baseVer && baseVer === otherVer) {\n return;\n }\n const currentId = currentDep.id;\n if (currentDep.__type === 'component' && this.isIdInWorkspaceOrOtherLane(currentId, otherDep.version)) {\n // dependencies that exist in the workspace, should be ignored. they'll be resolved later to the version in the ws.\n return;\n }\n const depType = lifecycleToDepType[currentDep.lifecycle];\n if (hasConfigForDep(depType, currentDep.id)) {\n return; // there is already config for it.\n }\n if (baseVer && baseVer === currentVer) {\n addSerializedDepToPolicy(otherDep);\n return;\n }\n if (this.mergeStrategy === 'theirs') {\n addSerializedDepToPolicy(otherDep);\n return;\n }\n if (this.mergeStrategy === 'ours') {\n return;\n }\n hasConflict = true;\n conflictedPolicy[depType].push({\n name: getDepIdAsPkgName(currentDep),\n version: `${conflictIndicator}${currentVer}::${otherVer}::`,\n force: false,\n });\n });\n\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((depType) => {\n if (!mergedPolicy[depType].length) delete mergedPolicy[depType];\n if (!conflictedPolicy[depType].length) delete conflictedPolicy[depType];\n });\n\n const config = Object.keys(mergedPolicy).length ? { policy: mergedPolicy } : undefined;\n const conflict = hasConflict ? conflictedPolicy : undefined;\n\n this.logger.debug('final mergedConfig', config);\n this.logger.debug('final conflict', conflict);\n\n return { id: params.id, mergedConfig: config, conflict };\n }\n\n private isIdInWorkspaceOrOtherLane(id: string, versionOnOtherLane?: string): boolean {\n return Boolean(this.getIdFromWorkspace(id)) || this.otherLaneIdsStr.includes(`${id}@${versionOnOtherLane}`);\n }\n\n private getIdFromWorkspace(id: string): ComponentID | undefined {\n return this.workspaceIds.find((c) => c.toStringWithoutVersion() === id);\n }\n\n private isEnv(id: string) {\n return id === this.currentEnv.id || id === this.otherEnv.id;\n }\n\n private getConfig(ext: ExtensionDataEntry): GenericConfigOrRemoved {\n if (ext.rawConfig === '-') return ext.rawConfig;\n return omit(ext.rawConfig, ['__specific']);\n }\n\n private getPolicy(config): VariantPolicyEntry[] {\n if (!config.policy) return [];\n return VariantPolicy.fromConfigObject(config.policy).entries;\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,kBAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,iBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,oBAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,mBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAM,MAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAO,QAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,OAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,mBAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,kBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0D,SAAAC,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAQnD,MAAM8B,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,YAAY;AAoB7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,qBAAqB,CAAC;EAMjCC,WAAWA,CACDC,SAAiB,EACjBC,YAA2B,EACnCC,SAA2B,EACnBC,cAAiC,EACjCC,WAA8B,EAC9BC,YAA+B,EAC/BC,YAAoB,EACpBC,UAAkB,EAClBC,MAAc,EACdC,aAA4B,EACpC;IAAA,KAVQT,SAAiB,GAAjBA,SAAiB;IAAA,KACjBC,YAA2B,GAA3BA,YAA2B;IAAA,KAE3BE,cAAiC,GAAjCA,cAAiC;IAAA,KACjCC,WAA8B,GAA9BA,WAA8B;IAAA,KAC9BC,YAA+B,GAA/BA,YAA+B;IAAA,KAC/BC,YAAoB,GAApBA,YAAoB;IAAA,KACpBC,UAAkB,GAAlBA,UAAkB;IAAA,KAClBC,MAAc,GAAdA,MAAc;IAAA,KACdC,aAA4B,GAA5BA,aAA4B;IAAA7B,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,wBAZJ,CAAC8B,wBAAa,CAACC,EAAE,CAAC;IAAE;IAAA/B,eAAA;IAcpD,IAAI,CAACgC,eAAe,GAAGV,SAAS,EAAEW,cAAc,CAAC,CAAC,CAACC,GAAG,CAAEH,EAAE,IAAKA,EAAE,CAACI,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;EACrF;EAEAC,KAAKA,CAAA,EAAsB;IACzB,IAAI,CAACR,MAAM,CAACS,KAAK,CAAC,4CAA4C,IAAI,CAACjB,SAAS,iBAAiB,CAAC;IAC9F,IAAI,CAACQ,MAAM,CAACS,KAAK,CAAC,iBAAiB,IAAI,CAACX,YAAY,EAAE,CAAC;IACvD,IAAI,CAACE,MAAM,CAACS,KAAK,CAAC,eAAe,IAAI,CAACV,UAAU,EAAE,CAAC;IACnD,IAAI,CAACW,YAAY,CAAC,CAAC;IACnB,MAAMC,OAAO,GAAG,IAAI,CAAChB,cAAc,CAACW,GAAG,CAAEM,UAAU,IAAK;MACtD,MAAMT,EAAE,GAAGS,UAAU,CAACC,QAAQ;MAC9B,IAAI,IAAI,CAACC,aAAa,CAACC,QAAQ,CAACZ,EAAE,CAAC,EAAE,OAAO,IAAI;MAChD,IAAI,CAACW,aAAa,CAAChD,IAAI,CAACqC,EAAE,CAAC;MAC3B,MAAMa,OAAO,GAAG,IAAI,CAACpB,WAAW,CAACqB,aAAa,CAACd,EAAE,EAAE,IAAI,CAAC;MACxD,MAAMe,QAAQ,GAAG,IAAI,CAACrB,YAAY,CAACoB,aAAa,CAACd,EAAE,EAAE,IAAI,CAAC;MAC1D,IAAIe,QAAQ,EAAE;QACZ;QACA,OAAO,IAAI,CAACC,gBAAgB,CAAC;UAAEhB,EAAE;UAAES,UAAU;UAAEM,QAAQ;UAAEF;QAAQ,CAAC,CAAC;MACrE;MACA;MACA,IAAIA,OAAO,EAAE;QACX;QACA,IAAI,IAAI,CAACf,aAAa,KAAK,QAAQ,EAAE;UACnC,OAAO;YAAEE,EAAE;YAAEiB,YAAY,EAAE;UAAI,CAAC;QAClC;QACA,IAAI,IAAI,CAACnB,aAAa,KAAK,MAAM,EAAE;UACjC,OAAO,IAAI;QACb;QACA,OAAO;UAAEE,EAAE;UAAEkB,QAAQ,EAAE;YAAEC,aAAa,EAAE,IAAI,CAACC,SAAS,CAACX,UAAU,CAAC;YAAEY,WAAW,EAAE;UAAI;QAAE,CAAC;MAC1F;MACA;MACA,OAAO,IAAI;IACb,CAAC,CAAC;IACF,MAAMC,6BAA6B,GAAG,IAAI,CAAC5B,YAAY,CAACS,GAAG,CAAEY,QAAQ,IAAK;MACxE,IAAIf,EAAE,GAAGe,QAAQ,CAACL,QAAQ;MAC1B,IAAI,IAAI,CAACC,aAAa,CAACC,QAAQ,CAACZ,EAAE,CAAC,EAAE,OAAO,IAAI;MAChD,IAAI,CAACW,aAAa,CAAChD,IAAI,CAACqC,EAAE,CAAC;MAC3B,IAAIe,QAAQ,CAACQ,WAAW,IAAIR,QAAQ,CAACQ,WAAW,CAACC,UAAU,CAAC,CAAC,EAAE;QAC7D;QACA,MAAMC,eAAe,GAAG,IAAI,CAACC,kBAAkB,CAACX,QAAQ,CAACQ,WAAW,CAACI,sBAAsB,CAAC,CAAC,CAAC;QAC9F,IAAIF,eAAe,EAAE;UACnB,MAAMG,WAAW,GAAG,IAAI,CAACpC,cAAc,CAACsB,aAAa,CAACC,QAAQ,CAACQ,WAAW,CAACI,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC;UAC1G,IAAIC,WAAW,EAAE,OAAO,IAAI,CAAC,CAAC;UAC9B5B,EAAE,GAAGyB,eAAe,CAACI,OAAO,CAACzB,QAAQ,CAAC,CAAC;QACzC;MACF;MACA,MAAMS,OAAO,GAAG,IAAI,CAACpB,WAAW,CAACqB,aAAa,CAACd,EAAE,EAAE,IAAI,CAAC;MACxD,IAAIa,OAAO,EAAE;QACX;QACA,OAAO;UAAEb,EAAE;UAAEkB,QAAQ,EAAE;YAAEC,aAAa,EAAE,GAAG;YAAEE,WAAW,EAAE,IAAI,CAACD,SAAS,CAACL,QAAQ;UAAE;QAAE,CAAC;MACxF;MACA;MACA,OAAO;QAAEf,EAAE;QAAEiB,YAAY,EAAE,IAAI,CAACG,SAAS,CAACL,QAAQ;MAAE,CAAC;IACvD,CAAC,CAAC;IACF,MAAMe,SAAS,GAAG,CAAC,IAAI,CAACC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE;IAC5C,IAAI,CAAClC,MAAM,CAACS,KAAK,CAAC,6BAA6B,IAAI,CAACjB,SAAS,QAAQ,CAAC;IACtE,OAAO,KAAI2C,sCAAiB,EAC1B,IAAI,CAAC3C,SAAS,EACd,IAAI,CAACM,YAAY,EACjB,IAAI,CAACC,UAAU,EACf,IAAAqC,iBAAO,EAAC,CAAC,GAAGzB,OAAO,EAAE,GAAGc,6BAA6B,EAAE,GAAGQ,SAAS,CAAC,CACtE,CAAC;EACH;EAEQvB,YAAYA,CAAA,EAAG;IACrB;IACA,MAAM2B,QAAQ,GAAIC,GAAsB,IAAK;MAC3C,MAAMC,UAAU,GAAGD,GAAG,CAACE,iBAAiB,CAACC,kBAAU,CAACtC,EAAE,CAAC;MACvD,IAAI,CAACoC,UAAU,EAAE,MAAM,IAAIG,KAAK,CAAC,kBAAkBD,kBAAU,CAACtC,EAAE,eAAe,IAAI,CAACX,SAAS,EAAE,CAAC;MAChG,MAAMmD,GAAG,GAAGJ,UAAU,CAACK,MAAM,CAACD,GAAG,IAAIJ,UAAU,CAAC/F,IAAI,CAAC2D,EAAE;MACvD,IAAI,CAACwC,GAAG,EACN,MAAM,IAAID,KAAK,CAAC,0BAA0B,IAAI,CAAClD,SAAS,4BAA4BiD,kBAAU,CAACtC,EAAE,aAAa,CAAC;MACjH,OAAOwC,GAAG;IACZ,CAAC;IACD,MAAME,UAAU,GAAGR,QAAQ,CAAC,IAAI,CAAC1C,cAAc,CAAC;IAChD,IAAI,CAACkD,UAAU,GAAG;MAAE1C,EAAE,EAAE0C;IAAW,CAAC;IACpC,MAAMC,QAAQ,GAAGT,QAAQ,CAAC,IAAI,CAACxC,YAAY,CAAC;IAC5C,IAAI,CAACiD,QAAQ,GAAG;MAAE3C,EAAE,EAAE2C;IAAS,CAAC;IAChC,MAAMC,OAAO,GAAG,IAAI,CAACnD,WAAW,GAAGyC,QAAQ,CAAC,IAAI,CAACzC,WAAW,CAAC,GAAGoD,SAAS;IACzE,IAAID,OAAO,EAAE,IAAI,CAACA,OAAO,GAAG;MAAE5C,EAAE,EAAE4C;IAAQ,CAAC;;IAE3C;IACA,MAAME,gBAAgB,GAAG,IAAI,CAACtD,cAAc,CAACsB,aAAa,CAAC4B,UAAU,EAAE,IAAI,CAAC;IAC5E,IAAII,gBAAgB,EAAE;MACpB,IAAI,CAACnC,aAAa,CAAChD,IAAI,CAACmF,gBAAgB,CAACpC,QAAQ,CAAC;MAClD,IAAI,CAACgC,UAAU,CAACK,OAAO,GAAGD,gBAAgB,CAACvB,WAAW,EAAEwB,OAAO;MAC/D,IAAI,CAACL,UAAU,CAACD,MAAM,GAAG,IAAI,CAACrB,SAAS,CAAC0B,gBAAgB,CAAC;IAC3D;IACA,MAAME,cAAc,GAAG,IAAI,CAACtD,YAAY,CAACoB,aAAa,CAAC6B,QAAQ,EAAE,IAAI,CAAC;IACtE,IAAIK,cAAc,EAAE;MAClB,IAAI,CAACrC,aAAa,CAAChD,IAAI,CAACqF,cAAc,CAACtC,QAAQ,CAAC;MAChD,IAAI,CAACiC,QAAQ,CAACI,OAAO,GAAGC,cAAc,CAACzB,WAAW,EAAEwB,OAAO;MAC3D,IAAI,CAACJ,QAAQ,CAACF,MAAM,GAAG,IAAI,CAACrB,SAAS,CAAC4B,cAAc,CAAC;IACvD;IACA,IAAI,IAAI,CAACJ,OAAO,EAAE;MAChB,MAAMK,aAAa,GAAG,IAAI,CAACxD,WAAW,CAACqB,aAAa,CAAC8B,OAAO,EAAE,IAAI,CAAC;MACnE,IAAIK,aAAa,EAAE;QACjB,IAAI,CAACL,OAAO,CAACG,OAAO,GAAGE,aAAa,CAAC1B,WAAW,EAAEwB,OAAO;QACzD,IAAI,CAACH,OAAO,CAACH,MAAM,GAAG,IAAI,CAACrB,SAAS,CAAC6B,aAAa,CAAC;MACrD;IACF;EACF;EAEQlB,WAAWA,CAAA,EAA+B;IAChD,MAAMmB,mBAAmD,GAAG;MAC1DlD,EAAE,EAAEsC,kBAAU,CAACtC,EAAE;MACjBmB,aAAa,EAAE;QACbqB,GAAG,EAAE,IAAI,CAACE,UAAU,CAACK,OAAO,GAAG,GAAG,IAAI,CAACL,UAAU,CAAC1C,EAAE,IAAI,IAAI,CAAC0C,UAAU,CAACK,OAAO,EAAE,GAAG,IAAI,CAACL,UAAU,CAAC1C;MACtG,CAAC;MACDqB,WAAW,EAAE;QAAEmB,GAAG,EAAE,IAAI,CAACG,QAAQ,CAACI,OAAO,GAAG,GAAG,IAAI,CAACJ,QAAQ,CAAC3C,EAAE,IAAI,IAAI,CAAC2C,QAAQ,CAACI,OAAO,EAAE,GAAG,IAAI,CAACJ,QAAQ,CAAC3C;MAAG;IAChH,CAAC;IACD,IAAI,IAAI,CAAC4C,OAAO,EAAE;MAChBM,mBAAmB,CAACC,UAAU,GAAG;QAC/BX,GAAG,EAAE,IAAI,CAACI,OAAO,EAAEG,OAAO,GAAG,GAAG,IAAI,CAACH,OAAO,CAAC5C,EAAE,IAAI,IAAI,CAAC4C,OAAO,CAACG,OAAO,EAAE,GAAG,IAAI,CAACH,OAAO,EAAE5C;MAC5F,CAAC;IACH;IACA,IAAI,IAAI,CAAC0C,UAAU,CAAC1C,EAAE,KAAK,IAAI,CAAC2C,QAAQ,CAAC3C,EAAE,IAAI,IAAI,CAAC0C,UAAU,CAACK,OAAO,KAAK,IAAI,CAACJ,QAAQ,CAACI,OAAO,EAAE;MAChG,OAAO,IAAI;IACb;IACA,IAAI,IAAI,CAACK,0BAA0B,CAAC,IAAI,CAACV,UAAU,CAAC1C,EAAE,EAAE,IAAI,CAAC2C,QAAQ,CAACI,OAAO,CAAC,EAAE;MAC9E;MACA,OAAO,IAAI;IACb;IACA,OAAO,IAAI,CAACM,gBAAgB,CAACH,mBAAmB,CAAC;EACnD;EAEQI,eAAeA,CAACC,OAA+B,EAAEC,OAA+B,EAAE;IACxF,OAAOC,IAAI,CAACC,SAAS,CAACH,OAAO,CAAC,KAAKE,IAAI,CAACC,SAAS,CAACF,OAAO,CAAC;EAC5D;EAEQxC,gBAAgBA,CAACkC,mBAAwC,EAA8B;IAC7F,MAAM;MAAElD,EAAE;MAAES,UAAU;MAAEM,QAAQ;MAAEF;IAAQ,CAAC,GAAGqC,mBAAmB;IACjE,MAAMS,iBAAiB,GAAG,IAAI,CAACC,mBAAmB,CAACV,mBAAmB,CAAC;IAEvE,IAAIS,iBAAiB,EAAE;MACrB;MACA,OAAOA,iBAAiB;IAC1B;IACA,MAAMxC,aAAa,GAAG,IAAI,CAACC,SAAS,CAACX,UAAU,CAAC;IAChD,MAAMY,WAAW,GAAG,IAAI,CAACD,SAAS,CAACL,QAAQ,CAAC;IAC5C,MAAMoC,UAAU,GAAGtC,OAAO,GAAG,IAAI,CAACO,SAAS,CAACP,OAAO,CAAC,GAAGgC,SAAS;IAEhE,OAAO,IAAI,CAACQ,gBAAgB,CAAC;MAAErD,EAAE;MAAEmB,aAAa;MAAEE,WAAW;MAAE8B;IAAW,CAAC,CAAC;EAC9E;EAEQE,gBAAgBA,CAACH,mBAAmD,EAAE;IAC5E,MAAM;MAAElD,EAAE;MAAEmB,aAAa;MAAEE,WAAW;MAAE8B;IAAW,CAAC,GAAGD,mBAAmB;IAC1E,IAAI,IAAI,CAACI,eAAe,CAACnC,aAAa,EAAEE,WAAW,CAAC,EAAE;MACpD,OAAO,IAAI;IACb;IACA,IAAI8B,UAAU,IAAI,IAAI,CAACG,eAAe,CAACH,UAAU,EAAE9B,WAAW,CAAC,EAAE;MAC/D;MACA,OAAO,IAAI;IACb;IACA,IAAI8B,UAAU,IAAI,IAAI,CAACG,eAAe,CAACH,UAAU,EAAEhC,aAAa,CAAC,EAAE;MACjE;MACA,OAAO;QAAEnB,EAAE;QAAEiB,YAAY,EAAEI;MAAY,CAAC;IAC1C;IACA;IACA,IAAI,IAAI,CAACvB,aAAa,KAAK,QAAQ,EAAE;MACnC,OAAO;QAAEE,EAAE;QAAEiB,YAAY,EAAEI;MAAY,CAAC;IAC1C;IACA,IAAI,IAAI,CAACvB,aAAa,KAAK,MAAM,EAAE;MACjC,OAAO,IAAI;IACb;IACA,OAAO;MAAEE,EAAE;MAAEkB,QAAQ,EAAE;QAAEC,aAAa;QAAEE,WAAW;QAAE8B;MAAW;IAAE,CAAC;EACrE;EAEQS,mBAAmBA,CAACC,MAA2B,EAAmC;IACxF,IAAIA,MAAM,CAAC7D,EAAE,KAAK8D,8CAAwB,CAAC9D,EAAE,EAAE,OAAO6C,SAAS;IAC/D,IAAI,CAAChD,MAAM,CAACkE,KAAK,CAAC,iCAAiC,IAAI,CAAC1E,SAAS,EAAE,CAAC;IACpE,MAAM;MAAEoB,UAAU;MAAEM,QAAQ;MAAEF;IAAQ,CAAC,GAAGgD,MAAM;IAEhD,MAAM1C,aAAa,GAAG,IAAI,CAACC,SAAS,CAACX,UAAU,CAAC;IAChD,MAAMuD,mBAAmB,GAAG,IAAI,CAACC,SAAS,CAAC9C,aAAa,CAAC;IACzD,MAAME,WAAW,GAAG,IAAI,CAACD,SAAS,CAACL,QAAQ,CAAC;IAC5C,MAAMmD,iBAAiB,GAAG,IAAI,CAACD,SAAS,CAAC5C,WAAW,CAAC;IAErD,MAAM8B,UAAU,GAAGtC,OAAO,GAAG,IAAI,CAACO,SAAS,CAACP,OAAO,CAAC,GAAGgC,SAAS;IAChE,MAAMsB,gBAAgB,GAAGhB,UAAU,GAAG,IAAI,CAACc,SAAS,CAACd,UAAU,CAAC,GAAGN,SAAS;IAE5E,IAAI,CAAChD,MAAM,CAACS,KAAK,CAAC,kBAAkBmD,IAAI,CAACC,SAAS,CAACvC,aAAa,EAAE0B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;IAClF,IAAI,CAAChD,MAAM,CAACS,KAAK,CAAC,gBAAgBmD,IAAI,CAACC,SAAS,CAACrC,WAAW,EAAEwB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9E,IAAI,CAAChD,MAAM,CAACS,KAAK,CAAC,eAAemD,IAAI,CAACC,SAAS,CAACP,UAAU,EAAEN,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;IAE5E,MAAMuB,UAAU,GAAIjC,GAAsB,IAAuC;MAC/E,MAAM9F,IAAI,GAAG8F,GAAG,CAACE,iBAAiB,CAACyB,8CAAwB,CAAC9D,EAAE,CAAC,EAAE3D,IAAI,CAACgI,YAAY;MAClF,IAAI,CAAChI,IAAI,EAAE,OAAO,EAAE;MACpB,MAAMiI,MAAM,GAAGnC,GAAG,CAACE,iBAAiB,CAACyB,8CAAwB,CAAC9D,EAAE,CAAC,EAAE3D,IAAI,CAACiI,MAAM,IAAI,EAAE;MACpF,OAAOjI,IAAI,CAAC8D,GAAG,CAAEoE,CAAC,IAAK;QACrB,MAAMC,gBAAgB,GAAGD,CAAC,CAACE,MAAM,KAAK,SAAS,GAAGF,CAAC,CAACvE,EAAE,GAAGuE,CAAC,CAACvE,EAAE,CAAC0E,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAMC,cAAc,GAAGL,MAAM,CAACM,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKN,gBAAgB,CAAC;QAC9E,MAAMO,YAAY,GAAGA,CAAA,KAAM;UACzB,IAAIR,CAAC,CAACE,MAAM,KAAK,SAAS,EAAE,OAAO5B,SAAS,CAAC,CAAC;UAC9C,IAAI8B,cAAc,EAAE,OAAOA,cAAc,CAACrG,KAAK,CAACyE,OAAO,CAAC,CAAC;UACzD,OAAOwB,CAAC,CAACxB,OAAO;UAChB;UACA;UACA;QACF,CAAC;QACD,OAAAlF,aAAA,CAAAA,aAAA,KACK0G,CAAC;UACJvE,EAAE,EAAEwE,gBAAgB;UACpBF,MAAM,EAAES,YAAY,CAAC;QAAC;MAE1B,CAAC,CAAC;IACJ,CAAC;IACD,MAAMC,aAAa,GAAI7C,GAAsB,IAA2B;MACtE,OAAOA,GAAG,CAACE,iBAAiB,CAACyB,8CAAwB,CAAC9D,EAAE,CAAC,EAAE3D,IAAI,CAACiI,MAAM,IAAI,EAAE;IAC9E,CAAC;IAED,MAAMW,WAAW,GAAI9C,GAAsB,IAAuC;MAChF,MAAM+C,OAAO,GAAGd,UAAU,CAACjC,GAAG,CAAC;MAC/B,OAAO+C,OAAO,CAAC1H,MAAM,CAAE+G,CAAC,IAAKA,CAAC,CAACY,MAAM,KAAK,MAAM,CAAC;IACnD,CAAC;IAED,MAAMC,eAAe,GAAGH,WAAW,CAAC,IAAI,CAACzF,cAAc,CAAC;IACxD,MAAM6F,cAAc,GAAGjB,UAAU,CAAC,IAAI,CAAC5E,cAAc,CAAC;IACtD,MAAM8F,iBAAiB,GAAGN,aAAa,CAAC,IAAI,CAACxF,cAAc,CAAC;IAC5D,MAAM+F,SAAS,GAAGN,WAAW,CAAC,IAAI,CAACvF,YAAY,CAAC;IAChD,MAAM8F,mBAAmB,GAAG,IAAAC,gBAAM,EAACL,eAAe,CAACM,MAAM,CAACH,SAAS,CAAC,EAAGhB,CAAC,IAAKA,CAAC,CAACvE,EAAE,CAAC;IAClF,MAAM2F,6BAA6B,GAAGH,mBAAmB,CAAChI,MAAM,CAAEoI,CAAC,IAAKA,CAAC,CAACnB,MAAM,KAAK,WAAW,CAAC;IACjG,MAAMoB,QAAQ,GAAGZ,WAAW,CAAC,IAAI,CAACxF,WAAW,CAAC;IAE9C,MAAMqG,6BAA6B,GAAIC,OAAe,IAAyB;MAC7E,MAAMC,KAAK,GAAGL,6BAA6B,CAACf,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAAC0B,WAAW,KAAKF,OAAO,CAAC;MAClF,OAAOC,KAAK,EAAEhG,EAAE;IAClB,CAAC;IAED,MAAMkG,+BAA+B,GAAIH,OAAe,IAAK;MAC3D,OAAOV,cAAc,CAACT,IAAI,CAAEL,CAAC,IAAK;QAChC,IAAIA,CAAC,CAACE,MAAM,KAAK,SAAS,EAAE,OAAOF,CAAC,CAACvE,EAAE,KAAK+F,OAAO;QACnD,OAAOxB,CAAC,CAAC0B,WAAW,KAAKF,OAAO;MAClC,CAAC,CAAC;IACJ,CAAC;IAED,MAAMI,qCAAqC,GAAIJ,OAAe,IAAK;MACjE,OAAOT,iBAAiB,CAACV,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACO,YAAY,KAAKiB,OAAO,CAAC;IAClE,CAAC;IAED,MAAMK,YAAY,GAAG;MACnB/B,YAAY,EAAE,EAAE;MAChBgC,eAAe,EAAE,EAAE;MACnBC,gBAAgB,EAAE;IACpB,CAAC;IACD,MAAMC,gBAAgB,GAAG;MACvBlC,YAAY,EAAE,EAAE;MAChBgC,eAAe,EAAE,EAAE;MACnBC,gBAAgB,EAAE;IACpB,CAAC;IACD,IAAIE,WAAW,GAAG,KAAK;IACvB,MAAMC,kBAAkB,GAAG;MACzBC,OAAO,EAAE,cAAc;MACvBC,GAAG,EAAE,iBAAiB;MACtBC,IAAI,EAAE;IACR,CAAC;IACD,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;MAC9B,MAAMC,6BAA6B,GAAIC,GAAuB,IAAK;QACjE,MAAM1H,SAAS,GAAGyG,6BAA6B,CAACiB,GAAG,CAACjC,YAAY,CAAC;QACjE,IAAIzF,SAAS,IAAI,IAAI,CAAC+D,0BAA0B,CAAC/D,SAAS,EAAE0H,GAAG,CAACzI,KAAK,CAACyE,OAAO,CAAC,EAAE;UAC9E;UACA;QACF;QACA,MAAMiE,eAAe,GAAGd,+BAA+B,CAACa,GAAG,CAACjC,YAAY,CAAC;QACzE,IAAIkC,eAAe,IAAI,CAACD,GAAG,CAACE,KAAK,EAAE;UACjC,IAAID,eAAe,CAACjE,OAAO,KAAKgE,GAAG,CAACzI,KAAK,CAACyE,OAAO,EAAE;UACnD,IACE,CAAC,IAAAmE,0BAAM,EAACF,eAAe,CAACjE,OAAO,CAAC,IAChC,CAAC,IAAAmE,0BAAM,EAACH,GAAG,CAACzI,KAAK,CAACyE,OAAO,CAAC,IAC1BoE,iBAAM,CAACC,SAAS,CAACJ,eAAe,CAACjE,OAAO,EAAEgE,GAAG,CAACzI,KAAK,CAACyE,OAAO,CAAC,EAC5D;YACA;UACF;QACF;QACA,MAAMsE,qBAAqB,GAAGlB,qCAAqC,CAACY,GAAG,CAACjC,YAAY,CAAC;QACrF,IAAIuC,qBAAqB,IAAIA,qBAAqB,CAAC/I,KAAK,CAACyE,OAAO,KAAKgE,GAAG,CAACzI,KAAK,CAACyE,OAAO,EAAE;UACtF;UACA;UACA;UACA;UACA;UACA;UACA;UACA;QAAA;QAEF,MAAMuE,OAAO,GAAGb,kBAAkB,CAACM,GAAG,CAACQ,aAAa,CAAC;QACrDnB,YAAY,CAACkB,OAAO,CAAC,CAAC3J,IAAI,CAAC;UACzB6J,IAAI,EAAET,GAAG,CAACjC,YAAY;UACtB/B,OAAO,EAAEgE,GAAG,CAACzI,KAAK,CAACyE,OAAO;UAC1BkE,KAAK,EAAEF,GAAG,CAACE;QACb,CAAC,CAAC;MACJ,CAAC;MAED,IAAI,IAAI,CAAC3D,eAAe,CAACnC,aAAa,EAAEE,WAAW,CAAC,EAAE;QACpD;MACF;MACA,IAAI8B,UAAU,IAAI,IAAI,CAACG,eAAe,CAACH,UAAU,EAAE9B,WAAW,CAAC,EAAE;QAC/D;QACA;MACF;MACA,IAAIF,aAAa,KAAK,GAAG,IAAIE,WAAW,KAAK,GAAG,EAAE;QAChD,MAAM,IAAIkB,KAAK,CAAC,sDAAsD,CAAC;MACzE;MACA,IAAIY,UAAU,IAAI,IAAI,CAACG,eAAe,CAACH,UAAU,EAAEhC,aAAa,CAAC,EAAE;QACjE;QACA,IAAI+C,iBAAiB,CAACnG,MAAM,EAAE;UAC5BmG,iBAAiB,CAAClG,OAAO,CAAE+I,GAAG,IAAK;YACjCD,6BAA6B,CAACC,GAAG,CAAC;UACpC,CAAC,CAAC;QACJ;QACA;MACF;;MAEA;MACA,IAAI,CAAC5F,aAAa,CAACmD,MAAM,IAAI,CAACjD,WAAW,CAACiD,MAAM,EAAE;MAClD,MAAMmD,qBAAqB,GAAG,IAAAhC,gBAAM,EAACzB,mBAAmB,CAAC0B,MAAM,CAACxB,iBAAiB,CAAC,EAAGK,CAAC,IAAKA,CAAC,CAACO,YAAY,CAAC;MAC1G2C,qBAAqB,CAACzJ,OAAO,CAAE+I,GAAG,IAAK;QACrC,MAAMO,OAAO,GAAGb,kBAAkB,CAACM,GAAG,CAACQ,aAAa,CAAC;QACrD,MAAMG,UAAU,GAAG1D,mBAAmB,CAACY,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACO,YAAY,KAAKiC,GAAG,CAACjC,YAAY,CAAC;QACvF,MAAM6C,QAAQ,GAAGzD,iBAAiB,CAACU,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACO,YAAY,KAAKiC,GAAG,CAACjC,YAAY,CAAC;QACnF,MAAM8C,OAAO,GAAGzD,gBAAgB,EAAES,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACO,YAAY,KAAKiC,GAAG,CAACjC,YAAY,CAAC;QAElF,IAAI,CAAC6C,QAAQ,EAAE;UACb;QACF;QACA,IAAI,CAACD,UAAU,EAAE;UACf;UACAZ,6BAA6B,CAACa,QAAQ,CAAC;UACvC;QACF;QACA,MAAME,UAAU,GAAGH,UAAU,CAACpJ,KAAK,CAACyE,OAAO;QAC3C,MAAM+E,QAAQ,GAAGH,QAAQ,CAACrJ,KAAK,CAACyE,OAAO;QACvC,IAAI8E,UAAU,KAAKC,QAAQ,EAAE;UAC3B;QACF;QACA,MAAMC,OAAO,GAAGH,OAAO,EAAEtJ,KAAK,CAACyE,OAAO;QACtC,IAAIgF,OAAO,IAAIA,OAAO,KAAKD,QAAQ,EAAE;UACnC;QACF;QACA,IAAIC,OAAO,IAAIA,OAAO,KAAKF,UAAU,EAAE;UACrCf,6BAA6B,CAACa,QAAQ,CAAC;UACvC;QACF;QACA,MAAMtI,SAAS,GAAGyG,6BAA6B,CAACiB,GAAG,CAACjC,YAAY,CAAC;QACjE,IAAIzF,SAAS,IAAI,IAAI,CAAC+D,0BAA0B,CAAC/D,SAAS,EAAEyI,QAAQ,CAAC,EAAE;UACrE;UACA;QACF;QACA,IAAI,IAAI,CAAChI,aAAa,KAAK,QAAQ,EAAE;UACnCgH,6BAA6B,CAACa,QAAQ,CAAC;UACvC;QACF;QACA,IAAI,IAAI,CAAC7H,aAAa,KAAK,MAAM,EAAE;UACjC;QACF;QAEA0G,WAAW,GAAG,IAAI;QAClBD,gBAAgB,CAACe,OAAO,CAAC,CAAC3J,IAAI,CAAC;UAC7B6J,IAAI,EAAEE,UAAU,CAAC5C,YAAY;UAC7B/B,OAAO,EAAE,GAAG9D,iBAAiB,GAAG4I,UAAU,KAAKC,QAAQ,IAAI;UAC3Db,KAAK,EAAES,UAAU,CAACT;QACpB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC;IAEDJ,iBAAiB,CAAC,CAAC;IAEnB,MAAMmB,eAAe,GAAGA,CAACV,OAAe,EAAEW,OAAe,KAAK7B,YAAY,CAACkB,OAAO,CAAC,CAAC1C,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACiD,IAAI,KAAKS,OAAO,CAAC;IACnH,MAAMC,iBAAiB,GAAInB,GAAmC,IAAK;MACjE,IAAIA,GAAG,CAACtC,MAAM,KAAK,WAAW,EAAE;QAC9B,OAAOsC,GAAG,CAAC/G,EAAE;MACf;MACA;MACA,OAAO+G,GAAG,CAACd,WAAW;IACxB,CAAC;IAED,MAAMkC,wBAAwB,GAAIpB,GAAmC,IAAK;MACxE,MAAMO,OAAO,GAAGb,kBAAkB,CAACM,GAAG,CAACqB,SAAS,CAAC;MACjD,IAAIrB,GAAG,CAACtC,MAAM,KAAK,WAAW,IAAI,IAAI,CAACrB,0BAA0B,CAAC2D,GAAG,CAAC/G,EAAE,EAAE+G,GAAG,CAAChE,OAAO,CAAC,EAAE;QACtF;MACF;MACA,IAAIiF,eAAe,CAACV,OAAO,EAAEP,GAAG,CAAC/G,EAAE,CAAC,EAAE;QACpC,OAAO,CAAC;MACV;MACAoG,YAAY,CAACkB,OAAO,CAAC,CAAC3J,IAAI,CAAC;QACzB6J,IAAI,EAAEU,iBAAiB,CAACnB,GAAG,CAAC;QAC5BhE,OAAO,EAAEgE,GAAG,CAACzC,MAAM,IAAIyC,GAAG,CAAChE,OAAO;QAClCkE,KAAK,EAAE;MACT,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAACpH,MAAM,CAACS,KAAK,CACf,gBAAgB+E,cAAc,CAACtH,MAAM,KAAKsH,cAAc,CACrDlF,GAAG,CAAEoE,CAAC,IAAK,GAAGA,CAAC,CAACE,MAAM,IAAIF,CAAC,CAACvE,EAAE,IAAIuE,CAAC,CAACxB,OAAO,EAAE,CAAC,CAC9CsF,IAAI,CAAC,IAAI,CAAC,EACf,CAAC;IACD,IAAI,CAACxI,MAAM,CAACS,KAAK,CACf,cAAciF,SAAS,CAACxH,MAAM,KAAKwH,SAAS,CAACpF,GAAG,CAAEoE,CAAC,IAAK,GAAGA,CAAC,CAACE,MAAM,IAAIF,CAAC,CAACvE,EAAE,IAAIuE,CAAC,CAACxB,OAAO,EAAE,CAAC,CAACsF,IAAI,CAAC,IAAI,CAAC,EACxG,CAAC;IACD,IAAI,CAACxI,MAAM,CAACS,KAAK,CACf,aAAauF,QAAQ,CAAC9H,MAAM,KAAK8H,QAAQ,CAAC1F,GAAG,CAAEoE,CAAC,IAAK,GAAGA,CAAC,CAACE,MAAM,IAAIF,CAAC,CAACvE,EAAE,IAAIuE,CAAC,CAACxB,OAAO,EAAE,CAAC,CAACsF,IAAI,CAAC,IAAI,CAAC,EACrG,CAAC;;IAED;IACA7C,mBAAmB,CAACxH,OAAO,CAAEsK,OAAO,IAAK;MACvC,IAAI,CAACzI,MAAM,CAACkE,KAAK,CAAC,eAAeuE,OAAO,CAACtI,EAAE,EAAE,CAAC;MAC9C,IAAI,IAAI,CAACuI,KAAK,CAACD,OAAO,CAACtI,EAAE,CAAC,EAAE;QAC1B;QACA;MACF;MACA,MAAM0H,UAAU,GAAGrC,cAAc,CAACT,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACvE,EAAE,KAAKsI,OAAO,CAACtI,EAAE,CAAC;MAClE,MAAM2H,QAAQ,GAAGpC,SAAS,CAACX,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACvE,EAAE,KAAKsI,OAAO,CAACtI,EAAE,CAAC;MAC3D,MAAM4H,OAAO,GAAG/B,QAAQ,CAACjB,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACvE,EAAE,KAAKsI,OAAO,CAACtI,EAAE,CAAC;MAEzD,IAAI,CAACH,MAAM,CAACkE,KAAK,CAAC,YAAY,EAAE2D,UAAU,CAAC;MAC3C,IAAI,CAAC7H,MAAM,CAACkE,KAAK,CAAC,UAAU,EAAE4D,QAAQ,CAAC;MACvC,IAAI,CAAC9H,MAAM,CAACkE,KAAK,CAAC,SAAS,EAAE6D,OAAO,CAAC;MACrC,IAAI,CAACD,QAAQ,EAAE;QACb;MACF;MACA,IAAI,CAACD,UAAU,EAAE;QACf,IAAIE,OAAO,EAAE;UACX;UACA;QACF;QACA;QACAO,wBAAwB,CAACR,QAAQ,CAAC;QAClC;MACF;MAEA,IAAID,UAAU,CAACpD,MAAM,IAAIqD,QAAQ,CAACrD,MAAM,EAAE;QACxC,IAAI6C,iBAAM,CAACC,SAAS,CAACM,UAAU,CAAC3E,OAAO,EAAE4E,QAAQ,CAACrD,MAAM,CAAC,EAAE;UACzD;QACF;QACA,IAAI6C,iBAAM,CAACC,SAAS,CAACO,QAAQ,CAAC5E,OAAO,EAAE2E,UAAU,CAACpD,MAAM,CAAC,EAAE;UACzD;QACF;MACF;MAEA,MAAMuD,UAAU,GAAGH,UAAU,CAACpD,MAAM,IAAIoD,UAAU,CAAC3E,OAAO;MAC1D,MAAM+E,QAAQ,GAAGH,QAAQ,CAACrD,MAAM,IAAIqD,QAAQ,CAAC5E,OAAO;MACpD,IAAI8E,UAAU,KAAKC,QAAQ,EAAE;QAC3B;MACF;MACA,MAAMC,OAAO,GAAGH,OAAO,EAAEtD,MAAM,IAAIsD,OAAO,EAAE7E,OAAO;MACnD,IAAIgF,OAAO,IAAIA,OAAO,KAAKD,QAAQ,EAAE;QACnC;MACF;MACA,MAAMU,SAAS,GAAGd,UAAU,CAAC1H,EAAE;MAC/B,IAAI0H,UAAU,CAACjD,MAAM,KAAK,WAAW,IAAI,IAAI,CAACrB,0BAA0B,CAACoF,SAAS,EAAEb,QAAQ,CAAC5E,OAAO,CAAC,EAAE;QACrG;QACA;MACF;MACA,MAAMuE,OAAO,GAAGb,kBAAkB,CAACiB,UAAU,CAACU,SAAS,CAAC;MACxD,IAAIJ,eAAe,CAACV,OAAO,EAAEI,UAAU,CAAC1H,EAAE,CAAC,EAAE;QAC3C,OAAO,CAAC;MACV;MACA,IAAI+H,OAAO,IAAIA,OAAO,KAAKF,UAAU,EAAE;QACrCM,wBAAwB,CAACR,QAAQ,CAAC;QAClC;MACF;MACA,IAAI,IAAI,CAAC7H,aAAa,KAAK,QAAQ,EAAE;QACnCqI,wBAAwB,CAACR,QAAQ,CAAC;QAClC;MACF;MACA,IAAI,IAAI,CAAC7H,aAAa,KAAK,MAAM,EAAE;QACjC;MACF;MACA0G,WAAW,GAAG,IAAI;MAClBD,gBAAgB,CAACe,OAAO,CAAC,CAAC3J,IAAI,CAAC;QAC7B6J,IAAI,EAAEU,iBAAiB,CAACR,UAAU,CAAC;QACnC3E,OAAO,EAAE,GAAG9D,iBAAiB,GAAG4I,UAAU,KAAKC,QAAQ,IAAI;QAC3Db,KAAK,EAAE;MACT,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAACjJ,OAAO,CAAEsJ,OAAO,IAAK;MAC3E,IAAI,CAAClB,YAAY,CAACkB,OAAO,CAAC,CAACvJ,MAAM,EAAE,OAAOqI,YAAY,CAACkB,OAAO,CAAC;MAC/D,IAAI,CAACf,gBAAgB,CAACe,OAAO,CAAC,CAACvJ,MAAM,EAAE,OAAOwI,gBAAgB,CAACe,OAAO,CAAC;IACzE,CAAC,CAAC;IAEF,MAAM7E,MAAM,GAAGrF,MAAM,CAACC,IAAI,CAAC+I,YAAY,CAAC,CAACrI,MAAM,GAAG;MAAEuG,MAAM,EAAE8B;IAAa,CAAC,GAAGvD,SAAS;IACtF,MAAM3B,QAAQ,GAAGsF,WAAW,GAAGD,gBAAgB,GAAG1D,SAAS;IAE3D,IAAI,CAAChD,MAAM,CAACS,KAAK,CAAC,oBAAoB,EAAEmC,MAAM,CAAC;IAC/C,IAAI,CAAC5C,MAAM,CAACS,KAAK,CAAC,gBAAgB,EAAEY,QAAQ,CAAC;IAE7C,OAAO;MAAElB,EAAE,EAAE6D,MAAM,CAAC7D,EAAE;MAAEiB,YAAY,EAAEwB,MAAM;MAAEvB;IAAS,CAAC;EAC1D;EAEQkC,0BAA0BA,CAACpD,EAAU,EAAEyI,kBAA2B,EAAW;IACnF,OAAOC,OAAO,CAAC,IAAI,CAAChH,kBAAkB,CAAC1B,EAAE,CAAC,CAAC,IAAI,IAAI,CAACC,eAAe,CAACW,QAAQ,CAAC,GAAGZ,EAAE,IAAIyI,kBAAkB,EAAE,CAAC;EAC7G;EAEQ/G,kBAAkBA,CAAC1B,EAAU,EAA2B;IAC9D,OAAO,IAAI,CAACV,YAAY,CAACsF,IAAI,CAAEgB,CAAC,IAAKA,CAAC,CAACjE,sBAAsB,CAAC,CAAC,KAAK3B,EAAE,CAAC;EACzE;EAEQuI,KAAKA,CAACvI,EAAU,EAAE;IACxB,OAAOA,EAAE,KAAK,IAAI,CAAC0C,UAAU,CAAC1C,EAAE,IAAIA,EAAE,KAAK,IAAI,CAAC2C,QAAQ,CAAC3C,EAAE;EAC7D;EAEQoB,SAASA,CAACe,GAAuB,EAA0B;IACjE,IAAIA,GAAG,CAACwG,SAAS,KAAK,GAAG,EAAE,OAAOxG,GAAG,CAACwG,SAAS;IAC/C,OAAO,IAAAC,cAAI,EAACzG,GAAG,CAACwG,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;EAC5C;EAEQ1E,SAASA,CAACxB,MAAM,EAAwB;IAC9C,IAAI,CAACA,MAAM,CAAC6B,MAAM,EAAE,OAAO,EAAE;IAC7B,OAAOuE,mCAAa,CAACC,gBAAgB,CAACrG,MAAM,CAAC6B,MAAM,CAAC,CAACyE,OAAO;EAC9D;AACF;AAAC7J,OAAA,CAAAC,qBAAA,GAAAA,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_semver","data","_interopRequireDefault","require","_builder","_componentVersion","_dependencyResolver","_envs","_lodash","_configMergeResult","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","conflictIndicator","exports","ComponentConfigMerger","constructor","compIdStr","workspaceIds","otherLane","currentAspects","baseAspects","otherAspects","currentLabel","otherLabel","logger","mergeStrategy","BuilderAspect","id","otherLaneIdsStr","toComponentIds","map","toString","merge","debug","populateEnvs","results","currentExt","stringId","handledExtIds","includes","baseExt","findExtension","otherExt","mergePerStrategy","mergedConfig","conflict","currentConfig","getConfig","otherConfig","otherAspectsNotHandledResults","extensionId","hasVersion","idFromWorkspace","getIdFromWorkspace","toStringWithoutVersion","existingExt","_legacy","envResult","envStrategy","ConfigMergeResult","compact","getEnvId","ext","envsAspect","findCoreExtension","EnvsAspect","Error","env","config","currentEnv","otherEnv","baseEnv","undefined","currentEnvAspect","version","otherEnvAspect","baseEnvAspect","mergeStrategyParams","baseConfig","isIdInWorkspaceOrOtherLane","basicConfigMerge","areConfigsEqual","configA","configB","JSON","stringify","depResolverResult","depResolverStrategy","params","DependencyResolverAspect","trace","currentConfigPolicy","getPolicy","otherConfigPolicy","baseConfigPolicy","getAllDeps","dependencies","policy","d","idWithoutVersion","__type","split","existingPolicy","find","p","dependencyId","getPolicyVer","getDataPolicy","getAutoDeps","allDeps","source","currentAutoData","currentAllData","currentDataPolicy","otherData","currentAndOtherData","uniqBy","concat","currentAndOtherComponentsData","c","baseData","getCompIdStrByPkgNameFromData","pkgName","found","packageName","getFromCurrentDataByPackageName","getFromCurrentDataPolicyByPackageName","mergedPolicy","devDependencies","peerDependencies","conflictedPolicy","hasConflict","lifecycleToDepType","runtime","dev","peer","handleConfigMerge","addVariantPolicyEntryToPolicy","dep","fromCurrentData","force","isHash","semver","satisfies","fromCurrentDataPolicy","depType","lifecycleType","name","currentAndOtherConfig","currentDep","otherDep","baseDep","currentVer","otherVer","baseVer","hasConfigForDep","depName","getDepIdAsPkgName","addSerializedDepToPolicy","lifecycle","join","depData","isEnv","currentId","versionOnOtherLane","Boolean","rawConfig","omit","VariantPolicy","fromConfigObject","entries"],"sources":["component-config-merger.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport semver from 'semver';\nimport { Logger } from '@teambit/logger';\nimport { BuilderAspect } from '@teambit/builder';\nimport { isHash } from '@teambit/component-version';\nimport {\n DependencyResolverAspect,\n SerializedDependency,\n VariantPolicy,\n VariantPolicyEntry,\n} from '@teambit/dependency-resolver';\nimport { Lane } from '@teambit/legacy/dist/scope/models';\nimport { EnvsAspect } from '@teambit/envs';\nimport { ExtensionDataEntry, ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { MergeStrategy } from '@teambit/merging';\nimport { compact, omit, uniqBy } from 'lodash';\nimport { ConfigMergeResult } from './config-merge-result';\n\nexport type GenericConfigOrRemoved = Record<string, any> | '-';\n\ntype EnvData = { id: string; version?: string; config?: GenericConfigOrRemoved };\n\ntype SerializedDependencyWithPolicy = SerializedDependency & { policy?: string; packageName?: string };\n\nexport const conflictIndicator = 'CONFLICT::';\n\nexport type MergeStrategyResult = {\n id: string;\n mergedConfig?: GenericConfigOrRemoved;\n conflict?: Record<string, any>;\n};\ntype MergeStrategyParamsWithRemoved = {\n id: string;\n currentConfig: GenericConfigOrRemoved;\n otherConfig: GenericConfigOrRemoved;\n baseConfig?: GenericConfigOrRemoved;\n};\ntype MergeStrategyParams = {\n id: string;\n currentExt: ExtensionDataEntry;\n otherExt: ExtensionDataEntry;\n baseExt?: ExtensionDataEntry;\n};\n\n/**\n * perform 3-way merge of component configuration (aspects).\n * normally this is needed when merging one lane into another. the component may have different aspects config in each lane.\n * the baseAspects are the aspects of the component in the diversion point (the common ancestor of the two lanes).\n * the currentAspects are the aspects of the component in the current lane.\n * the otherAspects are the aspects of the component in the other lane. this is the lane we merge into the current lane.\n *\n * the basic merging strategy is a simple comparison between the aspect-configs, if they're different, we have a conflict.\n * we have two special cases:\n *\n * 1. dependency-resolver: we do a deeper check for the policy, we compare each dependency separately. also, we take\n * into account not only the config, but also the data. this is needed because some dependencies are automatically\n * added by Bit (from the import statements in the code) and they're not in the config. the final config has the deps\n * from both sources, the config and the data. The way we know to differentiate between them is by the \"force\" prop.\n * the config has always force: true.\n *\n * 2. envs: if we don't treat it specially, the user will need to make the change not only in the envs aspect, but also\n * in the deps-resolver (because the env is added as a devDependency) and also in the aspect itself (because\n * teambit.envs/env has only the id and not the version). to make it simpler, we ignore the envs in the deps-resolver\n * we ignore the individual aspect that is the env itself. we only show teambit.envs/env and we put the env id and\n * version. later, when the component is loaded, we split the id and the version and put them in the correct places.\n * see workspace.componentExtension / adjustEnvsOnConfigMerge for more details.\n */\nexport class ComponentConfigMerger {\n private currentEnv: EnvData;\n private otherEnv: EnvData;\n private baseEnv?: EnvData;\n private handledExtIds: string[] = [BuilderAspect.id]; // don't try to merge builder, it's possible that at one end it wasn't built yet, so it's empty\n private otherLaneIdsStr: string[];\n constructor(\n private compIdStr: string,\n private workspaceIds: ComponentID[],\n otherLane: Lane | undefined,\n private currentAspects: ExtensionDataList,\n private baseAspects: ExtensionDataList,\n private otherAspects: ExtensionDataList,\n private currentLabel: string,\n private otherLabel: string,\n private logger: Logger,\n private mergeStrategy: MergeStrategy\n ) {\n this.otherLaneIdsStr = otherLane?.toComponentIds().map((id) => id.toString()) || [];\n }\n\n merge(): ConfigMergeResult {\n this.logger.debug(`\\n************** start config-merger for ${this.compIdStr} **************`);\n this.logger.debug(`currentLabel: ${this.currentLabel}`);\n this.logger.debug(`otherLabel: ${this.otherLabel}`);\n this.populateEnvs();\n const results = this.currentAspects.map((currentExt) => {\n const id = currentExt.stringId;\n if (this.handledExtIds.includes(id)) return null;\n this.handledExtIds.push(id);\n const baseExt = this.baseAspects.findExtension(id, true);\n const otherExt = this.otherAspects.findExtension(id, true);\n if (otherExt) {\n // try to 3-way-merge\n return this.mergePerStrategy({ id, currentExt, otherExt, baseExt });\n }\n // exist in current but not in other\n if (baseExt) {\n // was removed on other\n if (this.mergeStrategy === 'theirs') {\n return { id, mergedConfig: '-' } as MergeStrategyResult;\n }\n if (this.mergeStrategy === 'ours') {\n return null;\n }\n return { id, conflict: { currentConfig: this.getConfig(currentExt), otherConfig: '-' } };\n }\n // exist in current but not in other and base, so it got created on current. nothing to do.\n return null;\n });\n const otherAspectsNotHandledResults = this.otherAspects.map((otherExt) => {\n let id = otherExt.stringId;\n if (this.handledExtIds.includes(id)) return null;\n this.handledExtIds.push(id);\n if (otherExt.extensionId && otherExt.extensionId.hasVersion()) {\n // avoid using the id from the other lane if it exits in the workspace. prefer the id from the workspace.\n const idFromWorkspace = this.getIdFromWorkspace(otherExt.extensionId.toStringWithoutVersion());\n if (idFromWorkspace) {\n const existingExt = this.currentAspects.findExtension(otherExt.extensionId.toStringWithoutVersion(), true);\n if (existingExt) return null; // the aspect is set currently, no need to add it again.\n id = idFromWorkspace._legacy.toString();\n }\n }\n const baseExt = this.baseAspects.findExtension(id, true);\n if (baseExt) {\n // was removed on current\n return { id, conflict: { currentConfig: '-', otherConfig: this.getConfig(otherExt) } };\n }\n // exist in other but not in current and base, so it got created on other.\n return { id, mergedConfig: this.getConfig(otherExt) };\n });\n const envResult = this.envStrategy();\n this.logger.debug(`*** end config-merger for ${this.compIdStr} ***\\n`);\n return new ConfigMergeResult(\n this.compIdStr,\n this.currentLabel,\n this.otherLabel,\n compact([...results, ...otherAspectsNotHandledResults, envResult])\n );\n }\n\n private populateEnvs() {\n // populate ids\n const getEnvId = (ext: ExtensionDataList) => {\n const envsAspect = ext.findCoreExtension(EnvsAspect.id);\n if (!envsAspect) throw new Error(`unable to find ${EnvsAspect.id} aspect for ${this.compIdStr}`);\n const env = envsAspect.config.env || envsAspect.data.id;\n if (!env)\n throw new Error(`unable to find env for ${this.compIdStr}, the config and data of ${EnvsAspect.id} are empty}`);\n return env;\n };\n const currentEnv = getEnvId(this.currentAspects);\n this.currentEnv = { id: currentEnv };\n const otherEnv = getEnvId(this.otherAspects);\n this.otherEnv = { id: otherEnv };\n const baseEnv = this.baseAspects ? getEnvId(this.baseAspects) : undefined;\n if (baseEnv) this.baseEnv = { id: baseEnv };\n\n // populate version\n const currentEnvAspect = this.currentAspects.findExtension(currentEnv, true);\n if (currentEnvAspect) {\n this.handledExtIds.push(currentEnvAspect.stringId);\n this.currentEnv.version = currentEnvAspect.extensionId?.version;\n this.currentEnv.config = this.getConfig(currentEnvAspect);\n }\n const otherEnvAspect = this.otherAspects.findExtension(otherEnv, true);\n if (otherEnvAspect) {\n this.handledExtIds.push(otherEnvAspect.stringId);\n this.otherEnv.version = otherEnvAspect.extensionId?.version;\n this.otherEnv.config = this.getConfig(otherEnvAspect);\n }\n if (this.baseEnv) {\n const baseEnvAspect = this.baseAspects.findExtension(baseEnv, true);\n if (baseEnvAspect) {\n this.baseEnv.version = baseEnvAspect.extensionId?.version;\n this.baseEnv.config = this.getConfig(baseEnvAspect);\n }\n }\n }\n\n private envStrategy(): MergeStrategyResult | null {\n const mergeStrategyParams: MergeStrategyParamsWithRemoved = {\n id: EnvsAspect.id,\n currentConfig: {\n env: this.currentEnv.version ? `${this.currentEnv.id}@${this.currentEnv.version}` : this.currentEnv.id,\n },\n otherConfig: { env: this.otherEnv.version ? `${this.otherEnv.id}@${this.otherEnv.version}` : this.otherEnv.id },\n };\n if (this.baseEnv) {\n mergeStrategyParams.baseConfig = {\n env: this.baseEnv?.version ? `${this.baseEnv.id}@${this.baseEnv.version}` : this.baseEnv?.id,\n };\n }\n if (this.currentEnv.id === this.otherEnv.id && this.currentEnv.version === this.otherEnv.version) {\n return null;\n }\n if (this.isIdInWorkspaceOrOtherLane(this.currentEnv.id, this.otherEnv.version)) {\n // the env currently used is part of the workspace, that's what the user needs. don't try to resolve anything.\n return null;\n }\n return this.basicConfigMerge(mergeStrategyParams);\n }\n\n private areConfigsEqual(configA: GenericConfigOrRemoved, configB: GenericConfigOrRemoved) {\n return JSON.stringify(configA) === JSON.stringify(configB);\n }\n\n private mergePerStrategy(mergeStrategyParams: MergeStrategyParams): MergeStrategyResult | null {\n const { id, currentExt, otherExt, baseExt } = mergeStrategyParams;\n const depResolverResult = this.depResolverStrategy(mergeStrategyParams);\n\n if (depResolverResult) {\n // if (depResolverResult.mergedConfig || depResolverResult?.conflict) console.log(\"\\n\\nDepResolverResult\", this.compIdStr, '\\n', JSON.stringify(depResolverResult, undefined, 2))\n return depResolverResult;\n }\n const currentConfig = this.getConfig(currentExt);\n const otherConfig = this.getConfig(otherExt);\n const baseConfig = baseExt ? this.getConfig(baseExt) : undefined;\n\n return this.basicConfigMerge({ id, currentConfig, otherConfig, baseConfig });\n }\n\n private basicConfigMerge(mergeStrategyParams: MergeStrategyParamsWithRemoved) {\n const { id, currentConfig, otherConfig, baseConfig } = mergeStrategyParams;\n if (this.areConfigsEqual(currentConfig, otherConfig)) {\n return null;\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, otherConfig)) {\n // was changed on current\n return null;\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, currentConfig)) {\n // was changed on other\n return { id, mergedConfig: otherConfig };\n }\n // either no baseConfig, or baseConfig is also different from both: other and local. that's a conflict.\n if (this.mergeStrategy === 'theirs') {\n return { id, mergedConfig: otherConfig };\n }\n if (this.mergeStrategy === 'ours') {\n return null;\n }\n return { id, conflict: { currentConfig, otherConfig, baseConfig } };\n }\n\n private depResolverStrategy(params: MergeStrategyParams): MergeStrategyResult | undefined {\n if (params.id !== DependencyResolverAspect.id) return undefined;\n this.logger.trace(`start depResolverStrategy for ${this.compIdStr}`);\n const { currentExt, otherExt, baseExt } = params;\n\n const currentConfig = this.getConfig(currentExt);\n const currentConfigPolicy = this.getPolicy(currentConfig);\n const otherConfig = this.getConfig(otherExt);\n const otherConfigPolicy = this.getPolicy(otherConfig);\n\n const baseConfig = baseExt ? this.getConfig(baseExt) : undefined;\n const baseConfigPolicy = baseConfig ? this.getPolicy(baseConfig) : undefined;\n\n this.logger.debug(`currentConfig, ${JSON.stringify(currentConfig, undefined, 2)}`);\n this.logger.debug(`otherConfig, ${JSON.stringify(otherConfig, undefined, 2)}`);\n this.logger.debug(`baseConfig, ${JSON.stringify(baseConfig, undefined, 2)}`);\n\n const getAllDeps = (ext: ExtensionDataList): SerializedDependencyWithPolicy[] => {\n const data = ext.findCoreExtension(DependencyResolverAspect.id)?.data.dependencies;\n if (!data) return [];\n const policy = ext.findCoreExtension(DependencyResolverAspect.id)?.data.policy || [];\n return data.map((d) => {\n const idWithoutVersion = d.__type === 'package' ? d.id : d.id.split('@')[0];\n const existingPolicy = policy.find((p) => p.dependencyId === idWithoutVersion);\n const getPolicyVer = () => {\n if (d.__type === 'package') return undefined; // for packages, the policy is already the version\n if (existingPolicy) return existingPolicy.value.version; // currently it's missing, will be implemented by @Gilad\n return d.version;\n // if (!semver.valid(d.version)) return d.version; // could be a hash\n // // default to `^` or ~ if starts with zero, until we save the policy from the workspace during tag/snap.\n // return d.version.startsWith('0.') ? `~${d.version}` : `^${d.version}`;\n };\n return {\n ...d,\n id: idWithoutVersion,\n policy: getPolicyVer(),\n };\n });\n };\n const getDataPolicy = (ext: ExtensionDataList): VariantPolicyEntry[] => {\n return ext.findCoreExtension(DependencyResolverAspect.id)?.data.policy || [];\n };\n\n const getAutoDeps = (ext: ExtensionDataList): SerializedDependencyWithPolicy[] => {\n const allDeps = getAllDeps(ext);\n return allDeps.filter((d) => d.source === 'auto');\n };\n\n const currentAutoData = getAutoDeps(this.currentAspects);\n const currentAllData = getAllDeps(this.currentAspects);\n const currentDataPolicy = getDataPolicy(this.currentAspects);\n const otherData = getAutoDeps(this.otherAspects);\n const currentAndOtherData = uniqBy(currentAutoData.concat(otherData), (d) => d.id);\n const currentAndOtherComponentsData = currentAndOtherData.filter((c) => c.__type === 'component');\n const baseData = getAutoDeps(this.baseAspects);\n\n const getCompIdStrByPkgNameFromData = (pkgName: string): string | undefined => {\n const found = currentAndOtherComponentsData.find((d) => d.packageName === pkgName);\n return found?.id;\n };\n\n const getFromCurrentDataByPackageName = (pkgName: string) => {\n return currentAllData.find((d) => {\n if (d.__type === 'package') return d.id === pkgName;\n return d.packageName === pkgName;\n });\n };\n\n const getFromCurrentDataPolicyByPackageName = (pkgName: string) => {\n return currentDataPolicy.find((d) => d.dependencyId === pkgName);\n };\n\n const mergedPolicy = {\n dependencies: [],\n devDependencies: [],\n peerDependencies: [],\n };\n const conflictedPolicy = {\n dependencies: [],\n devDependencies: [],\n peerDependencies: [],\n };\n let hasConflict = false;\n const lifecycleToDepType = {\n runtime: 'dependencies',\n dev: 'devDependencies',\n peer: 'peerDependencies',\n };\n const handleConfigMerge = () => {\n const addVariantPolicyEntryToPolicy = (dep: VariantPolicyEntry) => {\n const compIdStr = getCompIdStrByPkgNameFromData(dep.dependencyId);\n if (compIdStr && this.isIdInWorkspaceOrOtherLane(compIdStr, dep.value.version)) {\n // no need to add if the id exists in the workspace (regardless the version)\n return;\n }\n const fromCurrentData = getFromCurrentDataByPackageName(dep.dependencyId);\n if (fromCurrentData && !dep.force) {\n if (fromCurrentData.version === dep.value.version) return;\n if (\n !isHash(fromCurrentData.version) &&\n !isHash(dep.value.version) &&\n semver.satisfies(fromCurrentData.version, dep.value.version)\n ) {\n return;\n }\n }\n const fromCurrentDataPolicy = getFromCurrentDataPolicyByPackageName(dep.dependencyId);\n if (fromCurrentDataPolicy && fromCurrentDataPolicy.value.version === dep.value.version) {\n // -- updated comment --\n // not sure why this block is needed. this gets called also from this if: `if (baseConfig && this.areConfigsEqual(baseConfig, currentConfig)) {`\n // and in this case, it's possible that current/base has 5 deps, and other just added one and it has 6.\n // in which case, we do need to add all these 5 in additional to the new one. otherwise, only the new one appears in the final\n // merged object, and all the 5 deps are lost.\n // --- previous comment ---\n // that's a bug. if it's in the data.policy, it should be in data.dependencies.\n // return;\n }\n const depType = lifecycleToDepType[dep.lifecycleType];\n mergedPolicy[depType].push({\n name: dep.dependencyId,\n version: dep.value.version,\n force: dep.force,\n });\n };\n\n if (this.areConfigsEqual(currentConfig, otherConfig)) {\n return;\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, otherConfig)) {\n // was changed on current\n return;\n }\n if (currentConfig === '-' || otherConfig === '-') {\n throw new Error('not implemented. Is it possible to have it as minus?');\n }\n if (baseConfig && this.areConfigsEqual(baseConfig, currentConfig)) {\n // was changed on other\n if (otherConfigPolicy.length) {\n otherConfigPolicy.forEach((dep) => {\n addVariantPolicyEntryToPolicy(dep);\n });\n }\n return;\n }\n\n // either no baseConfig, or baseConfig is also different from both: other and local. that's a conflict.\n if (!currentConfig.policy && !otherConfig.policy) return;\n const currentAndOtherConfig = uniqBy(currentConfigPolicy.concat(otherConfigPolicy), (d) => d.dependencyId);\n currentAndOtherConfig.forEach((dep) => {\n const depType = lifecycleToDepType[dep.lifecycleType];\n const currentDep = currentConfigPolicy.find((d) => d.dependencyId === dep.dependencyId);\n const otherDep = otherConfigPolicy.find((d) => d.dependencyId === dep.dependencyId);\n const baseDep = baseConfigPolicy?.find((d) => d.dependencyId === dep.dependencyId);\n\n if (!otherDep) {\n return;\n }\n if (!currentDep) {\n // only on other\n addVariantPolicyEntryToPolicy(otherDep);\n return;\n }\n const currentVer = currentDep.value.version;\n const otherVer = otherDep.value.version;\n if (currentVer === otherVer) {\n return;\n }\n const baseVer = baseDep?.value.version;\n if (baseVer && baseVer === otherVer) {\n return;\n }\n if (baseVer && baseVer === currentVer) {\n addVariantPolicyEntryToPolicy(otherDep);\n return;\n }\n const compIdStr = getCompIdStrByPkgNameFromData(dep.dependencyId);\n if (compIdStr && this.isIdInWorkspaceOrOtherLane(compIdStr, otherVer)) {\n // no need to add if the id exists in the workspace (regardless the version)\n return;\n }\n if (this.mergeStrategy === 'theirs') {\n addVariantPolicyEntryToPolicy(otherDep);\n return;\n }\n if (this.mergeStrategy === 'ours') {\n return;\n }\n\n hasConflict = true;\n conflictedPolicy[depType].push({\n name: currentDep.dependencyId,\n version: `${conflictIndicator}${currentVer}::${otherVer}::`,\n force: currentDep.force,\n });\n });\n };\n\n handleConfigMerge();\n\n const hasConfigForDep = (depType: string, depName: string) => mergedPolicy[depType].find((d) => d.name === depName);\n const getDepIdAsPkgName = (dep: SerializedDependencyWithPolicy) => {\n if (dep.__type !== 'component') {\n return dep.id;\n }\n // @ts-ignore\n return dep.packageName;\n };\n\n const addSerializedDepToPolicy = (dep: SerializedDependencyWithPolicy) => {\n const depType = lifecycleToDepType[dep.lifecycle];\n if (dep.__type === 'component' && this.isIdInWorkspaceOrOtherLane(dep.id, dep.version)) {\n return;\n }\n if (hasConfigForDep(depType, dep.id)) {\n return; // there is already config for it.\n }\n mergedPolicy[depType].push({\n name: getDepIdAsPkgName(dep),\n version: dep.policy || dep.version,\n force: false,\n });\n };\n\n this.logger.debug(\n `currentData, ${currentAllData.length}\\n${currentAllData\n .map((d) => `${d.__type} ${d.id} ${d.version}`)\n .join('\\n')}`\n );\n this.logger.debug(\n `otherData, ${otherData.length}\\n${otherData.map((d) => `${d.__type} ${d.id} ${d.version}`).join('\\n')}`\n );\n this.logger.debug(\n `baseData, ${baseData.length}\\n${baseData.map((d) => `${d.__type} ${d.id} ${d.version}`).join('\\n')}`\n );\n\n // eslint-disable-next-line complexity\n currentAndOtherData.forEach((depData) => {\n this.logger.trace(`depData.id, ${depData.id}`);\n if (this.isEnv(depData.id)) {\n // ignore the envs\n return;\n }\n const currentDep = currentAllData.find((d) => d.id === depData.id);\n const otherDep = otherData.find((d) => d.id === depData.id);\n const baseDep = baseData.find((d) => d.id === depData.id);\n\n this.logger.trace(`currentDep`, currentDep);\n this.logger.trace(`otherDep`, otherDep);\n this.logger.trace(`baseDep`, baseDep);\n if (!otherDep) {\n return;\n }\n if (!currentDep) {\n if (baseDep) {\n // exists in other and base, so it was removed from current\n return;\n }\n // only on other\n addSerializedDepToPolicy(otherDep);\n return;\n }\n\n if (currentDep.policy && otherDep.policy) {\n if (semver.satisfies(currentDep.version, otherDep.policy)) {\n return;\n }\n if (semver.satisfies(otherDep.version, currentDep.policy)) {\n return;\n }\n }\n\n const currentVer = currentDep.policy || currentDep.version;\n const otherVer = otherDep.policy || otherDep.version;\n if (currentVer === otherVer) {\n return;\n }\n const baseVer = baseDep?.policy || baseDep?.version;\n if (baseVer && baseVer === otherVer) {\n return;\n }\n const currentId = currentDep.id;\n if (currentDep.__type === 'component' && this.isIdInWorkspaceOrOtherLane(currentId, otherDep.version)) {\n // dependencies that exist in the workspace, should be ignored. they'll be resolved later to the version in the ws.\n return;\n }\n const depType = lifecycleToDepType[currentDep.lifecycle];\n if (hasConfigForDep(depType, currentDep.id)) {\n return; // there is already config for it.\n }\n if (baseVer && baseVer === currentVer) {\n addSerializedDepToPolicy(otherDep);\n return;\n }\n if (this.mergeStrategy === 'theirs') {\n addSerializedDepToPolicy(otherDep);\n return;\n }\n if (this.mergeStrategy === 'ours') {\n return;\n }\n hasConflict = true;\n conflictedPolicy[depType].push({\n name: getDepIdAsPkgName(currentDep),\n version: `${conflictIndicator}${currentVer}::${otherVer}::`,\n force: false,\n });\n });\n\n ['dependencies', 'devDependencies', 'peerDependencies'].forEach((depType) => {\n if (!mergedPolicy[depType].length) delete mergedPolicy[depType];\n if (!conflictedPolicy[depType].length) delete conflictedPolicy[depType];\n });\n\n const config = Object.keys(mergedPolicy).length ? { policy: mergedPolicy } : undefined;\n const conflict = hasConflict ? conflictedPolicy : undefined;\n\n this.logger.debug('final mergedConfig', config);\n this.logger.debug('final conflict', conflict);\n\n return { id: params.id, mergedConfig: config, conflict };\n }\n\n private isIdInWorkspaceOrOtherLane(id: string, versionOnOtherLane?: string): boolean {\n return Boolean(this.getIdFromWorkspace(id)) || this.otherLaneIdsStr.includes(`${id}@${versionOnOtherLane}`);\n }\n\n private getIdFromWorkspace(id: string): ComponentID | undefined {\n return this.workspaceIds.find((c) => c.toStringWithoutVersion() === id);\n }\n\n private isEnv(id: string) {\n return id === this.currentEnv.id || id === this.otherEnv.id;\n }\n\n private getConfig(ext: ExtensionDataEntry): GenericConfigOrRemoved {\n if (ext.rawConfig === '-') return ext.rawConfig;\n return omit(ext.rawConfig, ['__specific']);\n }\n\n private getPolicy(config): VariantPolicyEntry[] {\n if (!config.policy) return [];\n return VariantPolicy.fromConfigObject(config.policy).entries;\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/config-merger",
3
- "version": "0.0.286",
3
+ "version": "0.0.288",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/config-merger",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "config-merger",
9
- "version": "0.0.286"
9
+ "version": "0.0.288"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -17,21 +17,21 @@
17
17
  "@teambit/component-version": "1.0.3",
18
18
  "@teambit/harmony": "0.4.6",
19
19
  "@teambit/bit-error": "0.0.404",
20
- "@teambit/builder": "1.0.419",
21
- "@teambit/dependency-resolver": "1.0.419",
22
- "@teambit/envs": "1.0.419",
23
- "@teambit/logger": "0.0.1089",
24
- "@teambit/merging": "1.0.419",
25
- "@teambit/cli": "0.0.996",
20
+ "@teambit/builder": "1.0.421",
21
+ "@teambit/dependency-resolver": "1.0.421",
22
+ "@teambit/envs": "1.0.421",
23
+ "@teambit/logger": "0.0.1091",
24
+ "@teambit/merging": "1.0.421",
25
+ "@teambit/cli": "0.0.998",
26
26
  "@teambit/component-package-version": "0.0.434",
27
- "@teambit/config": "0.0.1170",
28
- "@teambit/workspace": "1.0.419"
27
+ "@teambit/config": "0.0.1172",
28
+ "@teambit/workspace": "1.0.421"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/lodash": "4.14.165",
32
32
  "@types/semver": "7.3.4",
33
33
  "@types/fs-extra": "9.0.7",
34
- "@teambit/harmony.envs.core-aspect-env": "0.0.59"
34
+ "@teambit/harmony.envs.core-aspect-env": "0.0.60"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@teambit/legacy": "1.0.750"