@monorepolint/rules 0.6.0-alpha.2 → 0.6.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.turbo/turbo-clean.log +1 -1
  2. package/.turbo/turbo-compile-typescript.log +1 -1
  3. package/.turbo/turbo-lint.log +1 -1
  4. package/.turbo/turbo-test.log +160 -100
  5. package/.turbo/turbo-transpile-typescript.log +4 -4
  6. package/CHANGELOG.md +9 -0
  7. package/build/js/index.js +399 -246
  8. package/build/js/index.js.map +1 -1
  9. package/build/tsconfig.tsbuildinfo +1 -1
  10. package/build/types/__tests__/utils.d.ts +0 -1
  11. package/build/types/__tests__/utils.d.ts.map +1 -1
  12. package/build/types/bannedDependencies.d.ts.map +1 -1
  13. package/build/types/fileContents.d.ts.map +1 -1
  14. package/build/types/index.d.ts +3 -3
  15. package/build/types/index.d.ts.map +1 -1
  16. package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -1
  17. package/build/types/nestedWorkspaces.d.ts.map +1 -1
  18. package/build/types/packageEntry.d.ts.map +1 -1
  19. package/build/types/packageOrder.d.ts.map +1 -1
  20. package/build/types/packageScript.d.ts.map +1 -1
  21. package/build/types/requireDependency.d.ts +12 -12
  22. package/build/types/requireDependency.d.ts.map +1 -1
  23. package/build/types/util/checkAlpha.d.ts.map +1 -1
  24. package/build/types/util/createRuleFactory.d.ts.map +1 -1
  25. package/build/types/util/packageDependencyGraphService.d.ts.map +1 -1
  26. package/coverage/clover.xml +1159 -818
  27. package/coverage/coverage-final.json +18 -18
  28. package/coverage/index.html +20 -20
  29. package/coverage/src/alphabeticalDependencies.ts.html +8 -8
  30. package/coverage/src/alphabeticalScripts.ts.html +5 -5
  31. package/coverage/src/bannedDependencies.ts.html +77 -26
  32. package/coverage/src/consistentDependencies.ts.html +58 -19
  33. package/coverage/src/consistentVersions.ts.html +169 -58
  34. package/coverage/src/fileContents.ts.html +47 -23
  35. package/coverage/src/index.html +67 -67
  36. package/coverage/src/index.ts.html +32 -32
  37. package/coverage/src/mustSatisfyPeerDependencies.ts.html +373 -85
  38. package/coverage/src/nestedWorkspaces.ts.html +59 -20
  39. package/coverage/src/packageEntry.ts.html +40 -19
  40. package/coverage/src/packageOrder.ts.html +30 -12
  41. package/coverage/src/packageScript.ts.html +81 -27
  42. package/coverage/src/requireDependency.ts.html +83 -32
  43. package/coverage/src/standardTsconfig.ts.html +81 -18
  44. package/coverage/src/util/checkAlpha.ts.html +18 -9
  45. package/coverage/src/util/createRuleFactory.ts.html +16 -4
  46. package/coverage/src/util/index.html +17 -17
  47. package/coverage/src/util/makeDirectory.ts.html +5 -5
  48. package/coverage/src/util/packageDependencyGraphService.ts.html +101 -20
  49. package/package.json +4 -5
  50. package/src/__tests__/alphabeticalScripts.spec.ts +12 -4
  51. package/src/__tests__/bannedDependencies.spec.ts +45 -16
  52. package/src/__tests__/consistentDependencies.spec.ts +11 -5
  53. package/src/__tests__/consistentVersions.spec.ts +72 -18
  54. package/src/__tests__/fileContents.spec.ts +9 -5
  55. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +191 -76
  56. package/src/__tests__/nestedWorkspaces.spec.ts +10 -6
  57. package/src/__tests__/packageEntry.spec.ts +54 -48
  58. package/src/__tests__/packageOrder.spec.ts +77 -71
  59. package/src/__tests__/packageScript.spec.ts +25 -11
  60. package/src/__tests__/requireDependency.spec.ts +12 -6
  61. package/src/__tests__/utils.ts +16 -7
  62. package/src/bannedDependencies.ts +32 -15
  63. package/src/consistentDependencies.ts +22 -9
  64. package/src/consistentVersions.ts +84 -47
  65. package/src/fileContents.ts +19 -11
  66. package/src/index.ts +3 -3
  67. package/src/mustSatisfyPeerDependencies.ts +162 -66
  68. package/src/nestedWorkspaces.ts +23 -10
  69. package/src/packageEntry.ts +18 -11
  70. package/src/packageOrder.ts +9 -3
  71. package/src/packageScript.ts +37 -19
  72. package/src/requireDependency.ts +28 -11
  73. package/src/standardTsconfig.ts +31 -10
  74. package/src/util/checkAlpha.ts +5 -2
  75. package/src/util/createRuleFactory.ts +6 -2
  76. package/src/util/packageDependencyGraphService.ts +41 -14
  77. package/vitest.config.mjs +10 -7
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.66% </span>
26
+ <span class="strong">94.39% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>479/506</span>
28
+ <span class='fraction'>573/607</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.66% </span>
47
+ <span class="strong">94.39% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>479/506</span>
49
+ <span class='fraction'>573/607</span>
50
50
  </div>
51
51
 
52
52
 
@@ -807,13 +807,103 @@
807
807
  <a name='L742'></a><a href='#L742'>742</a>
808
808
  <a name='L743'></a><a href='#L743'>743</a>
809
809
  <a name='L744'></a><a href='#L744'>744</a>
810
- <a name='L745'></a><a href='#L745'>745</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
811
- <span class="cline-any cline-neutral">&nbsp;</span>
812
- <span class="cline-any cline-neutral">&nbsp;</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-neutral">&nbsp;</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
817
907
  <span class="cline-any cline-neutral">&nbsp;</span>
818
908
  <span class="cline-any cline-neutral">&nbsp;</span>
819
909
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -821,6 +911,12 @@
821
911
  <span class="cline-any cline-neutral">&nbsp;</span>
822
912
  <span class="cline-any cline-neutral">&nbsp;</span>
823
913
  <span class="cline-any cline-neutral">&nbsp;</span>
914
+ <span class="cline-any cline-yes">1x</span>
915
+ <span class="cline-any cline-yes">1x</span>
916
+ <span class="cline-any cline-yes">1x</span>
917
+ <span class="cline-any cline-yes">1x</span>
918
+ <span class="cline-any cline-yes">1x</span>
919
+ <span class="cline-any cline-yes">1x</span>
824
920
  <span class="cline-any cline-neutral">&nbsp;</span>
825
921
  <span class="cline-any cline-yes">1x</span>
826
922
  <span class="cline-any cline-yes">1x</span>
@@ -1086,9 +1182,24 @@
1086
1182
  <span class="cline-any cline-yes">14x</span>
1087
1183
  <span class="cline-any cline-yes">14x</span>
1088
1184
  <span class="cline-any cline-yes">14x</span>
1185
+ <span class="cline-any cline-yes">14x</span>
1186
+ <span class="cline-any cline-yes">14x</span>
1187
+ <span class="cline-any cline-yes">14x</span>
1188
+ <span class="cline-any cline-yes">14x</span>
1189
+ <span class="cline-any cline-yes">14x</span>
1089
1190
  <span class="cline-any cline-neutral">&nbsp;</span>
1090
1191
  <span class="cline-any cline-neutral">&nbsp;</span>
1091
1192
  <span class="cline-any cline-yes">14x</span>
1193
+ <span class="cline-any cline-yes">14x</span>
1194
+ <span class="cline-any cline-yes">14x</span>
1195
+ <span class="cline-any cline-yes">14x</span>
1196
+ <span class="cline-any cline-yes">14x</span>
1197
+ <span class="cline-any cline-yes">18x</span>
1198
+ <span class="cline-any cline-yes">18x</span>
1199
+ <span class="cline-any cline-yes">18x</span>
1200
+ <span class="cline-any cline-yes">18x</span>
1201
+ <span class="cline-any cline-yes">18x</span>
1202
+ <span class="cline-any cline-yes">18x</span>
1092
1203
  <span class="cline-any cline-yes">18x</span>
1093
1204
  <span class="cline-any cline-yes">4x</span>
1094
1205
  <span class="cline-any cline-yes">4x</span>
@@ -1107,22 +1218,44 @@
1107
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
1108
1219
  <span class="cline-any cline-yes">14x</span>
1109
1220
  <span class="cline-any cline-neutral">&nbsp;</span>
1221
+ <span class="cline-any cline-yes">14x</span>
1222
+ <span class="cline-any cline-neutral">&nbsp;</span>
1110
1223
  <span class="cline-any cline-neutral">&nbsp;</span>
1111
1224
  <span class="cline-any cline-yes">14x</span>
1112
1225
  <span class="cline-any cline-yes">4x</span>
1226
+ <span class="cline-any cline-yes">4x</span>
1227
+ <span class="cline-any cline-yes">4x</span>
1228
+ <span class="cline-any cline-yes">4x</span>
1113
1229
  <span class="cline-any cline-yes">10x</span>
1114
1230
  <span class="cline-any cline-yes">14x</span>
1115
1231
  <span class="cline-any cline-yes">38x</span>
1116
1232
  <span class="cline-any cline-yes">38x</span>
1233
+ <span class="cline-any cline-yes">38x</span>
1234
+ <span class="cline-any cline-yes">38x</span>
1235
+ <span class="cline-any cline-yes">38x</span>
1236
+ <span class="cline-any cline-no">&nbsp;</span>
1117
1237
  <span class="cline-any cline-no">&nbsp;</span>
1118
1238
  <span class="cline-any cline-no">&nbsp;</span>
1239
+ <span class="cline-any cline-no">&nbsp;</span>
1240
+ <span class="cline-any cline-yes">38x</span>
1241
+ <span class="cline-any cline-yes">38x</span>
1119
1242
  <span class="cline-any cline-yes">38x</span>
1120
1243
  <span class="cline-any cline-yes">38x</span>
1121
1244
  <span class="cline-any cline-yes">38x</span>
1122
1245
  <span class="cline-any cline-yes">8x</span>
1123
1246
  <span class="cline-any cline-yes">8x</span>
1247
+ <span class="cline-any cline-yes">30x</span>
1248
+ <span class="cline-any cline-yes">30x</span>
1249
+ <span class="cline-any cline-yes">30x</span>
1250
+ <span class="cline-any cline-yes">30x</span>
1124
1251
  <span class="cline-any cline-yes">38x</span>
1125
1252
  <span class="cline-any cline-yes">32x</span>
1253
+ <span class="cline-any cline-yes">32x</span>
1254
+ <span class="cline-any cline-yes">32x</span>
1255
+ <span class="cline-any cline-yes">32x</span>
1256
+ <span class="cline-any cline-yes">32x</span>
1257
+ <span class="cline-any cline-yes">32x</span>
1258
+ <span class="cline-any cline-yes">32x</span>
1126
1259
  <span class="cline-any cline-yes">6x</span>
1127
1260
  <span class="cline-any cline-yes">6x</span>
1128
1261
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1134,14 +1267,22 @@
1134
1267
  <span class="cline-any cline-no">&nbsp;</span>
1135
1268
  <span class="cline-any cline-no">&nbsp;</span>
1136
1269
  <span class="cline-any cline-no">&nbsp;</span>
1270
+ <span class="cline-any cline-no">&nbsp;</span>
1137
1271
  <span class="cline-any cline-yes">32x</span>
1138
1272
  <span class="cline-any cline-yes">13x</span>
1139
1273
  <span class="cline-any cline-yes">13x</span>
1140
1274
  <span class="cline-any cline-yes">26x</span>
1141
1275
  <span class="cline-any cline-yes">26x</span>
1276
+ <span class="cline-any cline-yes">26x</span>
1277
+ <span class="cline-any cline-yes">26x</span>
1278
+ <span class="cline-any cline-yes">26x</span>
1142
1279
  <span class="cline-any cline-yes">30x</span>
1143
1280
  <span class="cline-any cline-neutral">&nbsp;</span>
1144
1281
  <span class="cline-any cline-yes">14x</span>
1282
+ <span class="cline-any cline-yes">14x</span>
1283
+ <span class="cline-any cline-yes">14x</span>
1284
+ <span class="cline-any cline-yes">14x</span>
1285
+ <span class="cline-any cline-yes">14x</span>
1145
1286
  <span class="cline-any cline-neutral">&nbsp;</span>
1146
1287
  <span class="cline-any cline-yes">13x</span>
1147
1288
  <span class="cline-any cline-yes">13x</span>
@@ -1149,6 +1290,10 @@
1149
1290
  <span class="cline-any cline-yes">13x</span>
1150
1291
  <span class="cline-any cline-yes">13x</span>
1151
1292
  <span class="cline-any cline-yes">26x</span>
1293
+ <span class="cline-any cline-yes">26x</span>
1294
+ <span class="cline-any cline-yes">26x</span>
1295
+ <span class="cline-any cline-yes">13x</span>
1296
+ <span class="cline-any cline-yes">13x</span>
1152
1297
  <span class="cline-any cline-yes">13x</span>
1153
1298
  <span class="cline-any cline-yes">13x</span>
1154
1299
  <span class="cline-any cline-yes">6x</span>
@@ -1158,6 +1303,9 @@
1158
1303
  <span class="cline-any cline-yes">13x</span>
1159
1304
  <span class="cline-any cline-yes">7x</span>
1160
1305
  <span class="cline-any cline-yes">7x</span>
1306
+ <span class="cline-any cline-yes">7x</span>
1307
+ <span class="cline-any cline-yes">7x</span>
1308
+ <span class="cline-any cline-yes">7x</span>
1161
1309
  <span class="cline-any cline-yes">2x</span>
1162
1310
  <span class="cline-any cline-yes">2x</span>
1163
1311
  <span class="cline-any cline-yes">2x</span>
@@ -1188,6 +1336,9 @@
1188
1336
  <span class="cline-any cline-no">&nbsp;</span>
1189
1337
  <span class="cline-any cline-no">&nbsp;</span>
1190
1338
  <span class="cline-any cline-no">&nbsp;</span>
1339
+ <span class="cline-any cline-no">&nbsp;</span>
1340
+ <span class="cline-any cline-no">&nbsp;</span>
1341
+ <span class="cline-any cline-yes">4x</span>
1191
1342
  <span class="cline-any cline-yes">4x</span>
1192
1343
  <span class="cline-any cline-yes">2x</span>
1193
1344
  <span class="cline-any cline-yes">2x</span>
@@ -1202,6 +1353,7 @@
1202
1353
  <span class="cline-any cline-neutral">&nbsp;</span>
1203
1354
  <span class="cline-any cline-yes">13x</span>
1204
1355
  <span class="cline-any cline-yes">13x</span>
1356
+ <span class="cline-any cline-yes">13x</span>
1205
1357
  <span class="cline-any cline-yes">2x</span>
1206
1358
  <span class="cline-any cline-yes">2x</span>
1207
1359
  <span class="cline-any cline-yes">2x</span>
@@ -1227,6 +1379,12 @@
1227
1379
  <span class="cline-any cline-no">&nbsp;</span>
1228
1380
  <span class="cline-any cline-no">&nbsp;</span>
1229
1381
  <span class="cline-any cline-no">&nbsp;</span>
1382
+ <span class="cline-any cline-no">&nbsp;</span>
1383
+ <span class="cline-any cline-no">&nbsp;</span>
1384
+ <span class="cline-any cline-yes">9x</span>
1385
+ <span class="cline-any cline-yes">9x</span>
1386
+ <span class="cline-any cline-yes">9x</span>
1387
+ <span class="cline-any cline-yes">9x</span>
1230
1388
  <span class="cline-any cline-yes">9x</span>
1231
1389
  <span class="cline-any cline-yes">2x</span>
1232
1390
  <span class="cline-any cline-yes">2x</span>
@@ -1259,6 +1417,7 @@
1259
1417
  <span class="cline-any cline-yes">50x</span>
1260
1418
  <span class="cline-any cline-yes">50x</span>
1261
1419
  <span class="cline-any cline-yes">44x</span>
1420
+ <span class="cline-any cline-yes">9x</span>
1262
1421
  <span class="cline-any cline-yes">50x</span>
1263
1422
  <span class="cline-any cline-yes">10x</span>
1264
1423
  <span class="cline-any cline-yes">10x</span>
@@ -1267,14 +1426,24 @@
1267
1426
  <span class="cline-any cline-neutral">&nbsp;</span>
1268
1427
  <span class="cline-any cline-yes">11x</span>
1269
1428
  <span class="cline-any cline-yes">11x</span>
1429
+ <span class="cline-any cline-yes">11x</span>
1430
+ <span class="cline-any cline-yes">11x</span>
1431
+ <span class="cline-any cline-yes">10x</span>
1432
+ <span class="cline-any cline-yes">10x</span>
1270
1433
  <span class="cline-any cline-yes">10x</span>
1271
1434
  <span class="cline-any cline-yes">10x</span>
1272
1435
  <span class="cline-any cline-yes">11x</span>
1273
1436
  <span class="cline-any cline-yes">1x</span>
1274
1437
  <span class="cline-any cline-yes">1x</span>
1275
1438
  <span class="cline-any cline-yes">1x</span>
1439
+ <span class="cline-any cline-yes">2x</span>
1440
+ <span class="cline-any cline-yes">1x</span>
1441
+ <span class="cline-any cline-yes">1x</span>
1442
+ <span class="cline-any cline-yes">1x</span>
1276
1443
  <span class="cline-any cline-yes">1x</span>
1277
1444
  <span class="cline-any cline-yes">1x</span>
1445
+ <span class="cline-any cline-yes">2x</span>
1446
+ <span class="cline-any cline-yes">1x</span>
1278
1447
  <span class="cline-any cline-yes">1x</span>
1279
1448
  <span class="cline-any cline-yes">1x</span>
1280
1449
  <span class="cline-any cline-yes">1x</span>
@@ -1314,6 +1483,9 @@
1314
1483
  <span class="cline-any cline-neutral">&nbsp;</span>
1315
1484
  <span class="cline-any cline-yes">1x</span>
1316
1485
  <span class="cline-any cline-yes">69x</span>
1486
+ <span class="cline-any cline-yes">69x</span>
1487
+ <span class="cline-any cline-yes">69x</span>
1488
+ <span class="cline-any cline-yes">69x</span>
1317
1489
  <span class="cline-any cline-yes">22x</span>
1318
1490
  <span class="cline-any cline-yes">69x</span>
1319
1491
  <span class="cline-any cline-yes">16x</span>
@@ -1347,6 +1519,8 @@
1347
1519
  <span class="cline-any cline-yes">3x</span>
1348
1520
  <span class="cline-any cline-yes">1x</span>
1349
1521
  <span class="cline-any cline-yes">1x</span>
1522
+ <span class="cline-any cline-yes">1x</span>
1523
+ <span class="cline-any cline-yes">1x</span>
1350
1524
  <span class="cline-any cline-yes">3x</span>
1351
1525
  <span class="cline-any cline-yes">3x</span>
1352
1526
  <span class="cline-any cline-yes">3x</span>
@@ -1366,6 +1540,8 @@
1366
1540
  <span class="cline-any cline-yes">3x</span>
1367
1541
  <span class="cline-any cline-yes">1x</span>
1368
1542
  <span class="cline-any cline-yes">1x</span>
1543
+ <span class="cline-any cline-yes">1x</span>
1544
+ <span class="cline-any cline-yes">1x</span>
1369
1545
  <span class="cline-any cline-yes">3x</span>
1370
1546
  <span class="cline-any cline-yes">3x</span>
1371
1547
  <span class="cline-any cline-yes">3x</span>
@@ -1379,13 +1555,25 @@
1379
1555
  <span class="cline-any cline-yes">25x</span>
1380
1556
  <span class="cline-any cline-yes">35x</span>
1381
1557
  <span class="cline-any cline-yes">35x</span>
1558
+ <span class="cline-any cline-yes">51x</span>
1559
+ <span class="cline-any cline-yes">35x</span>
1382
1560
  <span class="cline-any cline-yes">35x</span>
1383
1561
  <span class="cline-any cline-neutral">&nbsp;</span>
1384
1562
  <span class="cline-any cline-yes">25x</span>
1385
1563
  <span class="cline-any cline-yes">25x</span>
1564
+ <span class="cline-any cline-yes">10x</span>
1565
+ <span class="cline-any cline-yes">10x</span>
1566
+ <span class="cline-any cline-yes">10x</span>
1567
+ <span class="cline-any cline-yes">10x</span>
1568
+ <span class="cline-any cline-yes">10x</span>
1386
1569
  <span class="cline-any cline-yes">35x</span>
1387
1570
  <span class="cline-any cline-yes">4x</span>
1388
- <span class="cline-any cline-yes">35x</span>
1571
+ <span class="cline-any cline-yes">4x</span>
1572
+ <span class="cline-any cline-yes">6x</span>
1573
+ <span class="cline-any cline-yes">6x</span>
1574
+ <span class="cline-any cline-yes">6x</span>
1575
+ <span class="cline-any cline-yes">6x</span>
1576
+ <span class="cline-any cline-yes">6x</span>
1389
1577
  <span class="cline-any cline-yes">6x</span>
1390
1578
  <span class="cline-any cline-yes">6x</span>
1391
1579
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1475,6 +1663,8 @@
1475
1663
  <span class="cline-any cline-yes">241x</span>
1476
1664
  <span class="cline-any cline-yes">253x</span>
1477
1665
  <span class="cline-any cline-yes">253x</span>
1666
+ <span class="cline-any cline-yes">301x</span>
1667
+ <span class="cline-any cline-yes">253x</span>
1478
1668
  <span class="cline-any cline-yes">253x</span>
1479
1669
  <span class="cline-any cline-neutral">&nbsp;</span>
1480
1670
  <span class="cline-any cline-yes">81x</span>
@@ -1483,6 +1673,8 @@
1483
1673
  <span class="cline-any cline-yes">172x</span>
1484
1674
  <span class="cline-any cline-yes">172x</span>
1485
1675
  <span class="cline-any cline-yes">172x</span>
1676
+ <span class="cline-any cline-yes">172x</span>
1677
+ <span class="cline-any cline-yes">172x</span>
1486
1678
  <span class="cline-any cline-neutral">&nbsp;</span>
1487
1679
  <span class="cline-any cline-yes">253x</span>
1488
1680
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1542,14 +1734,14 @@
1542
1734
  <span class="cline-any cline-neutral">&nbsp;</span>
1543
1735
  <span class="cline-any cline-yes">4x</span>
1544
1736
  <span class="cline-any cline-yes">4x</span>
1545
- <span class="cline-any cline-yes">2x</span>
1546
- <span class="cline-any cline-yes">2x</span>
1737
+ <span class="cline-any cline-yes">4x</span>
1738
+ <span class="cline-any cline-yes">4x</span>
1547
1739
  <span class="cline-any cline-yes">1x</span>
1548
1740
  <span class="cline-any cline-yes">1x</span>
1549
- <span class="cline-any cline-yes">2x</span>
1550
- <span class="cline-any cline-yes">2x</span>
1551
- <span class="cline-any cline-yes">2x</span>
1552
- <span class="cline-any cline-yes">2x</span>
1741
+ <span class="cline-any cline-yes">4x</span>
1742
+ <span class="cline-any cline-yes">4x</span>
1743
+ <span class="cline-any cline-yes">4x</span>
1744
+ <span class="cline-any cline-yes">4x</span>
1553
1745
  <span class="cline-any cline-yes">4x</span>
1554
1746
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*!
1555
1747
  * Copyright 2020 Palantir Technologies, Inc.
@@ -1561,9 +1753,9 @@
1561
1753
  import { Context } from "@monorepolint/config";
1562
1754
  import { Host, mutateJson, PackageJson } from "@monorepolint/utils";
1563
1755
  import * as path from "node:path";
1756
+ import resolvePackagePath from "resolve-package-path";
1564
1757
  import * as r from "runtypes";
1565
1758
  import { coerce } from "semver";
1566
- import resolvePackagePath from "resolve-package-path";
1567
1759
  import { createRuleFactory } from "./util/createRuleFactory.js";
1568
1760
  &nbsp;
1569
1761
  const Options = r.Union(
@@ -1582,7 +1774,7 @@ const Options = r.Union(
1582
1774
  dependencyWhitelist: r.Undefined,
1583
1775
  dependencyBlacklist: r.Undefined,
1584
1776
  enforceForDevDependencies: r.Undefined,
1585
- })
1777
+ }),
1586
1778
  ),
1587
1779
  r
1588
1780
  .Record({
@@ -1593,7 +1785,7 @@ const Options = r.Union(
1593
1785
  skipUnparseableRanges: r.Undefined,
1594
1786
  dependencyBlacklist: r.Undefined,
1595
1787
  enforceForDevDependencies: r.Undefined,
1596
- })
1788
+ }),
1597
1789
  ),
1598
1790
  r
1599
1791
  .Record({
@@ -1604,7 +1796,7 @@ const Options = r.Union(
1604
1796
  skipUnparseableRanges: r.Undefined,
1605
1797
  dependencyWhitelist: r.Undefined,
1606
1798
  enforceForDevDependencies: r.Undefined,
1607
- })
1799
+ }),
1608
1800
  ),
1609
1801
  r
1610
1802
  .Record({
@@ -1615,7 +1807,7 @@ const Options = r.Union(
1615
1807
  skipUnparseableRanges: r.Undefined,
1616
1808
  dependencyWhitelist: r.Undefined,
1617
1809
  dependencyBlacklist: r.Undefined,
1618
- })
1810
+ }),
1619
1811
  ),
1620
1812
  r
1621
1813
  .Record({
@@ -1626,7 +1818,7 @@ const Options = r.Union(
1626
1818
  r.Partial({
1627
1819
  dependencyBlacklist: r.Undefined,
1628
1820
  enforceForDevDependencies: r.Undefined,
1629
- })
1821
+ }),
1630
1822
  ),
1631
1823
  r
1632
1824
  .Record({
@@ -1637,7 +1829,7 @@ const Options = r.Union(
1637
1829
  r.Partial({
1638
1830
  dependencyWhitelist: r.Undefined,
1639
1831
  enforceForDevDependencies: r.Undefined,
1640
- })
1832
+ }),
1641
1833
  ),
1642
1834
  r
1643
1835
  .Record({
@@ -1648,7 +1840,7 @@ const Options = r.Union(
1648
1840
  r.Partial({
1649
1841
  dependencyWhitelist: r.Undefined,
1650
1842
  dependencyBlacklist: r.Undefined,
1651
- })
1843
+ }),
1652
1844
  ),
1653
1845
  r
1654
1846
  .Record({
@@ -1659,7 +1851,7 @@ const Options = r.Union(
1659
1851
  r.Partial({
1660
1852
  skipUnparseableRanges: r.Undefined,
1661
1853
  enforceForDevDependencies: r.Undefined,
1662
- })
1854
+ }),
1663
1855
  ),
1664
1856
  r
1665
1857
  .Record({
@@ -1670,7 +1862,7 @@ const Options = r.Union(
1670
1862
  r.Partial({
1671
1863
  skipUnparseableRanges: r.Undefined,
1672
1864
  dependencyBlacklist: r.Undefined,
1673
- })
1865
+ }),
1674
1866
  ),
1675
1867
  r
1676
1868
  .Record({
@@ -1681,7 +1873,7 @@ const Options = r.Union(
1681
1873
  r.Partial({
1682
1874
  skipUnparseableRanges: r.Undefined,
1683
1875
  dependencyWhitelist: r.Undefined,
1684
- })
1876
+ }),
1685
1877
  ),
1686
1878
  r
1687
1879
  .Record({
@@ -1692,7 +1884,7 @@ const Options = r.Union(
1692
1884
  .And(
1693
1885
  r.Partial({
1694
1886
  enforceForDevDependencies: r.Undefined,
1695
- })
1887
+ }),
1696
1888
  ),
1697
1889
  r
1698
1890
  .Record({
@@ -1703,7 +1895,7 @@ const Options = r.Union(
1703
1895
  .And(
1704
1896
  r.Partial({
1705
1897
  dependencyBlacklist: r.Undefined,
1706
- })
1898
+ }),
1707
1899
  ),
1708
1900
  r
1709
1901
  .Record({
@@ -1714,7 +1906,7 @@ const Options = r.Union(
1714
1906
  .And(
1715
1907
  r.Partial({
1716
1908
  dependencyWhitelist: r.Undefined,
1717
- })
1909
+ }),
1718
1910
  ),
1719
1911
  r
1720
1912
  .Record({
@@ -1725,14 +1917,14 @@ const Options = r.Union(
1725
1917
  .And(
1726
1918
  r.Partial({
1727
1919
  skipUnparseableRanges: r.Undefined,
1728
- })
1920
+ }),
1729
1921
  ),
1730
1922
  r.Record({
1731
1923
  skipUnparseableRanges: r.Boolean,
1732
1924
  dependencyWhitelist: r.Array(r.String),
1733
1925
  dependencyBlacklist: r.Array(r.String),
1734
1926
  enforceForDevDependencies: r.Boolean,
1735
- })
1927
+ }),
1736
1928
  );
1737
1929
  &nbsp;
1738
1930
  export type Options = r.Static&lt;typeof Options&gt;;
@@ -1823,7 +2015,12 @@ interface IResolvedPeerDependencyRequirement {
1823
2015
  }
1824
2016
  &nbsp;
1825
2017
  function checkSatisfyPeerDependencies(context: Context, opts: Options) {
1826
- const { dependencyBlacklist, dependencyWhitelist, enforceForDevDependencies, skipUnparseableRanges } = opts;
2018
+ const {
2019
+ dependencyBlacklist,
2020
+ dependencyWhitelist,
2021
+ enforceForDevDependencies,
2022
+ skipUnparseableRanges,
2023
+ } = opts;
1827
2024
  const packageJsonPath = path.resolve(context.getPackageJsonPath());
1828
2025
  const packageJson = context.host.readJson(packageJsonPath) as PackageJson;
1829
2026
  const packageDependencies = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >dependencies || {};</span>
@@ -1832,8 +2029,18 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
1832
2029
  const packageName = packageJson.<span class="branch-0 cbranch-no" title="branch not covered" >name || packageJsonPath;</span>
1833
2030
  &nbsp;
1834
2031
  // check that no peer dependencies are also declared as regular dependencies
1835
- for (const [peerDependencyName, peerDependencyRange] of Object.entries(packagePeerDependencies)) {
1836
- if (shouldSkipPackage({ dependencyBlacklist, dependencyWhitelist, packageName: peerDependencyName })) {
2032
+ for (
2033
+ const [peerDependencyName, peerDependencyRange] of Object.entries(
2034
+ packagePeerDependencies,
2035
+ )
2036
+ ) {
2037
+ if (
2038
+ shouldSkipPackage({
2039
+ dependencyBlacklist,
2040
+ dependencyWhitelist,
2041
+ packageName: peerDependencyName,
2042
+ })
2043
+ ) {
1837
2044
  continue;
1838
2045
  }
1839
2046
  &nbsp;
@@ -1842,36 +2049,59 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
1842
2049
  context.addError({
1843
2050
  file: packageJsonPath,
1844
2051
  message:
1845
- `[0] Package ${packageName} has overloaded ${peerDependencyName} dependencies.\n\t` +
1846
- `Peer dependency '${peerDependencyRange}' and regular dependency '${dependencyRange}'.`,
2052
+ `[0] Package ${packageName} has overloaded ${peerDependencyName} dependencies.\n\t`
2053
+ + `Peer dependency '${peerDependencyRange}' and regular dependency '${dependencyRange}'.`,
1847
2054
  });
1848
2055
  }
1849
2056
  }
1850
2057
  &nbsp;
1851
2058
  // map of all inherited peer dependency requirements
1852
- const allRequiredPeerDependencies: { [peerDependencyName: string]: IPeerDependencyRequirement[] } = {};
2059
+ const allRequiredPeerDependencies: {
2060
+ [peerDependencyName: string]: IPeerDependencyRequirement[];
2061
+ } = {};
1853
2062
  &nbsp;
1854
2063
  // for each of this package's dependencies, add the dependency's peer requirements into `allRequiredPeerDependencies`
1855
2064
  const allDependencies = enforceForDevDependencies
1856
- ? [...Object.keys(packageDependencies), ...Object.keys(packageDevDependencies)]
2065
+ ? [
2066
+ ...Object.keys(packageDependencies),
2067
+ ...Object.keys(packageDevDependencies),
2068
+ ]
1857
2069
  : Object.keys(packageDependencies);
1858
2070
  for (const dependency of allDependencies) {
1859
- const dependencyPackageJsonPath = resolvePackagePath(dependency, path.dirname(packageJsonPath));
2071
+ const dependencyPackageJsonPath = resolvePackagePath(
2072
+ dependency,
2073
+ path.dirname(packageJsonPath),
2074
+ );
1860
2075
  if (dependencyPackageJsonPath == null) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1861
- <span class="cstat-no" title="statement not covered" > throw new Error(`Could not resolve ${dependency} from ${path.dirname(packageJsonPath)}`);</span>
2076
+ <span class="cstat-no" title="statement not covered" > throw new Error(</span>
2077
+ <span class="cstat-no" title="statement not covered" > `Could not resolve ${dependency} from ${path.dirname(packageJsonPath)}`,</span>
2078
+ <span class="cstat-no" title="statement not covered" > );</span>
1862
2079
  <span class="cstat-no" title="statement not covered" > }</span>
1863
- const dependencyPackageJson = context.host.readJson(dependencyPackageJsonPath) as PackageJson;
2080
+ const dependencyPackageJson = context.host.readJson(
2081
+ dependencyPackageJsonPath,
2082
+ ) as PackageJson;
1864
2083
  const requiredPeerDependencies = dependencyPackageJson.peerDependencies;
1865
2084
  if (requiredPeerDependencies == null) {
1866
2085
  continue;
1867
2086
  }
1868
- for (const [peerDependencyName, range] of Object.entries(requiredPeerDependencies)) {
1869
- if (shouldSkipPackage({ dependencyBlacklist, dependencyWhitelist, packageName: peerDependencyName })) {
2087
+ for (
2088
+ const [peerDependencyName, range] of Object.entries(
2089
+ requiredPeerDependencies,
2090
+ )
2091
+ ) {
2092
+ if (
2093
+ shouldSkipPackage({
2094
+ dependencyBlacklist,
2095
+ dependencyWhitelist,
2096
+ packageName: peerDependencyName,
2097
+ })
2098
+ ) {
1870
2099
  continue;
1871
2100
  }
1872
2101
  &nbsp;
1873
2102
  if (!isValidRange(range)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1874
- <span class="cstat-no" title="statement not covered" > const message = `Unable to parse ${dependencyPackageJson.name}'s ${peerDependencyName} peer dependency range '${range}'.`;</span>
2103
+ <span class="cstat-no" title="statement not covered" > const message =</span>
2104
+ <span class="cstat-no" title="statement not covered" > `Unable to parse ${dependencyPackageJson.name}'s ${peerDependencyName} peer dependency range '${range}'.`;</span>
1875
2105
  <span class="cstat-no" title="statement not covered" > if (skipUnparseableRanges) {</span>
1876
2106
  <span class="cstat-no" title="statement not covered" > context.addWarning({ file: dependencyPackageJsonPath, message });</span>
1877
2107
  <span class="cstat-no" title="statement not covered" > continue;</span>
@@ -1881,26 +2111,40 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
1881
2111
  if (allRequiredPeerDependencies[peerDependencyName] == null) {
1882
2112
  allRequiredPeerDependencies[peerDependencyName] = [];
1883
2113
  }
1884
- allRequiredPeerDependencies[peerDependencyName].push({ fromPackageName: dependencyPackageJson.name!, range });
2114
+ allRequiredPeerDependencies[peerDependencyName].push({
2115
+ fromPackageName: dependencyPackageJson.name!,
2116
+ range,
2117
+ });
1885
2118
  }
1886
2119
  }
1887
2120
  &nbsp;
1888
- for (const [peerDependencyName, peerDependencyRequirements] of Object.entries(allRequiredPeerDependencies)) {
2121
+ for (
2122
+ const [peerDependencyName, peerDependencyRequirements] of Object.entries(
2123
+ allRequiredPeerDependencies,
2124
+ )
2125
+ ) {
1889
2126
  // for each inherited peer dependency, determine the strictest range
1890
2127
  let mostStrictPeerRequirement: IResolvedPeerDependencyRequirement = {
1891
2128
  fromPeerDependencyRequirements: [peerDependencyRequirements[0]],
1892
2129
  range: peerDependencyRequirements[0].range,
1893
2130
  };
1894
2131
  for (const peerRequirement of peerDependencyRequirements) {
1895
- if (doesASatisfyB(mostStrictPeerRequirement.range, peerRequirement.range)) {
2132
+ if (
2133
+ doesASatisfyB(mostStrictPeerRequirement.range, peerRequirement.range)
2134
+ ) {
1896
2135
  continue;
1897
- } else if (doesASatisfyB(peerRequirement.range, mostStrictPeerRequirement.range)) {
2136
+ } else if (
2137
+ doesASatisfyB(peerRequirement.range, mostStrictPeerRequirement.range)
2138
+ ) {
1898
2139
  mostStrictPeerRequirement = {
1899
2140
  fromPeerDependencyRequirements: [peerRequirement],
1900
2141
  range: peerRequirement.range,
1901
2142
  };
1902
2143
  } else {
1903
- const maybeIntersection = findIntersection(peerRequirement.range, mostStrictPeerRequirement.range);
2144
+ const maybeIntersection = findIntersection(
2145
+ peerRequirement.range,
2146
+ mostStrictPeerRequirement.range,
2147
+ );
1904
2148
  if (maybeIntersection !== undefined) {
1905
2149
  mostStrictPeerRequirement = {
1906
2150
  fromPeerDependencyRequirements: [
@@ -1913,9 +2157,9 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
1913
2157
  context.addError({
1914
2158
  file: packageJsonPath,
1915
2159
  message:
1916
- `[1] Package ${packageName} has conflicting inherited ${peerDependencyName} peer dependencies.\n\t` +
1917
- `Dependency ${peerRequirement.fromPackageName} requires '${peerRequirement.range}' but\n\t` +
1918
- getMostStrictStatement(mostStrictPeerRequirement),
2160
+ `[1] Package ${packageName} has conflicting inherited ${peerDependencyName} peer dependencies.\n\t`
2161
+ + `Dependency ${peerRequirement.fromPackageName} requires '${peerRequirement.range}' but\n\t`
2162
+ + getMostStrictStatement(mostStrictPeerRequirement),
1919
2163
  });
1920
2164
  }
1921
2165
  }
@@ -1926,31 +2170,35 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
1926
2170
  const packageDependencyRange = packageDependencies[peerDependencyName];
1927
2171
  if (packageDependencyRange != null) {
1928
2172
  if (!isValidRange(packageDependencyRange)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1929
- <span class="cstat-no" title="statement not covered" > const message = `Unable to parse ${packageName}'s ${peerDependencyName} dependency range '${packageDependencyRange}'.`;</span>
2173
+ <span class="cstat-no" title="statement not covered" > const message =</span>
2174
+ <span class="cstat-no" title="statement not covered" > `Unable to parse ${packageName}'s ${peerDependencyName} dependency range '${packageDependencyRange}'.`;</span>
1930
2175
  <span class="cstat-no" title="statement not covered" > if (skipUnparseableRanges) {</span>
1931
2176
  <span class="cstat-no" title="statement not covered" > context.addWarning({ file: packageJsonPath, message });</span>
1932
2177
  <span class="cstat-no" title="statement not covered" > } else {</span>
1933
2178
  <span class="cstat-no" title="statement not covered" > throw new Error(message);</span>
1934
2179
  <span class="cstat-no" title="statement not covered" > }</span>
1935
- } else if (!doesASatisfyB(packageDependencyRange, mostStrictPeerRequirement.range)) {
2180
+ <span class="cstat-no" title="statement not covered" > } else if (</span>
2181
+ !doesASatisfyB(packageDependencyRange, mostStrictPeerRequirement.range)
2182
+ ) {
1936
2183
  context.addError({
1937
2184
  file: packageJsonPath,
1938
2185
  message:
1939
- `[2] Package ${packageName} dependency on ${peerDependencyName} '${packageDependencyRange}' does not satisfy inherited peer dependencies.\n\t` +
1940
- getMostStrictStatement(mostStrictPeerRequirement),
2186
+ `[2] Package ${packageName} dependency on ${peerDependencyName} '${packageDependencyRange}' does not satisfy inherited peer dependencies.\n\t`
2187
+ + getMostStrictStatement(mostStrictPeerRequirement),
1941
2188
  });
1942
2189
  }
1943
2190
  }
1944
2191
  &nbsp;
1945
2192
  // for every inherited peer dependency, this package must declare a dependency or peer dependency
1946
2193
  // equal to or stricter than `mostStrictPeerRequirement`
1947
- const packagePeerDependencyRange = packagePeerDependencies[peerDependencyName];
2194
+ const packagePeerDependencyRange =
2195
+ packagePeerDependencies[peerDependencyName];
1948
2196
  if (packageDependencyRange == null &amp;&amp; packagePeerDependencyRange == null) {
1949
2197
  context.addError({
1950
2198
  file: packageJsonPath,
1951
2199
  message:
1952
- `[3] Package ${packageName} is missing required ${peerDependencyName} dependency.\n\t` +
1953
- getMostStrictStatement(mostStrictPeerRequirement),
2200
+ `[3] Package ${packageName} is missing required ${peerDependencyName} dependency.\n\t`
2201
+ + getMostStrictStatement(mostStrictPeerRequirement),
1954
2202
  fixer: getAddDependencyTypeFixer({
1955
2203
  packageJsonPath,
1956
2204
  dependencyType: "peerDependencies",
@@ -1965,18 +2213,24 @@ function checkSatisfyPeerDependencies(context: Context, opts: Options) {
1965
2213
  // the range must be equal to or stricter than `mostStrictPeerRequirement`
1966
2214
  if (packagePeerDependencyRange != null) {
1967
2215
  if (!isValidRange(packagePeerDependencyRange)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1968
- <span class="cstat-no" title="statement not covered" > const message = `Unable to parse ${packageName}'s ${peerDependencyName} peer dependency range '${packagePeerDependencyRange}'.`;</span>
2216
+ <span class="cstat-no" title="statement not covered" > const message =</span>
2217
+ <span class="cstat-no" title="statement not covered" > `Unable to parse ${packageName}'s ${peerDependencyName} peer dependency range '${packagePeerDependencyRange}'.`;</span>
1969
2218
  <span class="cstat-no" title="statement not covered" > if (skipUnparseableRanges) {</span>
1970
2219
  <span class="cstat-no" title="statement not covered" > context.addWarning({ file: packageJsonPath, message });</span>
1971
2220
  <span class="cstat-no" title="statement not covered" > } else {</span>
1972
2221
  <span class="cstat-no" title="statement not covered" > throw new Error(message);</span>
1973
2222
  <span class="cstat-no" title="statement not covered" > }</span>
1974
- } else if (!doesASatisfyB(packagePeerDependencyRange, mostStrictPeerRequirement.range)) {
2223
+ <span class="cstat-no" title="statement not covered" > } else if (</span>
2224
+ !doesASatisfyB(
2225
+ packagePeerDependencyRange,
2226
+ mostStrictPeerRequirement.range,
2227
+ )
2228
+ ) {
1975
2229
  context.addError({
1976
2230
  file: packageJsonPath,
1977
2231
  message:
1978
- `[4] Package ${packageName} peer dependency on ${peerDependencyName} '${packagePeerDependencyRange}' is not strict enough.\n\t` +
1979
- getMostStrictStatement(mostStrictPeerRequirement),
2232
+ `[4] Package ${packageName} peer dependency on ${peerDependencyName} '${packagePeerDependencyRange}' is not strict enough.\n\t`
2233
+ + getMostStrictStatement(mostStrictPeerRequirement),
1980
2234
  fixer: getAddDependencyTypeFixer({
1981
2235
  packageJsonPath,
1982
2236
  dependencyType: "peerDependencies",
@@ -2001,28 +2255,39 @@ function shouldSkipPackage({
2001
2255
  }) {
2002
2256
  // blacklist should take precedance
2003
2257
  if (
2004
- (dependencyBlacklist != null &amp;&amp; dependencyBlacklist.includes(packageName)) ||
2005
- (dependencyWhitelist != null &amp;&amp; !dependencyWhitelist.includes(packageName))
2258
+ (dependencyBlacklist != null &amp;&amp; dependencyBlacklist.includes(packageName))
2259
+ || (dependencyWhitelist != null
2260
+ &amp;&amp; !dependencyWhitelist.includes(packageName))
2006
2261
  ) {
2007
2262
  return true;
2008
2263
  }
2009
2264
  return false;
2010
2265
  }
2011
2266
  &nbsp;
2012
- function getMostStrictStatement(mostStrictPeerRequirement: IResolvedPeerDependencyRequirement) {
2267
+ function getMostStrictStatement(
2268
+ mostStrictPeerRequirement: IResolvedPeerDependencyRequirement,
2269
+ ) {
2013
2270
  if (mostStrictPeerRequirement.fromPeerDependencyRequirements.length === 1) {
2014
- const dependencyName = mostStrictPeerRequirement.fromPeerDependencyRequirements[0].fromPackageName;
2271
+ const dependencyName =
2272
+ mostStrictPeerRequirement.fromPeerDependencyRequirements[0]
2273
+ .fromPackageName;
2015
2274
  return `Dependency ${dependencyName} requires '${mostStrictPeerRequirement.range}'.`;
2016
2275
  } else {
2017
- const dependencyNames = mostStrictPeerRequirement.fromPeerDependencyRequirements
2018
- .map((peerDependencyRequirement) =&gt; peerDependencyRequirement.fromPackageName)
2276
+ const dependencyNames = mostStrictPeerRequirement
2277
+ .fromPeerDependencyRequirements
2278
+ .map((peerDependencyRequirement) =&gt;
2279
+ peerDependencyRequirement.fromPackageName
2280
+ )
2019
2281
  .join(", ");
2020
- const dependencyRequirements = mostStrictPeerRequirement.fromPeerDependencyRequirements
2021
- .map((peerDependencyRequirement) =&gt; `'${peerDependencyRequirement.range}'`)
2282
+ const dependencyRequirements = mostStrictPeerRequirement
2283
+ .fromPeerDependencyRequirements
2284
+ .map((peerDependencyRequirement) =&gt;
2285
+ `'${peerDependencyRequirement.range}'`
2286
+ )
2022
2287
  .join(", ");
2023
2288
  return (
2024
- `Dependencies [${dependencyNames}] require [${dependencyRequirements}] respectively, ` +
2025
- `resolving to '${mostStrictPeerRequirement.range}'.`
2289
+ `Dependencies [${dependencyNames}] require [${dependencyRequirements}] respectively, `
2290
+ + `resolving to '${mostStrictPeerRequirement.range}'.`
2026
2291
  );
2027
2292
  }
2028
2293
  }
@@ -2056,7 +2321,10 @@ function getMostStrictStatement(mostStrictPeerRequirement: IResolvedPeerDependen
2056
2321
  * @param b version range that matches `RANGE_REGEX`
2057
2322
  * @returns the maximum intersecting `ValidRange`, or `undefined` if there is no intersection
2058
2323
  */
2059
- export function findIntersection(a: ValidRange, b: ValidRange): ValidRange | undefined {
2324
+ export function findIntersection(
2325
+ a: ValidRange,
2326
+ b: ValidRange,
2327
+ ): ValidRange | undefined {
2060
2328
  if (doesASatisfyB(a, b)) {
2061
2329
  return a;
2062
2330
  } else if (doesASatisfyB(b, a)) {
@@ -2089,7 +2357,9 @@ export function findIntersection(a: ValidRange, b: ValidRange): ValidRange | und
2089
2357
  .map((bVersion) =&gt; {
2090
2358
  const bSemVer = coerce(bVersion)!;
2091
2359
  if (bVersion.startsWith("^") &amp;&amp; bSemVer.major &gt;= aSemVer.major) {
2092
- return `^${bSemVer.compare(aSemVer) &gt;= <span class="branch-0 cbranch-no" title="branch not covered" >0 ? bSemVer.raw : a</span>SemVer.raw}`;
2360
+ return `^${
2361
+ bSemVer.compare(aSemVer) &gt;= <span class="branch-0 cbranch-no" title="branch not covered" >0 ? bSemVer.raw : a</span>SemVer.raw
2362
+ }`;
2093
2363
  }
2094
2364
  return bSemVer.compare(aSemVer) !== <span class="branch-0 cbranch-no" title="branch not covered" >-1 ? bVersion : u</span>ndefined;
2095
2365
  })
@@ -2108,7 +2378,9 @@ export function findIntersection(a: ValidRange, b: ValidRange): ValidRange | und
2108
2378
  .map((aVersion) =&gt; {
2109
2379
  const aSemVer = coerce(aVersion)!;
2110
2380
  if (aVersion.startsWith("^") &amp;&amp; aSemVer.major &gt;= bSemVer.major) {
2111
- return `^${aSemVer.compare(bSemVer) &gt;= <span class="branch-0 cbranch-no" title="branch not covered" >0 ? aSemVer.raw : b</span>SemVer.raw}`;
2381
+ return `^${
2382
+ aSemVer.compare(bSemVer) &gt;= <span class="branch-0 cbranch-no" title="branch not covered" >0 ? aSemVer.raw : b</span>SemVer.raw
2383
+ }`;
2112
2384
  }
2113
2385
  return aSemVer.compare(bSemVer) !== <span class="branch-0 cbranch-no" title="branch not covered" >-1 ? aVersion : u</span>ndefined;
2114
2386
  })
@@ -2122,14 +2394,26 @@ export function findIntersection(a: ValidRange, b: ValidRange): ValidRange | und
2122
2394
  const compatibleVersions = aVersions
2123
2395
  .map((aVersion) =&gt; {
2124
2396
  const aSemVer = coerce(aVersion)!;
2125
- const majorMatchingBVersion = bVersions.find((m) =&gt; coerce(m)!.major === aSemVer.major);
2397
+ const majorMatchingBVersion = bVersions.find((m) =&gt;
2398
+ coerce(m)!.major === aSemVer.major
2399
+ );
2126
2400
  if (majorMatchingBVersion === undefined) {
2127
2401
  // there is no intersecting `b` major version for this `a` major version
2128
2402
  return undefined;
2129
2403
  }
2130
- if (doesASatisfyB(aVersion as ValidRange, majorMatchingBVersion as ValidRange)) {
2404
+ if (
2405
+ doesASatisfyB(
2406
+ aVersion as ValidRange,
2407
+ majorMatchingBVersion as ValidRange,
2408
+ )
2409
+ ) {
2131
2410
  return aVersion;
2132
- } else if (doesASatisfyB(majorMatchingBVersion as ValidRange, aVersion as ValidRange)) {
2411
+ } else if (
2412
+ doesASatisfyB(
2413
+ majorMatchingBVersion as ValidRange,
2414
+ aVersion as ValidRange,
2415
+ )
2416
+ ) {
2133
2417
  return majorMatchingBVersion;
2134
2418
  <span class="branch-0 cbranch-no" title="branch not covered" > } else {</span>
2135
2419
  <span class="cstat-no" title="statement not covered" > return undefined;</span>
@@ -2218,7 +2502,9 @@ export function doesASatisfyB(a: ValidRange, b: ValidRange): boolean {
2218
2502
  &nbsp;
2219
2503
  return aVersions.every((aVersion) =&gt; {
2220
2504
  const aSemVer = coerce(aVersion)!;
2221
- const majorMatchingBVersion = bVersions.find((m) =&gt; coerce(m)!.major === aSemVer.major);
2505
+ const majorMatchingBVersion = bVersions.find((m) =&gt;
2506
+ coerce(m)!.major === aSemVer.major
2507
+ );
2222
2508
  if (majorMatchingBVersion === undefined) {
2223
2509
  // `a` permits a major version that is not permitted by `b`, therefore `a` is "less strict"
2224
2510
  return false;
@@ -2226,7 +2512,9 @@ export function doesASatisfyB(a: ValidRange, b: ValidRange): boolean {
2226
2512
  &nbsp;
2227
2513
  const aVersionIsRange = isMajorVersionRange(aVersion);
2228
2514
  const majorMatchingBSemVer = coerce(majorMatchingBVersion)!;
2229
- const majorMatchingBVersionIsRange = isMajorVersionRange(majorMatchingBVersion);
2515
+ const majorMatchingBVersionIsRange = isMajorVersionRange(
2516
+ majorMatchingBVersion,
2517
+ );
2230
2518
  &nbsp;
2231
2519
  if (majorMatchingBVersionIsRange) {
2232
2520
  // `a` satisfies `b` so long as `aSemVer` is greater than or equal to `majorMatchingBSemVer`
@@ -2302,7 +2590,7 @@ function getAddDependencyTypeFixer({
2302
2590
  <div class='footer quiet pad2 space-top1 center small'>
2303
2591
  Code coverage generated by
2304
2592
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2305
- at 2025-01-17T16:18:41.406Z
2593
+ at 2025-01-22T17:39:11.886Z
2306
2594
  </div>
2307
2595
  <script src="../prettify.js"></script>
2308
2596
  <script>